// JavaScript Document

var thisElement;

//observe a click on overlay to close the showbox -- J.S. request
Event.observe(window, 'load', function() {
	Event.observe('overlay', 'click', hideBox);
});

function showBox(args){
	var element = args.split("|")[0];
	var src = args.split("|")[1];
	thisElement = element;
	Element.hide($(thisElement));
	if(src != null)
	{
	    $(thisElement).getElementsBySelector('iframe')[0].src = src;
	}
	center(thisElement);
	//setResizeDetector(thisElement);
	
	return false;
}

function hideBox() {
	unsetResizeDetector(thisElement);
	$(thisElement).hide();
	//$('overlay').hide();
	$('overlay').style.display = 'none';
	$(thisElement).getElementsBySelector('iframe')[0].src = '';
	window.onresize = "";
	window.onscroll = "";
	return false;
}

function center(element, r){
	try{
        element = $(element);
    }catch(e){
        return;
    }
	
    element.style.position = 'absolute';
	element.style.zIndex   = 1000;

    var elementDimensions = Element.getDimensions(element);
	var browserHeight = getHeight();
	var browserWidth = getWidth();
	var browserScroll = getYScroll();

    var setX = ( browserWidth  - elementDimensions.width  ) / 2;
    var setY = ( browserHeight - elementDimensions.height ) / 2 +  browserScroll;

    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top = setY + "px";
    	
	$('overlay').style.display = ""; 
    
    if (element == $('loading')) {
	    element.show();
    } else {
	    new Effect.Appear(element, {duration: .4});
    }
	
	scrollThis();
	window.onresize = resizeThis;
	window.onscroll = scrollThis;
	
}

function recenter(element)
{
    element.style.position = 'absolute';
	element.style.zIndex   = 1000;

    var elementDimensions = Element.getDimensions(element);
	var browserHeight = parent.getHeight();
	var browserWidth = parent.getWidth();
	var browserScroll = parent.getYScroll();

    var setX = ( browserWidth  - elementDimensions.width  ) / 2;
    var setY = ( browserHeight - elementDimensions.height ) / 2 +  browserScroll;

    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top = setY + "px";
}

function setResizeDetector(element) {
	element = $(element);
	window.resizeElementHeight = element.offsetHeight;
	window.resizeDetector = window.setInterval(function() {
		if (window.resizeElementHeight != element.offsetHeight) {
			center(element);
			window.resizeElementHeight = element.offsetHeight;
		}
	}, 100);

	return true;
}

function unsetResizeDetector(element) {
	window.clearInterval(window.resizeDetector);
	return true;
}

function getYScroll(){
	
    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;
    }
	return scrollY;

}

function getWidth(){
	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;
    }
	return my_width;
	
}

function getHeight(){
	//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;
    }
	return my_height;
	
}

function resizeThis(e){
	if (!e) e = window.event;
	var r = "resize";
	//Effect.Fade(thisElement, {duration: .1});
	center(thisElement, r);
	return true;
	
}

function scrollThis(e){
	if (!e) e = window.event;
	var elementDimensions = Element.getDimensions($('overlay'));
	var browserHeight = getHeight();
	var browserWidth = getWidth();
	var browserScroll = getYScroll();
    var setHeight =	(browserHeight + browserScroll);
	$('overlay').style.height = setHeight + "px";
	
}
