

var dateFormatSeparator1 = "/";
var dateFormatSeparatorNew1 = "-";
var dateAndTimeFormatSeparator1 = "-";
var dateAndTimeFormatSeparator2 = ":";


var minYear = 1900;
var maxYear = 2100;
var digitsCharSet = "0123456789";
var amountCharSet = "0123456789.";
var entireCharSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";


var currentDateFormat = "mm"+dateFormatSeparator1+"dd"+dateFormatSeparator1+"yyyy"; 
var currentDateFormatNew = "mm"+dateFormatSeparatorNew1+"dd"+dateFormatSeparatorNew1+"yyyy"; 
var currentDateAndTimeFormat = "yyyy"+dateAndTimeFormatSeparator1+"mm"+dateAndTimeFormatSeparator1+"dd HH"+dateAndTimeFormatSeparator2+"MM"+dateAndTimeFormatSeparator2+"SS"; 
var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))$/;
var currentTimeFormat = "HH:MM:SS"; 


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) == " "){
			
				str = str.substring(1);
			}
			while (str.charAt(str.length - 1) == " "){
			
				str = str.substring(0,str.length - 1);
			}
			return str;
}

var submitCounter = 0;
function SubmitThisForm(theForm)
{
     submitCounter=submitCounter + 1;
     if (submitCounter > 1) {
          
          return false;
     }
}

 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);
   

	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;
}


function allDigits(str)
{
	return inValidCharSet(str,digitsCharSet);
}


function allValidChar(str)
{
	
	return inValidCharSet(str,entireCharSet);
}

function inValidCharSet(str,charset)
{
	var result = true;

	if (decimalCount(str))
	{
		
		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)
	{
		
		return false
	}
	else
	{
		
		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;
		}



		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;
}


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;
		
	}
	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;
}




function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){
        
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var 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){
	
    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 isDateNew(dtStr,fieldLabel,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 for the "'+fieldLabel+'" field. The date format is: '+currentDateFormatNew);
		return false
	}
	if (month<1 || month>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 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 year for the "'+fieldLabel+'" field. It should be 4 digit year between '+minYear+' and '+maxYear);
		return false
	}
return true
}

function isDate(dtStr,fieldLabel,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 for the "'+fieldLabel+'" field. The date format is: '+currentDateFormat);
		return false
	}
	if (month<1 || month>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 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 year for the "'+fieldLabel+'" field. It should be 4 digit year between '+minYear+' and '+maxYear);
		return false
	}

	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 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 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 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 for the "'+fieldLabel+'" field. The date format is: '+currentDateFormat);
		return false
	}
return true
}


function validDate(dtStr,fieldLabel,required,isDOB){
	var result = true;
	if (required && !validRequired(dtStr,fieldLabel))
		result = false;

 	if (result && dtStr.value != "")
 	{
		
 		
		if (isDate(dtStr.value,fieldLabel,isDOB)==false){
			result = false;
			dtStr.focus();
		}
	}
	return result;
 }

function validateDate(dte, lbl) {
               var bValid = true;
               var focusField = null;
               var i = 0;
               var fields = new Array();
               
               
                   var value = dte.value;
                   var datePattern = getDateFormat();
                   
                   
                   
                   
                   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;
            }






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';
		}

		
		
		if(fmt == 'N'){
		if(val != 'Y' && val != 'N'){
			alert("Please Enter the Valid Boolean Y|N");
			ctrl.focus();
			return false;
		}
		}else 
		
		if(fmt == '0'){
		if(val != '0' && val != '1'){
			alert("Please Enter the Valid Boolean 0|1");
			ctrl.focus();
			return false;
		}
		}
		
 	}
	return true;
}




function validDateNew(dtStr,fieldLabel,required,isDOB){
	var result = true;
	if (required && !validRequired(dtStr,fieldLabel))
		result = false;

 	if (result && dtStr.value != "")
 	{
		
 		
		if (isDateNew(dtStr.value,fieldLabel,isDOB)==false){
			result = false;
			dtStr.focus();
		}
	}
	return result;
 }

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;
}




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;
}

	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);
	}



	function setFunction()
	{

		document.location.href = '/webpos/underconst.jsp';
	}


	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();
		}
	}



function ChangeImage(name,source) {
    if (name=='mn1'){
		mn1.src = source;
	}
}



function printPage() {
	window.print();
}

function doDearch (req) {
		document.SearchForm.request.value =req;
	}

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;
}



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;
                                    }



function validChar(formField,fieldLabel,required)
{
	if (required && !validRequired(formField,fieldLabel))
		return  false;


	 var result = true;

	return result;
}

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;
}


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;
}

function checkDecimal(e,controlx,scale,prec)
{
	var startIndex ;
	var key, keychar;
	var subStr ;
	key = getkey(e);
	var len = controlx.value.length;
	if (len > 0 )
	{
		
		 startIndex = controlx.value.indexOf('.');
		
		 if (startIndex > -1)
		 {
			
			subStr1 = controlx.value.substring(0,startIndex);
			
			subStr2 = controlx.value.substring(startIndex,len);
			
		 	if (subStr1.length != scale)
		 	{
		 		
		 		return true;
		 	}
		 	
		 	if (subStr2.length == prec+1)
		 	{
		 		
		 		return false;
		 	}
		 }
		 
		 if (startIndex == -1)
		 {
			if (len == scale+1)
			{
				
				return false;
			}
		 }
	}
}



function validDecimal(formField,fieldLabel,required)
{

	if (required && !validRequired(formField,fieldLabel))
		return  false;

	var decallowed = 6;  
	var fieldValue = formField.value;
	if (isNaN(fieldValue) ) {
	
	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 decimal value with up to ' + decallowed + ' decimal places for the "' + fieldLabel +'" field.');
		formField.select();
		formField.focus();
		}
		else {
		
		return true;
		}
	}
}

function validAlphaBet(formField,fieldLabel,required)
{
	
	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 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 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 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 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 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 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 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 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+ ' for the "'+fieldLabel+'" field.');
				formField.select();
		formField.focus();

		return false;
	}
	
	
  	 var result=validDTime(time,formField,fieldLabel,required);
	return result;
}


function validTime(formField,fieldLabel,required)
{
	var result = true;
	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result)
 	{
		
		
	
	


		var timeStr = formField.value;

	

		var matchArray = timeStr.match(timePat);
		if (matchArray == null) {
			
			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('Hours must be between or 0 and 23 for the "'+fieldLabel+'" field.');
			formField.select();
			formField.focus();

			return false;
		}

		if  (hour > 12 && ampm != null) {
			
			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 ('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 ('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)
{
	
	
	if (required && !validRequired(formField,fieldLabel))
	return  false;

	var timeStr = time;



	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {
		
		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('Hours must be between or 0 and 23 for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}

	if  (hour > 12 && ampm != null) {
		
		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 ('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 ('Seconds must be between 0 and 59 for the "'+fieldLabel+'" field.');
		formField.select();
		formField.focus();

		return false;
	}
	return true;
}


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;
}



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;
                                    }

function validNumRange(value,label,min,max)
{

}

function validDoubleRange(control,label,min,max)
{
	var result = true;
	var valMin = 0.0;
	var valMax = 10000000;
	
	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;

}



	function docCheck(){

	}


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;
}

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;
	
    str += ",left=" + xc + ",screenX=" + xc;
    str += ",top=" + yc + ",screenY=" + yc;
    str += ",scrollbars";
  }
	
  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;
		}
	}
	return result;
}





function isValidAmount(formField,amount){
		if(!validCharSet(amount,amountCharSet)){
			alert('Please enter valid amount');			
			formField.select();
			formField.focus();
						
		}
}





function checkDecimals(fieldName, fieldValue) {

decallowed = 2;  


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();
      }

}



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;
}
}


function checkDecimalOcc(amount){
var i;
var x;
var count = 0;
	for(i = 0; i < amount.value.length; i++)
	{
		
		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);

		if (dectext.length > decallowed)
		{
		alert ("Please enter a number with up to " + decallowed + " decimal places.");
		amount.select();
		amount.focus();
	    }
	    return false;
    }  
     } 
	return true;
}


function containsInvalidChar(str)
{
	
	
	var arr = new Array(',','.','<','>','?','/','\\','-',':',';','"','!','@','#','$','%','^','&','*','~','`','(',')','_','=','+','|');
	for( i in arr )
	{
		
		if( str.indexOf(arr[i]) > -1 )
		{
			
			return true;
		}
	}
	return false;
}
