function strTrim(tmpStr)
{
	tmpStr = tmpStr.replace(/^\s+/,"");//remove leading
	tmpStr = tmpStr.replace(/\s+$/,"");//remove trailing
	return tmpStr;
}
//------------------------------------------------------------------------------------
function trimFields()
{
	for(var i=0; i < obj.elements.length; i++)
	{
		if(obj.elements[i].type == "text" || obj.elements[i].type == "textarea" || obj.elements[i].type == "password")
		{
			obj.elements[i].value = strTrim(obj.elements[i].value);
		}
	}
}
//------------------------------------------------------------------------------------
function chkEmail(tmpStr)
{
	var email_pat = /^[a-z][a-z0-9_\.\-]*[a-z0-9]@[a-z0-9]+[a-z0-9\.\-_]*\.[a-z]+$/i;
	return(email_pat.test(tmpStr));
}
//------------------------------------------------------------------------------------
//Checks validity of date fields
function chkDate(tmpStr)
{
	var dt_pat = /^\d{2,2}\/\d{2,2}\/\d{4,4}$/;
	if(!dt_pat.test(tmpStr))
	{
		alert("Invalid Date format!\nIt should be in mm/dd/yyyy format.")		
		return false;
	}
	var dtGiven = new Date(tmpStr);
	var arrDt = tmpStr.split("/");
	var dtMon = parseInt(arrDt[0],10);//force decimal or else 08,09 will return 0
	var dtDay = parseInt(arrDt[1],10); //force decimal or else 08,09 will return 0
	var dtYear = parseInt(arrDt[2],10); //force decimal or else 08,09 will return 0
	if((dtGiven.getMonth() != dtMon - 1) || (dtGiven.getDate() != dtDay) || (dtGiven.getFullYear() != dtYear))
	{
		alert("Invalid Date!");
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------------
function chkTime(tmpStr)
{
  var timePat = /^\d{2,2}:\d{2,2} (AM|PM)$/;
  return(timePat.test(tmpStr))
}
//------------------------------------------------------------------------------------
function validateTALength(strField, cntlName, maxChar)
{
	if(obj.elements[cntlName].value.length > maxChar)
	{
		alert(strField+" should be within "+maxChar+" characters.");
		obj.elements[cntlName].focus();
		obj.elements[cntlName].select();
		return false;
	}
	//return true;
}
//------------------------------------------------------------------------------------
function NewWindow(pageName)
{
	window.open(pageName, '', 'width=500,height=320,toolbar=0,menubar=0,location=0,left=50,top=100');
}

//------------------------------------------------------------------------------------
function viewImage(imgURL)
{
	newWindow = window.open("","newWindow","titlebar=no,width=50,height=50,left=25,top=25,scrollbars=1");
	var doc = newWindow.document;
	doc.open();
	doc.write('<html>\n');
	doc.write('<head>\n');
	doc.write('<title>View Image</title>\n');
	doc.write('<meta http-equiv="imagetoolbar" content="no">\n');
	doc.write('</head>\n');
	doc.write('<body leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" ondblclick="self.close();"  onblur="self.close();" onload="javascript:window.resizeTo(document.getElementById(\'theImage\').width + 10, document.getElementById(\'theImage\').height + 50)">\n');
	doc.write('<img src=\"'+imgURL+'\" alt=\"File: '+imgURL+'\n(Double Click to Close)\" border="0" name="theImage" id="theImage" />\n');
	doc.write('</body>\n');
	doc.write('</html>\n');
	newWindow.focus();
	doc.close();
}
//------------------------------------------------------------------------------------
function timeToString(tmpStr)
{
    return (tmpStr.replace(/\s/g, '').toUpperCase()+'A').replace(/\b(\d:)/, "0$1").replace(/([0-9:]+)(\w)(.*)/, '$2$1').replace(/(\w)12/, '$100') 
}
//------------------------------------------------------------------------------------
function getNum(fld) {
    var fldval = strTrim(fld);
	var myNum = '';
	var ctr = 0;

//		Return zero
	if(fldval.length == 0)
		return 0.0;

	while(ctr < fldval.length) {
		if((fldval.charAt(ctr) >= '0' && fldval.charAt(ctr) <= '9') || fldval.charAt(ctr) == '-' || fldval.charAt(ctr) == '.' || fldval.charAt(ctr) == ',')
			myNum += fldval.charAt(ctr);
		else 
		    return 'NaN';  // This field is Not a Number!!!
		ctr++;
	}

//		Return the value
	if(myNum.length > 0)
		return parseFloat(myNum);
}

function openFullWin(url)
{   
    var Ht = screen.height;
    var Wt = screen.width;
    var objNew = new Object();
    //alert('Height: ' + Ht + ', Width: ' + Wt);
    //.toString()
    objNew = window.open(url,'_blank','left=0,top=0,menubar=yes,directories=yes,scrollbars=yes,titlebar=yes,toolbar=yes,status=yes,resizable=yes,location=yes,height='+Ht+',width='+Wt);
    objNew.focus();

}

function openHalfWin(url)
{   
    var Ht = screen.height;
    var Wt = (screen.width/2);
    var objNew = new Object();
    //alert('Height: ' + Ht + ', Width: ' + Wt);
    //.toString()
    objNew = window.open(url,'_blank','left=0,top=0,menubar=yes,directories=yes,scrollbars=yes,titlebar=yes,toolbar=yes,status=yes,resizable=yes,location=yes,height='+Ht+',width='+Wt);
    objNew.focus();

}

//------------------------------------------------------------------------------------
function checkZip(fld) {
    var fldval = strTrim(fld);
	var myNum = '';
	var ctr = 0;
	var hasDash = 0;

//		Return zero
	if(fldval.length == 0)
		return false;

	while(ctr < fldval.length) {
		if(fldval.charAt(ctr) >= '0' && fldval.charAt(ctr) <= '9')
			myNum += fldval.charAt(ctr);
		else {
    		if(fldval.charAt(ctr) == '-' && ctr == 5)
			    hasDash = 1;			
            else
		        return false;  // This field is Not a zip code!!!
		}
		ctr++;
	}

//		Is this field a zip code length or not?
	if(myNum.length == 5 || myNum.length == 9)
		return true;
		
    return false;
}