var overlayon = false;
var overlaycolor = "#444444";
var overlayopacity = 85;
var overlayid = "overlay_main";
var messageid = "message_win";
var overlayZ = 20;

window.onresize = resizeOverlay;

function showOverlay() {
	dv = document.getElementById(overlayid);
	if (!dv)
	{
		v = Viewport();
		x = v.pageX;
		y = v.pageY;

		dv = document.createElement("div");
		dv.style.position = "absolute";
		dv.id = overlayid;
		dv.style.backgroundColor = overlaycolor;
		opacity(dv, overlayopacity);
		
		dv.style.top = "0px";
		dv.style.left = "0px";
		dv.style.height = y + "px";
		dv.style.width = x + "px";

		dv.style.zIndex = overlayZ;	
		document.body.appendChild(dv);
	} else {
		v = Viewport();
		x = v.pageX;
		y = v.pageY;
		dv.style.top = "0px";
		dv.style.left = "0px";
		dv.style.height = y + "px";
		dv.style.width = x + "px";

		dv.style.display = "block";
	}
	overlayon = true;
}

function closeOverlay() {
		dv = document.getElementById(overlayid);
		dv.style.display = "none";
		overlayon = false;
}

function showMessage(msg) {
	if (!msg) msg = "<div onclick='closeMessage();' style='width: 400px; height: 300px; padding: 30px; '><b>Please wait .... </b><br><br><img src='_common/images/loadingAnimation.gif'></div>";
	showOverlay();

	dv = document.getElementById(messageid);
	if (!dv)
	{
		dv = document.createElement("div");

		dv.style.position = "absolute";
		dv.style.display = "block";
		dv.innerHTML = msg;
		opacity(dv, 0);
		dv.style.top = "0px";
		dv.style.left = "0px";
		dv.style.backgroundColor = "#ffffff";
		dv.style.color = "#444444";
		dv.style.zIndex = overlayZ + 1;	
		dv.style.borderWidth = "2px";	
		dv.style.borderStyle = "solid";	
		dv.style.borderColor = "#bfbfbf";	
		dv.style.padding = "5px";
		dv.id = messageid;
		document.body.appendChild(dv);
	} else  {
		dv.innerHTML = msg;
		dv.style.display = "block";
	}
	w = dv.offsetWidth; if (parseInt(w) == 0) w = 600;
	h = dv.offsetHeight; if (parseInt(h) == 0) h = 400;
	c = getCenter(w, h);
	dv.style.left = c.x + "px";
	dv.style.top = c.y + "px";
	opacity(dv, 100);
 }

 function closeMessage() {
		dv = document.getElementById(messageid);
		dv.style.display = "none";
		dv.innerHTML = "";
		closeOverlay();
 }

function resizeOverlay() {
	if (overlayon)
	{
		v = Viewport();
		x = v.pageX;
		y = v.pageY;

		dv = document.getElementById(overlayid);
		dv.style.top = "0px";
		dv.style.left = "0px";
		dv.style.height = y + "px";
		dv.style.width = x + "px";

		dv = document.getElementById(messageid);
		w = dv.offsetWidth; if (parseInt(w) == 0) w = 600;
		h = dv.offsetWidth; if (parseInt(h) == 0) h = 400;
		c = getCenter(w, h);
		dv.style.left = c.x + "px";
		dv.style.top = c.y + "px";

	}
}

function message(msg, wdth) {
	txt = "";
	if (wdth)
	{
		txt = " width: " + wdth + "px;";
	}
	showMessage("<div onclick='closeMessage();' style='"+txt+"padding: 30px 60px; text-align: center; line-height: 150%;'><b>"+msg+"</b><br><br><input type=button value=close onclick='closeMessage();'></div>");
}

function customMessage(msg, styl) {
	showMessage("<div onclick='closeMessage();' style='padding: 30px 60px; text-align: center; line-height: 150%;"+styl+"'><b>"+msg+"</b><br><br><input type=button value=close onclick='closeMessage();'></div>");
}

function Viewport(){ 
	var viewport = {};
	viewport.windowX = (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth; 
	viewport.windowY = (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight; 
	viewport.scrollX = (document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft; 
	viewport.scrollY = (document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop; 
	viewport.pageX = (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth; 
	viewport.pageY = (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
	return viewport;
}


function opacity(elem, level) {
	elem.style.opacity = level/100;
	elem.style.filter = "alpha(opacity="+level+")";
}

