
//Centralized Separators to be used per Format. Change made by Edwin on April21, 2005.
var dateFormatSeparator1 = "/";
var dateFormatSeparatorNew1 = "-";
var dateAndTimeFormatSeparator1 = "-";
var dateAndTimeFormatSeparator2 = ":";

//Centralized application wide parameters. Change made by Edwin on April21, 2005.
var minYear = 1900;
var maxYear = 2100;
var digitsCharSet = "0123456789";
var amountCharSet = "0123456789.";
var entireCharSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

//Centralized Formats to be used in all methods. Change made by Edwin on April21, 2005.
var currentDateFormat = "mm"+dateFormatSeparator1+"dd"+dateFormatSeparator1+"yyyy"; //e.g. (mm/dd/yyyy)
var currentDateFormatNew = "mm"+dateFormatSeparatorNew1+"dd"+dateFormatSeparatorNew1+"yyyy"; //e.g. (mm-dd-yyyy)
var currentDateAndTimeFormat = "yyyy"+dateAndTimeFormatSeparator1+"mm"+dateAndTimeFormatSeparator1+"dd HH"+dateAndTimeFormatSeparator2+"MM"+dateAndTimeFormatSeparator2+"SS"; //e.g. (yyyy-mm-dd HH:MM:SS)
var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))$/;
var currentTimeFormat = "HH:MM:SS"; //This time format is defined by a regular expression in 'timePat' variable.


function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function trim(str){
			while (str.charAt(0) == " "){
			// remove leading spaces
				str = str.substring(1);
			}
			while (str.charAt(str.length - 1) == " "){
			// remove trailing spaces
				str = str.substring(0,str.length - 1);
			}
			return str;
}
/* Function designed to cancel the effect of double submits*/
var submitCounter = 0;
function SubmitThisForm(theForm)
{
     submitCounter=submitCounter + 1;
     if (submitCounter > 1) {
          //alert (submitCounter);
          return false;
     }
}
/* Function used to validate Email Address
   Author Sandeep
   http://javascript.internet.com
*/
 function checkEmail(emailStr) {
   if (emailStr.length == 0) {
       return true;
   }
   var emailPat=/^(.+)@(.+)$/;
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
   var validChars="\[^\\s" + specialChars + "\]";
   var quotedUser="(\"[^\"]*\")";
   var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
   var matchArray=emailStr.match(emailPat);
   if (matchArray == null) {
       return false;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
       return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
       for (var i = 1; i <= 4; i++) {
          if (IPArray[i] > 255) {
             return false;
          }
       }
       return true;
   }
   var domainArray=domain.match(domainPat);
   if (domainArray == null) {
       return false;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
       (domArr[domArr.length-1].length > 3)) {
       return false;
   }
   if (len < 2) {
       return false;
   }
   return true;
 }


function validRequired(formField,fieldLabel)
{
	var result = true;
	formField.value=trim(formField.value);
   //	formField.value = myTrim (formField.value);

	if (formField.value == "")
	{
		alert('Please Enter/Select a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}

	return result;
}

function sameRequired(formField1,fieldLabel1,formField2,fieldLabel2,required1,required2)
{
	var result = true;

	if (required1 && !validRequired(formField1,fieldLabel1))
		result = false;

	if (required1 && required2 && result && !validRequired(formField2,fieldLabel2))
		result = false;

	if (result && formField1.value != formField2.value)
	{
		alert('The value of "' + fieldLabel1 +'" and "' + fieldLabel2 +'" should be same.');
		formField1.focus();
		result = false;
	}

	return result;
}
function validPassword(formField,fieldLabel)
{
	var result = true;
	var value=trim(formField.value);
	if (formField.value !=value)
	{
		alert('Passwords can not have spaces at their ends.');
		formField.focus();
		result = false;
	}

	return result;
}

function isSameRequired(formField1,fieldLabel1,formField2,fieldLabel2,required1,required2)
{
	var result = true;

	if (result && formField1.value != formField2.value)
	{
		alert('The value of "' + fieldLabel1 +'" and "' + fieldLabel2 +'" should be same.');
		formField1.focus();
		result = false;
	}

	return result;
}


function diffRequired(formField1,fieldLabel1,formField2,fieldLabel2,required1,required2)
{
	var result = true;

	if (required1 && !validRequired(formField1,fieldLabel1))
		result = false;

	if (required1 && required2 && result && !validRequired(formField2,fieldLabel2))
		result = false;

	if (result && formField1.value == formField2.value)
	{
		alert('The value of "' + fieldLabel1 +'" and "' + fieldLabel2 +'" should be different.');
		formField1.focus();
		result = false;
	}

	return result;
}

//. and , characters have been taken away from this list. They do not qualify to be digits.
function allDigits(str)
{
	return inValidCharSet(str,digitsCharSet);
}
/*
function allDigits(str)
{
	return inValidCharSet(str,"0123456789.,");
}
*/

function allValidChar(str)
{
	//return inValidCharSet(str,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
	return inValidCharSet(str,entireCharSet);
}

function inValidCharSet(str,charset)
{
	var result = true;

	if (decimalCount(str))
	{
		// Note: doesn't use regular expressions to avoid early Mac browser bugs
		for (var i=0;i<str.length;i++)
			if (charset.indexOf(str.substr(i,1))<0)
			{
				result = false;
				break;
			}
	}
	else
	{
		result = false;
	}
	return result;
}

function decimalCount(txt)
{
	txt=txt.split(".")
	if (txt.length > 2)
	{
		//alert("Not Good!"+ txt.length)
		return false
	}
	else
	{
		//alert("Good!"+ txt.length)
		return true
	}
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if ( required && result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		formField.focus();
		result = false;
	}

  return result;

}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}

/* Added for checking the morre than two decimals in amount
 		if (!checkDecimal(formField.value))
 		{
 			alert('"' + fieldLabel +'" should not contain more than one Decimal.');
			formField.focus();
			result = false;
		}
*/

		var num = parseInt(formField.value,10);
 		if (num ==0)
 		{
 			alert('Please enter a valid value greater than 0 for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}

	}

	return result;
}

function validNumZeroAllowed(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
	}
	return result;
}

//Usman		17/06/2003	20:40
//new added for Password verification for ticketport 0-9 and A-Z,a-z
function validText(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Please enter a number value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
		var num = parseInt(formField.value);
 		if (num ==0)
 		{
 			alert('Please enter a number value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
	}

	return result;
}

function checkDecimal(formField)
{
	var result = true;
	var charCount = 0;
	var dot = ".";
	for (var i=0; i < formField.length; i++) {
		var letter = formField.charAt(i);
		if (letter==dot) charCount ++;
	 }
	if (charCount>1){
		result=false;
		//alert ("The number of Dots : " + charCount);
	}
	return result;
}

function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
 		var num = parseInt(formField.value);
 		if (isNaN(num) || num ==0 || formField.value!=num)
 		{
 			alert('Please enter a number value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
	}

	return result;
}

function validIntZeroAllowed(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
 		var num = parseInt(formField.value);
 		if (isNaN(num) ||  formField.value!=num)
 		{
 			alert('Please enter a number value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
	}

	return result;
}


/*
//The following variables are managed in an alternate and better way.
// 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, isDOB){
	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)
	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){
		alert("Please enter a valid date, the date format should be : mm/dd/yyyy")
		return false
	}
	if (month<1 || month>12){
		alert("Please enter a valid month, it should not be more than 12")
		return false
	}
	if (day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day, it should be according to the selected month")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
//added to check year less than 18 i.e. 18 year DOB
	var today=new Date()
	var yr = today.getYear();
	var mm = today.getMonth()+1;
	var dd = today.getDate();
	var diff = yr - year;
	if (diff < 18 && isDOB==true){
		alert("Please enter a valid Date of Birth. Age should not be less than 18 years")
		return false
	}
	if (diff == 18 && mm<month && isDOB==true){
		//alert("yearsssss are ok but month is less : todaymonth'" +mm +"' and today'" +dd +"' and date month '"+ month+"' and day : '"+ day+"'")
		alert("Please enter a valid Date of Birth. Age should not be less than 18 years")
		return false
	}
	if (diff == 18 && mm==month && dd<day && isDOB==true){
		//alert("years are ok but day is less")
		alert("Please enter a valid Date of Birth. Age should not be less than 18 years")
		return false
	}

	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date, the date format should be : mm/dd/yyyy")
		return false
	}
return true
}
*/
function isDateNew(dtStr,fieldLabel,isDOB){
	//alert(' Inside formvalidation.js isDate() method, isDOB = '+isDOB);
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dateFormatSeparatorNew1)
	var pos2=dtStr.indexOf(dateFormatSeparatorNew1,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=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(isNaN(month) || isNaN(day) || isNaN(year)){
		alert('Please enter a valid date for the "'+fieldLabel+'" field. The date format is: '+currentDateFormatNew);
		return false
	}
	
	if (pos1==-1 || pos2==-1){
		//alert("Please enter a valid date, the date format should be : "+currentDateFormat);
		alert('Please enter a valid date for the "'+fieldLabel+'" field. The date format is: '+currentDateFormatNew);
		return false
	}
	if (month<1 || month>12){
		//alert("Please enter a valid month, it should not be more than 12")
		alert('Please enter a valid month for the "'+fieldLabel+'" field. It should not be more than 12');
		return false
	}
	if (day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day, it should be according to the selected month")
		alert('Please enter a valid day for the "'+fieldLabel+'" field. It should be according to the selected month');
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		alert('Please enter a valid year for the "'+fieldLabel+'" field. It should be 4 digit year between '+minYear+' and '+maxYear);
		return false
	}
return true
}

function isDate(dtStr,fieldLabel,isDOB){
	//alert(' Inside formvalidation.js isDate() method, isDOB = '+isDOB);
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dateFormatSeparator1)
	var pos2=dtStr.indexOf(dateFormatSeparator1,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=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){
		//alert("Please enter a valid date, the date format should be : "+currentDateFormat);
		alert('Please enter a valid date for the "'+fieldLabel+'" field. The date format is: '+currentDateFormat);
		return false
	}
	if (month<1 || month>12){
		//alert("Please enter a valid month, it should not be more than 12")
		alert('Please enter a valid month for the "'+fieldLabel+'" field. It should not be more than 12');
		return false
	}
	if (day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day, it should be according to the selected month")
		alert('Please enter a valid day for the "'+fieldLabel+'" field. It should be according to the selected month');
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		alert('Please enter a valid year for the "'+fieldLabel+'" field. It should be 4 digit year between '+minYear+' and '+maxYear);
		return false
	}
//added to check year less than 18 i.e. 18 year DOB
	var today=new Date()
	var yr = today.getYear();
	var mm = today.getMonth()+1;
	var dd = today.getDate();
	var diff = yr - year;
	if (diff < 18 && isDOB==true){
		//alert("Please enter a valid Date of Birth. Age should not be less than 18 years")
		alert('Please enter a valid Date of Birth for the "'+fieldLabel+'" field. Age should not be less than 18 years');
		return false
	}
	if (diff == 18 && mm<month && isDOB==true){
		//alert("Please enter a valid Date of Birth. Age should not be less than 18 years")
		alert('Please enter a valid Date of Birth for the "'+fieldLabel+'" field. Age should not be less than 18 years');
		return false
	}
	if (diff == 18 && mm==month && dd<day && isDOB==true){
		//alert("Please enter a valid Date of Birth. Age should not be less than 18 years")
		alert('Please enter a valid Date of Birth for the "'+fieldLabel+'" field. Age should not be less than 18 years');
		return false
	}

	if (dtStr.indexOf(dateFormatSeparator1,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dateFormatSeparator1))==false){
		//alert("Please enter a valid date, the date format should be : "+currentDateFormat);
		alert('Please enter a valid date for the "'+fieldLabel+'" field. The date format is: '+currentDateFormat);
		return false
	}
return true
}

//added DOB boolean parameter 19/09/2003 19:20 Usman
function validDate(dtStr,fieldLabel,required,isDOB){
	var result = true;
	if (required && !validRequired(dtStr,fieldLabel))
		result = false;

 	if (result && dtStr.value != "")
 	{
		/*
		if (isDate(dtStr.value,isDOB)==false){
			result = false;
			dtStr.focus();
		}
		*/
 		//fieldLabel parameter added by Edwin on April21, 2005.
		if (isDate(dtStr.value,fieldLabel,isDOB)==false){
			result = false;
			dtStr.focus();
		}
	}
	return result;
 }
//*************Added Check for Past Date not allowed ******************//

// It Validates the Date by getting the Format dynamically rendered
// By header.jsp
function validateDate(dte, lbl) {
               var bValid = true;
               var focusField = null;
               var i = 0;
               var fields = new Array();
               
               
                   var value = dte.value;
                   var datePattern = getDateFormat();
                   
                   //alert("DF=:"+datePattern);
                   
                   
                   if ((dte.type == 'text' || dte.type == 'textarea') &&  
                      (value.length > 0) &&  (datePattern.length > 0)) {
                       
                     var MONTH = "MM";
                     var DAY = "dd";
                     var YEAR = "yyyy";
                     var orderMonth = datePattern.indexOf(MONTH);
                     var orderDay = datePattern.indexOf(DAY);
                     var orderYear = datePattern.indexOf(YEAR);
                     
                                        
                     if ((orderDay < orderYear && orderDay > orderMonth)) {
                         var iDelim1 = orderMonth + MONTH.length;
                         var iDelim2 = orderDay + DAY.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderDay && iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderDay) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                            if (!isValidDate(matched[2], matched[1], matched[3])) {
                               if (i == 0) {
                                   focusField = dte;
                               }
                               
                               bValid =  false;
                            }
                         } else {
                            if (i == 0) {
                                focusField = dte;
                            }
                            
                            bValid =  false;
                         }
                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
                         var iDelim1 = orderDay + DAY.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[1], matched[2], matched[3])) {
                                 if (i == 0) {
                                     focusField = dte;
                                 }
                                 
                                 bValid =  false;
                              }
                         } else {
                             if (i == 0) {
                                 focusField = dte;
                             }
                             
                             bValid =  false;
                         }
                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
                         var iDelim1 = orderYear + YEAR.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
                         } else if (iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[3], matched[2], matched[1])) {
                                 if (i == 0) {
                                     focusField = dte;
                                  }
                                  
                                  bValid =  false;
                              }
                          } else {
                              if (i == 0) {
                                  focusField = dte;
                              }
                              
                              bValid =  false;
                          }
                     } else {
                         if (i == 0) {
                             focusField = dte;
                         }
                         
                         bValid =  false;
                     }
                  }
               
               if(!bValid){
               		alert("Please enter valid date for \""+lbl+"\". Format is ["+getDateFormat()+"]");
               		focusField.focus();
               }
               
               return bValid;
            }

	    function isValidDate(day, month, year) {
	        if (month < 1 || month > 12) {
                    return false;
                }
                if (day < 1 || day > 31) {
                    return false;
                }
                if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                    (day == 31)) {
                    return false;
                }
                if (month == 2) {
                    var leap = (year % 4 == 0 &&
                               (year % 100 != 0 || year % 400 == 0));
                    if (day>29 || (day == 29 && !leap)) {
                        return false;
                    }
                }
                return true;
            }





// Added By milyas ( 10 July 2006 )to check Boolean Value
// fmt can be 
// '0' for 0|1
// 'N' for Y|N
function validBoolean(ctrl, fieldLable, required, fmt){
	
	var result = true;
	if (required && !validRequired(dtStr,fieldLabel))
		result = false;
 	if (result && ctrl.value != "")
 	{
		val = trim(ctrl.value);
		
		if(!fmt){
			fmt = 'N';
		}

		
		// To Check Y|N
		if(fmt == 'N'){
		if(val != 'Y' && val != 'N'){
			alert("Please Enter the Valid Boolean Y|N");
			ctrl.focus();
			return false;
		}
		}else 
		// To Check 0|1
		if(fmt == '0'){
		if(val != '0' && val != '1'){
			alert("Please Enter the Valid Boolean 0|1");
			ctrl.focus();
			return false;
		}
		}
		
 	}
	return true;
}



//added by saqib bukhari for check the date at component level
function validDateNew(dtStr,fieldLabel,required,isDOB){
	var result = true;
	if (required && !validRequired(dtStr,fieldLabel))
		result = false;

 	if (result && dtStr.value != "")
 	{
		/*
		if (isDate(dtStr.value,isDOB)==false){
			result = false;
			dtStr.focus();
		}
		*/
 		//fieldLabel parameter added by Edwin on April21, 2005.
		if (isDateNew(dtStr.value,fieldLabel,isDOB)==false){
			result = false;
			dtStr.focus();
		}
	}
	return result;
 }//  End function

function doPastDateCheck(currDate, formDate) {
	var result = true;

	if (formDate.value != "" && currDate.value != ""){
		if (Date.parse(formDate.value) < Date.parse(currDate.value)) {
			alert("You can not enter a Past Date. Only Today and Future date is allowed!")
			result = false;
			formDate.focus();
		}
	}
	return result;
}

//*************End Function *******************//


function doDateCheck(from, fromlable, to, tolable) {
	var result = true;

	if (from.value != "" && to.value != ""){
		if (Date.parse(from.value) <= Date.parse(to.value)) {
			result = true;
		}
		else {
				result = false;
				alert(tolable+ " should be greater than or equals to "+fromlable);
				to.focus();
		}
	}
	return result;
}
// For Remember me options
	function createCookie(name,value,days)
	{
		if (days)
		{
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	}

	function readCookie(name)
	{
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++)
		{
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	}

	function eraseCookie(name)
	{
		createCookie(name,"",-1);
	}

// message for Under Construction

	function setFunction()
	{
//		alert("Sorry! This part of application is currently not available due to maintenance.");
		document.location.href = '/webpos/underconst.jsp';
	}

// for moving cursor to next text box after completing the maxlength property
	function checkField(formObj, fldObj)
	{
		for (i = 0; i < formObj.length; i++)
		if (formObj[i] == fldObj)
		if (fldObj.value.length == parseInt(fldObj.maxLength))
		{
			if (i < formObj.length -1 )
				fldObj = formObj[++i];
				fldObj.focus();
		}
	}


// for menu item mosueover
function ChangeImage(name,source) {
    if (name=='mn1'){
		mn1.src = source;
	}
}


//for Printing the current window
function printPage() {
	window.print();
}

function doDearch (req) {
		document.SearchForm.request.value =req;
	}//end

function getQueryString( sProp ) {
	var re = new RegExp( sProp + "=([^\\&]*)", "i" );
	var a = re.exec( document.location.search );
	if ( a == null )
		return "";
	return a[1];
}

function changeCssFile( sCssFile ) {
	var loc = String(document.location);
	var search = document.location.search;
	if ( search != "" )
		loc = loc.replace( search, "" );
	loc = loc + "?css=" + sCssFile;
	document.location.replace( loc );
}

function validateForm(Form){
return true;
}
function validateTextField(TF0, COL0, OPE0){
	return true;
}


//*****************Trim Function*****************/
function myTrim(TRIM_VALUE){


        	if(TRIM_VALUE.length < 1){
        		return "";
        	}
        	TRIM_VALUE = RTrim(TRIM_VALUE);
        	TRIM_VALUE = LTrim(TRIM_VALUE);


            	if(TRIM_VALUE==""){
            		return "";
            	}


                	else{
                		return TRIM_VALUE;
                	}
            }


                function RTrim(VALUE){
                	var w_space = String.fromCharCode(32);
                	var v_length = VALUE.length;
                	var strTemp = "";


                    	if(v_length < 0){
                    		return"";
                    	}
                    	var iTemp = v_length -1;


                        	while(iTemp > -1){
                        		if(VALUE.charAt(iTemp) == w_space){}


                            		else{
                            			strTemp = VALUE.substring(0,iTemp +1);
                            			break;
                            		}
                            		iTemp = iTemp-1;
                            	}
                            	return strTemp;
                        }


                            function LTrim(VALUE){
                            	var w_space = String.fromCharCode(32);


                                	if(v_length < 1){
                                		return"";
                                	}
                                	var v_length = VALUE.length;
                                	var strTemp = "";
                                	var iTemp = 0;


                                    	while(iTemp < v_length){
                                    		if(VALUE.charAt(iTemp) == w_space){}


                                        		else{
                                        			strTemp = VALUE.substring(iTemp,v_length);
                                        			break;
                                        		}
                                        		iTemp = iTemp + 1;
                                        	}
                                        	return strTemp;
                                    }
//*****************END Trim Function*****************/


//By Ubaig for Valid Charachters *****************/
function validChar(formField,fieldLabel,required)
{
	if (required && !validRequired(formField,fieldLabel))
		return  false;

// Istikhar Ahmad\\][][][]
	 var result = true;
/*
     var alphaNum= new RegExp(/[^&+?|]+$/gi);
     result= alphaNum.test(formField.value);

	if(result==false || formField.value.indexOf("\'")!=-1 || formField.value.indexOf("\"")!=-1) {
		alert("Not a valid input for this field "+fieldLabel+". Please try again");

		if(formField.value.indexOf("&")!=-1)
			formField.value = formField.value.replace("&","\&");
		if(formField.value.indexOf("+")!=-1)
			formField.value = formField.value.replace("+","\+");
		if(formField.value.indexOf("?")!=-1)
			formField.value = formField.value.replace("?","\?");
		if(formField.value.indexOf("|")!=-1)
			formField.value = formField.value.replace("|","\|");
		if(formField.value.indexOf("\"")!=-1)
			formField.value = formField.value.replace("\"","\"\"");
		if(formField.value.indexOf("'")!=-1) {
				formField.value = formField.value.replace("'","''");
		}

		alert(formField.value);
		//formField.select();
		//formField.focus();
		return true;
	}
*/
	return result;
}
//* By rabashir ****//
function checkRoutingNumber(formField,fieldLabel)
{
	 if(isNaN(formField.value))
	 {
	 	alert('Please enter a number value for the "'+fieldLabel+'" field.' );
	 	formField.focus();
	 	return false;
	 }
	 var routingNo = myTrim(formField.value);

	if(routingNo.length!=9)
	{
		alert('"'+fieldLabel+'" Routing No length should be equal to 9 digits');
		formField.focus();
		return false;
	}

	var routingNoArray=new Array(9);

	for(i=0; i<9;i++)
		routingNoArray[i] = routingNo.charAt(i);

	var sum = 0;
    var weights = new Array("3","7","1","3","7","1","3","7" );
    var checkDigit = 0;

	for (i = 0; i < routingNoArray.length-1; i++)
        sum += routingNoArray[i] * weights[i];

    for (i = 10;;)
    {
        if (i >sum || i==sum)
         {
              checkDigit = i - sum;
              break;
         }
         else
             i += 10;
     }
     if(checkDigit == routingNoArray[8])
     	return true;
     else{
     	alert("Routing Number is not correct");
     	formField.focus();
     }
     return false;
}

//-> Istikhar  Customizeable Checks/--
function validAlphaNumeric(formField,fieldLabel,required)
{
	if (required && !validRequired(formField,fieldLabel))
		return  false;

	var result = true;
	if (formField.value!="")
	{
		var alphaNum= new RegExp(/^[a-zA-Z0-9 _ :\/.-]+$/gi);
		result= alphaNum.test(formField.value)
		if(result==false)
		{
			alert("Not a valid input for this field "+fieldLabel+". Please try again");
			formField.select();
			formField.focus();
			return false;
		}
	}
	return result;
}

function validAlphaNumericLower(formField,fieldLabel,required)
{
	if (required && !validRequired(formField,fieldLabel))
	return  false;

	var result = true;
     var alphaNum= new RegExp(/[a-z0-9 ]+$/g);
     result= alphaNum.test(formField.value)
	if(result==false){
		alert("Not a valid input for this field "+fieldLabel+". Please try again");
		formField.select();
		formField.focus();
		return false;
	}
	return result;
}

function validAlphaNumericUpper(formField,fieldLabel,required)
{
	if (required && !validRequired(formField,fieldLabel))
	return  false;

	var result = true;
    var alphaNum= new RegExp(/^[A-Z0-9 ]+$/);
    result= alphaNum.test(formField.value)
	if(result==false){
		alert("Not a valid input for this field "+fieldLabel+". Please try again");
		formField.select();
		formField.focus();
		return false;
	}
	return result;
}
function getkey(e)
{
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
	return null;
}
// 	checkDecimal (Event , Control Obj , Precision)
function checkDecimal(e,controlx,scale,prec)
{
	var startIndex ;
	var key, keychar;
	var subStr ;
	key = getkey(e);
	var len = controlx.value.length;
	if (len > 0 )
	{
		// Find the Decimal Point
		 startIndex = controlx.value.indexOf('.');
		// If found
		 if (startIndex > -1)
		 {
			// Get string before decimal
			subStr1 = controlx.value.substring(0,startIndex);
			// Get String after decimal
			subStr2 = controlx.value.substring(startIndex,len);
			// if Amount lenght before decimal <= scale
		 	if (subStr1.length != scale)
		 	{
		 		//Go on accepting to [n scale]digits
		 		return true;
		 	}
		 	// Check the digits after Decimal Point
		 	if (subStr2.length == prec+1)
		 	{
		 		//stop accepting after [n prec]digits
		 		return false;
		 	}
		 }
		 // Without decimal this check executes; the number of digits = scale
		 if (startIndex == -1)
		 {
			if (len == scale+1)
			{
				//alert ("meets ");
				return false;
			}
		 }// end else
	}// end if
}

/*
function validDecimal(formField,fieldLabel,required)
{

	if (required && !validRequired(formField,fieldLabel))
		return  false;

	var decallowed = 6;  // how many decimals are allowed?
	var fieldValue = formField.value;
	if (isNaN(fieldValue) ) {
	alert("That does not appear to be a valid number.  Please try again.");
	formField.select();
	formField.focus();
	}
	else {
		if (fieldValue.indexOf('.') == -1) fieldValue += ".";
			dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);
		if (dectext.length > decallowed)
		{
		alert ("Please enter a number with up to " + decallowed + " decimal places.  Please try again.");
		formField.select();
		formField.focus();
		}
		else {
		//alert ("That number validated successfully.");
		return true;
		}
	}
}
*/

function validDecimal(formField,fieldLabel,required)
{

	if (required && !validRequired(formField,fieldLabel))
		return  false;

	var decallowed = 6;  // how many decimals are allowed?
	var fieldValue = formField.value;
	if (isNaN(fieldValue) ) {
	//alert("That does not appear to be a valid number.  Please try again.");
	alert('Please enter a decimal value for the "' + fieldLabel +'" field.');

	formField.select();
	formField.focus();
	}
	else {
		if (fieldValue.indexOf('.') == -1) fieldValue += ".";
			dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);
		if (dectext.length > decallowed)
		{
		//alert ("Please enter a number with up to " + decallowed + " decimal places.  Please try again.");
		alert ('Please enter a decimal value with up to ' + decallowed + ' decimal places for the "' + fieldLabel +'" field.');
		formField.select();
		formField.focus();
		}
		else {
		//alert ("That number validated successfully.");
		return true;
		}
	}
}

function validAlphaBet(formField,fieldLabel,required)
{
	//alert("Validating Alhpabet input");
	if (required && !validRequired(formField,fieldLabel))
		return  false;

	var result = true;

     var alphaNum= new RegExp(/^[a-zA-Z]+$/gi);
	     result= alphaNum.test(formField.value)
	if(result==false){
		alert("Not a valid input for this field "+fieldLabel+". Please try again");
		formField.select();
		formField.focus();
		return false;
	}
	return result;
}

/*
function validDateTime(formField,fieldLabel,required){

	if (required && !validRequired(formField,fieldLabel))
		return  false;

	var dtCh="-";
	var tCh=":";
    var dtStr =formField.value;
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strSpc=" ";
	var time=dtStr.substring(dtStr.indexOf(strSpc)+1);
	if(time==null){
		alert("Please enter a valid date and time, the date and time format is: yyyy"+dtCh+"mm"+dtCh+"dd HH"+tCh+"MM"+tCh+"SS");
		formField.select();
		formField.focus();
		return false;
	}
	//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)

	if(strYear==null){
		alert("Please enter a valid date and time, the date and time format is: yyyy"+dtCh+"mm"+dtCh+"dd HH"+tCh+"MM"+tCh+"SS");
		formField.select();
		formField.focus();
		return false;

	}
	if(strMonth==null){
		alert("Please enter a valid date and time, the date and time format is: yyyy"+dtCh+"mm"+dtCh+"dd HH"+tCh+"MM"+tCh+"SS");
		formField.select();
		formField.focus();
		return false;

	}
	if(strDay==null){
		alert("Please enter a valid date and time, the date and time format is: yyyy"+dtCh+"mm"+dtCh+"dd HH"+tCh+"MM"+tCh+"SS");
		formField.select();
		formField.focus();
		return false;

	}


	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){
		alert("Please enter a valid date and time , the date and time format is: yyyy"+dtCh+"mm"+dtCh+"dd HH"+tCh+"MM"+tCh+"SS");
		formField.select();
		formField.focus();
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month");
		formField.select();
		formField.focus();

		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day");
		formField.select();
		formField.focus();

		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
				formField.select();
		formField.focus();

		return false;
	}
	/*
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date");
				formField.select();
		formField.focus();

		return false;
	}
	*/
	/*
	//alert("validating time");
  	 var result=validDTime(time,formField,fieldLabel,required);
	return result;
}*/

function validDateTime(formField,fieldLabel,required){

	if (required && !validRequired(formField,fieldLabel))
		return  false;
//Commented by Edwin. These variables have been scoped at File level.
/*
	var dateAndTimeFormatSeparator1="-";
	var dateAndTimeFormatSeparator2=":";
*/
    var dtStr =formField.value;
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dateAndTimeFormatSeparator1);
	var pos2=dtStr.indexOf(dateAndTimeFormatSeparator1,pos1+1);
	var strSpc=" ";
	var time=dtStr.substring(dtStr.indexOf(strSpc)+1);
	if(time==null){
		alert('Please enter a valid date and time for the "'+fieldLabel+'" field. The date and time format is: '+currentDateAndTimeFormat);
		formField.select();
		formField.focus();
		return false;
	}
	//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)

	if(strYear==null){
		//alert("Please enter a valid date and time, the date and time format is: "+currentDateAndTimeFormat);
		alert('Please enter a valid date and time for the "'+fieldLabel+'" field. The date and time format is: '+currentDateAndTimeFormat);
		formField.select();
		formField.focus();
		return false;

	}
	if(strMonth==null){
		//alert("Please enter a valid date and time, the date and time format is: "+currentDateAndTimeFormat);
		alert('Please enter a valid date and time for the "'+fieldLabel+'" field. The date and time format is: '+currentDateAndTimeFormat);
		formField.select();
		formField.focus();
		return false;

	}
	if(strDay==null){
		//alert("Please enter a valid date and time, the date and time format is: "+currentDateAndTimeFormat);
		alert('Please enter a valid date and time for the "'+fieldLabel+'" field. The date and time format is: '+currentDateAndTimeFormat);
		formField.select();
		formField.focus();
		return false;
	}


	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){
		//alert("Please enter a valid date and time , the date and time format is: "+currentDateAndTimeFormat);
		alert('Please enter a valid date and time for the "'+fieldLabel+'" field. The date and time format is: '+currentDateAndTimeFormat);
		formField.select();
		formField.focus();
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month");
		alert('Please enter a valid month for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day");
		alert('Please enter a valid day for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
		alert('Please enter a valid 4 digit year between '+minYear+' and '+maxYear+ ' for the "'+fieldLabel+'" field.');
				formField.select();
		formField.focus();

		return false;
	}
	/*
	if (dtStr.indexOf(dateAndTimeFormatSeparator1,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dateAndTimeFormatSeparator1))==false){
		alert("Please enter a valid date");
				formField.select();
		formField.focus();

		return false;
	}
	*/
	//alert("validating time");
  	 var result=validDTime(time,formField,fieldLabel,required);
	return result;
}
/*
function validTime(formField,fieldLabel,required)
{
	// Checks if time is in HH:MM:SS AM/PM format.
	// The seconds and AM/PM are optional.
	if (required && !validRequired(formField,fieldLabel))
	return  false;

	var timeStr = formField.value;
//	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))$/;

	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {
		alert("Time is not in a valid format.");
		formField.select();
		formField.focus();

		return false;
	}
	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 23) {
		alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
		formField.select();
		formField.focus();

		return false;
	}
/*
	if (hour <= 12 && ampm == null) {
	if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
		alert("You must specify AM or PM.");
		formField.select();
		formField.focus();

		return false;
	   }
	}
*/
/*
	if  (hour > 12 && ampm != null) {
		alert("You can't specify AM or PM for military time.");
		formField.select();
		formField.focus();

		return false;
	}
	if (minute<0 || minute > 59) {
		alert ("Minute must be between 0 and 59.");
		formField.select();
		formField.focus();

		return false;
	}
	if (second != null && (second < 0 || second > 59)) {
		alert ("Second must be between 0 and 59.");
		formField.select();
		formField.focus();

		return false;
	}
	return true;
}
*/

function validTime(formField,fieldLabel,required)
{
	var result = true;
	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
		// Checks if time is in HH:MM:SS AM/PM format.
		// The seconds and AM/PM are optional.
	//	if (required && !validRequired(formField,fieldLabel))
	//	return  false;


		var timeStr = formField.value;

	//	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;

		var matchArray = timeStr.match(timePat);
		if (matchArray == null) {
			//alert("Time is not in a valid format.");
			alert('Please enter a valid time for the "'+fieldLabel+'" field. The time format is: '+currentTimeFormat);
			formField.select();
			formField.focus();

			return false;
		}
		hour = matchArray[1];
		minute = matchArray[2];
		second = matchArray[4];
		ampm = matchArray[6];

		if (second=="") { second = null; }
		if (ampm=="") { ampm = null }

		if (hour < 0  || hour > 23) {
			//alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
			alert('Hours must be between or 0 and 23 for the "'+fieldLabel+'" field.');
			formField.select();
			formField.focus();

			return false;
		}
	/*
		if (hour <= 12 && ampm == null) {
		if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
			alert("You must specify AM or PM.");
			formField.select();
			formField.focus();

			return false;
		   }
		}
	*/
		if  (hour > 12 && ampm != null) {
			//alert("You can't specify AM or PM in military time.");
			alert('You cannot specify AM or PM in military time for the "'+fieldLabel+'" field.');
			formField.select();
			formField.focus();

			return false;
		}
		if (minute<0 || minute > 59) {
			//alert ("Minute must be between 0 and 59.");
			alert ('Minutes must be between 0 and 59 for the "'+fieldLabel+'" field.');
			formField.select();
			formField.focus();

			return false;
		}
		if (second != null && (second < 0 || second > 59)) {
			//alert ("Second must be between 0 and 59.");
			alert ('Seconds must be between 0 and 59 for the "'+fieldLabel+'" field.');
			formField.select();
			formField.focus();

			return false;
		}
	}
	return result;
}
/*
function validDTime(time,formField,fieldLabel,required)
{
	// Checks if time is in HH:MM:SS AM/PM format.
	// The seconds and AM/PM are optional.
	if (required && !validRequired(formField,fieldLabel))
	return  false;

	var timeStr = time;
//	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))$/;

	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {
		alert("Time is not in a valid format.");
		formField.select();
		formField.focus();

		return false;
	}
	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 23) {
		alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
		formField.select();
		formField.focus();

		return false;
	}
/*
	if (hour <= 12 && ampm == null) {
	if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
		alert("You must specify AM or PM.");
		formField.select();
		formField.focus();

		return false;
	   }
	}
*/
/*
	if  (hour > 12 && ampm != null) {
		alert("You can't specify AM or PM for military time.");
		formField.select();
		formField.focus();

		return false;
	}
	if (minute<0 || minute > 59) {
		alert ("Minute must be between 0 and 59.");
		formField.select();
		formField.focus();

		return false;
	}
	if (second != null && (second < 0 || second > 59)) {
		alert ("Second must be between 0 and 59.");
		formField.select();
		formField.focus();

		return false;
	}
	return true;
}
*/

function validDTime(time,formField,fieldLabel,required)
{
	// Checks if time is in HH:MM:SS AM/PM format.
	// The seconds and AM/PM are optional.
	if (required && !validRequired(formField,fieldLabel))
	return  false;

	var timeStr = time;



	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {
		//alert("Time is not in a valid format.");
		alert('Please enter a valid time for the "'+fieldLabel+'" field. The time format is: '+currentTimeFormat);
		formField.select();
		formField.focus();

		return false;
	}
	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 23) {
		//alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
		alert('Hours must be between or 0 and 23 for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
/*
	if (hour <= 12 && ampm == null) {
	if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
		alert("You must specify AM or PM.");
		formField.select();
		formField.focus();

		return false;
	   }
	}
*/
	if  (hour > 12 && ampm != null) {
		//alert("You can't specify AM or PM for military time.");
		alert('You cannot specify AM or PM in military time for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
	if (minute<0 || minute > 59) {
		//alert ("Minute must be between 0 and 59.");
		alert ('Minutes must be between 0 and 59 for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
	if (second != null && (second < 0 || second > 59)) {
		//alert ("Second must be between 0 and 59.");
		alert ('Seconds must be between 0 and 59 for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
	return true;
}

/*usaleem: Allow only Numers 0-9 to be typed in a field*/
function numeralsOnly(evt)
{
	evt = (evt)? evt : event;
	var charCode = (evt.charCode)? evt.charCode : ((evt.keyCode)? evt.keyCode :
	((evt.which)? evt.which : 0 ));

	if (charCode > 31 && (charCode < 48 || charCode > 57 )){
		alert("Enter Numerals only in this field.");
		return false;
	}
	return true;
}
/*usaleem*/

// ONE SPACE
function oneSpace(TRIM_VALUE){


        	if(TRIM_VALUE.length < 1){
        		return " ";
        	}
        	TRIM_VALUE = RTrim(TRIM_VALUE);
        	TRIM_VALUE = LTrim(TRIM_VALUE);


            	if(TRIM_VALUE==""){
            		return " ";
            	}


                	else{
                		return TRIM_VALUE;
                	}
            }


                function RTrim(VALUE){
                	var w_space = String.fromCharCode(32);
                	var v_length = VALUE.length;
                	var strTemp = "";


                    	if(v_length < 0){
                    		return" ";
                    	}
                    	var iTemp = v_length -1;


                        	while(iTemp > -1){
                        		if(VALUE.charAt(iTemp) == w_space){}


                            		else{
                            			strTemp = VALUE.substring(0,iTemp +1);
                            			break;
                            		}
                            		iTemp = iTemp-1;
                            	}
                            	return strTemp;
                        }


                            function LTrim(VALUE){
                            	var w_space = String.fromCharCode(32);


                                	if(v_length < 1){
                                		return" ";
                                	}
                                	var v_length = VALUE.length;
                                	var strTemp = " ";
                                	var iTemp = 0;


                                    	while(iTemp < v_length){
                                    		if(VALUE.charAt(iTemp) == w_space){}


                                        		else{
                                        			strTemp = VALUE.substring(iTemp,v_length);
                                        			break;
                                        		}
                                        		iTemp = iTemp + 1;
                                        	}
                                        	return strTemp;
                                    }
//*****************END Trim Function*****************/

/* Determines the Number is in range specified
	params
		1. The value to be checked
		2. Min Range (must specify)
		3. Max Range
*/
function validNumRange(value,label,min,max)
{

}
/* Determines the float number is in range specified
	params
		1. The value to be checked
		2. Min Range (must specify)
		3. Max Range
*/
function validDoubleRange(control,label,min,max)
{
	var result = true;
	var valMin = 0.0;
	var valMax = 10000000;
	// If Min / Max are not supplied. Use ones with default values.
	if (min != null)
	var valMin = parseFloat(min);

	if (max != null)
	var valMax = parseFloat(max);

	if (!validRequired(control,label))
		result = false;

	if (result)
	{
		var val = parseFloat(control.value);
		if (! (val >= valMin && val <= valMax ) )
		{
			alert("The "+label+" field is not in the range.");
			control.focus();
			result = false;
		}
	}
	return result;

}
//<- Istikhar

//Usman Baig 03-03-2005
	function docCheck(){
/*		var url = document.location.href ;
		//alert(url);
		var urlLenght = document.location.href.length ;
		//alert(urlLenght);
		var str = document.location.href.substring(0,5);
		str = str.toUpperCase();
		//alert(str);
		var remURL = document.location.href.substring(document.location.href.indexOf(':'),urlLenght);
		var tmpSwitch = document.location.href.substring(urlLenght-4,urlLenght);
		//alert(tmpSwitch);
		//alert(remURL);
		var newURL = "https"+remURL;
		//alert(newURL);
		if (tmpSwitch!="?786" && str!="HTTPS"){
			//alert(newURL);
			document.location = newURL;
		}*/
	}
// End
// Verify IP Address
function verifyIP (IPvalue) {
	errorString = "";
	theName = "IPaddress";

	var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
	var ipArray = IPvalue.match(ipPattern);

	if (IPvalue == "0.0.0.0")
	errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	else if (IPvalue == "255.255.255.255")
	errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	if (ipArray == null)
	errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
	else {
	for (i = 0; i < 4; i++) {
	thisSegment = ipArray[i];
	if (thisSegment > 255) {
	errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
	i = 4;
	}
	if ((i == 0) && (thisSegment > 255)) {
	errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	i = 4;
	      }
	   }
	}
	extensionLength = 3;
	if (errorString == "")
	return true;
	else
	alert (errorString);
	return false;
}
// This function is used to display contect sensitive pop up help in Card Holder site.
function showHelp(url, name, height, width) {
  var str = "height=" + height + ",innerHeight=" + height;
  str += ",width=" + width + ",innerWidth=" + width;
  if (window.screen) {
    var ah = screen.availHeight - 30;
    var aw = screen.availWidth - 10;

    var xc = (aw - width) / 2;
    var yc = (ah - height) / 2;
	//alert("xc :"+xc+" yc:"+yc);
    str += ",left=" + xc + ",screenX=" + xc;
    str += ",top=" + yc + ",screenY=" + yc;
    str += ",scrollbars";
  }
	//alert("2nd xc :"+xc+" yc:"+yc);
  window.open(url, name, str);
}

function validCharSet(str,charset)
{
	var result = true;
	for (var i=0;i<str.length;i++)
	{
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}//if
	}//for
	return result;
}



//to Check valid input
//author: ahameed (31-aug-2006)
function isValidAmount(formField,amount){
		if(!validCharSet(amount,amountCharSet)){
			alert('Please enter valid amount');			
			formField.select();
			formField.focus();
						
		}
}



//checks for the decimal places allowed in a number.
//author: ahameed (31-aug-2006)
function checkDecimals(fieldName, fieldValue) {

decallowed = 2;  // how many decimals are allowed?

//if (isNaN(fieldValue) || fieldValue == "") {
//alert("Oops!  That does not appear to be a valid number.  Please try again.");
//fieldName.select();
//fieldName.focus();
//}
	
//else {
if (fieldValue.indexOf('.') == -1) fieldValue += ".";
dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);

if (dectext.length > decallowed)
{
alert ("Please enter a number with up to " + decallowed + " decimal places.  Please try again.");
fieldName.select();
fieldName.focus();
      }
  // }
}

// this function checks for submits and resets on form, and on submission it disables to avoid multiple submission
//author: ahameed (31-aug-2006)
function disableForm(theform) {
if (document.all || document.getElementById) {
for (i = 0; i < theform.length; i++) {
var tempobj = theform.elements[i];
if (tempobj.type.toLowerCase() == "submit" || tempobj.type.toLowerCase() == "reset")
tempobj.disabled = true;
}
return true;
}
}

//this function checks occurence of decimals in given string. more symbols can be added if required.
//author: ahameed (31-aug-2006)
function checkDecimalOcc(amount){
var i;
var x;
var count = 0;
	for(i = 0; i < amount.value.length; i++)
	{
		// Assign charater in substring to x.
		x = amount.value.substr(i, 1);
		if (x == ".")
		{
		count = count +1;
		}
	}
	if (count > 1)
	{
	alert("Only one Decimal allowed");
	amount.select();
	amount.focus();
	return false;
	}
	else{
	decallowed = 2; 
	var dectext;
	if (!(amount.value.indexOf('.') == -1))
	{
	dectext = amount.value.substring(amount.value.indexOf('.')+1, amount.value.length);
//alert("length of dectext"+dectext.length);
		if (dectext.length > decallowed)
		{
		alert ("Please enter a number with up to " + decallowed + " decimal places.");
		amount.select();
		amount.focus();
	    }
	    return false;
    }  
     } 
	return true;
}

//--This function returns false if parameter string contains invalid characters--//--Aufeef 27-07-2006
function containsInvalidChar(str)
{
	//alert(str);
	//Array arr = new Array(",",".","<",">","?","/","\\","-",":",";","!","@","#","$","%","^","&","*","~","`","(",")","_","=","+","|",""");
	var arr = new Array(',','.','<','>','?','/','\\','-',':',';','"','!','@','#','$','%','^','&','*','~','`','(',')','_','=','+','|');
	for( i in arr )
	{
		//alert(arr[i]);
		if( str.indexOf(arr[i]) > -1 )
		{
			//alert("returning true");
			return true;
		}
	}
	return false;
}