var strImagePath = '/img/popup/';
var intPopupCount = 0;
var intZTop = 100;

/*
* Show iframe popup
*/
function PopupIframe(strUrl, strTitle, intWidth, intHeight, bolModal)
{
		var bolCenter = false;
		PopupInit(strTitle, intWidth, intHeight, bolModal, bolCenter);
		
		var objDiv;
		
		objDiv = document.createElement('div');
		objDiv.id = 'content'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.top = '22px';
		objDiv.style.left = '0px';
		objDiv.style.width = (intWidth-4) + 'px';
		objDiv.style.height = (intHeight-24) + 'px';
		objDiv.style.margin = '0px';
		objDiv.style.padding = '0px';
		objDiv.style.color = '#000000';
		objDiv.style.backgroundColor = '#fff';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);
		document.getElementById('content'+intPopupCount).innerHTML =
			'<iframe id="popupIframe'+intPopupCount+'" frameborder=0 src="'+strUrl
			+'" style="margin : 0px; padding : 0px; width : '+ (intWidth-4) + 'px; height :'
			+ (intHeight-24) + 'px; background:#fff;" allowTransparency="true"></iframe>';

		Drag.init(document.getElementById('title'+intPopupCount), document.getElementById('popup'+intPopupCount));
}

/*
* Show a flash message
*/
function PopupMessage(strTitleBase64, strContentBase64, intWidth, intHeight, intTimeOut)
{
	var bolModal  = true;
	var bolCenter = true;
	PopupInit(base64_decode(strTitleBase64), intWidth, intHeight, bolModal, bolCenter);

	var objDiv;

	objDiv = document.createElement('div');
	objDiv.id = 'innerContent'+intPopupCount;
	objDiv.style.position = 'absolute';
	objDiv.style.top = '27px';
	objDiv.style.left = '5px';
	objDiv.style.width = (intWidth-11) + 'px';
	objDiv.style.height = (intHeight-34) + 'px';
	objDiv.style.margin = '0px';
	objDiv.style.padding = '0px';
	objDiv.style.color = '#000000';
	objDiv.style.border = '1px solid #ccc';
	objDiv.style.backgroundColor = '#fff';
	objDiv.innerHTML = '<div style="margin : 0px; padding : 10px">'+base64_decode(strContentBase64)+'</div>';
	document.getElementById('popup'+intPopupCount).appendChild(objDiv);

	if (intTimeOut > 0) setTimeout('PopupDestroyLast()', intTimeOut);
}

/*
* Show a dialog
*/
function PopupDialog(strTitleBase64, strContentBase64, intWidth, intHeight, bolModal, bolShowButtons, strOkJs, strOkTxt, strCancelTxt)
{
		if (!strOkTxt) 			strOkTxt 			= 'OK';
		if (!strCancelTxt) 	strCancelTxt	= 'Cancel';
		if (!strOkJs) 			strOkJs 			= 'void()';
		var bolCenter = false;
		PopupInit(base64_decode(strTitleBase64), intWidth, intHeight, bolModal, bolCenter);

		var objDiv;

		objDiv = document.createElement('div');
		objDiv.id = 'innerContent'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.top = '27px';
		objDiv.style.left = '5px';
		objDiv.style.width = (intWidth-11) + 'px';
		objDiv.style.height = (intHeight-34) + 'px';
		objDiv.style.margin = '0px';
		objDiv.style.padding = '0px';
		objDiv.style.color = '#000000';
		objDiv.style.border = '1px solid #ccc';
		objDiv.style.backgroundColor = '#fff';
		objDiv.style.textAlign = 'left';
		objDiv.innerHTML = '<div style="margin : 0px; padding : 10px">'+base64_decode(strContentBase64)+'</div>';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		if (!bolShowButtons)
		{
			objDiv = document.createElement('div');
			objDiv.id = 'Buttons'+intPopupCount;
			objDiv.style.position = 'absolute';
			objDiv.style.bottom = '11px';
			objDiv.style.right = '11px';
			objDiv.style.margin = '0px';
			objDiv.style.padding = '0px';
			objDiv.innerHTML =
			'<input class=button type=button OnClick="'+strOkJs+'" value="'+strOkTxt+'">'+
			'<input class=button type=button OnClick="PopupDestroyLast()" value="'+strCancelTxt+'">';
			document.getElementById('popup'+intPopupCount).appendChild(objDiv);
		}

		Drag.init(document.getElementById('title'+intPopupCount), document.getElementById('popup'+intPopupCount));
}

/*
* Get unquoted form
*/
function GetUnQuotedFormAjax(strId)
{
	return xajax.getFormValues(strId).replace("'",'`');
}

/*
* Show a dialog
*/
function PopupAjax(strTitleBase64, strContentBase64, intWidth, intHeight, strOkFunction, strOkTxtBase64, strCancelTxtBase64)
{
		if (!strOkTxtBase64) 			strOkTxt 			= 'OK';
		else											strOkTxt 			= base64_decode(strOkTxtBase64);
		if (!strCancelTxtBase64) 	strCancelTxt	= 'Cancel';
		else 											strCancelTxt	= base64_decode(strCancelTxtBase64);

		var bolModal = true;
		var bolCenter = false;
		PopupInit(base64_decode(strTitleBase64), intWidth, intHeight, bolModal, bolCenter);

		var objDiv;

		objDiv = document.createElement('div');
		objDiv.id = 'innerContent'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.top = '27px';
		objDiv.style.left = '5px';
		objDiv.style.width = (intWidth-11) + 'px';
		objDiv.style.height = (intHeight-34) + 'px';
		objDiv.style.margin = '0px';
		objDiv.style.padding = '0px';
		objDiv.style.color = '#000000';
		objDiv.style.border = '1px solid #ccc';
		objDiv.style.backgroundColor = '#fff';
		objDiv.style.zIndex = intPopupCount * 1000 + intZTop +1;
		objDiv.innerHTML = '<div style="padding : 0px; margin : 5px;"><form id="popupform'+intPopupCount+'">'+base64_decode(strContentBase64)+'</form></div>';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		objDiv = document.createElement('div');
		objDiv.id = 'Buttons'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.bottom = '11px';
		objDiv.style.right = '11px';
		objDiv.style.margin = '0px';
		objDiv.style.padding = '0px';
		objDiv.style.zIndex = intPopupCount * 1000 + intZTop +2;
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		var strJs = strOkFunction+"(GetUnQuotedFormAjax('popupform"+intPopupCount+"'))";

		objDiv.innerHTML =
		'<input class=button type=button OnClick="'+strJs+';" value="'+strOkTxt+'">'+
		'<input class=button type=button OnClick="PopupDestroyLast()" value="'+strCancelTxt+'">';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		Drag.init(document.getElementById('title'+intPopupCount), document.getElementById('popup'+intPopupCount));
}

/*
* Show a dialog
*/
function PopupAlert(strTitleBase64, strContentBase64, strButtonTxtBase64, intWidth, intHeight)
{
		if (!strButtonTxtBase64)	strButtonTxtBase64	= base64_encode('OK');

		if (!intWidth) 	intWidth 	= 320;
		if (!intHeight) intHeight = 200;

		var bolModal  = true;
		var bolCenter = false;
		PopupInit(base64_decode(strTitleBase64), intWidth, intHeight, bolModal, bolCenter);

		var objDiv;

		objDiv = document.createElement('div');
		objDiv.id = 'innerContent'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.top = '27px';
		objDiv.style.left = '5px';
		objDiv.style.width = (intWidth-11) + 'px';
		objDiv.style.height = (intHeight-34) + 'px';
		objDiv.style.margin = '0px';
		objDiv.style.padding = '0px';
		objDiv.style.color = '#000000';
		objDiv.style.border = '1px solid #ccc';
		objDiv.style.backgroundColor = '#fff';
		objDiv.innerHTML = '<div style="margin : 0px; padding : 10px">'+base64_decode(strContentBase64)+'</div>';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		objDiv = document.createElement('div');
		objDiv.id = 'Buttons'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.bottom = '11px';
		objDiv.style.right = '11px';
		objDiv.style.margin = '0px';
		objDiv.style.padding = '0px';
		objDiv.innerHTML =
			'<input style="width : 50px;" type=button OnClick="PopupDestroy('+intPopupCount+')" value="'+base64_decode(strButtonTxtBase64)+'">';
			document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		Drag.init(document.getElementById('title'+intPopupCount), document.getElementById('popup'+intPopupCount));
}

/**
*
*  Inititalize popup
*
**/
function PopupInit(strTitle, intWidth, intHeight, bolModal, bolCenter)
{
		if (!intWidth) intWidth  = 800;
		if (!intHeight) intHeight = 600;

		intPopupCount ++;

		//if(intWidth+30 > document.body.clientWidth){intWidth = document.body.clientWidth-30;}
		//if(intHeight+30 > document.body.clientHeight){intHeight = document.body.clientHeight-30;}

		intX = (document.body.clientWidth/2)-intWidth/2;
		if(bolCenter) {
			intY = (screen.height/2)-intHeight/2;
		} else {
			intY = document.documentElement.scrollTop;
		}

		var objDiv;

		if (bolModal)
		{
			objDiv = document.createElement('div');
			objDiv.style.position = 'absolute';
			objDiv.style.top = '0px';
			objDiv.style.left = '0px';
			objDiv.style.width = (document.body.clientWidth - 20)+ 'px';
			objDiv.style.height = (document.body.clientHeight - 20)+ 'px';
			objDiv.id = 'modalmask'+intPopupCount;
			objDiv.style.backgroundImage = 'url('+strImagePath+'blockback.gif)';
			objDiv.style.backgroundRepeat = 'repeat';
			objDiv.style.visibility = 'visible';
			objDiv.style.cursor = 'not-allowed';
			objDiv.style.zIndex = intPopupCount * 1000 + intZTop;
			document.body.appendChild(objDiv);
		}

		objDiv = document.createElement('div');
		objDiv.id = 'popup'+intPopupCount;
		objDiv.style.position = 'absolute';
		objDiv.style.top = intY + (intPopupCount*15) + 'px';
		objDiv.style.left = intX + (intPopupCount*15) + 'px';
		objDiv.style.width = intWidth + 'px';
		objDiv.style.height = intHeight + 'px';
		objDiv.style.backgroundColor = '#ece9d8';
		objDiv.style.backgroundImage = 'url('+strImagePath+'topbar.gif)';
		objDiv.style.backgroundRepeat = 'repeat-x';
		objDiv.style.borderWidth = '0px 2px 2px 2px';
		objDiv.style.borderStyle = 'solid';
		objDiv.style.borderColor = '#FD660D';
		objDiv.style.zIndex = 1 + intPopupCount * 1000 + intZTop;
		document.body.appendChild(objDiv);
		document.getElementById('popup'+intPopupCount).onclick = popupFocus;


		objDiv = document.createElement('div');
		objDiv.id = 'close'+intPopupCount;
		objDiv.style.margin = '4px 0px 0px 3px';
		objDiv.style.styleFloat = 'right';
		objDiv.style.cssFloat = 'right';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);

		document.getElementById('close'+intPopupCount).innerHTML = "<img src='"+strImagePath+"close.gif' OnClick='PopupDestroy("+intPopupCount+",false);'>";

		objDiv = document.createElement('div');
		objDiv.id = 'title'+intPopupCount;
		objDiv.style.margin = '1px';
		objDiv.style.cssFloat = 'left';
		objDiv.style.fontSize = '12px';
		objDiv.style.fontWeight = 'bold';
		objDiv.style.width = '90%';
		objDiv.style.color = '#ffffff';
		objDiv.style.cursor = 'move';
		objDiv.style.textAlign = 'left';
		document.getElementById('popup'+intPopupCount).appendChild(objDiv);
		document.getElementById('title'+intPopupCount).innerHTML = unescape(strTitle);
		document.getElementById('title'+intPopupCount).onclick = popupFocusParent;

}

/*
* Alias for popup iframe
*/
function PopupCreate(strUrl, strTitle, intWidth, intHeight, bolModal)
{
	return PopupIframe(strUrl, strTitle, intWidth, intHeight, bolModal);
}

/*
* Show a dialog
*/
function PopupDestroy(intId,blnReloadWindow)
{
	if (objPopup = document.getElementById('popup'+intId))
	{
		setTimeout("document.body.removeChild(document.getElementById('popup"+intId+"'))",1);
	}

	if (objModalMask = document.getElementById('modalmask'+intId))
	{
		setTimeout("document.body.removeChild(document.getElementById('modalmask"+intId+"'))",5);
	}

  intPopupCount--;

  if(intPopupCount > 0)
  {
  	if (objDiv = document.getElementById('popupIframe'+intPopupCount))
		{
			objDiv.src = objDiv.src;
		}
	}

	if(blnReloadWindow == true)
	{
		window.location.reload();
	}
}


function PopupDestroyLast(blnReloadWindow)
{
	blnReloadWindow = typeof(blnReloadWindow) != 'undefined' ? blnReloadWindow : false;
	//PopupDestroy(intPopupCount,blnReloadWindow);
	if(intPopupCount > 1 && blnReloadWindow == true)
	{
		PopupDestroy(intPopupCount,false);
	}
	else
	{
		PopupDestroy(intPopupCount,blnReloadWindow);
	}
}


function popupFocus(e)
{
	var objSrc = (document.all) ? event.srcElement : e.target;
	if (objSrc.style.zIndex < 1000)
	{
		objSrc.style.zIndex = intZTop;
		intZTop++;
	}
}

function popupFocusParent(e)
{
	var objSrc = (document.all) ? event.srcElement : e.target;
	if (objSrc.parentNode.style.zIndex < 1000)
	{
		objSrc.parentNode.style.zIndex = intZTop;
		intZTop++;
	}
}

function RemoveElement(strId)
{
	objThisDiv = document.getElementById(strId);
	strParentId = objThisDiv.parentNode.id;

	objElement = document.getElementById(strParentId)
	objElement.parentNode.removeChild(objThisDiv.name);
}
