﻿// JScript File
var confirmDiv=null, backDiv=null;
var numOfBackDivs=0;

function makeFloatingDiv(TxtToBind, Position, DivClass)
{
	if (confirmDiv!=null)
		clearFloatingDiv();
		
	showBackDiv();
	confirmDiv=document.createElement("<DIV id='floatingDiv' class='"+ (DivClass!=null ? DivClass : "popupDiv" ) +"' ondblclick='clearFloatingDiv()'>");

	confirmDiv.innerHTML="<table border='1'><tr><td>"+TxtToBind+"</td></tr></table>";

	document.body.appendChild(confirmDiv);
	
	setDivPosition(confirmDiv, Position, (Position!=null && Position.indexOf('Repetitive')>=0));
}

function controlInputElements(boolSetToShow)
{
	inputArrays=document.getElementsByTagName("input");
	selectArrays=document.getElementsByTagName("select");
	objectArrays=document.getElementsByTagName("object");

	for (i=0; i<objectArrays.length; ++i)		// hide placeHolders
	{
		if (objectArrays[i].id.indexOf('PH')>=0)
			objectArrays[i].style.visibility=boolSetToShow ? "visible" : "hidden";		
	}

	for (i=0; i<inputArrays.length; ++i)		// hide inputs
	{
		if (inputArrays[i].type=="text" && inputArrays[i].attributes['doNotHide']==null)
			inputArrays[i].style.visibility=boolSetToShow ? "visible" : "hidden";		
	}
		
	for (i=0; i<selectArrays.length; ++i)		// hide selects
		if (selectArrays[i].attributes['doNotHide']==null)
			selectArrays[i].style.visibility=boolSetToShow ? "visible" : "hidden";				
}

function setDivPosition(divObj, Position, Repetitive)
{
	if (typeof(divObj)!="object")
		divObj=document.getElementById(divObj);
	
	if (divObj==null)
		return;
	
	divObj.style.pixelLeft=0;
	divObj.style.pixelTop=0;
	
	if (Position!=null && Position.toLowerCase()=="cursor")
	{
		divObj.style.pixelLeft	= event.clientX+document.documentElement.scrollLeft;
		divObj.style.pixelTop	= event.clientY+document.documentElement.scrollTop;
	}
	else 
	{
		var leftPos=document.documentElement.scrollLeft + (document.documentElement.clientWidth/2) - (divObj.clientWidth/2);
		var topPos=document.documentElement.scrollTop + (document.documentElement.clientHeight/2) - (divObj.clientHeight/2);
		
		divObj.style.pixelLeft = (leftPos<0 ? 0 : leftPos);
		divObj.style.pixelTop = (topPos<0 ? 0 : topPos);		
	}
	
	if (Repetitive && divObj.style.display!="none")
		window.setTimeout("setDivPosition("+divObj.id+",'"+Position+"',true)", 10);
}

function clearFloatingDiv()
{
	if (confirmDiv!=null)
		document.body.removeChild(confirmDiv);
		
	confirmDiv=null;
	
	removeBackDiv();
}


function showBackDiv()
{	
	if(backDiv==null)
	{
	
		backDiv = document.createElement("<div style='background-color:white;position:absolute;filter:alpha(opacity=70);''>");
		backDiv.style.left=backDiv.style.top = 0;
		
		backDiv.style.width = Math.max(document.body.scrollWidth, document.documentElement.clientWidth);
		backDiv.style.height = Math.max(document.body.scrollHeight, document.documentElement.clientHeight);

		backDiv.id="backDiv";
		
		document.body.appendChild(backDiv);
	}
	
	numOfBackDivs++;
	backDiv.style.display="";
	controlInputElements(false);
}

function removeBackDiv()
{
	numOfBackDivs--;
	
	if (backDiv!=null)
	{
		backDiv.style.zIndex=0;	
		if (numOfBackDivs<=0)
		{
			numOfBackDivs=0;
			backDiv.style.display="none";
			controlInputElements(true);
		}
	}
}

function wrapMessage(msg, noConfirm)
{
	if (msg!=null && msg!="")	
		makeFloatingDiv("<span class='interfaceDir'>"+msg+"</span>"+(noConfirm!=true ? "<input type=button class=adminButton onclick='clearFloatingDiv()' value='ok'/>" : ""), "Center", "popupDiv Beige");
	else
		clearFloatingDiv();
}