var browser=navigator.userAgent.toLowerCase();
var modalReturnTo = '';							//modalReturnTo stores the id of the item to bring to focus when the modal pane closes

        function keyPressed(e, button) {
                //alert("key pressed" + e.keyCode);
                if (e.keyCode == 13) {
                        // enter key - we must start the search
                	var i = 0;
                	var len = document.forms.length;
                	for (i; i<len; i++) {
                        	//if (document.forms[i].name.indexOf("userListSearchForm") >= 0) {
					for (var j=0; j<document.forms[i].elements.length; j++) {
						if (document.forms[i].elements[j].name.indexOf(button) >= 0) {
							document.forms[i].elements[j].click();
							return;
						}
					}
                        	//}
                	}
                }
        }


function isFormValidEnglish(docForm, errorText) {
	for (var j=0; j<docForm.length; j++) {
		var formField = docForm.elements[j];
		if (formField.name.indexOf("securityAnswer") >= 0) {
			continue;
		}
		if (formField.type == "file" ||
				formField.type == "password" ||
				formField.type == "text" ||
				formField.type == "textarea") {
			var str = formField.value;
			for (var i=0; i<str.length; i++) {
				if (str.charAt(i) < ' ' || str.charAt(i) > '~') {
					alert(errorText);
					return false;
				}
			}
		}
	}
	return true;
}



function toggleListExpanded(ele) {
var eleValue = getCookValue(ele);
if (eleValue == "=true") {
        eleValue = "=false";
} else {
        eleValue = "=true";
}
document.cookie = ele + eleValue;
}

function replaceRule(objStyle, id) {
	//does the magic show/hide CSS manipulation
	try {
		if (objStyle.cssRules) {
			var r = objStyle.cssRules;
		} else {
			var r = objStyle.rules;
		}

		for ( var i = 0; i < r.length; i++ ) {
			if( r[i].selectorText == id || r[i].selectorText == '*' + id) {
				r[i].style.display = (r[i].style.display == 'none') ? 'block' : 'none';
				return(true);
			}
		}
	} catch (e) {
		return(false);
	}
}

function toggleWizard(el) {
	//hide or show wizard section 
	try {
		cssSwitch = replaceRule(document.styleSheets[2], '#icWizard'+el);
		//Use cssSwitch to detect an error in changing the display property and so default to show section
		if(document.getElementById('icWizard'+el+'Off').style.display=="none" || !cssSwitch) {
			document.getElementById('icWizard'+el+'Off').style.display="inline";
			document.getElementById('icWizard'+el+'On').style.display="none";
			Nifty('#icWizard'+el+'Title','remove 0');
			Nifty('#icWizard'+el+'Title','transparent top');
		} else {
			document.getElementById('icWizard'+el+'Off').style.display="none";
			document.getElementById('icWizard'+el+'On').style.display="inline";
			Nifty('#icWizard'+el+'Title','remove 0');
			Nifty('#icWizard'+el+'Title','transparent');
		}

		//Nudge window to force browser to re-render. Using resizeBy is buggy in some browsers - the window origin can be reset too!
		window.scrollBy(0,1);
		window.scrollBy(0,-1);		
		
		//document.getElementById('icWizard'+el+'Title').style.lineHeight = "2em";
	} catch (e) {
	}
}

function getCookValue(ele) {
	var eleValue = "";
	var cooks = document.cookie.split(';');
	for (var i=0; i<cooks.length; i++) {
		if (cooks[i].indexOf(ele) == 1) {
			eleValue = cooks[i];
			eleValue = eleValue.substring(eleValue.indexOf("="), eleValue.length);
			return eleValue;
		}
	}
	return "";
}

function focusLower(upper, lower) {
	if (getCookValue(upper) == "=true") {
		document.cookie = upper + "=false";
		toggleList();
	}
	if (getCookValue(lower) == "=false") {
		document.cookie = lower + "=true";
		toggleActions();
	}
}

function checkAll(name) {
	var i=0;
	for (var j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
			if (document.forms[j].elements[i].name.indexOf(name) >= 0 && document.forms[j].elements[i].type == "checkbox") {
				document.forms[j].elements[i].checked = true;
			}
		}
	}
}

function uncheckAll(name) {
	for (var j=0; j<document.forms.length; j++) {
		for (i=0; i<document.forms[j].elements.length; i++) {
			if (document.forms[j].elements[i].name.indexOf(name) >= 0 && document.forms[j].elements[i].type == "checkbox") {
				document.forms[j].elements[i].checked = false;
			}
		}
	}
}



function switchCheckbox(x, id_a, id_b, v) {
	//do the select all/unselect all magic for check boxes
	try {
		for (var i = 0; i < x; i++) {
			if (!document.forms[0].elements[id_a+i+id_b].disabled) {
				document.forms[0].elements[id_a+i+id_b].checked = v;
			}
		}
	} catch (e) {
	}
}

function clickSubmit(e, elemId) {
	//click the elemId item when a user hits enter in a search field
	var elem = document.getElementById(elemId);
	var intKey = window.Event ? e.which : e.KeyCode;
	
	try {
		if(intKey == 13) {
			e.returnValue = false;
			elem.click();
		}
	} catch (e) {
		return(false);
	}
}

function fixCaption() {
	//the combination of the toggleView function and the setActiveStyleSheet function in styleSwitcher.js
	//causes Firefox to stop cascading the font size of a table element into the table's caption element.
	//This function fixes the caption font size to 70% (roughly equal to .8 x .87 which are the sizes in text and caption rules)
	if ((navigator.userAgent.indexOf("Firefox")!=-1) && (navigator.userAgent.indexOf("Firefox/3")==-1)) {
		try {
			var tableCaption = document.getElementById('mainBody').getElementsByTagName("caption");
			for (var i = 0; i < tableCaption.length; i++) { 
				tableCaption[i].style.fontSize="70%";
			}
		} catch (e) {
		}
	}
}

