//THIS FUNCTION CAHECKS FOR VALIDITY OF THE EMAILID PASSED

function IsValidEmailSyntax( sEmail ) 
{ 

   return ( sEmail.search( /\w+((-\w+)|(\.\w+)|(\_\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,5}/ ) != -1); 
} 

function validEmail(email)
{
	invalidChars="/:,;"

	if(email=="")
	{
		return(false);
	}
	for(i=0;i<invalidChars.length;i++)
	{
		badChar=invalidChars.charAt(i)
		if(email.indexOf(badChar,0)!=-1)
		{
			return(false);
		}
	}
	atPos=email.indexOf("@",1)
	if(atPos==-1)
	{
		return(false);
	}
	if (email.indexOf("@",atPos+1)!=-1)
	{
		return(false);
	}
	periodPos=email.indexOf(".",atPos)
	if(periodPos==-1)
	{
		return(false);
	}
	if(periodPos+3>email.length)
	{
		return(false);
	}
	if(email.charAt(email.length - 1)==".")
	{
		return(false);
	}

	return(true);
}


//THESE ARE THE FUNCTIONS FOR VALIDATING  THE DATE FIELDS
function chkdate(objName)
{
	var datefield = objName;
	if (checkDate(objName) == false) 
	{
		datefield.select();
		//alert("That date is invalid.Enter in mm-dd-yyyy format  Please try again.");
		datefield.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function checkDate(objName)
{
		var strDatestyle = "US"; //United States date style
		//var strDatestyle = "EU";  //European date style
		var strDate;
		var strDateArray;
		var strDay;
		var strMonth;
		var strYear;
		var intday;
		var intMonth;
		var intYear;
		var booFound = false;
		var datefield = objName;
		var strSeparatorArray = new Array("-"," ","/",".");
		var intElementNr;
		var err = 0;
		var strMonthArray = new Array(12);
		strMonthArray[0] = "Jan";
		strMonthArray[1] = "Feb";
		strMonthArray[2] = "Mar";
		strMonthArray[3] = "Apr";
		strMonthArray[4] = "May";
		strMonthArray[5] = "Jun";
		strMonthArray[6] = "Jul";
		strMonthArray[7] = "Aug";
		strMonthArray[8] = "Sep";
		strMonthArray[9] = "Oct";
		strMonthArray[10] = "Nov";
		strMonthArray[11] = "Dec";
		datefield.value = trim(datefield.value);
		strDate = datefield.value;

		var x=new RegExp("[^. 0-9/-]");
		
		if (strDate.length < 1)
		{
				return true;
		}
		if(strDate.search(x)!=-1) 
		{
			return false;
		}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			//alert("in if");
				strDateArray = strDate.split(strSeparatorArray[intElementNr]);
				if (strDateArray.length != 3) 
				{
				err = 1;
				return false;
				}
				else
				{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
				}
				booFound = true;
		 }
	/*	 else
		 {
			 return false;
		 }*/
}
if (booFound == false)
{
		if ((strDate.length>5)&&(strDate.length<9)&&(strDate.length!=7))
		{
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
		else
		{
			return false;
		}
}
if (strYear.length == 2)
{
		strYear = '20' + strYear;
}

// US style
if (strDatestyle == "US")
{
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday))
{
		err = 2;
		return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth))
{
for (i = 0;i<12;i++)
{
		if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase())
				{
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
				}
		}
		if (isNaN(intMonth))
		{
				err = 3;
				return false;
		}
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear))
{
		err = 4;
		return false;
}
if (intMonth>12 || intMonth<1) 
{
		err = 5;
		return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) 
{
		err = 6;
		//alert("This is not a valid calender date \n This month contains only 31 days.");
		return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) 
{
		err = 7;
		//alert("This is not a valid calender date \n This month contains only 30 days.");
		return false;
}
if (intMonth == 2)
{
		if (intday < 1)
		{
				err = 8;

				return false;
		}
		if (LeapYear(intYear) == true)
		{
				if (intday > 29)
				{
				err = 9;
				//alert("This is not a valid calender date \n This month contains only 29 days.");
				return false;
				}
		}
		else
		{
				if (intday > 28)
				{
				err = 10;
				//alert("This is not a valid calender date \n This month contains only 28 days.");
				return false;
				}
		}
}
		if (strDatestyle == "US")
		{
				if ((intMonth <10)&&(intday<10))
				{
				datefield.value = "0" + intMonth + "/" + "0" + intday+"/" + strYear;
				}
				else if ((intMonth >=10)&&(intday<10))
				{
									datefield.value = intMonth + "/" + "0" + intday+"/" + strYear;
				}
				else if ((intMonth <10)&&(intday>=10))
				{
					datefield.value = "0" + intMonth + "/" + intday+"/" + strYear;
				}
				else 
				{
					datefield.value = intMonth + "/" + intday+"/" + strYear;
				}
		}
		else
		{
				datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
		}
		return true;
}

//This is new date function

function checkDateNew(objName)
{
		var strDatestyle = "US"; //United States date style
		//var strDatestyle = "EU";  //European date style
		var strDate;
		var strDateArray;
		var strDay;
		var strMonth;
		var strYear;
		var intday;
		var intMonth;
		var intYear;
		var booFound = false;
		var datefield = objName;
		var strSeparatorArray = new Array("-"," ","/",".");
		var intElementNr;
		var err = 0;
		var strMonthArray = new Array(12);
		strMonthArray[0] = "Jan";
		strMonthArray[1] = "Feb";
		strMonthArray[2] = "Mar";
		strMonthArray[3] = "Apr";
		strMonthArray[4] = "May";
		strMonthArray[5] = "Jun";
		strMonthArray[6] = "Jul";
		strMonthArray[7] = "Aug";
		strMonthArray[8] = "Sep";
		strMonthArray[9] = "Oct";
		strMonthArray[10] = "Nov";
		strMonthArray[11] = "Dec";
		strDate = datefield.value;
		var x=new RegExp("[^. 0-9/-]");
		
		if (strDate.length < 1)
		{
				return true;
		}
		if(strDate.search(x)!=-1) 
		{
			return false;
		}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			//alert("in if");
				strDateArray = strDate.split(strSeparatorArray[intElementNr]);
				if (strDateArray.length != 3) 
				{
				err = 1;
				return false;
				}
				else
				{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
				}
				booFound = true;
		 }
	/*	 else
		 {
			 return false;
		 }*/
}
if (booFound == false)
{
		if ((strDate.length>5)&&(strDate.length<9)&&(strDate.length!=7))
		{
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
		else
		{
			return false;
		}
}
if (strYear.length == 2)
{
		strYear = '20' + strYear;
}

// US style
if (strDatestyle == "US")
{
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
}
intday = parseInt(strDay, 10);
if (isNaN(intday))
{
		err = 2;
		return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth))
{
for (i = 0;i<12;i++)
{
		if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase())
				{
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
				}
		}
		if (isNaN(intMonth))
		{
				err = 3;
				return false;
		}
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear))
{
		err = 4;
		return false;
}
if (intMonth>12 || intMonth<1) 
{
		err = 5;
		return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) 
{
		err = 6;
		//alert("This is not a valid calender date \n This month contains only 31 days.");
		return "Invalid";
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) 
{
		err = 7;
		//alert("This is not a valid calender date \n This month contains only 30 days.");//alert("This is not a valid calender date \n This month contains only 29 days.");	//alert("This is not a valid calender date \n This month contains only 28 days.");
		return "Invalid";
}
if (intMonth == 2)
{
		if (intday < 1)
		{
				err = 8;

				return false;
		}
		if (LeapYear(intYear) == true)
		{
				if (intday > 29)
				{
				err = 9;
				//alert("This is not a valid calender date \n This month contains only 29 days.");
				return "Invalid";
				}
		}
		else
		{
				if (intday > 28)
				{
				err = 10;
				//alert("This is not a valid calender date \n This month contains only 28 days.");
				return "Invalid";
				}
		}
}
		if (strDatestyle == "US")
		{
				if ((intMonth <10)&&(intday<10))
				{
				datefield.value = "0" + intMonth + "/" + "0" + intday+"/" + strYear;
				}
				else if ((intMonth >10)&&(intday<10))
				{
									datefield.value = intMonth + "/" + "0" + intday+"/" + strYear;
				}
				else if ((intMonth <10)&&(intday>10))
				{
					datefield.value = "0" + intMonth + "/" + intday+"/" + strYear;
				}
				else 
				{
					datefield.value = intMonth + "/" + intday+"/" + strYear;
				}
		}
		else
		{
				datefield.value = intday + " " + strMonthArray[intMonth-1] + " " + strYear;
		}
		return true;
}


function LeapYear(intYear)
{
	if (intYear % 100 == 0)
	{
			if (intYear % 400 == 0)
			{
					return true;
			}
	}
	else
	{
			if ((intYear % 4) == 0)
			{
					return true;
			}
	}
	return false;
}


function doDateCheck(from, to)
{
		if (Date.parse(from.value) <= Date.parse(to.value))
		{
				//alert("The dates are valid.");
				return true;
		}
		else
		{
				/*if (from.value == "" || to.value == "") 
						alert("Both dates must be entered.");
				else 
						alert("To date must occur after the from date.");*/
				return false;
		}
		
}


function isInteger(n)
	{
		
		var  num=n.value;
		num=trim(num);
		var pat=new RegExp("[^0123456789-]");
		var flag=num.search(pat);
		if (flag!=-1)
		{
			return false;
		}
		if ((num.indexOf('-',0)>0)||(num.indexOf('-',1)!=-1))
		{
			return false;
		}
		
		return true;
				
	}
//THIS FUNCTION IS TO CHECK WHETHER THE INPUT IS VALID FLOAT VALUE
	

	function isFloat(n)
	{
		var  num=n.value;
		num=trim(num);
		var pat=new RegExp("[^.0123456789-]");
		var flag=num.search(pat);
		if (flag!=-1)
		{
			return false;
		}
		if ((num.indexOf('-',0)>0)||(num.indexOf('-',1)!=-1))
		{
			return false;
		}
		var arr=num.split(".");
		if (arr.length>2)
		{
			return false;
		}
		return true;
		
	}

//THIS FUNCTION IS TO CHECK WHETHER THE INPUT IS VALID CURRENCY VALUE
	

	function isCurrency(n)
	{
		var  num=n.value;
		num=trim(num);
		var pat=new RegExp("[^.0123456789]");
		var flag=num.search(pat);
		if (flag!=-1)
		{
			return false;
		}
		if ((num.indexOf('-',0)>0)||(num.indexOf('-',1)!=-1))
		{
			return false;
		}
		var arr=num.split(".");
		if (arr.length>2)
		{
			return false;
		}
		if(num.indexOf('.',0)==0)
		{
			num="0"+num;
		}
		if(num.indexOf('.',0)>0)
		{
			num=num.substring(0,num.indexOf('.',0))+num.substring(num.indexOf('.',0),num.indexOf('.',0)+3);
		}
		n.value=num;
		return true;
		
	}
//THIS FUNCTION IS FOR CHECKING TEH VALUE OF A TEXTFIELD 
// WHETHER IT IS INT THE RANGE -90 TO +90


	function isInRange90(k)
	{
			range=k.value;
			if(isFloat(k))
			{
					if((parseFloat(range)>=-90)&&(parseFloat(range)<=90))
					{
						 
							return true;

					}
					else
					{
							k.select();
							k.focus();
							return false;
					}
			}
			//alert("the number is not valid number");
			k.select();
			k.focus();
			return false;
   }
//THIS FUNCTION IS FOR CHECKING TEH VALUE OF A TEXTFIELD 
// WHETHER IT IS INT THE RANGE -180 TO +180
   function isInRange180(k)
	{
			range=k.value;
			if(isFloat(k))
			{
					if((parseFloat(range)>=-180)&&(parseFloat(range)<=180 ))
					{
						 
							return true;
					}
					else
					{
							k.select();
							k.focus();
							return false;
					}
			}
			
			k.select();
			k.focus();
			return false;
   }

   function isInRange30(k)
	{
			range=k.value;
			if(isInteger(k))
			{
					if((parseInt(range)>=0)&&(parseInt(range)<=30))
					{
						 
							return true;

					}
					else
					{
							
							k.select();
							k.focus();
							return false;
					}
			}
			
			k.select();
			k.focus();
			return false;
   }
   function isInRange31(k)
	{
			range=k.value;
			if(isInteger(k))
			{
					if((parseInt(range)>=0)&&(parseInt(range)<=31))
					{
						 
							return true;

					}
					else
					{
							
							k.select();
							k.focus();
							return false;
					}
			}
			
			k.select();
			k.focus();
			return false;
   }

   function patMatch(str)
   {
		   var pat=new RegExp("[^-0123456789]","i");
		   return str.substring(0,str.search(pat)); 
   }
   
   //   THIS FUNCTION CHECKS WHETHER THE FIELD IS EMPTY OR NOT

   function isEmpty(theFieldValue)
   {
	   		if(theFieldValue=="")
			{
			 	return true;
			}
			else
			{
				return false;
			}
   }
	
   function noSpaces(l)
   {
			var strGiven
			strGiven=l;
			for(i=0;i<l.length;i++)
			{
				 if(strGiven.charAt(i)==" ") 
				{
					
					return false;		
				}
			}
			return true;
   }

   
	//THIS FUNCTION TRIMS THE INPUT STRING BY REMOVING THE LEADING AND TRIALING BLANK SPACES 
		
   function trim(strMessage)
   {
			var strResult;
			var charTemp;
			var i;
			strResult="";
			//remove the left space
			for(i=0;i<strMessage.length;i++)
			{
				charTemp=strMessage.charAt(i);
				if(charTemp!=" ")  
				{
					strResult=strMessage.substring(i);
					break;
			    }
		    }
			//remove the right space
			for(i=strResult.length-1;i>=0;i=i-1)
			{
				charTemp=strResult.charAt(i);
				if(charTemp!=" " )
				{
					strResult=strResult.substring(0,i+1);
					break;
				}
			}
			return(strResult);

	}



function isMonth(field)//we have to pass the field object(ie for example : text)
{
	field.value=trim(field.value);
	var month=field.value;
	if(!isInteger(field))
	 {
			  field.focus();
			  return false;
	 }
	  if((month>12)||(month<1))
	  {
		   //alert(month);
		   field.focus();
		  return false;
	  }
	 return true;
}

function isDate(field)//we have to pass the field object(ie for example : text)
{
	field.value=trim(field.value);
	var day=field.value;
	if(!isInteger(field))
	 {
			  field.focus();
			  return false;
	 }
	  if((day>31)||(day<1))
	  {
		   //alert(month);
		   field.focus();
		  return false;
	  }
	 return true;
}



function isYear(field)//we have to pass the field object(ie for example : text)
{
field.value=trim(field.value);
if(!isInteger(field))
		 {		 
			  field.focus();
			  return false;
		 }
var year=parseInt(field.value);
if((year>=0)&&(year<100))
		 {		 
				  field.value = "20"+field.value;
		 }
year=parseInt(field.value);
	 if((year<1000)||(year>9999))
		  {
		   field.focus();
		  return false;
		  }
	return true;
}




function isPhoneNum(field)
{
	    var fval=field.value;
		var x=new RegExp("[^. #@ a-z A-Z 0-9()-]");

		if(fval.search(x)!=-1) 
		{
			return false ;
		}
		else
		{
		return true;
		}

}

function dateRange(from,to)//    /*from/*'parameter is grater than /*to/* parameter then this function
								//will return TRUE else FALSE'
{
    if(!checkDate(from))
	{
		//alert("Not valid from");
		return false;
	}
	if(!checkDate(to))
	{
		//alert("Not Valid to");
		return false;
	}
	return tempDateRange(from.value,to.value);
}
function tempDateRange(from,to)//Onle strings are allowed
{
	var arr1;
	var arr2;
	arr1=from.split('/');
	arr2=to.split('/');

	if ((arr1.length==3)&&(arr2.length==3))
	{
		
		//var year= parseInt(arr1[2]) - parseInt(arr2[2])
		//removed parseInt as it is not validating 08,09... Veerendra.
		var year= arr1[2] - arr2[2];
		var month=0;
       //	month=parseInt(arr1[0])-parseInt(arr2[0]);
	   month=arr1[0]-arr2[0];
		if (month<0)
			{
			year=year-1;
			month=month+12;
			 }
		 var  date=0;
		 //date=(parseInt(arr1[1])-parseInt(arr2[1]));
		 date=arr1[1]-arr2[1];
			if (date<0) 
			 {
			  month=month-1;
			  date=date+30;
						if (month<0)
						{
							year=year-1;
							month=month+12;
						 }

			 }
		//alert(date+"..days.."+month+"...months.."+year+"..years");
		var stryear=(year<=0)? " ": year+"  years,";
		var strmon=(month<=0)? " ": month+"  months";
		//target.value=stryear+" "+strmon ;
		if ((date<0)||(month<0)||(year<0))
		{
			return false;
		}

		return true;
	}
	
}


function validForm(form,field)//,required,type,message)
{    
     var fname,minval,maxval,flag,fval,type,required,message,farraylength;
	 var i;
	 var tempintarr;
	 var guiname;
	 for(i=0; i<=field.length-1; i++)
	 {      
				guiname='';
				tempintarr=field[i].split(",");
			    fname=tempintarr[0];
				required=tempintarr[1];
				type=tempintarr[2];
				message=tempintarr[3];
				minval=tempintarr[4];
				maxval=tempintarr[5];
				farraylength=tempintarr.length;
				if(farraylength>6)
				{
					guiname=trim(tempintarr[6]);
					//alert(guiname)
				}
				for(j=0;j < form.elements.length;j++)
				{      
			       	    if(form.elements[j].name==fname)
						{

								fval=trim(form.elements[j].value);
								form.elements[j].value = fval;

								if((required=="y")&&(type!="select"))
								{
									if(isEmpty(fval))
									{   
										if(guiname=='') guiname=fname.toUpperCase();
										alert(" "+guiname+"  is a required field and must be populated \n in order to save the entered information.");
										form.elements[j].focus();
										return false;

									}
								}//end of ( required[i]=="y" )  loop
								//alert(type);
								switch (type)
								{
								
								case "nospaces":  {		
													if(!isEmpty(fval))
													{	
														if(!(noSpaces(form.elements[j].value)))
														{       
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false;
														}
													}//end of isempty block
													break;
												  }

							
								case "int":  {		
													if(!isEmpty(fval))
													{	
														if(!(isInteger(form.elements[j])))
														{       
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false;
														}
														else
														{   
																if(farraylength>=6)
																{	
																	minval=parseInt(minval);
																	maxval=parseInt(maxval);
																	
																	if(( minval > parseInt(fval)) || (maxval < parseInt(fval)))
																	 {
																			alert(message);
																			form.elements[j].select();
																			form.elements[j].focus();
																			return false;
																	 }
																}
														}
													}
													//end of isempty block
													break;
											  }
								case "float"		:{ 						
														if(!isEmpty(fval))
														{	
															if(!(isFloat(form.elements[j])))
															{       
																	alert(message);
																	form.elements[j].select();
																	form.elements[j].focus();
																	return false;
															}
															else
															{   
																	if(farraylength>=6)
																	{	
																		minval=parseFloat(minval);
																		maxval=parseFloat(maxval);
																		
																		if(( minval > parseFloat(fval)) || (maxval < parseFloat(fval)))
																		 {
																				alert(message);
																				form.elements[j].select();
																				form.elements[j].focus();
																				return false;
																		 }
																	}
															}
														}
														//end of isempty block

														break;
													 }
								case "currency"		:{ 						
														if(!isEmpty(fval))
														{	
															fval = removeChar(fval,",");
															//fval = removeChar(fval,".00");															
															form.elements[j].value=fval;
															if(!(isCurrency(form.elements[j])))
															{       
																	alert(message);
																	form.elements[j].select();
																	form.elements[j].focus();
																	return false;
															}
															else
															{   
																	if(farraylength>=6)
																	{	
																		minval=parseFloat(minval);
																		maxval=parseFloat(maxval);
																		
																		if(( minval > parseFloat(fval)) || (maxval < parseFloat(fval)))
																		 {
																				alert(message);
																				form.elements[j].select();
																				form.elements[j].focus();
																				return false;
																		 }
																	}
															}
															
														}
														//end of isempty block

														break;
													 }

								case "phonenum"		:{
								                       if(!isEmpty(fval))
														{
															var x=new RegExp("[^. 0-9()-]");
															if(fval.search(x)!=-1) 
															{
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false ;
															}

															if(farraylength>4)
															{	
																minval=parseFloat(minval);
																maxval=parseFloat(maxval);
																	
																if(minval!=null)
																{
																	if(fval.length<minval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
																if(maxval!=null)
																{
																	if(fval.length>maxval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
															}															

														}//end of isempty block

														break;
													 }
								
								case "numeric"		:{
								                       if(!isEmpty(fval))
														{
															var x=new RegExp("[^. 0-9]");
															if(fval.search(x)!=-1) 
															{
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false ;
															}
															if(farraylength>4)
															{	
																minval=parseFloat(minval);
																maxval=parseFloat(maxval);
																	
																if(minval!=null)
																{
																	if(fval.length<minval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
																if(maxval!=null)
																{
																	if(fval.length>maxval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
															}	

														}//end of isempty block

														break;
													 }


								case "postalcode" :{
																if(!isEmpty(fval))
																{
																	var x=new RegExp("[^- 0-9]");
																	var y=	fval.split("-");
																	if((fval.search(x)!=-1)||(y.length>2) )
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false ;
																	}
																	
																}//end of isempty block
																break;
													}
							
									case "password"	:{
														
														if(!isEmpty(fval))
														{
															var x=new RegExp("[^a-zA-Z0-9]");
															if(fval.search(x)!=-1) 
															{
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false ;
															}
															if(farraylength>4)
															{	
																minval=parseFloat(minval);
																maxval=parseFloat(maxval);
																	
																if(minval!=null)
																{
																	if(fval.length<minval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
																if(maxval!=null)
																{
																	if(fval.length>maxval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
															}	
														}
														else
														{
															form.elements[j].value=' ';
														}//end of isempty block

														break;
													 }
								case "alphanumeric"	:{
														if(!isEmpty(fval))
														{
															var x=new RegExp("[^a-zA-Z0-9 ,.]");
															if(fval.search(x)!=-1) 
															{
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false ;
															}
															if(farraylength>4)
															{	
																minval=parseFloat(minval);
																maxval=parseFloat(maxval);
																	
																if(minval!=null)
																{
																	if(fval.length<minval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
																if(maxval!=null)
																{
																	if(fval.length>maxval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
															}	
														}
														else
														{
															form.elements[j].value=' ';
														}//end of isempty block

														break;
													 }
							case "allchars"	:{
														if(!isEmpty(fval))
														{
															var x=new RegExp("[^a-zA-Z0-9 ,._#=$*)(\-]");
															if(fval.search(x)!=-1) 
															{
																alert(message);
																form.elements[j].select();
																form.elements[j].focus();
																return false ;
															}
															form.elements[j].value=fval;
															if(farraylength>4)
															{	
																minval=parseFloat(minval);
																maxval=parseFloat(maxval);
																	
																if(minval!=null)
																{
																	if(fval.length<minval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
																if(maxval!=null)
																{
																	if(fval.length>maxval)
																	{
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																}
															}	
														}
														else
														{
															form.elements[j].value=' ';
														}//end of isempty block

														break;
													 }

								case "date"			:{ // alert("date");
														if(!isEmpty(fval))
														{    //alert("date inside if");
																
																if("Invalid"==checkDateNew(form.elements[j]))
																	{   
																		alert("This is not a valid calender date \n Please change it.");
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false;
																	}
																														
															
																	
															if(!checkDateNew(form.elements[j]))
																	{   
																		alert(message);
																		form.elements[j].select();
																		form.elements[j].focus();
																		return false ;
																	}
																
															fval=form.elements[j].value;
															if(minval!=null)
															{
																
																if(!tempDateRange(fval,minval))
																{
																	alert(message);
																	form.elements[j].select();
																	form.elements[j].focus();
																	return false;
																}
															}
															if(maxval!=null)
															{
																if(!tempDateRange(maxval,fval))
																{
																	alert(message);
																	form.elements[j].select();
																	form.elements[j].focus();
																	return false;
																}
															}
														}//end of isempty block

														break;
													 }
								case "check"		:{
														if(!form.elements[j].checked)
														{
															alert(message);
															form.elements[j].focus();
															return false;
														}
														break;
													 }
								case "select"		:{	
														var tmpSelectIndex = -1;
														
														if (minval==null)
															{
															if(form.elements[j].selectedIndex==tmpSelectIndex)
																{
																	alert(message);

																	form.elements[j].focus();
																	return false;
																}
															}
														//}
														else
														{
															tmpSelectIndex=parseInt(minval);
															if(form.elements[j].selectedIndex!=tmpSelectIndex)
															{
																alert(message);
																form.elements[j].focus();
																return false;
															}
														}
													break;
													 }
								
								
								}//end of switch statement
						}//end of if(name==elements[].name) loop
				}//end of elements for loop
	 }
	 return true;

}

function changeDateFormat(dateValue)
{
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr = 0 ;
	 
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
	{
		if (dateValue.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			//alert("in if");
				strDateArray = dateValue.split(strSeparatorArray[intElementNr]);
				if (strDateArray.length != 3) 
				{
				return dateValue;
				}
				else
				{
					if((strDateArray[0].length==4)&&(strDateArray[1].length==2)&&(strDateArray[2].length==2))
					{
						return (strDateArray[1]+"/"+strDateArray[2]+"/"+strDateArray[0])
					}
					else
					{
						return (strDateArray[0]+"/"+strDateArray[1]+"/"+strDateArray[2])
					}
				 }
		}

	}
	return dateValue;
}



function amountFormat(value)
{
	val=trimZeros(value);
	if (val==0)
	{
		val="0";
	}

	if(val.length>0)
	{
		val = removeChar(val,",");
		var dec=".00";
		var mod="";
		var result="";
		if(val.indexOf(".")!=-1)
		{
			dec=val.substring(val.indexOf("."));
			dec ="."+removeChar(dec.substring(1),".");
			if(dec.length>3)
			{
				dec=dec.substring(0,3);
			}
			else if(dec.length==1)
			{
			   dec=".00";
			}
			val=val.substring(0,val.indexOf("."));
		}
		if (val==0)
		{
			val="0";
		}

		while(val.length!=0)
		{
			
			if(val.length>3)
			{
				result=","+val.substring(val.length-3)+result;
				val=val.substring(0,val.length-3);
			}
			else
			{
				result=val+result;
				val="";
			}
		}
		result=result+dec;
		return(result);
		}
	return(val);
	}

function trimZeros(value)
{
	temp=value.split("");
	result=value;
	for (i=0;i<temp.length;i++)
	{
		if("0"!=temp[i])
		{
			break;
		}
		else
		{
			result=result.substring(1);
		}
	}
	return(result);
}

function amountOnBlur(val)
{
	  //if(noSpaces(val))
	  if(hasSpaces(val))
	  {
			  alert(" Spaces are not allowed.");
			  val.select();
			  return false;
	  }
	  else
	  {		
			var num=val.value;
			var pat=new RegExp("[^.,0123456789]");
			var flag=num.search(pat);
			if (flag!=-1)
			{
					 alert(" Amount entered is not valid.");
					 val.select();
					 return false ;
			}
			else
			{
					val.value=formatCurrency(val.value);
					 return true ;
			}
	  }

}

function hasSpaces(field)
{
		if(field.value.indexOf(" ")!=-1)
		{
			return true;
		}
		else
		{
			return false;
		}
}

function removeChar(value,ch)
{		
	while(value.indexOf(ch)!=-1)
	{
			value=value.substring(0,value.indexOf(ch))+value.substring(value.indexOf(ch)+ch.length);
	}
	//alert(value);
	return value;
}

function currencyFormat(fld, milSep, decSep, e,maxlength,onnew) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true;  // Enter
key = String.fromCharCode(whichCode);  // Get key value from key code
if (onnew.value=="true")
{
	fld.value = '';
	onnew.value="false"
}
len = fld.value.length;
if ((strCheck.indexOf(key) == -1)||(len>= maxlength)) return false;  // Not a valid key
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}

function formatCurrency(num) {
num=trim(num);
num1 = num.toString().replace(/\$|\,/g,'');
if (num=='')
{
	return num;
}
if(isNaN(num1))
return num;
//num = "0";
num = num1;
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}


function Del(Word) {
a = Word.indexOf("<");
b = Word.indexOf(">");
len = Word.length;
c = Word.substring(0, a);
if(b == -1)
b = a;
d = Word.substring((b + 1), len);
Word = c + d;
tagCheck = Word.indexOf("<");
if(tagCheck != -1)
Word = Del(Word);
return Word;
}
function CheckHTMLTags(text) {
ToCheck = text.value;
Checked = Del(ToCheck);
text.value = Checked;
return true;
}



  function GetDay(intDay){
    var DayArray = new Array("Sunday", "Monday", "Tuesday", "Wednesday", 
                         "Thursday", "Friday", "Saturday")
    return DayArray[intDay]
    }

  function GetMonth(intMonth){
    /*var MonthArray = new Array("January", "February", "March",
                               "April", "May", "June",
                               "July", "August", "September",
                               "October", "November", "December") */
	var MonthArray = new Array("Jan", "Feb", "Mar",
                               "Apr", "May", "Jun",
                               "Jul", "Aug", "Sep",
                               "Oct", "Nov", "Dec")

    return MonthArray[intMonth] 	  	 
    }
  function getDateStrWithDOW(){
    var today = new Date()
    var year = today.getYear()
    if(year<1000) year+=1900
    var todayStr = GetDay(today.getDay()) + ", "
    todayStr += GetMonth(today.getMonth()) + " " + today.getDate()
    todayStr += ", " + year 
    return todayStr
    }

