// Note: All developers are requested to either return true or false explicetly while adding a function to the file.

// Usage in jsp/html file: 		if(!chkBlank(document.f1.Username,'User Name')) return false;

/* This function makes the field compulsary. */
var dtCh= "-";
var minYear=1900;
var maxYear=2100;
function chkBlank(formelement,text)
{
	var eleVal = formelement.value;
	var len = eleVal.length;
	while(eleVal.substring(0,1) == ' '){
		eleVal = eleVal.substring(1, len);
	}

	if (eleVal == '')
	{
		alert('Enter '+text);		
		formelement.focus();
		return false;
  }
	else
	{
		return true;
	}
}


function checkAlphaNumeric(sText)

{
	//alert("isnumaric method called ");
   var ValidChars ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         
         alert("Please Enter Alpha Numeric Character Only");
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }



function IsNumeric(sText)

{
	//alert("isnumaric method called ");
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         
         alert("Please Enter Numeric Value Only ");
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

function chkNaN(formelement,text)
{
	var pattern = "^[0-9]+$";	
	var regex = new RegExp(pattern)
	if (regex.test(formelement.value)) return true;
	else{
		alert('Enter Numeric '+text);
		formelement.value="";
		formelement.focus();
		return false; 
	}
}

/*	This function validates ONLY ALPHA CHARACTERS	*/
/*function chkAlpha(formelement, text){
	var pattern = "[^a-zA-Z]+$";			
	var checkAlpha = new RegExp(pattern);
	if(checkAlpha.test(formelement.value)){
		alert("Invalid Characters in "+text);
		formelement.focus();
		return false;
	}else{	
		return true;
	}
}*/

	function chkAlpha(formelement, text){
		
		
		//alert("method called " + formelement);
			var pattern = "^[a-z A-Z ]+$";			
			var checkAlpha = new RegExp(pattern);
	
			if(checkAlpha.test(formelement.value)){
				return true;
			}else{	
				alert(""+text);
				formelement.focus();
				return false;
			}
	}

	
	
	
	
	function isAlphabet(elem, helperMsg){
		var alphaExp = /^[a-zA-Z]+$/;
		if(elem.value.match(alphaExp)){
			return true;
		}else{
			alert(helperMsg);
			elem.focus();
			return false;
		}
	}

	
	/*function chkAlpha(formelement){
		
		
		alert("method called " + formelement);
			var pattern = "^[a-z A-Z ]+$";			
			var checkAlpha = new RegExp(pattern);
	
			if(checkAlpha.test(formelement)){
				return true;
			}else{	
				alert("Invalid Characters in ");
				formelement.focus();
				return false;
			}
	}*/
	
	
/* This function is used to trim the leading and trailing spaces from given string.
   Useful to remove unwanted spaces before processing string value in JavaScript. */

function trim(str)
{
    var k=0;
    var i=0;
    var j=0;
    k   =   str.length;
    while ( str.charAt (j) == ' ' )
       j++;

    i   =   k;
    while ( str.charAt (i-1) == ' ' )
        i   =   i-1;
    if ( j != k )
        trimstr = str.substring(j,i);
    else
        trimstr = '';
    return trimstr;
}


/*Function to check if a float eg. 20.22 is in proper format.
parameters :
	formElementObject - Object of the form element
	displayText - Name of field (String)
	isRequired - true if this field should not be empty, false otherwise.(boolean)

	Note : More suitable for onBlur event
*/
function isDigit(formElementObject, displayText, isRequired) {	
	var eleValue = trim(formElementObject.value);

	if(formElementObject == null || displayText == '') {
		alert('Incorrect call for Validation');
		return false;
	}

	if(eleValue == '' && isRequired == true) {
		alert('Please provide value for '+displayText);
		if(formElementObject.type != "hidden"){
			formElementObject.focus();
		}		
		return false;
	}

	if(eleValue != '') {
		if(eleValue.indexOf('.') != -1) {
			var eleArr = eleValue.split('.');			
			if(eleArr.length > 2) {				
				alert('Enter a valid ' + displayText);
				if(formElementObject.type != "hidden"){
					formElementObject.focus();
				}
				return false;
			} else {
				var pattern = "^[0-9]+$";	
				var regex = new RegExp(pattern);
				if (!regex.test(eleArr[0])){
					alert('Enter Numeric '+displayText);
					formelement.focus();
					return false; 
				}

				if (!regex.test(eleArr[1])){
					alert('Enter Numeric '+displayText);
					formelement.focus();
					return false; 
				}				

				/*if(isNaN(eleArr[0]) || isNaN(eleArr[1])) {
					alert('Enter a valid ' + displayText);
					formElementObject.focus();
					return false;
				}*/
			}
		} else {
			if(!chkNaN(formElementObject, displayText)){
				return false;			
			}else{
				return true;
			}
		}
	}
	return true;
}

/*
function isEmail(theField){
	var pattern = ".+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)"
	var regex = new RegExp(pattern)
	if (regex.test(theField.value)) return true;
	else
		return warnInvalid (theField, "Incomplete or Invalid Email")
}
*/

/* This function checks for a valid email address. */

function chkEmail(formelement,text)
{	
	if(formelement.value!='')
	{
/*		var b=formelement.value.indexOf('@');
		var c=formelement.value.indexOf('.');
		var d=c-b;
		var len=formelement.value.length;

		if((d==0)||(c==-1)||(b==-1)||(d==1)||((len-c)==1))
		{
			alert("Enter a valid "+text);
			formelement.focus();
			return false;
		}
		else
		{
			return true;
		}
	}*/

		//-[was in use]--prevar pattern = ".+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)"
		//[was not in use]var pattern = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"
		
		//--THE COMPLETE REGULAR EXPRESSION PATTERN TO CHECK VALID EMAIL....[WORKING]
	    var pattern = "^(([a-zA-Z0-9]+)(([.|_|-]{0,1})([a-zA-Z0-9]+))*)@(([0-9a-zA-Z]+)([_|-][0-9a-zA-Z])*.)+([a-zA-z0-9]{2,5})$";
		var regex = new RegExp(pattern)
		if (regex.test(formelement.value)){
			return true;
		}
		else
		{
			alert("Enter a valid "+text);
			formelement.focus();
			return false;
		}
	}else{
		alert("Enter a valid "+text);
		formelement.focus();
		return false;
	}
}

/* This function checks for the minimum characters. */

function chkLessLen(formelement,text,len)
{
	if(formelement.value.length<parseInt(len))
	{
		alert('The '+text+' should not be less than '+len+' characters');
		formelement.focus();
		return false;
	}
	else
	{
		return true;
	}
}

/* This function checks for the maximum characters. */

function chkGreaterLen(formelement,text,len)
{ // alert("method called " + formelement.value +" text is " + text +"Length is " + len);

	if(formelement.value.length>parseInt(len))
	{
		alert('The '+text+' should not be Greater than '+len+' characters');
		formelement.focus();
		return false;
	}
	else
	{
		return true;
	}
}

/* This function checks for special characters. */

function chkSpecialChar(formelement,text)
{
	var msg='true';
	var a=formelement.value;
	var b=a.length;
	var cha='`~!@#$%^&()+-[]{}/|;:,<>.?';
	var ch=cha.length;
	var i,j;
	for(i=0;i<ch;i++)
	{
		var ch1=cha.substring(i,i+1);
		for(j=0;j<b;j++)
		{
			var a1=a.substring(j,j+1);
			if(a1==ch1)
			{
				msg='Special Characters like ' +cha+ 'are not allowed in '+text;
				alert(msg);
				formelement.focus();
				return false;
			}
		}
	}
	if (msg=='true')
	{
	return true;
	}
}

/* This function checks for special characters other than characters allowed. */

function chkAllowSpecialChar(formelement, text, allow_numeric, char_allow)
{
	var msg='true';
	var allow_char = "";

	for(c=0;c<char_allow.length;c++){
		allow_char = allow_char + char_allow.charCodeAt(c) + ",";
	}

	var spl_char = allow_char.split(",");	

	var user_val = formelement.value;
	if(user_val != ""){
		user_val_con :
		for(t=0;t<user_val.length;t++){
			if(user_val.charCodeAt(t) < 65 ||  user_val.charCodeAt(t) > 122){
				if(allow_numeric == "Y" && ( user_val.charCodeAt(t) > 47 &&  user_val.charCodeAt(t) < 58)){
					continue;
				}else if(allow_numeric == "N" && ( user_val.charCodeAt(t) > 47 &&  user_val.charCodeAt(t) < 58)){
					msg = "Numeric Characters is not allowed in "+ text;
					break;
				}

				for(p=0;p<spl_char.length-1;p++){
					if(user_val.charCodeAt(t) == spl_char[p]){
						continue user_val_con;
					}
				}
				
				if(msg == 'true'){
					msg = "Character "+user_val.charAt(t)+" is not allowed in "+ text;
					alert(msg);
					formelement.focus();
					return false;
				}				
			}else if(user_val.charCodeAt(t) > 90 &&  user_val.charCodeAt(t) < 97){
				for(p=0;p<spl_char.length-1;p++){
					if(user_val.charCodeAt(t) == spl_char[p]){
						continue user_val_con;
					}
				}
				msg = "Character "+user_val.charAt(t)+" is not allowed in "+ text;
				alert(msg);
				formelement.focus();
				return false;
			}
		}
	}	
	
	if (msg == 'true'){
		return true;
	}else{
		alert(msg);
		formelement.focus();
		return false;
	}
}

/* This function checks for spaces in the field. */

function chkSpace(formelement,text)
{
	var msg='true';
	var a=formelement.value;
	var b=a.length;
	var i,j;
		for(j=0;j<b;j++)
		{
			var a1=a.substring(j,j+1);
			if(a1==' ')
			{
				msg='Spaces are not allowed in '+text;
				alert(msg);
				formelement.focus();
				return false;
			}
		}

	if (msg=='true')
	{
	return true;
	}
}

/* This function compels the user to enter number greater than 0. */

function chkLEZero(formelement,text)
{
	if (formelement.value <= 0)
	{
		alert('Enter the '+text+' greater than 0.');
		formelement.focus();
		return false;
	}
	else
	{
		return true;
	}
}

/* This function checks for identical username & passwords. */

function chkUserPass(formelement1,formelement2)
{
	var user=formelement1.value;
	var pass=formelement2.value;

	if (user == pass)
	{
		alert('Username & password cannot be the same.');
		formelement2.value = "";
		if(formelement2.type != "hidden"){
			formelement2.focus();
		}		
		return false;
	}
	else
	{
		return true;
	}
}

/* This function checks for identical passwords. */

function chkPassword(formelement1,formelement2)
{
	var password1=formelement1.value;
	var password2=formelement2.value;

	if (password1 != password2)
	{
		alert('Password do not match.');
		if(formelement1.type != "hidden"){
			formelement1.focus();
		}		
		return false;
	}
	else
	{
		return true;
	}
}

/* This function compels the user to select a value in the list box. */
function chkListBlank(formelement,text)
{	
	if (formelement.options[formelement.selectedIndex].value=='')
	{
		alert('Select '+text);
		formelement.focus();
		return false;
	}
	else
	{
		return true;
	}
	return false;
}

/* This function compels the user to select atleast one radio button. */

function chkRadio(formelement,text)
{
	var flag='false';
	if(formelement.checked==true){
		flag='true';
	}
	else{
		for (var i =0;i<formelement.length;i++ ){
			if(formelement[i].checked==true){
				flag='true';
			}
		}
	}
	if (flag=='false')
	{
		alert('Select '+text);
		return false;
	}
	else
	{
		return true;
	}

}

/* This function is used to check if the given string containes single quote chracter*/

function hasQuotes(str)
{
    var ch="'";
    if(str.indexOf(ch)==-1)
    return false;
    return true;
}

/* This function is used to open a new pop-up window. */
function OpenWin (link, windowName)
{
    loc =   link;
    win =   window.open (loc,windowName,'top=150,left=75,height=300,width=600,scrollbars=yes,status=no,toolbar=no,resizable=yes') ;
    win.focus();

}

/* Used for rounding off value. Deprecated. Insted use function round_decimals given below. */
function roundOff(value, precision)
{
        value = "" + value //convert value to string
        precision = parseInt(precision);

        var whole = "" + Math.round(value * Math.pow(10, precision));

        var decPoint = whole.length - precision;

        if(decPoint != 0)
        {
                result = whole.substring(0, decPoint);
                result += ".";
                result += whole.substring(decPoint, whole.length);
        }
        else
        {
                result = whole;
        }
        return result;
}

/* Used for rounding off decimal values to the correct decimal precision. */

function round_decimals(original_number, decimals)
{
 var result1 = original_number * Math.pow(10, decimals)
 var result2 = Math.round(result1)
 var result3 = result2 / Math.pow(10, decimals)
 return pad_with_zeros(result3, decimals)
}

/* Internally used by round_decimals function for padding amount with zeros while rounding off. */

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()

    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {

        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0

        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }

    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length

    if (pad_total > 0) {

        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++)
            value_string += "0"
        }
   // alert("deci :"+value_string);
    return value_string
}

	//use this function to disable form element
function disable(elem) { // elem: form element to be disabled
  elem.onfocus=elem.blur;
}
	//use this function to enable form element
function enable(elem) { // elem: form element to be reenabled
  elem.onfocus=null;
}

/*function to get the date after the given period
  currentYear - String giving current year in yyyy format
  currentMonth - String giving current month in mm format 
  currentDay - String giving current day in dd format
  addDays - Integer showing no of days after the current date
  return next date as mm/dd/yyyy string
*/
function getNextDate(currentYear, currentMonth, currentDay, addDays) {
	var nextDate = '';
	
	var currDateObj = new Date(parseInt(currentYear),
				parseInt(currentMonth),
				parseInt(currentDay));
		
	currDateObj.setDate(parseInt(currentDay)+addDays);
	nextDate = currDateObj.getMonth()+'/'+currDateObj.getDate()+'/'+currDateObj.getYear();
	return nextDate;
}

//Validate URL data entered
function validateURL(formelement,text){

	if(!chkBlank(formelement, text)) return false;
	if(!chkSpace(formelement, text)) return false;

	var URL = formelement.value;
	if(URL.length == 7){
		alert('Enter Valid '+text);
		formelement.focus();
		return false;
	}

	if(URL.indexOf("http://") > 0){
		alert('Enter Valid '+text);
		formelement.focus();
		return false;
	}
	
	if(URL.lastIndexOf(".") < 8){
		alert('Enter Valid '+text);
		formelement.focus();
		return false;
	}

	if(URL.length <= URL.lastIndexOf(".")+2){
		alert('Enter Valid '+text);
		formelement.focus();
		return false;
	}
	
	if(URL.length > URL.lastIndexOf(".")+5){
		alert('Enter Valid '+text);
		formelement.focus();
		return false;
	}
	return true;
}

function chkDate(formelement, text, delim){
	var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var ddVal = formelement.value;	
	if(ddVal.indexOf(delim) < 1){		
		badDateAlert(formelement);
		return false;
	}
	var dateArray = ddVal.split(delim);
	if(dateArray.length != 3){
		badDateAlert(formelement);
		return false;
	}
	if(dateArray[2].length != 4){
		badDateAlert(formelement);
		return false;
	}
	if(parseInt(dateArray[1]) > 12){
		badDateAlert(formelement);
		return false;
	}
	
	if((parseInt(dateArray[1]) == 2) && (parseInt(dateArray[2])%4 == 0)){
		if((parseInt(dateArray[0])) > (monthDays[parseInt(dateArray[1]-1)])+1){
			badDateAlert(formelement);
			return false;
		}
	}else if((parseInt(dateArray[0])) > (monthDays[parseInt(dateArray[1]-1)])){
		badDateAlert(formelement);
		return false;
	}
	return true;
}

function badDateAlert(ele){
	alert("Invalid Date");
	ele.value = "";
	if(ele.type != "hidden"){
		ele.focus();
	}		
}

function sqlDate(srcEle, destEle, delim){
	if(!chkDate(srcEle, 'Date', delim)) return false;	
	var temp = (srcEle.value).split(delim);	
	destEle.value = temp[2] +"/"+ temp[1] +"/"+ temp[0];
	return true;
}

function goToError(err){
	document.err_frm.actionPage.value="/errorPages/error.jsp?err="+err;
	document.err_frm.submit();
}

function help(anc){
/*	if(anc == 5)
	{
		OpenWin("/helpfiles/bedTypeHelpfile.jsp", "ResAvenue_Help");
	}
	else
	{*/
		OpenWin("/helpfiles/helpfile.jsp#"+anc, "ResAvenue_Help");
//	}
}

//---- Added by Ankit. The above function is called for setup wizard redirection. 02-Aug-04----
function continueConfiguration(fname, target, action){
	obj = eval("document."+fname);
	obj.actionPage.value = target;
	if(action == "alloc_new"){
		if(obj.action.value != "set"){
			alert("Please allocate room before proceeding to Rate Mater.");
			return false;
		}
	}
	if(action == "rate_add"){
		if(obj.action.value != "set"){
			alert("Please add Rate Code before proceeding.");
			return false;
		}
	}
	if(action == "rates"){
		if(obj.action.value != "rates"){
			alert("Please configure Rates before proceeding.");
			return false;
		}
	}
//	return false;
	obj.submit();
}

//---- Added by Ankit. The above function is used only in includes/adm_brief_help.jsp. 17-Sep-04----
function goToPage(mPage){
	document.incfrm.actionPage.value=mPage;
	document.incfrm.submit();
}

// Removes all characters which appear in string bag from string s.

function stripCharsInBag (s, bag){
	var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

/*
	Function to call pop-up for displaying Secure Certificate.
	Called from req_booking_nights, getAvailability, setRooms
*/
function popUpVsign(url){
	var url = 'https://digitalid.verisign.com/as2/46c9d61e98b639b5252af54f0575b41b';
	window.open(url,"win",'toolbar=0,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=500,height=450');
}


// This method is used for the address validations 


function chkSpecialCharNew(formelement,text)
{
	var msg='true';
	var a=formelement.value;
	var b=a.length;
	var cha='`~!@$%^&*+-[]{}/|;:<>.?';
	var ch=cha.length;
	var i,j;
	for(i=0;i<ch;i++)
	{
		var ch1=cha.substring(i,i+1);
		for(j=0;j<b;j++)
		{
			var a1=a.substring(j,j+1);
			if(a1==ch1)
			{
				msg='Special Characters Not Allowed';
				alert(msg);
				formelement.focus();
				return false;
			}
		}
	}
	if (msg=='true')
	{
	return true;
	}
}

// This fumnction is used for date validation -----------------------------------2011-09-12-----------yyyy-mm-dd--------------


//Declaring valid date character, minimum year and maximum year
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
     var i;
 for (i = 0; i < s.length; i++){   
     // Check that current character is number.
     var c = s.charAt(i);
     if (((c < "0") || (c > "9"))) return false;
 }
 // All characters are numbers.
 return true;
}

function stripCharsInBag(s, bag){
     var i;
 var returnString = "";
 // Search through string's characters one by one.
 // If character is not in bag, append to returnString.
 for (i = 0; i < s.length; i++){   
     var c = s.charAt(i);
     if (bag.indexOf(c) == -1) returnString += c;
 }
 return returnString;
}

function daysInFebruary (year){
     // February has 29 days in any year evenly divisible by four,
 // EXCEPT for centurial years which are not also divisible by 400.
 return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
     for (var i = 1; i <= n; i++) {
             this[i] = 31
             if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
             if (i==2) {this[i] = 29}
} 
return this
}

function isDate(dtStr){
 
	//  alert(" dtStr is " + dtStr+" deelimeter dtCh " + dtCh);
	   
	   var daysInMonth = DaysArray(12);
     var pos1=dtStr.indexOf(dtCh);
     var pos2=dtStr.indexOf(dtCh,pos1+1)
   /*  var strMonth=dtStr.substring(0,pos1)
     var strDay=dtStr.substring(pos1+1,pos2)
     var strYear=dtStr.substring(pos2+1)*/
     var strYear=dtStr.substring(0,pos1)
     var strMonth=dtStr.substring(pos1+1,pos2)
     var strDay=dtStr.substring(pos2+1)
     strYr=strYear
     if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
     if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
     for (var i = 1; i <= 3; i++) {
             if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
     }
     month=parseInt(strMonth)
     day=parseInt(strDay)
     year=parseInt(strYr)
     if (pos1==-1 || pos2==-1){
             return false
     }
     if (strMonth.length<1 || month<1 || month>12){
             return false
     }
     if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
             return false
     }
     if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
             return false
     }
     if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
             return false
     }
return true
}

function validateForm(date){
  // 	alert(" date is " + date);
  //   var dt=document.frm.gen_pay_date;
     if (isDate(date.value)==false){
     	alert("Please Enter Valid Date ");
         //   dt.focus()
             return false
     }
 return true
}

// pan card validation 

function panCardValidationNew(pan_card_no){
	  
	  	//var pan_card_no= document.getElementById('pan_card_no').value;
	var pan1="";
	var pan2="";
	var pan3="";
	  	//alert("Pan card value  ************ " + pan_card_no.length);
	  	if(pan_card_no.length<10){
	  	
	  	alert("Please enter valid PAN card number");
	  	return false;
	  	}
	  	pan1=pan_card_no.substring(0,5);
	  	pan2=pan_card_no.substring(5,9);
		
	  	if(pan_card_no.length==5){
	  		
	  		var pattern = "^[a-z A-Z ]+$";			
			var checkAlpha = new RegExp(pattern);
	
			if(checkAlpha.test(formelement.value)){
				return true;
			}
			else{
				alert("Please Enter Valid Pan Card Number");
				return false;
			}
	  	}
	     var pattern = "^[0-9]+$";	
	     if(pan2.length==4){
	  		var regex = new RegExp(pattern)
	  		if (regex.test(pan2)) return true;
	  		else{
	  			//alert('Enter Numeric '+text);
	  			//formelement.value="";
	  			//formelement.focus();
	  			return false; 
	  		}
	  	}
  
}

//Added By Dheeraj Gupta [2011-11-12], to allow eighter characters or alphanumeric values
function chkAlphaNumeric(formElement, msg)
	{ 
	var flag=true;
	//alert(chkAlpha(formElement,msg));	
		//change regular expression by Dheeraj Gupta [2011-11-30]
		var re = /^[a-zA-Z0-9-\s]+$/; 
		if (!re.test(formElement.value)){ 
			alert("Please enter alphanumeric values in "+msg);
		flag=false;
		}else{
			flag=true;
		}
	return flag;
}

// date validation  
var maxYear=2100;

function isInteger(s){
     var i;
 for (i = 0; i < s.length; i++){   
     // Check that current character is number.
     var c = s.charAt(i);
     if (((c < "0") || (c > "9"))) return false;
 }
 // All characters are numbers.
 return true;
}

function stripCharsInBag(s, bag){
     var i;
 var returnString = "";
 // Search through string's characters one by one.
 // If character is not in bag, append to returnString.
 for (i = 0; i < s.length; i++){   
     var c = s.charAt(i);
     if (bag.indexOf(c) == -1) returnString += c;
 }
 return returnString;
}

function daysInFebruary (year){
     // February has 29 days in any year evenly divisible by four,
 // EXCEPT for centurial years which are not also divisible by 400.
 return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
     for (var i = 1; i <= n; i++) {
             this[i] = 31
             if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
             if (i==2) {this[i] = 29}
} 
return this
}

function isDate(dtStr){
 
	  //alert(" dtStr is " + dtStr+" deelimeter dtCh " + dtCh);
	   
	   var daysInMonth = DaysArray(12);
     var pos1=dtStr.indexOf(dtCh);
     var pos2=dtStr.indexOf(dtCh,pos1+1)
   /*  var strMonth=dtStr.substring(0,pos1)
     var strDay=dtStr.substring(pos1+1,pos2)
     var strYear=dtStr.substring(pos2+1)*/
     var strYear=dtStr.substring(0,pos1)
     var strMonth=dtStr.substring(pos1+1,pos2)
     var strDay=dtStr.substring(pos2+1)
     strYr=strYear
     if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
     if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
     for (var i = 1; i <= 3; i++) {
             if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
     }
     month=parseInt(strMonth)
     day=parseInt(strDay)
     year=parseInt(strYr)
     if (pos1==-1 || pos2==-1){
             return false
     }
     if (strMonth.length<1 || month<1 || month>12){
             return false
     }
     if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
             return false
     }
     if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
             return false
     }
     if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
             return false
     }
return true
}

function ValidateForm(date){
  // 	alert(" date is " + date);
  //   var dt=document.frm.gen_pay_date;
     if (isDate(date.value)==false){
     	alert("Please Enter Valid Date");
         //   dt.focus()
             return false
     }
 return true
 
}


 //Added By Dheeraj Gupta [2011-11-21], to check numeric values validation
function chkNumeric(formElement, msg){
	var flag=true;
	var re = /^[0-9.]+$/;
		//alert(" formElement.value "+formElement.value);
		if (!re.test(formElement.value)){ 
			alert("Please enter numeric values in "+msg);
			//formElement.value=" ";
			formElement.focus();
		flag=false;
		}else{
			flag=true;
		}
	return flag;
}








