// -----------------------------------------------------------------------------------
//
//	Lightbox v2.02
//	by Lokesh Dhakar - http://www.huddletogether.com
//	3/31/06
//
//	For more information on this script, visit:
//	http://huddletogether.com/projects/lightbox2/
//
//	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
//	
//	Credit also due to those who have helped, inspired, and made their code available to the public.
//	Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.org), Thomas Fuchs(mir.aculo.us), and others.
//
//
// -----------------------------------------------------------------------------------
/*

	Table of Contents
	-----------------
	Configuration
	Global Variables

	Extending Built-in Objects	
	- Object.extend(Element)
	- Array.prototype.removeDuplicates()
	- Array.prototype.empty()

	Lightbox Class Declaration
	- initialize()
	- start()
	- changeImage()
	- resizeImageContainer()
	- showImage()
	- updateDetails()
	- updateNav()
	- enableKeyboardNav()
	- disableKeyboardNav()
	- keyboardAction()
	- preloadNeighborImages()
	- end()
	
	Miscellaneous Functions
	- getPageScroll()
	- getPageSize()
	- getKey()
	- listenKey()
	- showSelectBoxes()
	- hideSelectBoxes()
	- pause()
	- initLightbox()
	
	Function Calls
	- addLoadEvent(initLightbox)
	
*/


var Loadingbox = Class.create();

Loadingbox.prototype = {
	
	// initialize()
	// Constructor runs on completion of the DOM loading. Loops through anchor tags looking for 
	// 'lightbox' references and applies onclick events to appropriate links. The 2nd section of
	// the function inserts html at the bottom of the page which is used to display the shadow 
	// overlay and the image container.
	//
	initialize: function() {	
		if (!document.getElementsByTagName){ return; }
		
		var objBody = document.getElementsByTagName("body").item(0);
		
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','loadingoverlay');
		objOverlay.style.display = 'none';
		//This is commented out because if the user clicks outside of the 'box'
		//it would cause the box to close.
		//objOverlay.onclick = function() { myExportbox.end(); return false; }
		objBody.appendChild(objOverlay);
		
		var objLoadingbox = document.createElement("div");
		objLoadingbox.setAttribute('id','loadingbox');
		objLoadingbox.style.display = 'none';
		objBody.appendChild(objLoadingbox);
		
		var objOuterLoadingContainer = document.createElement("div");
		objOuterLoadingContainer.setAttribute('id','outerLoadingContainer');
		objLoadingbox.appendChild(objOuterLoadingContainer);
		
		var objLoadingContainer = document.createElement("div");
		objLoadingContainer.setAttribute('id','LoadingContainer');
		
		var objMemberLoadingbox = document.createElement("table");
		objMemberLoadingbox.setAttribute('align','center');
		objMemberLoadingbox.setAttribute('cellspacing','4');
		
			
		var objTablebody = document.createElement("TBODY");
		
		var row0 = document.createElement("tr");	
		
		var row0col1 = document.createElement("td");
		row0col1.setAttribute("align","center");
		//the class "close" is located in the lightbox css
		row0col1.innerHTML = "<table><tr><td align='center'><img src=\"../Components/LocalPictures/ajax-loader.gif\"></td></tr><tr><td align='center' class='loading'>Loading...</td></tr></table>";
		row0.appendChild(row0col1);	
		
		objTablebody.appendChild(row0);	
		
		//var row1 = document.createElement("tr");
		
		//var row0col2 = document.createElement("td");
		//row0col2.setAttribute("align","center");		
		//row0col2.innerHTML = "<div id='eventsformonth'><table><tr><td align='center'><img src=\"../Components/Images/loading.gif\"></td></tr></table></div>";
		//row1.appendChild(row0col2);	
		
		//objTablebody.appendChild(row1);			
		
				
		objMemberLoadingbox.appendChild(objTablebody);
		objLoadingContainer.appendChild(objMemberLoadingbox);
		objOuterLoadingContainer.appendChild(objLoadingContainer);
		
		
	},
	
	//
	//	start()
	//	Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
	//
	start: function() {	

		hideSelectBoxes();

		// stretch overlay to fill page and fade in
		var arrayPageSize = getPageSize();
		Element.setHeight('loadingoverlay', arrayPageSize[1]);
		new Effect.Appear('loadingoverlay', { duration: 0.2, from: 0.0, to: 0.8 });

		// calculate top offset for the lightbox and display 
		var arrayPageSize = getPageSize();
		var arrayPageScroll = getPageScroll();
		var loadingboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 15);

		Element.setTop('loadingbox', loadingboxTop);
		//Element.show('exportbox');
		new Effect.Appear('loadingbox', { duration: 0.75 });
	},
	//
	//	end()
	//
	end: function() {
		Element.hide('loadingbox');
		new Effect.Fade('loadingoverlay', { duration: 0.2});
		showSelectBoxes();
	}
}
//---------------------------------------------------------------
var myLoadingBox = null;

function initLoadingbox() { myLoadingbox = new Loadingbox(); }
Event.observe(window, 'load', initLoadingbox, false);


