var hasBeenSubmitted=false;
var disableSubmit=false;
var autopostbackbox;

function isNS4() { return (document.layers) ? true : false; }
function isIE4() { return (document.all && !document.getElementById) ? true : false; }
function isIE5() { return (document.all && document.getElementById) ? true : false; }
function isNS6() { return (!document.all && document.getElementById) ? true : false; }
function isTextbox(elem) { return (elem.tagName=="TEXTAREA" || (elem.tagName=="INPUT" && elem.type=="text")) }

function RegisterSaveDivScroll(srcDiv,field) {
	var element=document.getElementById(srcDiv);
	if (!element) {
		alert("ITS.CustomControls.SaveState:\n\nSrcDiv attribute specified does not point to a valid div tag id.\n\'" + srcDiv + "\' could not be found.")
		return;
	}
	element.putpos=field;
	element.onscroll=SaveScroll;
}

function RegisterSaveBodyScroll(field) {
	var element=document.body;
	if (!element) {
		alert("ITS.CustomControls.SaveState:\n\n Could not find body element.")
		return;
	}
	element.putpos=field;
	element.onscroll=SaveBodyScroll;
}

function RegisterSaveFocus() {
	document.forms[0].attachEvent('onfocus',SaveFocus);
}

function SaveBodyScroll() {
	var element=document.getElementsByName(document.body.putpos);
	if (element) {
		element[0].value = document.body.scrollTop;
	} else msgbox(document.body.putpos+' field not found!');

}

function SaveScroll() {
	var element=document.getElementsByName(this.putpos);
	if (element) {
		element[0].value = this.scrollTop;
	} else msgbox(this.putpos+' field not found!');
	//document.forms[0].__ScrollPos.value = this.scrollTop;
}

function SetDivScroll(srcDiv,scrollPos) {
	var element=document.getElementById(srcDiv);
	if (!element) {
		alert("ITS.CustomControls.SaveState:\n\nSrcDiv attribute specified does not point to a valid div tag id.\n\'" + srcDiv + "\' could not be found.")
		return;
	}
	element.scrollTop=scrollPos;
	//setTimeout("checkScroll('"+srcDiv+"',"+scrollPos+")",500);
}

function SetBodyScroll(scrollPos) {
	var element=document.body;
	element.scrollTop=scrollPos;
}

function checkScroll (srcDiv,scrollPos) {
	var element=document.getElementById(srcDiv);
	if (element.scrollTop!=scrollPos) alert('DEBUG: Scrolling results!!! :'+scrollPos+'!='+element.scrollTop);
}

function SetFocus(newActiveElement) {
	var curAe = document.activeElement;
	prevActiveElement=document.activeElement;
	if (newActiveElement==null || curAe!=null && (curAe.id==newActiveElement||curAe.name==newActiveElement)) return;
	var ae = document.getElementById(newActiveElement);
	if (ae == null) return;
	try { ae.focus(); } catch(e){};
	if (isTextbox(ae)) {
		try { ae.select(); } catch(e){};
	}
}

function SaveFocus(activeElement) {
	if (isNS6()) { document.activeElement=activeElement }
	if (!activeElement) return;
	var ae = activeElement.id;
	if (ae) {
		document.forms[0].__ActiveElement.value = ae;
	}
	disableSubmit=(isTextbox(activeElement) && activeElement.onchange!=null);
	if (disableSubmit) autopostbackbox=activeElement;
}

function checkSubmit() {
	if (hasBeenSubmitted)
		return false;
	if (disableSubmit && autopostbackbox.value!=autopostbackbox.defaultValue )
		return false;						
	hasBeenSubmitted=true;
	return true;
}