var gUnloadClearTimer;
var gUnloadWarned=false;

function shouldBeforeUnload() {
	if (!gUnloadWarned) {
		gUnloadWarned=true;
		gUnloadClearTimer = setTimeout('clearUnloadWarning();', 1000);
		return true;
	}
	return false;
}

function clearUnloadWarning() {
	if (gUnloadClearTimer) {
		clearTimeout(gUnloadClearTimer);
	}
	gUnloadWarned=false;
}

function resizeDiv(doc, id) {
	if (!id) id = "mainDiv";
	var obj = getRef(id);
	var Y = FindY(obj);
	var screenHeight = getScreenHeight(document);
	var styleObj = getStyleByObj(obj);
	if (Y) {
		if (screenHeight - Y > 0) {
			styleObj.height = screenHeight - Y - 3;
		} else {
			styleObj.height = 10;
		}
	}
	if (isExp) {
		doc.body.scroll="no";
	}
}

function placeFocus(frm,skipItems) {
var i;
var blnRtn=false;
	for (i = 0; blnRtn==false && i < frm.length; i++) {
		switch(frm.elements[i].type) {
		case "hidden":
		case "button":
			break;
		default:
			if (frm.elements[i].disabled != true &&
				!frm.elements[i].readOnly) {
				try {
					var allowFocus = true;
				    if(skipItems != null){
				        for(j=0;j<skipItems.length;j++){
		                if(frm.elements[i].name.indexOf(skipItems[j]) > -1){
                	        allowFocus = false;
                	        break;
		                }
		                }
		             }
		             
				    if(allowFocus){
					    frm.elements[i].focus();
					    blnRtn=true;
					}	
				} catch (err) {
				}
			}
			break;
		}				
	}
   return blnRtn;
}

function formConfig(doc, focus) {
var i = 0;

	for(i=0; i < doc.forms.length; i++) {
		doc.forms[i].autocomplete="off";
		if (focus && i==0) {
			placeFocus(doc.forms[i]);
		}
	}
}

function findDotNetForm(doc) {
var i = 0;
var path = doc.location.href;

	for(i=0; i < doc.forms.length; i++) {
  	if (doc.forms[i].action != "" && path.indexOf(doc.forms[i].action) >= 0) {
       return doc.forms[i];
    }
  }
  return;
}

function canSubmit(doc) {
	if (isChangesMade()) {
		var mainForm = findDotNetForm(doc);

		if (!mainForm || !mainForm.__EVENTTARGET || mainForm.__EVENTTARGET.value == "") {
			return false;
		}	
	}

	return true;
}

function centerDiv(doc, divHeight, divWidth) {
	var retval;

		
	var Cnt;
	HideDocElements(divTop, divLeft, divWidth, divHeight, doc, gdivArr, Cnt)
	
	retval = "top: " + getDivTop(doc, divHeight) + "px; ";
	retval += "left: " + getDivLeft(doc, divWidth) + "px; "
	retval += "height: " + divHeight + "px; ";
	retval += "width: " + divWidth + "px; ";
	
	return retval;
}

function getDivTop(doc, divHeight) {
	return (getScrollY(doc) + ((getScreenHeight(doc) - divHeight) /2));
}
function getDivLeft(doc, divWidth) {
	return (getScrollX(doc) + ((getScreenWidth(doc) - divWidth) /2));
}

function showPostbackDiv(doc, message, divHeight, divWidth, alwaysShow) {
	if (alwaysShow) {
		
		var newDiv = doc.createElement('div');
		doc.getElementsByTagName('body').item(0).appendChild(newDiv);

		var divTop = getDivTop(doc, divHeight);
		var divLeft = getDivLeft(doc, divWidth);
		if (HideDocElements) {
			var Cnt;
			var gdivArr = new Array();
			HideDocElements(divTop, divLeft, divWidth, divHeight, doc, gdivArr, Cnt)
		}

		newDiv.appendChild(doc.createTextNode(message));

		ref = newDiv.style;
		ref.visibility = 'visible';
		ref.top= divTop + "px";
		ref.left= divLeft + "px";
		ref.height= divHeight + "px";
		ref.width= divWidth + "px";
		ref.zIndex = "300";
		ref.position = 'absolute';
		ref.backgroundColor = 'White';
		ref.borderColor="black";
		ref.borderStyle="solid";
		ref.borderWidth="1";
			
		newDiv.align='center';
		newDiv.className="PageTitles";
		newDiv.id="PostBackDiv";
		newDiv.name="PostBackDiv";
		doc.close();
	} 
}

function showSaveDiv(doc) {
	showPostbackDiv(doc, "Saving.  Please wait...", 150, 400, true);
}

function showSearchDiv(doc) {
	showPostbackDiv(doc, "Searching for information.  Please wait...", 150, 400, true);
}

function showRetrieveDiv(doc, alwaysShow) {
	showPostbackDiv(doc, "Retrieving information.  Please wait...", 150, 400, alwaysShow);
}

function showOpeningPageDiv(doc, alwaysShow) {
	showPostbackDiv(doc, "Opening requested page.  Please wait...", 150, 400, alwaysShow);
}

function disableButton(obj, func) {
	if (func != null) {
		eval(func);
	}
	if (obj!=null) {
		setTimeout('disableButtonTimeout(\'' + obj.id + '\');',100);
	}
}

function disableButtonTimeout(id) {
	obj = getRef(id);
	
	if (obj != null) {
		obj.disabled = true;
		if(obj.src != null) {
			if (obj.src.indexOf('?')>0) {
				if(obj.src.indexOf('CacheId=')>0) {
					obj.src += "&state=Disabled&CacheId=Disabled";
				} else {
					obj.src += "&state=Disabled";
				}
			}
		}
	}
}