// JavaScript Document



Object.extend(Element, {

	getWidth: function(element) {

	   	element = $(element);

	   	return element.offsetWidth; 

	},

	setWidth: function(element,w) {

	   	element = $(element);

    	element.style.width = w +"px";

	},

	setHeight: function(element,h) {

   		element = $(element);

    	element.style.height = h +"px";

	},

	setTop: function(element,t) {

	   	element = $(element);

    	element.style.top = t +"px";

	},

	setSrc: function(element,src) {

    	element = $(element);

    	element.src = src; 

	},

	setHref: function(element,href) {

    	element = $(element);

    	element.href = href; 

	},

	setInnerHTML: function(element,content) {

		element = $(element);

		element.innerHTML = content;

	}

});





function showLoader(){

    hideSelectBoxes();

    var arrayPageSize = getPageSize();

    Element.setHeight('overlay', arrayPageSize[1]);

    new Effect.Appear('overlay', { duration: .2, from: 0.0, to: .8 });    

    center('loader');

    Element.show('loader');

    return false;

}



function showBox(){

    Element.hide('loader');

    var arrayPageSize = getPageSize();

    var arrayPageScroll = getPageScroll();

    var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);

	var lightboxHeight = (arrayPageSize[3] / 1.5);

	Element.setHeight('boxcontent', lightboxHeight);

    Element.setTop('box', lightboxTop);

    center('box');

    Element.show('box');

    return false;

}



function hideBox(){

    Element.hide('loader');

    Element.hide('box');

 new Effect.Fade('overlay', { duration: 0.2, from: 0.8, to: 0.0 });

 showSelectBoxes();

    return false;

}



function center(element){

    try{

        element = document.getElementById(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;

    }



    element.style.position = 'absolute';

    element.style.zIndex   = 99;



    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";

}



function getPageScroll(){



	var yScroll;



	if (self.pageYOffset) {

		yScroll = self.pageYOffset;

	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict

		yScroll = document.documentElement.scrollTop;

	} else if (document.body) {// all other Explorers

		yScroll = document.body.scrollTop;

	}



	arrayPageScroll = new Array('',yScroll) 

	return arrayPageScroll;

}



function getPageSize(){

	

	var xScroll, yScroll;

	

	if (window.innerHeight && window.scrollMaxY) {	

		xScroll = document.body.scrollWidth;

		yScroll = window.innerHeight + window.scrollMaxY;

	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac

		xScroll = document.body.scrollWidth;

		yScroll = document.body.scrollHeight;

	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari

		xScroll = document.body.offsetWidth;

		yScroll = document.body.offsetHeight;

	}

	

	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer

		windowWidth = self.innerWidth;

		windowHeight = self.innerHeight;

	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode

		windowWidth = document.documentElement.clientWidth;

		windowHeight = document.documentElement.clientHeight;

	} else if (document.body) { // other Explorers

		windowWidth = document.body.clientWidth;

		windowHeight = document.body.clientHeight;

	}	

	

	// for small pages with total height less then height of the viewport

	if(yScroll < windowHeight){

		pageHeight = windowHeight;

	} else { 

		pageHeight = yScroll;

	}



	// for small pages with total width less then width of the viewport

	if(xScroll < windowWidth){	

		pageWidth = windowWidth;

	} else {

		pageWidth = xScroll;

	}





	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 

	return arrayPageSize;

}





function showSelectBoxes(){

	selects = document.getElementsByTagName("select");

	for (i = 0; i != selects.length; i++) {

		selects[i].style.visibility = "visible";

	}

}





function hideSelectBoxes(){

	selects = document.getElementsByTagName("select");

	for (i = 0; i != selects.length; i++) {

		selects[i].style.visibility = "hidden";

	}

}



function initLightbox()

{

	var objBody = document.getElementsByTagName("body").item(0);

	

	// create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)

	var objOverlay = document.createElement("div");

	objOverlay.setAttribute('id','overlay');

	objOverlay.onclick = function () {hideBox(); return false;}

	objOverlay.style.display = 'none';

	objBody.insertBefore(objOverlay, objBody.firstChild);

	

	// create lightbox div, same note about styles as above

	var objLightbox = document.createElement("div");

	objLightbox.setAttribute('id','box');

	objLightbox.style.display = 'none';

	objBody.insertBefore(objLightbox, objOverlay.nextSibling);

	

	var objLoader = document.createElement("div");

	objLoader.setAttribute('id','loader');

	objLoader.innerHTML = '<img src="/dev/images/ajax-loader.gif" />';

	objLoader.onclick = function () {hideBox(); return false;}

	objLoader.style.display = 'none';

	objBody.insertBefore(objLoader, objOverlay.nextSibling);



	/*var objCloseButton = document.createElement("img");

	objCloseButton.onclick = function () {hideBox(); return false;}

	objCloseButton.src = "/auction/images/close.gif";

	objCloseButton.setAttribute('id','closeButton');

	objLightbox.appendChild(objCloseButton);

	*/

	var objBoxContent = document.createElement("div");

	objBoxContent.setAttribute('id','boxcontent');

	objLightbox.appendChild(objBoxContent);



}









//

// addLoadEvent()

// Adds event to window.onload without overwriting currently assigned onload functions.

// Function found at Simon Willison's weblog - http://simon.incutio.com/

//

function addLoadEvent(func)

{	

	var oldonload = window.onload;

	if (typeof window.onload != 'function'){

    	window.onload = func;

	} else {

		window.onload = function(){

		oldonload();

		func();

		}

	}



}







addLoadEvent(initLightbox);	// run initLightbox onLoad
