function ajaxmsgbox(title, text, buttons){
	
	$('msgbox').style.display = 'block';
	$('grayout').style.display = 'block';
	Element.addClassName($('ieiframe'), 'ieshow');
	
	$('grayout').style.height = $('container').getHeight() + 'px';
	
	center($('msgbox'));
	center($('ieiframe'));
	
	// assign title and msg txt
	$('msgboxtitle').innerHTML = title;
	$('msgboxtext').innerHTML = text;
	
	
	// create buttons and assign functions based on buttons variable
	$('msgboxbuttons').innerHTML = ""; // innerHTML is evil, but it's so fast, bleh
	buttons.each(function(button) {
		// make button
		var newbtn = Builder.node('button', {}, [button.contents]);
		// add click handler
		Event.observe(newbtn, 'click', button.callback.bindAsEventListener(newbtn));
		Event.observe(newbtn, 'click', ajaxmsgbox_hide);

		// append it to button div
		$('msgboxbuttons').appendChild(newbtn);
	});
	
	// remove close box
	$('msgboxclose').style.display  ='one';
}

function ajaxcontentbox(title, text){
	
	// resize box...  bigger for content
	$('msgbox').style.height = '520px';
	$('msgbox').style.width = '800px';
	$('msgboxtextbox').style.height = "400px";
	
	// display box
	$('msgbox').style.display = 'block';
	$('grayout').style.display = 'block';
	Element.addClassName($('ieiframe'), 'ieshow');
	
	if($('zclips').getHeight() > window.height)
		$('grayout').style.height = $('zclips').getHeight() + 'px';
	
	center($('msgbox'));
	center($('ieiframe'));
	
	// assign title and msg txt
	$('msgboxtitle').innerHTML = title;
	
	if(typeof(text) == 'object'){
		$('msgboxtextbox').innerHTML = text;
	}else{
		$('msgboxtextbox').innerHTML = text;
	}
	
	// add a close box
	Event.observe($('msgboxclose'), 'click', ajaxmsgbox_hide);
}

function ajaxmsgbox_hide(){
	$('msgbox').style.display = 'none';
	$('grayout').style.display = 'none';
	Element.removeClassName($('ieiframe'), 'ieshow');
}

function center(element){
    try{
        element = $(element);
    }catch(e){
        return;
    }

    var my_width  = 0;
    var my_height = 0;

    if ( typeof( window.innerWidth ) == 'number' ){
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
    }else if ( document.documentElement && 
             ( document.documentElement.clientWidth ||
               document.documentElement.clientHeight ) ){
        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    }
    else if ( document.body && 
            ( document.body.clientWidth || document.body.clientHeight ) ){
        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    var scrollY = 0;

    if ( document.documentElement && document.documentElement.scrollTop ){
        scrollY = document.documentElement.scrollTop;
    }else if ( document.body && document.body.scrollTop ){
        scrollY = document.body.scrollTop;
    }else if ( window.pageYOffset ){
        scrollY = window.pageYOffset;
    }else if ( window.scrollY ){
        scrollY = window.scrollY;
    }

    var elementDimensions = Element.getDimensions(element);

    var setX = ( my_width  - elementDimensions.width  ) / 2;
    var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;

    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top  = setY + "px";
}
