//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
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;
}

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
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 initOverlay ()
{
	var objBody = document.getElementsByTagName("body").item(0);
	var objOverlay = document.createElement("div");

	objOverlay.setAttribute('id','overlay');
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '90';
 	objOverlay.style.width = '100%';
	objBody.insertBefore(objOverlay, objBody.firstChild);

	var arrayPageScroll = getPageScroll();

	var objLightbox = document.createElement("div");
	objLightbox.setAttribute('id','lightbox');
	objLightbox.style.display = 'none';
	objLightbox.style.position = 'absolute';
	objLightbox.style.zIndex = '100';
	objBody.insertBefore(objLightbox, objOverlay.nextSibling);

	var objMessage = document.createElement("div");
	objMessage.setAttribute('id','lightboxMessage');
	objLightbox.appendChild(objMessage);

	// create link
	var objLink = document.createElement("a");
	var objImg	= document.createElement("img");

	objLink.setAttribute('id','lightboxLink');
	objLink.setAttribute('href','#');
	objLink.setAttribute('title','Zapri');
	objImg.src = "/dsg/sl/buttons/zapri_siv.gif";
	objImg.setAttribute('alt','Zapri');
	objLink.appendChild(objImg);

	objLink.onclick = function () {closeOverlay(); return false;}
	objLightbox.appendChild(objLink);

}

function closeOverlay ()
{
	var objOverlay = document.getElementById('overlay');
	objOverlay.style.display = 'none';

	var objLightbox = document.getElementById('lightbox');
	objLightbox.style.display = 'none';

	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

function displayMessage (message, progressbar)
{
	var objOverlay = document.getElementById('overlay');
	var objLightbox = document.getElementById('lightbox');
	var objMessage = document.getElementById('lightboxMessage');
	var objLink = document.getElementById('lightboxLink');

	if (progressbar)
	{
		var objProgressDiv = document.createElement ("div");
		objProgressDiv.setAttribute ('style', 'text-align: center');
		objProgressDiv.style.width = '100%';

		var objProgress = document.createElement ("img");
		objProgress.src = '/dsg/progressbar_green.gif';
		objProgressDiv.appendChild (objProgress);

		objLightbox.insertBefore(objProgressDiv, objLink);
		objLink.style.display = 'none';
	}

	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}

	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';

	objMessage.innerHTML = message;

	objLightbox.style.top = arrayPageScroll[1] + ((arrayPageSize[3] - 200) / 2)+ "px";
	if (progressbar)
	{
		objLightbox.style.left = (arrayPageSize[0] - 402) / 2 + "px";
	}
	else
	{
		objLightbox.style.left = "130px";
	}

	objLightbox.style.display = 'block';
}

//
// 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(initOverlay);
