function Trim(TheString)
{
	var len;
	len = TheString.length;
 	while((TheString.substring(0,1) == " ") || (TheString.substring(0,1) == "\r")
		|| (TheString.substring(0,1) == "\n")){ //trim left
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}
 	while((TheString.substring(len-1, len) == " ") || (TheString.substring(len-1, len) == "\r")
			|| (TheString.substring(len-1, len) == "\n")){ //trim right
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}

 	return TheString;
}

function checkFld(fldThis, sName, bMsg, nMinLen, nMaxLen)
{
	if (checkFld.arguments.length<3)
		bMsg = true;

	if (checkFld.arguments.length<4)
		nMinLen = 0;

	if (checkFld.arguments.length<5)
		nMaxLen = 0;
	
	if (fldThis)
	{
		var sTemp = Trim(fldThis.value);
		if (sTemp == "")
		{
			if (bMsg)
			{
				if (sName == "")
				{
					sName = fldThis.name;
				}
				
				alert("Please enter the following first : " + sName);
				
				if (fldThis.type.toLowerCase() != "hidden")
					fldThis.focus();
			}

			return false;
		}

		if (nMinLen > 0)
		{
			if (sTemp.length < nMinLen)
			{
				if (bMsg)
				{
					alert("The length of the following cannot be shorter than " + nMinLen + " : " + sName);
					
					if (fldThis.type.toLowerCase() != "hidden")
						fldThis.focus();
				}

				return false;
			}
		}

		if (nMaxLen > 0)
		{
			if (sTemp.length > nMaxLen)
			{
				if (bMsg)
				{
					alert("The length of the following cannot be longer than " + nMaxLen + " : " + sName);
					
					if (fldThis.type.toLowerCase() != "hidden")
						fldThis.focus();
				}

				return false;
			}
		}
	}

	return true;
}

function IsEmailValid(ElemName)
{
	var EmailOk  = true;

	var strFld = Trim(ElemName.value);
	if (strFld != "")
	{
		var AtSym    = ElemName.value.indexOf('@');
		var Period   = ElemName.value.lastIndexOf('.');
		var Space    = ElemName.value.indexOf(' ');
		var Length   = ElemName.value.length - 1;	// Array is from 0 to length-1

		if ((AtSym < 1) ||						// '@' cannot be in first position
				(Period <= AtSym + 1) ||		// Must be atleast one valid char btwn '@' and '.'
				(Period == Length ) ||			// Must be atleast one valid char after '.'
				(Space  != -1))					// No empty spaces permitted
		{
			EmailOk = false;
			
			alert("Please enter a valid email address.");
			

			ElemName.focus();
		}
	}

	return EmailOk;
}

function IsEmailValid1(sEmail, oObj)
{
	var EmailOk  = true;

	if (Trim(sEmail) != "")
	{
		var AtSym    = sEmail.indexOf('@');
		var Period   = sEmail.lastIndexOf('.');
		var Space    = sEmail.indexOf(' ');
		var Length   = sEmail.length - 1;	// Array is from 0 to length-1

		if ((AtSym < 1) ||						// '@' cannot be in first position
				(Period <= AtSym + 1) ||		// Must be atleast one valid char btwn '@' and '.'
				(Period == Length ) ||			// Must be atleast one valid char after '.'
				(Space  != -1))					// No empty spaces permitted
		{
			EmailOk = false;
			
			alert("Please enter a valid email address.");
			
			oObj.focus();
		}
	}

	return EmailOk;
}

function IsNumber(fldNum, sMsg)
{
	var strNumber = "+-0123456789."

	var strNum = Trim(fldNum.value);
	var i;
	for (i = 0; i < strNum.length; i++)
	{
		if (strNumber.indexOf(strNum.charAt(i)) < 0)
		{
			alert("Please enter a valid number for the following : " + sMsg);
			
			fldNum.focus();
			return false;
		}
	}

	return true;
}

function IsInteger(fldInt, sName, bMsg)
{
	if (IsInteger.arguments.length<3)
		bMsg = true;

	var strNum = Trim(fldInt.value);
	
	if (strNum != "")
	{
		var nTemp = parseInt(strNum);

		if (nTemp != strNum)
		{
			if (bMsg)
			{
				if (sName == "")
				{
					sName = fldInt.name;
				}

				alert("Please enter a valid integer for the following : " + sName);
				
				fldInt.focus();
			}

			return false;
		}
	}

	return true;
}

function IsGreaterZero(fldNum, nType, sMsg)		//use after checking for valid number/integer
{
	if (IsNumber(fldNum, sMsg))
	{
		var strNum = parseFloat(fldNum.value);
		if (nType == 0)	//zero is the minimum
		{
			if (strNum < 0)
			{
				alert("Please enter a valid number >= zero for the following : " + sMsg);
				
				fldNum.focus();
				return false;	
			}
		}
		else //greater than zero
		{
			if (strNum <= 0)
			{
				alert("Please enter a valid number > zero for the following : " + sMsg);
				
				fldNum.focus();
				return false;	
			}
		}

		return true;
	}
	else
		return false;
}

function IsLesserZero(fldNum, nType, sMsg)		//use after checking for valid number/integer
{
	if (IsNumber(fldNum, sMsg))
	{
		var strNum = parseFloat(fldNum.value);
		if (nType == 0)	//zero is the maximum
		{
			if (strNum > 0)
			{
				alert("Please enter a valid number <= zero for the following : " + sMsg);
				
				fldNum.focus();
				return false;	
			}
		}
		else //lesser than zero
		{
			if (strNum >= 0)
			{
				alert("Please enter a valid number < zero for the following : " + sMsg);
				
				fldNum.focus();
				return false;	
			}
		}

		return true;
	}
	else
		return false;
}

function checkListFld(fldThis, sName)
{
	if (fldThis)
	{
		if (fldThis.selectedIndex == 0)
		{
			if (sName == "")
			{
				sName = fldThis.name;
			}

			alert("Please select the following first : " + sName);
			
			fldThis.focus();

			return false;
		}
	}

	return true;
}

function checkPwd(frmThis, nMinLen)
{
	if (Trim(frmThis.pwd.value) == "")
	{
		alert("Password cannot be left empty.");
		
		if (frmThis.pwd.type.toLowerCase() != "hidden")
			frmThis.pwd.focus();
		return false;
	}

	if (Trim(frmThis.repwd.value) == "")
	{
		alert("Please confirm your password.");
		
		if (frmThis.repwd.type.toLowerCase() != "hidden")
			frmThis.repwd.focus();
		return false;
	}

	if (Trim(frmThis.pwd.value) != Trim(frmThis.repwd.value))
	{
		alert("Please confirm password again.");
		
		if (frmThis.pwd.type.toLowerCase() != "hidden")
			frmThis.pwd.focus();
		return false;
	}

	if ((nMinLen > 0) && (Trim(frmThis.pwd.value).length < nMinLen))
	{
		alert("Please enter a password with at least " + nMinLen + " characters.");
		
		if (frmThis.pwd.type.toLowerCase() != "hidden")
			frmThis.pwd.focus();
		return false;
	}

	return true;
}

/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts. This may be used freely as long as this msg is intact!
I will also appriciate any links you could give me.
********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser(){
	this.ver=navigator.appVersion
	this.dom=document.getElementById?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
	this.ie4=(document.all && !this.dom)?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
	return this
}
bw=new checkBrowser()
//With nested layers for netscape, this function hides the layer if it's visible and visa versa
function showHide(div,nest){
	obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0; 
	if(obj.visibility=='visible' || obj.visibility=='show') obj.visibility='hidden'
	else obj.visibility='visible'
}
//Shows the div
function show(div,nest){
	obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0; 
	obj.visibility='visible'
}
//Hides the div
function hide(div,nest){
	obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0; 
	obj.visibility='hidden'
}

function toggle(div) {
  obj=bw.dom?document.getElementById(div).style:bw.ie4?document.all[div].style:bw.ns4?nest?document[nest].document[div]:document[div]:0;

  if (obj.display == "block") {
     obj.display = "none";
	 return false;
  } else {
     obj.display = "block";
	 return true;
  }
}

function FormatDate(dtDate)
{
	var sRet;
	if (dtDate == null)
		sRet = "";
	else
		sRet = MakeDate(dtDate.getFullYear(), dtDate.getMonth()+1, dtDate.getDate());

	return sRet;
}

function MakeDate(iYear, iMonth, iDay)
{
	if (g_sDateFormat=="dd/mm/yyyy")
		return iDay+"/"+iMonth+"/"+iYear;
	else if (g_sDateFormat=="dd-mm-yyyy")
		return iDay+"-"+iMonth+"-"+iYear;
	else if (g_sDateFormat=="mm/dd/yyyy")
		return iMonth+"/"+iDay+"/"+iYear;
	else if (g_sDateFormat=="mm-dd-yyyy")
		return iMonth+"-"+iDay+"-"+iYear;
	else if (g_sDateFormat=="dd mmm, yyyy")
		return iDay+" "+gShortMonths[iMonth-1]+", "+iYear;
	else if (g_sDateFormat=="mmm dd, yyyy")
		return gShortMonths[iMonth-1]+" "+iDay+", "+iYear;
	else if (g_sDateFormat=="dd mmmm, yyyy")
		return iDay+" "+gMonths[iMonth-1]+", "+iYear;
	else if (g_sDateFormat=="mmmm ddd, yyyy")
		return gMonths[iMonth-1]+" "+iDay+", "+iYear;
	else
		return iYear+"-"+iMonth+"-"+iDay;
}

