//_ca = > alphanum
//_cz alphabetic
//_n number
//_e email
//_d date
//thisFrm._'+intRow+'txt'+indenti+'_First$name_z_30_0
//txt_Residence$Telephone$Number$1_cn_15_0
errors = new Array(0);
var currentIndex = 0;

var numErr=" can contain only numeric values";
var mandatoryErr=" can not be left blank";
var alphaNumErr=" can contain only alphanumeric values";
var alphaNumSpErr=" can contain only alphanumeric values and following special characters (!,_,#,@)";
var alphaErr=" can contain only alphabetic values";


function replaceSubstring(inputString,fromString,toString) 
{
	var temp = inputString;
	if (fromString == "") 
	{
		return inputString;
	}
	if (toString.indexOf(fromString) == -1) 
	{
		while (temp.indexOf(fromString) != -1) 
		{
			var toTheLeft = temp.substring(0,temp.indexOf(fromString));
			var toTheRight =temp.substring(temp.indexOf(fromString)+fromString.length,temp.length);
			temp = toTheLeft + toString + toTheRight;
		}
	} 
	else 
	{ 
		var midStrings = new Array("~", "`", "_", "^","#");
		var midStringLen = 1;
		var midString = "";
		while (midString == "")
		{
			for (var i=0; i < midStrings.length; i++) 
			{
				var tempMidString = "";
				for (var j=0; j < midStringLen; j++) 
				{
					tempMidString += midStrings[i]; 
				}
				if (fromString.indexOf(tempMidString) == -1) 
				{
					midString = tempMidString;
					i = midStrings.length + 1;
				}
			}
		} 
		while (temp.indexOf(fromString) != -1) 
		{
			var toTheLeft = temp.substring(0,temp.indexOf(fromString));
			var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length,temp.length);
			temp = toTheLeft + midString + toTheRight;
		}

		while (temp.indexOf(midString) != -1) 
		{
			var toTheLeft = temp.substring(0,
			temp.indexOf(midString));
			var toTheRight = temp.substring(temp.indexOf(midString)+midString.length,temp.length);
			temp = toTheLeft + toString + toTheRight;
		}
	} 
	return temp;
} 
  	function isNum(passedVal) {			

		if (passedVal=="") {
			return false;
			}
			for (i=0; i<passedVal.length; i++) {
				
				if (passedVal.charAt(i) < "0" && passedVal.charAt(i)!=".") {

					return false;
				}
				if (passedVal.charAt(i) > "9" && passedVal.charAt(i)!=".") {
				return false;
				}
			}
			return true

		}


  	function isDecPlace(passedVal) 
	{			
			for (i=0; i<passedVal.length; i++)
			{
				if (passedVal.charAt(i)==".") 
				{
					return false;
				}
			}
			return true;
	}




  	function isNumPosNeg(passedVal) {		
		
		if (passedVal=="") {
			return false;
			}	
			for (i=0; i<passedVal.length; i++) {
				
				
				if (  (i==0) && (passedVal.charAt(i)=="+" || passedVal.charAt(i)=="-")  )
				{
						if (passedVal.length==1)
						{
							return false;	
						}				
						continue;
				}
				else
				{
				
					if (passedVal.charAt(i) < "0" && passedVal.charAt(i)!="." ){

						return false;
					}
					if (passedVal.charAt(i) > "9" && passedVal.charAt(i)!=".") {

					return false;
					}
				}
			
			}
			return true
		}


	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;
			}
			return true;
			}

	function isValidDate(dateStr)
  {
	 var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); 
	if (matchArray == null) {
			appendErrorMessage("Please Enter MM/DD/YYYY format.")
	return false;
	}
	month = matchArray[1];
	day = matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12) { 
		appendErrorMessage("Month must be between 1 and 12.");
		return false;
	}
		if (day < 1 || day > 31) {
			appendErrorMessage("Day must be between 1 and 31.");
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			appendErrorMessage("Month "+month+" doesn't have 31 days!")
			return false
		}
		if (month == 2) { 
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			appendErrorMessage("February " + year + " doesn't have " + day + " days!");
		return false;
	   }
	}
	return true;  
}

// Following function rounds the input number to specified precision
// e.g. If input number is 123.1234 & if X is 2, then this function will return 123.12
function round(number,X)
{
	X = (!X ? 2 : X);
    X = Math.round(number*Math.pow(10,X))/Math.pow(10,X);
	return X;
}


function fnValidateAlphaNumeric(strValue)
{
	var i;
	if (strValue =="")
	{
		return true;
	}
	else
	{
		for(i = 0; i < strValue.length; i++)
		{
			if(strValue.charAt(i) < "0" || strValue.charAt(i) > "9")
			{
				if(strValue.charAt(i) < "a" || strValue.charAt(i) > "z")
				{
					if(strValue.charAt(i) < "A" || strValue.charAt(i) > "Z")
					{
						if(strValue.charAt(i) != " " && strValue.charAt(i) != "-" && strValue.charAt(i) != "("  && strValue.charAt(i) != ")" )
						{
							return false;
						}
					}
				}
			}
		}
		return true;
	}
}

function fnValidateAlphabetic(strValue)
{
	var i;
	if (strValue =="")
	{
		return true;
	}
	else
	{
		for(i = 0; i < strValue.length; i++)
		{
				if(strValue.charAt(i) < "a" || strValue.charAt(i) > "z")
				{
					if(strValue.charAt(i) < "A" || strValue.charAt(i) > "Z")
					{
						if (strValue.charAt(i)!=' ')
						{
						  return false;
						}
					}
				}
		}
		return true;
	}
}

function fnValidateAlphaNumericSp(strValue)
{
	var i;
	if (strValue =="")
	{
		return true;
	}
	else
	{
		for(i = 0; i < strValue.length; i++)
		{
			if(strValue.charAt(i) < "0" || strValue.charAt(i) > "9")
			{
				if(strValue.charAt(i) < "a" || strValue.charAt(i) > "z")
				{
					if(strValue.charAt(i) < "A" || strValue.charAt(i) > "Z")
					{
						if(strValue.charAt(i) != "@" && strValue.charAt(i) != "_" && strValue.charAt(i) != "#" && strValue.charAt(i) != "!" ) 
						{
							return false;
						}
					}
				}
			}
		}
		return true;
	}
}


function fnValidateAlphaNumeric_w(strValue)
{
	var i;
	var blnFound = false;
	if (strValue =="")
	{
		return true;
	}
	else
	{
		for(i = 0; i < strValue.length; i++)
		{

		
			if(strValue.charAt(i)=="*")
			{
				if (!blnFound)
				{
					blnFound = true;
				}
				else
				{
					return false;
				}
			}
			else
			{
			if(strValue.charAt(i) < "0" || strValue.charAt(i) > "9")
			{
				if(strValue.charAt(i) < "a" || strValue.charAt(i) > "z")
				{
					if(strValue.charAt(i) < "A" || strValue.charAt(i) > "Z")
					{
					  return false;
					}
				}
			}
		}
		}
		return true;
	}
}

function fnValidateNumeric_w(strValue)
{
	var i;
	var blnFound = false;
	if (strValue =="")
	{
		return true;
	}
	else
	{
		for(i = 0; i < strValue.length; i++)
		{
			if(strValue.charAt(i)=="*")
			{
				if (!blnFound)
				{
					blnFound = true;
				}
				else
				{
					return false;
				}
			}
			else
			{
				if(strValue.charAt(i) < "0" || strValue.charAt(i) > "9")
				{
					if(strValue.charAt(i) < "a" || strValue.charAt(i) > "z")
					{
						if(strValue.charAt(i) < "A" || strValue.charAt(i) > "Z")
						{
							if(strValue.charAt(i) != " ") 
							{
								return false;
							}
						}
					}

				}
			
			}
		}
		return true;
	}
}
var CONST_DECIMAL_CHAR = '.'; 
function fnLtrim(strString)
{
	 var i=0;
	 var intLen = strString.length;

	 while((strString.charAt(i) == " ") && ( i < intLen))
	  {
	   i++;
	   }
	 strString = strString.substring(i,intLen);
	 return  strString;
}

function fnRtrim(strString)
{

	 var intLen = strString.length;
	 var i= intLen-1;

	 while((strString.charAt(i) == " ") && ( i > 0 ))
	  {
	   i--;
	   }

	 strString = strString.substring(0,i+1);
	 return strString;
}
function trim(strString)
{
	strString = fnLtrim(strString);
	strString = fnRtrim(strString);
	return strString;
}
function isInNumberFormat(arg,expr,exact ,blnSign)
{

	/*if (blnSign)
	{
		appendErrorMessage("1- its true");
		if (!isNaN(arg))
		{
			appendErrorMessage("1- its a no");
			if (arg<0)
			{
				appendErrorMessage("1- its a no *-1");
				arg = (String) (-1 * arg);
			}
			else
			{
					appendErrorMessage("1- its a no *+1");
					arg = (String) (1 * arg);
					appendErrorMessage("1- its a no *+1 " + arg);
			}
		}

	}
	*/
	if (arg==null|| arg=='')
	{
		arg='0';
	}	

  	var expArray= new Array;
	var valArray= new Array;
	var expmatch='';
	var decimal =false;
	var decimalInValue =false;
	var noDecChars=0
	var noNumChars=0
	var noRealPlaces=0;
	var noDecPlaces=0;
	if (expr.indexOf(".") >=0) 
	{
		expArray =expr.split(".")
		decimal =true;
		noDecPlaces= expArray[1].substring(expArray[1].indexOf("(")+1,expArray[1].indexOf(")"))
	
	}
	else
	{
		expArray[0]=expr;

	}
	noRealPlaces =expArray[0].substring(expArray[0].indexOf("(")+1,expArray[0].indexOf(")"))	

	if (((decimal && noDecPlaces==0) || noRealPlaces==0))
	{
		return false;
	}




	if (arg.indexOf(".") >=0 )
	{
		valArray= arg.split(".")
		decimalInValue=true;
	}
	else	
	{
		valArray[0]=arg
		valArray[1]='0000'
		decimalInValue=false;
	
	}
   if( decimal!=decimalInValue && exact=="E")
	{
		
	  return false	
	}

	if((valArray[1] =='' && expArray[0]=='' && (decimal== decimalInValue)))
   {
		
		return false;
   }

	if((expArray[0]=='' && valArray[0] !='' && valArray[1] !='' && (decimal== decimalInValue)))
   {
		
		return false;
   }

		
	if( (decimal== decimalInValue && valArray[0]=='' && exact==''))
	{
		
		valArray[0]=000
		expArray[0]='9(0)'
		

	}


	if (expArray[0].charAt(0)=='9' )
	{
		if (expArray[0].indexOf("(") > 0)
		{
			
			noNumChars= expArray[0].substring(expArray[0].indexOf("(")+1,expArray[0].indexOf(")"));
			noRealPlaces=noNumChars;
			if (noRealPlaces==0 )
			{
				return false;
			}	
			if (exact=="E")
			{
				expmatch="^\\d{"+noNumChars+"}";
			}
			else
			{	
				if (decimalInValue)
				{	
					
						expmatch="^\\d{0,"+noNumChars+"}";
			   		noDecPlaces=noNumChars;
						if (noDecPlaces==0 )
						{
							return false;
						}	
				}
				else
				{	
					expmatch="^\\d{0,"+noNumChars+"}";
				}
				
			}

		}
		else
		{
			if (decimal && exact!="E" )
			{
				
				expmatch= "^\\d\\d*";
				
						
			}
			else
			{
				expmatch= "^\\d{0,9}";
				
			}	
	
		}

		if (decimal)
		{
			
			if (decimalInValue)
			{
				expmatch= expmatch+ "\\.?";
				if (expArray[1].charAt(0)=='9' )
				{
					if (expArray[1].indexOf("(") > 0)
					{
						
						noNumChars= expArray[1].substring(expArray[1].indexOf("(")+1,expArray[1].indexOf(")"))	
						
						if (exact=="E")
						{
							
							expmatch= expmatch +"\\d{"+noNumChars+"}";
							
						}
						else
						{	
							expmatch= expmatch+ "\\.?";
							if (valArray[1]==null || valArray[1]=='' )
							{
								expmatch= expmatch +"\\d{1,"+noNumChars+"}";
							}
							else
							{
								expmatch= expmatch +"\\d{0,"+noNumChars+"}";
							}	
						}
			
					}
					else
					{
						if (valArray[1]==null || valArray[1]=='' )
						{
							expmatch= expmatch +"\\d{1,9}";
						}
						else
						{
							expmatch= expmatch +"\\d{0,9}";
						}
		
					}
			
			
				}
			} 

		}




	}


	expmatch= expmatch+"$";
	exp= new RegExp(expmatch,"g");
	return exp.test(arg);
}
//here are validations from SVAS validations
function appendErrorMessage(msg)
{
	errors[currentIndex] = msg;
	currentIndex = currentIndex +1;
}

/**
 *	This method would always be used for displaying the error messages on the screen.
 **/
function displayErrorMessage(errorTitle)
{
	//appendErrorMessage("inside display" + bim)
	/*if(errorTitle==undefined)
	{
     errorTitle="<LI>You must correct the following error(s) before proceeding:</LI>";
	}*/

	//var errorMsg="<p class=\"error\"> please correct following error(s)</p><br><ul class=\"error\">";
	var errorMsg= "" /*errorTitle+ "<br><ul>"*/;
	var len = errors.length;
	var count;
	var flag=0;

	for (count=0; count<len;count++ )
	{
		if (errors[count] !=null)
		{
//			errorMsg= errorMsg +"<li>"+ errors[count];
			errorMsg= errorMsg +"\n"+ errors[count];
			flag = 1;
		}
	}
	if (flag == 1)
	{
//		errorMsg = errorMsg + "</ul>";
		showError(errorMsg,errorTitle);
		errors.length=0;
		currentIndex=0;
		return false;
	}
	return true;
}

function showError(errorMsg,errorTitle)
{
	if(errorTitle==undefined)
	{
		errorTitle="You must correct the following error(s) before proceeding:";
	}
	alert(errorMsg);
/*	if (document.all)
	{*/
	//	alert("display msg" + errorMsg);
		/*document.getElementById("tblError").style.display = 'block';
		document.getElementById("thError").innerHTML=errorTitle;
		document.getElementById("tdError").innerHTML=errorMsg;*/
/*		document.all.tblError.style.display = 'block';
		document.all.thError.innerHTML=errorTitle;
		document.all.tdError.innerHTML=errorMsg;
*/
	//}
}


//added by virali to validate single field at a time based on its naming convention.
//this was done as we need row level validations in form
//& for somefields it will come based on naming

function fnCheckField(nameOfElement,valueOfElement)
{
	var str1stPass="";
	var str2ndPass="";

	var intPos1 = nameOfElement.lastIndexOf("_");
	var intDecCnt = nameOfElement.substring(intPos1+1);
	nameOfElement=nameOfElement.substring(0,intPos1);
	intPos1 = nameOfElement.lastIndexOf("_");
	var intMaxLen = nameOfElement.substring(intPos1+1);
	nameOfElement=nameOfElement.substring(0,intPos1);
	var pos=nameOfElement.lastIndexOf("_");
	var name=nameOfElement.substring(0,pos);
	var pos1=name.lastIndexOf("_");
	var name=name.substring(pos1+1);
	var intEndPos=nameOfElement.length;
	var int2ndPos=nameOfElement.length-2;
	var int3rdPos=nameOfElement.length-3;
	if(!(name.indexOf("$")==-1))
	{
		name = replaceSubstring(name,"$"," ");
	}

	if (nameOfElement.substring(int3rdPos,intEndPos)=="_p1")
	{
		
		if (valueOfElement=="") 
		{
			appendErrorMessage("You must enter a password.");
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceededin the field" + name);
				}
			}
		}
		str1stPass=valueOfElement;
	}

	if (nameOfElement.substring(int3rdPos,intEndPos)=="_p2")
	{
		if (valueOfElement=="") 
		{
			appendErrorMessage("You must enter a confirm password.");
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceededin the field for" + name);
				}
			}
		}
		str2ndPass=valueOfElement;
	}
  	if (str1stPass!="" && str2ndPass!="")
	{
		if(str1stPass!=str2ndPass)
		{
		      appendErrorMessage("Entered passwords did not match.");
		}
	}
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_n" && valueOfElement!="" )
	{
		var isNumValid=isNum(valueOfElement);	
		if(!isNumValid)
		{
			appendErrorMessage(name+numErr);
	    }
		 else
		 {
			if(intMaxLen>0)
			{
				var intVal = intMaxLen-intDecCnt;
				var strFormat = "9(" + intVal +")";
				if (intDecCnt > 0)
				{
					strFormat = strFormat+".9(" + intDecCnt + ")";
				}
				if (!isInNumberFormat(valueOfElement,strFormat,"",false))
				{
					if (intDecCnt==0)
					{
						if (!isDecPlace(valueOfElement))
						{
							appendErrorMessage("No decimal places allowed in the field for" + name);	
						}
						else
						{
							appendErrorMessage("Max length exceeded in the field for" + name);	
						}
					}
					else
					{
						if (valueOfElement.charAt(valueOfElement.length-1)==".")
						{
							appendErrorMessage( name+numErr);	
						}
						else
						{
							appendErrorMessage("Max length exceeded in the field for " + name);
						}
					}
				}
			}
		 }
	}		

	//new function added by ganesh		
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_p" && valueOfElement!="" )
	{
		var isNumValid=isNumPosNeg(valueOfElement);	
		if(!isNumValid)
		{
			appendErrorMessage(name+numErr);	
		 }
		 else
		 {
			if(intMaxLen>0)
			{
				var intVal = intMaxLen-intDecCnt;
				var strFormat = "9(" + intVal +")";
				if (intDecCnt > 0)
				{
					strFormat = strFormat+".9(" + intDecCnt + ")";
				}
				if(valueOfElement.substring(0,1)=="+" || valueOfElement.substring(0,1)=="-")
				{
					valueOfElement= valueOfElement.substring(1,valueOfElement.length);
				}
				if (!isInNumberFormat(valueOfElement,strFormat,"",true))
				{
					if (intDecCnt==0)
					{
						if (!isDecPlace(valueOfElement))
						{
							appendErrorMessage("No decimal places allowed in this field for " +name);	
						}
						else
						{
							appendErrorMessage("Max length exceeded in the field for " + name);	
						}
					}
					else
					{
						if (valueOfElement.charAt(valueOfElement.length-1)==".")
						{
							appendErrorMessage(name+numErr);	
						}
						else
						{
							appendErrorMessage("Max length exceeded in the field for " + name);
						}
					}
				}
			}
		 }
	}		
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_c" )
	{
		if(trim(valueOfElement)=="")
		{
			appendErrorMessage(name + mandatoryErr);
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceeded in the field for " + name);
				}
			}
		}
	}
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_e" && valueOfElement!="")
	{
		isValidEmail=validEmail(valueOfElement);
		if(!isValidEmail)
		{
			   appendErrorMessage(name + " contains invalid email address.");
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceeded for " +name);
				}
			}
		}
	}
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_d" && valueOfElement!="")
	{
		var isDateValid=isValidDate(valueOfElement);	
		if(!isDateValid)
		{
			appendErrorMessage("Invalid date for " + name);	
		}
	}		
	if(nameOfElement.substring(int3rdPos,intEndPos)=="_cn" )
	{
		if (valueOfElement=="")
		{
			appendErrorMessage(name+mandatoryErr);
		}
		else
		{
			var isNumValid=isNum(valueOfElement);	
			if(!isNumValid)
			{
				appendErrorMessage(name + numErr);	
			}
			else
			{
				if(intMaxLen>0)
				{
					var intVal = intMaxLen-intDecCnt;
					var strFormat = "9(" + intVal +")";
					if (intDecCnt > 0)
					{
						strFormat = strFormat+".9(" + intDecCnt + ")";
					}
					if (!isInNumberFormat(valueOfElement,strFormat,"",false))
					{
						if (intDecCnt==0)
						{
							if (!isDecPlace(valueOfElement))
							{
								appendErrorMessage("No decimal places allowed in the field for " + name);	
							}
							else
							{
								appendErrorMessage("Max length exceeded in the field for " + name);	
							}
						}
						else
						{
							if (valueOfElement.charAt(valueOfElement.length-1)==".")
							{
								appendErrorMessage(name+numErr);	
							}
							else
							{
								appendErrorMessage("Max length exceeded for " + name);
							}
						}
					}
				}
			}
		}		
	}
	if(nameOfElement.substring(int3rdPos,intEndPos)=="_cp")
	{
		var isNumValid=isNumPosNeg(valueOfElement);	
		if(!isNumValid)
		{
			appendErrorMessage(name+numErr);	
		}
		else
		{
			if(intMaxLen>0)
			{
				var intVal = intMaxLen-intDecCnt;
				var strFormat = "9(" + intVal +")";
				if (intDecCnt > 0)
				{
					strFormat = strFormat+".9(" + intDecCnt + ")";
				}
				if(valueOfElement.substring(0,1)=="+" || valueOfElement.substring(0,1)=="-")
				{
					valueOfElement= valueOfElement.substring(1,valueOfElement.length);
				}
				if (!isInNumberFormat(valueOfElement,strFormat,"",true))
				{
					if (intDecCnt==0)
					{
						if (!isDecPlace(valueOfElement))
						{
						appendErrorMessage("No decimal places allowed  in the field for " + name);	
						}
						else
						{
						appendErrorMessage("Max length exceeded in the field for " + name);	
						}
					}
					else
					{
						if (valueOfElement.charAt(valueOfElement.length-1)==".")
						{
							appendErrorMessage(name+numErr);	
						}
						else
						{
							appendErrorMessage("Max length exceeded in the field for " + name);
						}
					}
				}
			}
		}
	}		
	if(nameOfElement.substring(int3rdPos,intEndPos)=="_ce")
	{
		isValidEmail=validEmail(valueOfElement);
		if(!isValidEmail)
		{
		   appendErrorMessage("Invalid Email ID.");
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceeded.");
				}
			}
		}
	}
	if(nameOfElement.substring(int3rdPos,intEndPos)=="_cd" )
	{
		if (valueOfElement=="")
		{
			appendErrorMessage(name+mandatoryErr);
		}
			var isDateValid=isValidDate(valueOfElement);
			if(!isDateValid)
			{
				appendErrorMessage("Invalid Date for " + name);
	  		}
   		}		
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_a" && valueOfElement!="" )
	{
		var isNumValid=fnValidateAlphaNumeric(valueOfElement);	
		if(!isNumValid)
		{
			  appendErrorMessage(name + alphaNumErr);
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceeded for " + name);
				}
			}
		 }
	}		
	if(nameOfElement.substring(int2ndPos,intEndPos)=="_z" && valueOfElement!="" )
	{
		var isNumValid=fnValidateAlphabetic(valueOfElement);	
		if(!isNumValid)
		{
			appendErrorMessage(name + alphaErr);
		}
		else
		{
			if (intMaxLen>0)
			{
				if(valueOfElement.length > intMaxLen)
				{
					appendErrorMessage("Max length exceeded for "+name);
				}
			}
		}
	}		
	if(nameOfElement.substring(int3rdPos,intEndPos)=="_ca" )
	{
		if (valueOfElement=="")
		{
			appendErrorMessage(name+mandatoryErr);
		}
		var isNumValid=fnValidateAlphaNumeric(valueOfElement);	
		if(!isNumValid)
		{
			appendErrorMessage(name+alphaNumErr);
		}
		else
		{
		if (intMaxLen>0)
		{
			if(valueOfElement.length > intMaxLen)
			{
				appendErrorMessage("Max length exceeded for " +name);
			}
		}
	}
}		
if(nameOfElement.substring(int3rdPos,intEndPos)=="_cz" )
{
	if (valueOfElement=="")
	{
		appendErrorMessage(name+mandatoryErr);
	}
    var isNumValid=fnValidateAlphabetic(valueOfElement);	
    if(!isNumValid)
	{
		appendErrorMessage(name+alphaErr);
    }
	else
	{
		if (intMaxLen>0)
		{
			if(valueOfElement.length > intMaxLen)
			{
				appendErrorMessage("Max length exceeded for "+name);
			}
		}
	 }
}		

if(nameOfElement.substring(int3rdPos,intEndPos)=="_cx" )
{
	if (valueOfElement=="")
	{
		appendErrorMessage(name+mandatoryErr);
	}
    var isNumValid=fnValidateAlphaNumericSp(valueOfElement);
	if(!isNumValid)
	{
		appendErrorMessage(name + alphaNumSpErr);
	}
	else
	{
		if (intMaxLen>0)
		{
			if(valueOfElement.length > intMaxLen)
			{
				appendErrorMessage("Max length exceeded for " + name);
			}
		}
	 }
}		

	if(nameOfElement.substring(int2ndPos,intEndPos)=="_w" && valueOfElement!="" ){
		    var isNumValid=fnValidateAlphaNumeric_w(valueOfElement);	
     		   if(!isNumValid){
			      appendErrorMessage("Please enter valid search string.");
		     }
			 else
			 {
				if (intMaxLen>0)
				{
					if(valueOfElement.length > intMaxLen)
					{
						appendErrorMessage("Max length exceeded.");
					}
				}
			 }
	}		


	if(nameOfElement.substring(int2ndPos,intEndPos)=="_q" && valueOfElement!="" ){
		    var isNumValid=fnValidateNumeric_w(valueOfElement);	
     		   if(!isNumValid){
			      appendErrorMessage("Please enter valid search string.");
		     }
			 else
			 {
				if (intMaxLen>0)
				{
					if(valueOfElement.length > intMaxLen)
					{
						appendErrorMessage("Max length exceeded.");
					}
				}
			 }
	}		
    if (nameOfElement.substring(int3rdPos,intEndPos)=="_mm" || nameOfElement.substring(int3rdPos,intEndPos)=="_dd" || nameOfElement.substring(int3rdPos,intEndPos)=="_yy")
	{
 		switch (nameOfElement.substring(int3rdPos,intEndPos)) {
 		case "dd_":
		var DD1=thisForm.elements[""+nameOfElement.substring(0,nameOfElement.length)+""].value;
         		break;
      	case "mm_":
         		var MM1=thisForm.elements[""+nameOfElement.substring(0,nameOfElement.length)+""].value;  	     
         		break;
      	case "yy_":
    		var YY1=thisForm.elements[""+nameOfElement.substring(0,nameOfElement.length)+""].value;
		break;
	  }
	  
	var datval=(""+MM1+"/"+DD1+"/"+YY1+"");
	
	var isDateValid=isValidDate(datval);  
	  if(!isDateValid){
	    		return false;
		 }
	}
   
//alert("error cnt" + currentIndex);
if (currentIndex==0)
{
	return true;
}
else
{
	return false;
}
}


// Following function checks if the field has only blank spaces as its values
function isBlank(data)
{
	if (trim(data) == "")
	{
		return true;
	}
	return false;
}

function showHand(obj)
{
	obj.style.cursor = 'hand'; 
}
function setBGColor(obj,strBGColor, strForeColor)
{
	obj.style.background = strBGColor; 
	obj.style.color = strForeColor;
}

function getAge(dateOfBirth)
{
	//Set the two dates
	today=new Date();
var birthDate =new Date(dateOfBirth) //Month is 0-11 in JavaScript
//if (today.getMonth()==11 && today.getDate()>25) //if Christmas has passed already
///christmas.setFullYear(christmas.getFullYear()+1) //calculate next year's Christmas
//Set 1 day in milliseconds
var one_yr=1000*60*60*24*365

//Calculate difference btw the two dates, and convert to days
return (Math.ceil(((today.getTime()-birthDate.getTime())/(one_yr))-1));

}

//added by rajul for sports 
function isValidDateDDMMformat(dateStr)
  {
	 var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/;

	var matchArray = dateStr.match(datePat); 
	if (matchArray == null) {
			appendErrorMessage("Please Enter DD/MM/YYYY format.")
	return false;
	}
	month = matchArray[3];
	day = matchArray[1];
	year = matchArray[4];
	if (month < 1 || month > 12) { 
		appendErrorMessage("Month must be between 1 and 12.");
		return false;
	}
		if (day < 1 || day > 31) {
			appendErrorMessage("Day must be between 1 and 31.");
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			appendErrorMessage("Month "+month+" doesn't have 31 days!")
			return false
		}
		if (month == 2) { 
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
			appendErrorMessage("February " + year + " doesn't have " + day + " days!");
		return false;
	   }
	}
	return true;  
}

//used for stopping user to paste his email addr in verify email id field
//usage: <input type="password" name="txt_Confirm$Password_cz_50_0"  onkeydown="preventPasting(event)" oncontextmenu="return false" size="20" maxlength="50" style="font-family: Verdana; font-size: 10pt; border: 1.0 solid #808080">
function preventPasting(e)
	{
		var code;
		if(typeof(e.keyCode) != "undefined")		
			code = e.keyCode;
		else if(typeof(e.charCode) != "undefined")	
			code = e.charCode;
		else return false;
		if(e.ctrlKey && code==86)
		{
				e.returnValue = false;
				if(e.preventDefault)
					e.preventDefault();
		}
	}
