var saveFormState;
var saveLinkState;
// Disable form elements and links in all frames.
function breakClick() {
	return false;
}

function disableForms( ) {
    saveFormState = new Array( );
    saveLinkState = new Array( );
    idx = 0;
    for (var i = 0; i < document.forms.length; i++) {
        for (var j = 0; j < document.forms[i].elements.length; j++) {
			saveFormState[idx] = {element:null, disable:null, visible:null};
			saveFormState[idx].element = document.forms[i].elements[j];
			saveFormState[idx].disable = document.forms[i].elements[j].disabled;
			saveFormState[idx].visible = document.forms[i].elements[j].style.display;
			idx ++;
            document.forms[i].elements[j].disabled = true;
            if (document.forms[i].elements[j].type.indexOf("select") >= 0)	{
				document.forms[i].elements[j].style.display="none";
            }
        }
    }

    for (i = 0; i < document.links.length; i++) {
        saveLinkState[i] = {link:document.links[i], click:document.links[i].onclick, up:null, styleDisplay:null, disable:false};
        saveLinkState[i].styleDisplay = document.links[i].style.display;

        saveLinkState[i].click = document.links[i].onclick;
        saveLinkState[i].up = document.links[i].onmouseup;
        saveLinkState[i].style = document.links[i].style;

        document.links[i].onclick = breakClick;
        document.links[i].onmouseup = breakClick;
    }
}

// Restore form elements and links to normal behavior.
function enableForms( ) {
	formItemCnt = saveFormState.length;
	linkItemCnt = saveLinkState.length;

	for (var i = 0; i < formItemCnt; i++) {
		saveFormState[i].element.disabled = saveFormState[i].disable;
		saveFormState[i].element.style.display = saveFormState[i].visible;
	}

	for (var i = 0; i < linkItemCnt; i++) {
		saveLinkState[i].link.onclick = saveLinkState[i].click;
		saveLinkState[i].link.onmouseup = saveLinkState[i].up;
	}
}

function createLayer(layerId) {
	layer = document.createElement("div");
	layer.id = layerId;
	document.body.appendChild(layer);
	with (layer.style) {
		display="none";
		position="absolute";
	}

	return layer;
}

function removeLayer(layer) {
	layer.removeNode(true);
}

function hideLayer(layer) {
	layer.style.display = "none";
}

function showLayer(layer) {
	layer.style.display = "";
}

function fitLayer(layer,xWidth,xHeight) {
	if (xWidth == undefined||xWidth == 0) {
		var xWidth = document.body.scrollWidth;
		if (xWidth < document.documentElement.scrollWidth)
			var xWidth = document.documentElement.scrollWidth;
		if (xWidth < document.documentElement.clientWidth)
			var xWidth = document.documentElement.clientWidth;
	}

	if (xHeight == undefined || xHeight == 0) {
		var xHeight = document.body.scrollHeight;
		if (xHeight < document.documentElement.scrollHeight)
			var xHeight = document.documentElement.scrollHeight;
		if (xHeight < document.documentElement.clientHeight)
			var xHeight = document.documentElement.clientHeight;
	}

	with (layer.style) {
		width=xWidth+"px";
		height=xHeight+"px";
	}
}

function setTop(layer) {
	var xTop = document.documentElement.scrollTop;
	if (xTop == 0 ) {
		var xTop = document.body.scrollTop;
	}
	with (layer.style) {
		top = xTop+"px";
	}
}

function setBottom(layer) {

	var xWidth = document.documentElement.clientWidth;
	var xHeight = document.documentElement.clientHeight;

	var xTop = document.documentElement.scrollTop;
	var xLeft = document.documentElement.scrollLeft;

	if (xWidth == 0 || xHeight == 0) {
		var xWidth = document.body.clientWidth;
		var xHeight = document.body.clientHeight;

		var xTop = document.body.scrollTop;
		var xLeft = document.body.scrollLeft;
	}

	with (layer.style) {
		left = 0+xLeft+"px";
		width = xWidth +"px";
		top = (xTop+xHeight) - (layer.offsetHeight)+"px";
	}
}

function setCenter(layer) {

	var xWidth = document.documentElement.clientWidth;
	var xHeight = document.documentElement.clientHeight;

	var xTop = document.documentElement.scrollTop;
	var xLeft = document.documentElement.scrollLeft;

	if (xWidth == 0 || xHeight == 0) {
		var xWidth = document.body.clientWidth;
		var xHeight = document.body.clientHeight;

		var xTop = document.body.scrollTop;
		var xLeft = document.body.scrollLeft;
	}
	with (layer.style) {
        
        if (xLeft+((xWidth /2) - (layer.offsetWidth/2)) >= 5) {
            left = xLeft+((xWidth /2) - (layer.offsetWidth/2))+"px";
            
        } else {
            left = "5px";
        }

        if (xTop+((xHeight /2) - (layer.offsetHeight/2)) >= xTop+5) {
            top = xTop+((xHeight /2) - (layer.offsetHeight/2))+"px";
        } else {
            top = "5px";
        }
	}
}

function setFocus(focusObject) {

}

var style_td_title = "font: bold normal 12px Arial; color: #FFFFFF;	";
	style_td_title += "height: 20px; background: #990000 center center; width: "
	style_td_title += "border: thin ridge;	display: block; auto;	float: none; clear: none;"
	style_td_title += "text-decoration: none; text-align: left;	text-indent: 5px;";

var style_td_button = "font-family: Arial;font-size: 12px;	font-style: normal;	font-weight: bold;";
	style_td_button += "height: 30px;	text-align: center;	vertical-align: middle;";

var style_td_message = "text-decoration: none;text-align: left;text-indent: 5px; padding: 0px 8px 0px 5px;";

var style_table_dialog = "border: thin ridge #999999;font: bold normal 12px Arial;";
var isAlert = false;

function iAlert(message,focusObject,afterAlert) {
	if (!isAlert) {
		isAlert = true;
		innerHtml = '<table width="250" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="'+style_table_dialog+'" heithg=200;width=200>';
		innerHtml += '	<tr>';
		innerHtml += '		<td colspan="2"  style="'+style_td_title+'""><label> Alert </label></td>';
		innerHtml += '	</tr>';
		innerHtml += '	<tr bgcolor="#FEFBDA">';
		innerHtml += '		<td width="47" align="center" valign="middle" style="'+style_td_message+'"></td>';
		innerHtml += '		<td align="left" valign="middle" nowrap="nowrap" style="'+style_td_message+'"><br />';
		innerHtml += '		<label id="iAlertmsg">'+message+'</label>';
		innerHtml += '		<br /><br /></td>';
		innerHtml += '	</tr>';
		innerHtml += '	<tr>';
		innerHtml += '		<td colspan="2" align="center" valign="middle" bgcolor="#FEFBDA" style="'+style_td_button+'">';
		innerHtml += '			<input  style="width: 50px;" name=btClose type="button" id=btClose value="OK">';
		innerHtml += '		<br></td>';
		innerHtml += '	</tr>';
		innerHtml += '</table>';

		var layerBg = createLayer("layerBg");
		var layerDlg = createLayer("layerDlg");

		with (layerBg.style) {
			backgroundColor="#B9D5FF";
			left= "0px";
			top="0px";
			zindex=1000;
			filter="alpha(opacity=25)";
		}

		if (focusObject == undefined) {
			focusObject = document.activeElement;
		}

		layerDlg.innerHTML = innerHtml;
		btClose.onclick = function () {
			isAlert = false;
			removeLayer(layerDlg);
			removeLayer(layerBg);
			enableForms();
			window.onresize = null;
			window.onscroll = null;
			if (focusObject != undefined) {
				try {
					focusObject.focus();
					focusObject.select();
					if (afterAlert) {
						afterAlert();
					}
				} catch (ex){}
			}
		}

		disableForms();
		window.onresize = function () {
			fitLayer(layerBg);
			setCenter(layerDlg);
		};

		window.onscroll = function () {
			fitLayer(layerBg);
			setCenter(layerDlg);
			setCenter(layerDlg);
		};

		layerDlg.style.display="block"
		layerBg.style.display="block"
		layerDlg.style.zindex=99999;

		fitLayer(layerBg);
		setCenter(layerDlg);
	} else {
		// iAlertmsg.innerHTML = iAlertmsg.innerHTML+"<br/>"+message;
	}
	try {btClose.focus();} catch (ex) {}

}


//==============================================================================================
function lockForms(aDocument,options) {
    saveFormState = new Array( );
    saveLinkState = new Array( );
    idx = 0;
    var lockClick = false;
    if (options.lockClick == undefined) {lockClick = true;}
		else {lockClick = options.lockClick;}

	var disableControl = false;
    if (options.disableControl == undefined) {disableControl = false;}
		else {disableControl = options.disableControl;}

	var hideSelect= true;
    if (options.hideSelect == undefined) {disaCntrl = false;}
		else {hideSelect = options.hideSelect;}

    for (var i = 0; i < document.forms.length; i++) {
        for (var j = 0; j < document.forms[i].elements.length; j++) {
			saveFormState[idx] = {element:null, disable:null, visible:null, click:null, readOnly:null};

			saveFormState[idx].element = document.forms[i].elements[j];
			saveFormState[idx].readOnly = document.forms[i].elements[j].readOnly;
			saveFormState[idx].disable = document.forms[i].elements[j].disabled;
			saveFormState[idx].visible = document.forms[i].elements[j].style.display;
			saveFormState[idx].click = document.forms[i].elements[j].onclick;
			idx ++;

			if (lockClick) {
				document.forms[i].elements[j].onclick = breakClick;
            }

            var elType = document.forms[i].elements[j].type;

			if (elType.indexOf("select") >= 0)	{
				if (hideSelect) {
					document.forms[i].elements[j].style.display="none";
				} else {
					document.forms[i].elements[j].disabled = true;
				}
			} else if (elType.indexOf("radio") >= 0)	{
					document.forms[i].elements[j].disabled = disableControl;
			} else if (elType.indexOf("checkbox") >= 0)	{
					document.forms[i].elements[j].disabled = disableControl;
			} else if (elType == "submit") {
				document.forms[i].elements[j].disabled = disableControl;
            } if (elType != "button") {
				//document.forms[i].elements[j].disabled = disableControl;
				document.forms[i].elements[j].readOnly = true;
			}

        }
    }
	// Link control
    for (i = 0; i < document.links.length; i++) {
        saveLinkState[i] = {link:null, click:null, up:null, styleDisplay:null, disable:false};
        saveLinkState[i].link = document.links[i];
        saveLinkState[i].styleDisplay = document.links[i].style.display;

		saveLinkState[i].click = document.links[i].onclick;
		saveLinkState[i].up = document.links[i].onmouseup;
		saveLinkState[i].style = document.links[i].style;

		if (lockClick) {
			document.links[i].onclick = breakClick;
			document.links[i].onmouseup = breakClick;
		}
    }
}

// Restore form elements and links to normal behavior.
function unlockForms( ) {
	formItemCnt = saveFormState.length;
	linkItemCnt = saveLinkState.length;

	for (var i = 0; i < formItemCnt; i++) {
		saveFormState[i].element.readOnly = saveFormState[i].readOnly;
		saveFormState[i].element.disabled = saveFormState[i].disabled;
		saveFormState[i].element.style.display = saveFormState[i].visible;
		saveFormState[i].element.onclick = saveFormState[i].click;
	}

	for (var i = 0; i < linkItemCnt; i++) {
		saveLinkState[i].link.disabled = saveLinkState[i].disable;
		saveLinkState[i].link.onclick = saveLinkState[i].click;
		saveLinkState[i].link.onmouseup = saveLinkState[i].up;
	}
}

//==============================================================================================
var MessageCnt = 0;

function closeMessage() {
	if (isAlert) return;

	if (layerDlg.length) {
		isMultiMsg = true;
		MessageCnt = layerDlg.length;
	}

	if (MessageCnt == 1) {
		removeLayer(layerDlg);
		removeLayer(layerBg);
		unlockForms();
		window.onresize = null;
		window.onscroll = null;
	}
	MessageCnt --;
}

//==============================================================================================
function iProcessMessage(message) {
	iProcessMsg(message);
}
//================================================================================================
function iProcessMsg(message) {
	if (isAlert) return;
    var vLayerBg = null;
    var vLayerDlg = null;

	var innerHtml = '<table width="250" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="'+style_table_dialog+'" heithg=200;width=200>';
	innerHtml += '	<tr>';
	innerHtml += '		<td colspan="2"  style="'+style_td_title+'""><label> Processing ... </label></td>';
	innerHtml += '	</tr>';
	innerHtml += '	<tr bgcolor="#FEFBDA">';
	innerHtml += '		<td width="47" align="center" valign="middle" style="'+style_td_message+'"><img src="../js/images/processing.gif" alt="Process" /></td>';
	innerHtml += '		<td align="left" valign="middle" nowrap="nowrap" style="'+style_td_message+'"><br /><label id="lbMessage">'+message+'</label>';
	innerHtml += '		<br /><br /></td>';
	innerHtml += '	</tr>';
	innerHtml += '</table>';

	var focusObject = document.activeElement;

	if  (document.getElementById("layerBg") == null) {

		vLayerBg = createLayer("layerBg");
		vLayerDlg = createLayer("layerDlg");

		with (vLayerBg.style) {
			backgroundColor="#B9D5FF";
			left= "0px";
			top="0px";
			zindex=1000;
			filter="alpha(opacity=25)";
		}

		vLayerDlg.innerHTML = innerHtml;

		lockForms();

		var save_window_onresize = window.onresize;
		window.onresize = function () {
			fitLayer(vLayerBg);
			setCenter(vLayerDlg);
			if (save_window_onresize) {
				save_window_onresize();
			}
		};

		var save_window_onscroll = window.onscroll;
		window.onscroll = function () {
			fitLayer(vLayerBg);
			setCenter(vLayerDlg);
			if (save_window_onscroll) {
				save_window_onscroll();
			}
		};

	}  else  {
		vLayerDlg = layerDlg;
		vLayerBg = layerBg;

		vLayerDlg.innerHTML = innerHtml;

	}
	vLayerDlg.style.display="block"
	vLayerBg.style.display="block"
	vLayerDlg.style.zindex=99999;

	fitLayer(vLayerBg);
	setCenter(vLayerDlg);
	MessageCnt++;
}
//================================================================================================
popArg = function () {
			this.parent = "";
			this.openUrl = "";
			this.openParam = "";
		}

function popupWindow(url,width,height) {

    if (width == undefined) width = 400;
    if (height == undefined) height = 300;

    width+=6;
    height+=25;

    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
	var popup;
	if (!window.showModalDialog) {
		var windowFeatures = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top +
	        ",screenX=" + left + ",screenY=" + top+
	        "center=yes ,scrollbars=no, menubar=no, resizable=no, toolbar=no, location=no, status=no, modal=yes";
	    popup = window.open(url, "popup", windowFeatures);
	} else {
		var dlgArg = new popArg();
//		var urlArg = url.replace(/\?/g,"&");
//		var urlEls = urlArg.split("&");
//		dlgArg.openUrl = urlEls[0];
//		dlgArg.openParam = "";
//		for (var idx=1; idx<urlEls.length; idx++) {
//			var paramEl = urlEls[idx].split("=");
//			if (dlgArg.openParam != "") dlgArg.openParam+="&";
//			dlgArg.openParam += paramEl[0]+"="+paramEl[1];
//			//dlgArg.openParam += paramEl[0]+"="+escape(paramEl[1]);
//		}
		var urlEls = url.split("?");
		dlgArg.openUrl = urlEls[0];
		if (urlEls.length > 1) dlgArg.openParam = urlEls[1];
		dlgArg.parent = this.window;
		dlgArg.openUrl+="?"+dlgArg.openParam;

		var windowFeatures = "center:yes; help:no; resizable:no; status:no; scrollbars:no;"+
						"dialogWidth:"+width+"px; dialogHeight:"+height+"px; "+
						"dialogLeft:"+left+"px; dialogTop:" + top+"px;";

		var parentUrl =  this.window.location.pathname.split("/");
		var urlPath =  "";
		for (var idx = 1; idx < parentUrl.length-1; idx++)  {
			if (urlPath != "")  urlPath = urlPath+"/";
			urlPath = urlPath+parentUrl[idx];
		}

		if (urlPath.split("/").length == 1) {
			popup = window.showModalDialog("js/modal.jsp?rx="+Math.random(),dlgArg,windowFeatures);
		} else {
			popup = window.showModalDialog("../js/modal.jsp?rx="+Math.random(),dlgArg,windowFeatures);
		}
    }
}


function openLink(url) {
    width = (screen.availWidth/2);
    height = (screen.availHeight/2);

    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height +",left=" + left + ",top=" + top +
        ",screenX=" + left + ",screenY=" + top+
        "center=yes,scrollbars=yes,menubar=yes,resizable=yes,toolbar=yes,location=yes,status=yes";
    popup = window.open(url, "popup", windowFeatures);
}

