// global vars
isNav = (navigator.appName.indexOf("Netscape") != -1) ? true : false;
isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
var frmActive = false;
var pageloaded = false;

function doSearch(ignoreDefault)
{
	var txtSearch = document.getElementById("txtSearch");
	var val = txtSearch.value;
	if ((val == txtSearch.defaultValue && !ignoreDefault) || val.length == 0)
	{
		alert('No search value entered.');
	}
	else
	{
		location.href = './tab2.asp?search=kws&keywords=' + val.replace(' ','+');
	}
	return false;
}

// common forms processing function
function FormSubmit(formname,act,elementname,elementvalue) {
	if (!frmActive) {
		frmActive = true;
		document.getElementById("act").value = act;
		if (elementname != "") {
			document.getElementById(elementname).value = elementvalue;
		}
		var frm = formname;
		if ( frm.substring(0,4) != "form" )
		{
			frm = "form1";
			document.getElementById(frm).action = formname;
		}
		document.getElementById(frm).submit();
	}
}
function FormSubmitValidate(question,formname,act,elementname,elementvalue) {
	if ( (confirm(question) ? "yes":"no") == "yes") {
		FormSubmit(formname,act,elementname,elementvalue);
	}
}
function fnValidateFieldNumeric(objField) {
	// Convert empty fields to zero, and remove leading zeroes, converting field value to an integer number:
	if (objField.value == "") objField.value = 0;
	objField.value = Number(objField.value);
}
function fnSelectAll(objField) {
	// Select all text upon arriving in a field.  IE5 does this automatically, IE4 doesn't.
	objField.select();
}
function fnValidateKey(e,tp,prc) {
	// Test for valid characters based on the type (tp) of character being expected.
	// 'e' = passed event object;
	// 'tp' = type of character to mask;
	// 'prc' = process Enter and if so code to send to Enter handler function -
	//		* if prc = 0 enter will not be handled special,
	//		* fnEnterHandler must be coded for each page that this function,
	//		* prc will be passed to fnEnterHandler to allow for different controls to process
	//			enter in their own way;
	var key;
	if (window.event)	// test for Netscape
	   key = window.event.keyCode;
	else if (e)			// test for IE
	   key = e.which;
	else				// all other browsers
	   return true;
	
	var keyChar = String.fromCharCode(key);
	var validChar = true;
	if (key == 13) {	// test for Enter key
		if (prc.length > 0) {
			validChar = false;
			return fnEnterHandler(prc);
		}
	}
	else {
		switch (tp) {
			case "#":	// numeric only
				// Use regular expression test, "/^\d/", to see if it's a digit.
				if (!(/^\d/.test(keyChar))) { validChar = false; }
				break;
			case "$":	// dollar amount
				if (!(/^[0-9\.]/.test(keyChar))) { validChar = false; }
				break;
			case "A":	// alpha only with space, underscore, & period
				// Use regular expression test, "/^[a-zA-Z\x20]/", to see if it's a word character.
				// Allows letters (upper & lowercase), spaces, periods, and the underscore character.
				if (!(/^[a-zA-Z\x20\.]$/.test(keyChar))) { validChar = false; }
				break;
			case "A!":	// alpha only with space
				// Use regular expression test, "/^[a-zA-Z\x20]/", to see if it's a word character.
				// Allows letters (upper & lowercase) and spaces.
				if (!(/^[a-zA-Z\x20]$/.test(keyChar))) { validChar = false; }
				break;
			case "A#":	// alpha-numeric with space, underscore, & period
				// Use regular expression test, "/^[\w\x20]/", to see if it's a word character or digit.
				// Allows letters (upper & lowercase), spaces, periods, and the underscore character.
				if (!(/^[\w\x20\.]$/.test(keyChar))) { validChar = false; }
				break;
			case "A#~":	// alpha-numeric with underscore & period
				// Use regular expression test, "/^[\w]/", to see if it's a word character or digit.
				// Allows letters (upper & lowercase), periods, and the underscore character.
				if (!(/^[\w\.]$/.test(keyChar))) { validChar = false; }
				break;
			case "A#!":	// alpha-numeric only
				// Use regular expression test, "/^[a-zA-Z0-9]/", to see if it's a word character or digit.
				// Allows letters (upper & lowercase) and numbers only.
				if (!(/^[a-zA-Z0-9]/.test(keyChar))) { validChar = false; }
				break;
			case "email":	// alpha-numeric with underscore, period, "-", "@"
				// Use regular expression test, "/^[\w]/", to see if it's a word character or digit.
				// Allows letters (upper & lowercase), periods, and the underscore character.
				if (!(/^[\w\.\-\@]$/.test(keyChar))) { validChar = false; }
				break;
			case "phone":	// phone number; numeric only + "-"
				// Use regular expression test, "/^\d/", to see if it's a digit.
				if (!(/^[0-9\-]/.test(keyChar))) { validChar = false; }
				break;
			case "pswd":	// alpha-numeric with select symbols (no spaces)
				// Use regular expression test, "/^[\w]/", to see if it's a word character or digit.
				// Allows letters (upper & lowercase), and symbols: ! @ # $ ^ * _ = + .
				if (!(/^[\w\!\@\#\$\^\*\.\=\+]$/.test(keyChar))) { validChar = false; }
				break;
		}
	}
	// If it's not a valid character, throw away the keypress:
	if ( !validChar && keyChar >= ' ' && keyChar <= '~' ) {
		e.cancelBubble = true;
		e.returnValue = false;
		return false;
	}
	return true;
}
// Limit size of input into a textarea field
function txtLimit(objFld, cntFld, limit) {
	if (objFld.value.length > limit)	// truncate anything past limit
		objFld.value = objFld.value.substring(0, limit);
	else 	// let user know how many characters are left if there is such a field
		if (cntFld != null)
			cntFld.value = limit - objFld.value.length;
}

// common popup window management
function help(page) {
	window.open(page,'help','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=yes,width=500,height=370,top=1,left=1');
}
function opensized(page, w, h)
{
	window.open(page,'thi','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,copyhistory=no,scrollbars=yes,width='+w+',height='+h+',top=1,left=1');
}
function openpic(itm_id) {
	var msgWindow
	msgWindow = window.open('./showpic.asp?tp=full&item='+itm_id,'thi_pic','toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,copyhistory=no,scrollbars=yes,width=600,height=400,top=1,left=1');
	msgWindow.focus()
}
function openlink(page) {
	window.open(page,'tlink','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,resizable=yes,copyhistory=no,scrollbars=yes,width=500,height=400,top=1,left=1');
}

// common mouseover buttons
function turnon(name)   {
	document[name].src = eval(name + "on.src");
}
function turnoff(name)  {
	document[name].src = eval(name + ".src");
}

function on(name)  {
	if (pageloaded) turnon(name);
}
function off(name)  {
	if (pageloaded) turnoff(name);
}

// Misc functions
function printpage(psFrame) {
	top.frames[psFrame].focus();
	top.frames[psFrame].print();
	self.focus();
}

function logout(page) {
	SetCookie("memory_form1_pswd","");
	location.href = page;
}
