
	// Validations1.JS
	
	//checkFour Values
	var entName = new Array();
	var entValue = null;
	
	// Checks if the give text field has alphaNumeric or not
	function alphaNumberic(obj)
	{
		var varccode,varlen;

		varccode=0;
		varlen=obj.value.length;
		for(i=0;i<varlen;i++)
		{
			varccode=obj.value.charCodeAt(i);
			if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)|| varccode==32 ||(varccode>47 && varccode<58))
			{}
			else
			{
					varMsg="A0001: Enter only numbers, characters, and spaces."
					alert (varMsg);
					obj.select();
					obj.focus();
					return false;		
			}
		}
		return true;
	}



	/************************************************************************/
	
/*		
	// date comparisons, assumes valid dates as input
	// send smaller date as first arg, bigger date as second arg
	// it will return true if arg2 is greater than arg1 else false
	
	function dateCompareF(d1,d2,equalOk) {
		var d1day = d1.getDate();
		if(parseInt(d1day) < 10) d1day = '0' + d1day.toString();
		var d2day = d2.getDate();
		if(parseInt(d2day) < 10) d2day = '0' + d2day.toString();
		var d1month = d1.getMonth() + 1;
		if(parseInt(d1month) < 10) d1month = '0' + d1month.toString();
		var d2month = d2.getMonth() + 1;
		if(parseInt(d2month) < 10) d2month = '0' + d2month.toString();
		var d1year = d1.getFullYear();
		var d2year = d2.getFullYear();

		var d1val = parseInt(d1year.toString()+d1month.toString()+d1day.toString());
		var d2val = parseInt(d2year.toString()+d2month.toString()+d2day.toString());

		//alert(d2val +'>'+ d1val);
		if (d2val > d1val) {
			return true;
		}
		else if ((equalOk == true) && (d2val == d1val) ) {
		//alert(d2val +'='+ d1val)
		return true;
   }
   else {
     return false;
   }

}*/


	
	
	// date comparisons, assumes valid dates as input
	// send smaller date as first arg, bigger date as second arg
	// it will return true if arg2 is greater than arg1 else false
	
	function dateCompareF(d1,d2,equalOk) {
		var d1day = d1.getDate();
		if(parseInt(d1day) < 10) d1day = '0' + d1day.toString();
		var d2day = d2.getDate();
		if(parseInt(d2day) < 10) d2day = '0' + d2day.toString();
		var d1month = d1.getMonth() + 1;
		if(parseInt(d1month) < 10) d1month = '0' + d1month.toString();
		var d2month = d2.getMonth() + 1;
		if(parseInt(d2month) < 10) d2month = '0' + d2month.toString();
		var d1year = d1.getFullYear();
		var d2year = d2.getFullYear();

		var d1val = parseInt(d1year.toString()+d1month.toString()+d1day.toString());
		var d2val = parseInt(d2year.toString()+d2month.toString()+d2day.toString());

		//alert(d2val +'>'+ d1val);
		if (d2val > d1val) {
			return true;
		}
		else if ((equalOk == true) && (d2val == d1val) ) {
		//alert(d2val +'='+ d1val)
		return true;
   }
   else {
     return false;
   }

}

















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
}


var DefAmt
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
/* returns true or false , if valid or invalid date */
function isDate(dtStr){
	
	
	var daysInMonth = DaysArray(12)
	
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	
	var strDay=dtStr.substring(0,pos1);
	var strMonth=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){
	
		return false
	}
	
	if (strMonth.length<1 || month<1 || month>12){
	
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
	
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	
		return false
	}
return true
}


	function getMonthNo(monthStr) {
      var arrMonths = new Array('jan','feb','mar',
                                'apr','may','jun',
                                'jul','aug','sep',
                                'oct','nov','dec');
	  for (var i=1 ; i<=arrMonths.length; i++) {
	    if (arrMonths[i-1] == monthStr.toLowerCase()) {
	       return i;
	    }
	  } 
	  return 22; //invalid month
    }    
    
    
	 // This method takes input box as its parameter and checks if the input box has valid percentage or not
	 
	 function isPercentage(txtPercentage){
	 	if(isBlank(txtPercentage.value)==true) return true;
		var testv, rg;
		testv = txtPercentage.value;
		if(testv.indexOf(".")!=-1){
			if(testv.length - testv.indexOf(".")>3){
				return false
			}
		}
		if(!isNaN(testv)){
			if(parseInt(testv)>=100 || parseInt(testv)<=-100) return false;
			return true
		}
		return false
	}
	
	// This method takes input box as its parameter and checks if the input box has valid currency or not
	function isCurrency(txtCurrency){
		if(isBlank(txtCurrency.value)==true) return true;
		if((txtCurrency.value.charAt(0) == '-') ||(txtCurrency.value.charAt(0) == '+') ) {
			if (txtCurrency.value.length >11) {
			  return false;
			}
			else{
				
				if(txtCurrency.value.indexOf(".")==-1 && (txtCurrency.value.length==11)){
					return false;
				}
				else if(txtCurrency.value.indexOf(".")!=-1){
					
					if(txtCurrency.value.length - txtCurrency.value.indexOf(".")>3){
						return false;
					}
					else if(txtCurrency.value.indexOf(".")==9){
						
						return false;
					}
					else{
						return true;
					}
				}
				else{return true;}
			}
				
		}
		else if (txtCurrency.value.length >10) {
			return false;
		}
		
		var testv;
		testv = txtCurrency.value;
		
		if(testv.indexOf(".")!=-1){
			if(testv.length - testv.indexOf(".")>3){
				return false;
			}
			else if(testv.indexOf(".")==8){
				return false;
			}
		}
		else{
			if(testv.length>9){
				return false;
			}
		}
		if(!isNaN(testv)){
			return true;
		}
		return false;
	}



	
	// This method takes a string as its parameter and checks if the string is blank or not
	
	function isBlank(val){
		if(val==null){return true;}
		for(var i=0;i<val.length;i++) {
			if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
			}
	return true;
	}


function MM_openBrWindow(theURL,winName,features) { 
  window.open(theURL,winName,features);
}


function funTrimString(objStr)
{
	if(objStr.value.charCodeAt(0)==32)
	{
		objStr.value = objStr.value.substr(1,objStr.value.length)
		funTrimString(objStr)
	}
	else if(objStr.value.charCodeAt(objStr.value.length-1)==32)
	{
		objStr.value = objStr.value.substr(0,objStr.value.length-1)
		funTrimString(objStr)
	}
}


	/* Check Required Field function */	
	function checkReqFld(obj,fldName) {
		if(obj.value==""){
			alert(fldName + " is a required field.\nPlease Enter " + fldName);
			return false;
		}
		return true;
	}
	
	// Populate hidden date field as formatted date.
	
	function funNumChar(obj)
	{
		var varccode,varlen
		varccode=0
		varlen=obj.value.length
		for(i=0;i<varlen;i++)
		{
			varccode=obj.value.charCodeAt(i)
			if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)|| varccode==32 ||(varccode>47 && varccode<58))
			{}
			else
			{
					varMsg="Only Numbers and/or characters are allowed."
					alert (varMsg);
					obj.value = "";
					obj.focus()
					return false		
			}
		}
		return true;

	}


	function checkFourInputs(txtFirst, txtSecond, txtThird, txtDefault, strMsg,iMaxValue)
	{
		if(isBlank(txtDefault.value)) return;
		
		// Check if the value is numeric	
		if(isInteger(txtDefault.value) == false)
		{
			alert("A0002: Please enter a numeric value");
			txtDefault.value="";
			txtDefault.focus();
			return;
		}
		else
		{
			if(eval(txtDefault.value) < 1){
				alert("A0003: Please enter a positive value");
				txtDefault.select();
				txtDefault.focus();
				return;
				

			}
			else if( parseInt(txtDefault.value) > parseInt(iMaxValue) )
			{
				alert("A0005: The maximum value should be " + iMaxValue);
				txtDefault.select();
				txtDefault.focus();
				return;
			}
		
		}
		
		// Checks if other fields are entered
		var iNdex=0;
		if(isBlank(txtFirst.value)== false || isBlank(txtSecond.value)==false || isBlank(txtThird.value)==false || isBlank(txtDefault.value)==false ) 
		{
			
			if(!isBlank(txtDefault.value))
			 {
				
				//iNdex="";
				iNdex=1;	
				entName[iNdex]=txtDefault;
			 }	
			if(!isBlank(txtFirst.value))
			 {
				
				//iNdex="";
				iNdex=iNdex+1;	
				entName[iNdex]=txtFirst;
			 }	
			if(!isBlank(txtSecond.value))
			 {
				
				//iNdex="";
				iNdex=iNdex+1;	
				entName[iNdex]=txtSecond;
			 }	
			if(!isBlank(txtThird.value))
			 {
				
				//iNdex="";
				iNdex=iNdex+1;
				entName[iNdex]=txtThird;
			 }
			 if(iNdex==2)
			 {
				var fName = new Array();
				fName=entName[iNdex].name.split('_')
				
				var cName = new Array();
				cName=txtDefault.name.split('_')
				
				/*
				if(cName=="txtRESERVATION")
				{
					entName[iNdex].name="MINUTES";
					var res;
					res = window.confirm("Retain "+strMsg+" "+"MINUTES"+ " Rather Than " +
					                     fName[fName.length-1]+"?" );

				}
				else
				{
					var res;
					res = window.confirm("Retain "+strMsg+" "+cName[cName.length-1]+ " Rather Than " +
					                     fName[fName.length-1]+"?");

				}
				*/
				var res;
				res=window.confirm("A0006: Only one value from the month, days, hours, or minutes is allowed.\nPress OK to continue");
				if(!res)
				{
				txtDefault.value = "";
				//entName=null;		
				}
				else
			    {
				//entName[iNdex].value="";
				//entName[iNdex]=txtDefault;
				txtFirst.value="";
				txtSecond.value="";
				txtThird.value="";
				}	
			 }
			 
		 }
	}
				
	
	// Checks if the value is an inter of not
	
	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 freeFormText(obj)
	{
	
	var varccode,varlen;
	varccode=0;
	var vchar=''
	varlen=obj.value.length;
	for(i=0;i < varlen;i++)
	{
		varccode=obj.value.charCodeAt(i);
		vchar=obj.value.charAt(i);
		// Free form text @ ) * ' - ( / + % ; < : $ = ? . & , 

		if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)|| varccode==32 || varccode==64 || varccode==41 || varccode==42 || varccode==39 || varccode==45 || varccode==40 || varccode==47 || varccode==43 || varccode==37 || varccode==59 || varccode==60 || varccode==58 || varccode==36 || varccode==61 || varccode==63 || varccode==46 || varccode==38 || varccode == 44 || varccode == 13 || varccode == 10 || (varccode>47 && varccode<58))
		{}
		else if ((vchar ==' ') || (vchar == "\t") || (vchar == "\n") || (vchar == "\r")){}
		else
		{
				varMsg="A0007: Enter only numbers, characters, and @ ) * ' - ( / + % ; < : $ = ? . & , .";
				alert (varMsg);
				//obj.value = "";
				obj.focus();
				return false;		
		}
	}
	return true;

	}



function checkInteger(theField){
		if (isBlank(theField) == false) return;
		if(isNaN(theField.value) == true){
			alert("A0002: Please enter a numeric value");
			theField.select();
			theField.focus();
		}
	}
	
	
	function checkAN(obj)
	{
		var varccode,varlen;
		varccode=0;
		varlen=obj.length;
		
		for(i=0;i<varlen;i++)
		{
			varccode=obj.charCodeAt(i);
			if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)|| varccode==32 ||(varccode>47 && varccode<58))
			{}
			else
			{
				return false;
			}
		}
		return true;
	}
	
	
	function checkANExtra(obj,objExtra)
	{
		
		var varccode,varlen;
		varccode=0;
		varlen=obj.length;
		var varExtra = objExtra.charCodeAt(0);
		
		for(i=0;i<varlen;i++)
		{
			varccode=obj.charCodeAt(i);
			if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)|| varccode==32 || varccode==varExtra ||(varccode>47 && varccode<58))
			{}
			else
			{
				return false;
			}
		}
		return true;
	}



	//*** This function is used for only Characters and spaces validation.***/
	function charCheck(obj)
	{
		var varlen
		varlen = obj.value.length
		for(i=0;i<varlen;i++)
		{
			var varccode = obj.value.charCodeAt(i)
			if( ( varccode > 96 && varccode < 123 ) || ( varccode > 64 && varccode < 91 ) || varccode==32 )
			{}
			else
			{
				varMsg="A0009: Enter only Characters."
				alert (varMsg);
				obj.select();
				obj.focus();
				return false
			}
		}		
	}


//*** This function is used for only Characters and spaces validation.***/
function charCheck1(obj)
{
	var varlen
	varlen = obj.length
	for(i=0;i<varlen;i++)
	{
		var varccode = obj.charCodeAt(i)
		if( ( varccode > 96 && varccode < 123 ) || ( varccode > 64 && varccode < 91 ) || varccode==32 )
		{}
		else
		{
			return false
		}
	}	
	return true;	
}

	


function checkNumber(txtNumber){
	if(isInteger(txtNumber.value) == false){
		alert("A0002: Please enter a numeric value");
		txtNumber.select();
		txtNumber.focus();
	}

}


	function timeValid(txtTime){
		if(isBlank(txtTime.value) == true) return;
		var strTime;
		strTime = txtTime.value;
		
		if(strTime.length<4){
			alert("A0011: The time format should be in HHMM ");
			txtTime.select();
			txtTime.focus();
			return false;
		}
		
		if(isNaN(strTime) == true){
			alert("A0011: Please enter the date in HHMM format ");
			txtTime.focus();
			txtTime.select();
			return false;
		}
		if(strTime <= 0){
			alert('A0013: Time must start with 0001');
			txtTime.focus();
			txtTime.select();
			return false;
		}
		if(parseInt(strTime.substring(0,2)) > 24){
			alert("A0014: The hours should be less than or equal to 2400");
			txtTime.select();
			txtTime.focus();
			return false;
		}
		
		
		if(parseInt(strTime.substring(2,4)) > 59)
		{
			alert("A0015: The minutes should be less than 60");
			txtTime.select();
			txtTime.focus();
			return false;
		}
		
		if(parseInt(strTime) > 2400)
		{
			alert("A0016: The minutes should be less than or equal to 2400");
			txtTime.select();
			txtTime.focus();
			return false;
		}
		
		return true;
	
	}
	


	// This method will invoke in the blur event of Min and Max fares
	 function validateMinMax(txtMinMax) {
		if(txtMinMax.value!=''){
	  		if (!isCurrency(txtMinMax)) {
	 			txtMinMax.select();
				alert('A0017: Minimum or Maximum Value should be in decimal format (N7D2 or N9).');
				txtMinMax.focus();
			}
			else{
				if(parseInt(txtMinMax.value) < 0){
					txtMinMax.select();
					alert('A0003: Please enter a positive value');
					txtMinMax.focus();
				}
			
			}
		}
	 }
	 // end of validateMinMax()
	 
	 

	//*** This function is used for only Characters and spaces validation.***/
	function charCheckExtra1(obj, objExtra)
	{
		var varlen,varExtra;
		varlen = obj.length;
		varExtra = objExtra.value.charCodeAt(0);
		
		for(i=0;i<varlen;i++)
		{
			var varccode = obj.charCodeAt(i);
			if( ( varccode > 96 && varccode < 123 ) || ( varccode > 64 && varccode < 91 ) || varccode==32 || varccode==varExtra )
			{}
			else
			{
				return false
			}
		}	
		return true;	
	}



	function validDate(txtDate){
		if(isBlank(txtDate.value)== true) return false;
		if(isDate(txtDate.value) == false){
			alert("A0019: Please enter the valid date in DD/MM/YYYY format");
			txtDate.select();
			txtDate.focus();
		}
	}
	
	
	function getDateObject(dtStr){
		var pos1=dtStr.indexOf(dtCh)
		var pos2=dtStr.indexOf(dtCh,pos1+1)
		var strDay=dtStr.substring(0,pos1);
		var strMonth=dtStr.substring(pos1+1,pos2);
		var strYear=dtStr.substring(pos2+1);

		var monthName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
		//alert(monthName[parseInt(strMonth) -1]);
		var dt1 = new Date(monthName[parseInt(strMonth) -1] + "  " + strDay + "," + strYear);
		
		return dt1;
	}
	
	
	
	function validateSpace(txtSpace){
		if(txtSpace.value.indexOf(' ') != -1){
			alert("A0020: Spaces are not allowed");
			txtSpace.select();
			txtSpace.focus();
			return false;
		}
		return true;
	}
	
	
	function timeCompare(sTime1, sTime2){
		if(sTime1>=sTime2) return false;
		return true;
	}
	
	
	function validDateNew(txtDate){
		
		if(isBlank(txtDate.value)== true) return false;
		if(txtDate.value == "DDMMMYY") return false;
		if(txtDate.value.length != 7 && txtDate.value.length != 5){
			var Res=window.confirm("A0021: Please enter the valid date in DDMMMYY or DDMMM format");
				if (Res){
					txtDate.select();
					txtDate.focus();
					return false;
				}
				else{txtDate.value=''}
		}
		if(isDateNew(txtDate.value) == false){
			var Res=window.confirm("A0021: Please enter the valid date in DDMMMYY or DDMMM format");
				if (Res){
					txtDate.select();
					txtDate.focus();
					return false;
				}
				else{txtDate.value=''}
		}
	
	}
	
	
	
	/* returns true or false , if valid or invalid date */
function isDateNew(mydate){
	var dtStr=mydate;
	if(dtStr.length=5){
		dtStr=dtStr+'9999';
	}
	if(dtStr.length<7){	return false;}
		
	
	//alert(dtStr);
	var daysInMonth = DaysArray(12);
	var strDay=dtStr.substring(0,2);
	var strMonth1=dtStr.substring(2,5);
	if(dtStr.length == 9){
		var strYear=dtStr.substring(5,9);
	}
	else{
		var strYear='20' + dtStr.substring(5,7)
	}
	
	var strMonth = getMonthNo(strMonth1);
	if(strMonth == 22){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=eval(strYr)
	
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		return false
	}
	
	if(isNaN(strDay)){
		return false;
	}
		
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	
	if (isNaN(strYear) == true) return false;
	
	if (strYear.length != 4 || year==0 ){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	
	return true
}

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}
function fnIsFormat (obj)
{
	var  sNum = trim(obj);
	if ((sNum!="" && !isNaN(sNum) && (sNum/1)==parseInt(sNum)))
	{
		  if (parseInt(sNum)>0)
		  {
			if(sNum.length <=9)
				return true;
			else
				return false;
		  }
		  else
				return false;
		 
	}
	else
	{
		if (IsDecimal(sNum) )
		{
			if (parseFloat(sNum)>0) 
			{ 
				if (sNum.length > 10 )
					return false;
				else
				{
					var loc = sNum.split('.');
					if (loc[0].length > 7 || loc[1].length > 2)
						return false;
					else
						return true;
				}	
			}
			else
				return false;
			 
		}
		else
			return false;
	}			 
}
var NumChars = "0123456789";
function IsDecimal(Data) {
			var It = true;
			var virgule = false;
			var c;
			c = Data.charAt(0);	
			It = ( (NumChars.indexOf(c) != -1) || (c == "+") || (c=="-") );
			for (var x = 1; x < Data.length; x++)
				if (It) {
					c = Data.charAt(x);
					if ( (c==".") || (c == ",") )
						if (virgule) 
							It = false;
						else {
							It = true;
							virgule = true;
						}
					else
						It = (NumChars.indexOf(c) != -1);
				}
			return It;
}
 
 

	function checkANNoSpace(obj)
	{
		var varccode,varlen;
		varccode=0;
		varlen=obj.length;
		for(i=0;i<varlen;i++)
		{
			varccode=obj.charCodeAt(i);
			if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)||(varccode>47 && varccode<58))
			{}
			else
			{
				return false;
			}
		}
		return true;
	}


   function funNumCharOnly(obj)
   {
	var varlen
	varlen = obj.value.length
	for(i=0;i<varlen;i++)
	 {
		var varccode = obj.value.charCodeAt(i)
	
		if( ( varccode > 96 && varccode < 123 ) || ( varccode > 64 && varccode < 91 ) || (varccode>48 && varccode<57) )
		{}
		else
		{
			varMsg="A0022: Only numbers and/or characters are allowed."
			alert (varMsg);
			obj.value = "";
			obj.focus();
			return false
		}
	 }		
   }


//**************************************************************************	
// this function is for email validation

	function validateEmail(obj)
	{
		
		var ArEmails=  Trimming(obj.value).split(";");
		for(CountNo=0;CountNo<ArEmails.length;CountNo++)
		{
			emailStr=ArEmails[CountNo];
						
			if(emailStr=="")
			{
				return;
			}	
			
			var checkTLD=1;

			var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

			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) {

			alert("Email address incorrect (check @ and .'s)");
			obj.focus();
			return false;
			}
			
			var user=matchArray[1];
			var domain=matchArray[2];

			for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
			alert("The username contains invalid characters.");
			obj.focus();
			return false;
			   }
			}
			for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
			alert("The domain name contains invalid characters.");
			obj.focus();
			return false;
			   }
			}
			
			if (user.match(userPat)==null) {
			//alert("Invalid Username.");
			alert("Seperate Mails Id's with Semicolon.");
			obj.focus();
			return false;
			}
			
			var IPArray=domain.match(ipDomainPat);
			if (IPArray!=null) {

			for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
			alert("Destination IP address is invalid!");
			obj.focus();
			return false;
			   }
			}
			return true;
			}
			
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
			alert("The domain name is invalid.");
			obj.focus();
			return false;
			   }
			}
			
			if (checkTLD && domArr[domArr.length-1].length!=2 && 
			domArr[domArr.length-1].search(knownDomsPat)==-1) {
			alert("The address must end in a well-known domain or two letter " + "country.");
			obj.focus();
			return false;
			}
			
			// Make sure there's a host name preceding the domain.

			if (len<2) {
			alert("This address is missing a hostname!");
			obj.focus();
			return false;
			}
			
			// If we've gotten this far, everything's valid!
		  }	
			return true;
		
	}
	
	function Trimming(str)
		{
				
			while(str.charAt(0)==' ')
				str=str.substring(1,str.length);
			while(str.charAt(str.length-1)==' ')
				str=str.substring(0,str.length-1);
			
			return str;
		}




//**************************************************************************	
// this function is for validating phone number

	function validatePhone(obj)
	{

			var strValue=Trimming(obj.value);
				// this if is for null checking
				
				if(strValue.length==0)
				{
					return false;
				}
				
				//to remove ( in the string
				
				expr=/\(/gi;
				strValue=strValue.replace(expr,"");
				//to remove ')'
				expr=/\)/gi;
				strValue=strValue.replace(expr,"");
				//to remove '-'
				expr=/-/gi;
				strValue=strValue.replace(expr,"");
				// to remove space
				expr=/ /gi;
				strValue=strValue.replace(expr,"");
				//alert(parseInt(strValue,10));
				if(isNaN(strValue))
				{
					alert("Please enter a valid phone number");
					//obj.value="";
					obj.focus();
					return false;
				}
		
				if(strValue.length >=10)
				{
					if(strValue.charAt(0) != '(')
						strValue="("+strValue;
					if(strValue.length > 4)
					{
						if(strValue.charAt(4) != ')')
							strValue=strValue.substring(0,4)+")"+strValue.substring(4,strValue.length)
					}
					if(strValue.length > 8)
					{
						if(strValue.charAt(8) != '-')
							strValue=strValue.substring(0,8)+"-"+strValue.substring(8,strValue.length)				
					}	
						obj.value=strValue.substring(0,13);	
						if(strValue.length <13)
							{
								alert("Incomplete Phone format");
								obj.focus();
							}
						
				}		
				else
				{
					alert("Please enter phone number in one of the formats (999)999-9999 or 9999999999 or 999 999 9999");
					return false;
					obj.focus();
				}
			
	}
	
	
	
//**************************************************************************	
// this function is for validating zip

	
	function validatezip(obj)
	
	{
			strValue=Trimming(obj.value);
			
			expr=/-/gi;
			
			var strValue=strValue.replace(expr,"");
			
			// to remove space
			
			expr=/ /gi;
			
			//vishy
			strValue=strValue.replace(expr,"");	
			
			if(strValue.length==0)
			{
				return false;
			}
			
			
			if(isNaN(strValue))
			{
				alert("Please enter a valid Zip");
				//obj.value="";
				obj.focus();
				return false;
			}
			
			
			if(strValue.length ==5 ||strValue.length >=9)
			{
				
				if(strValue.length >=9)
				{
					strValue=strValue.substring(0,5)+"-"+strValue.substring(5,9);
					strValue=strValue.substring(0,10);
				}
				else
				
				obj.value=strValue;
			}	
			else
			{
				alert("Please enter zip in one of the formats 99999-9999 or 99999");
				obj.focus();
				
			}
		
	}

	
//*** This function is used for only Characters and spaces validation.***/

function funCharOnly(obj)
{
	var varlen
	varlen = obj.value.length
	for(i=0;i<varlen;i++)
	{
		var varccode = obj.value.charCodeAt(i)
		if( ( varccode > 96 && varccode < 123 ) || ( varccode > 64 && varccode < 91 ) || varccode==32 )
		{}
		else
		{
			varMsg="A0023: Enter only Characters."
			alert (varMsg);
			obj.value = "";
			obj.focus();
			return false
		}
	}		
}

function CancelFun(FormObj){

	for(var i1 = 0; i1 < window.document.forms.length ; i1++)
	{
		for(var i2=0; i2 < window.document.forms[i1].elements.length ; i2++)
		{
			if(window.document.forms[i1].elements[i2].type =='text'){
				window.document.forms[i1].elements[i2].value = '';
			}		
		}
	}
}

function validatePosition(obj){
		if(isNaN(obj.value)){
			alert("A0002: Please enter a numeric value");
			obj.select();
			obj.focus();
			return false;
		}
		if(obj.value < 0){
			alert("A0003: Please enter a positive value");
			obj.select();
			obj.focus();
			return false;
		}
		else{return true;}
			
	}


//**************************************************************************	
// this function is for converting case

	
function CCase(obj,vCase){
funTrimString(obj);
	if(obj.value.length>0){
		if(vCase=="L"){
			obj.value=obj.value.toLowerCase();
		}
		else if(vCase=="U"){
			obj.value=obj.value.toUpperCase();
		}
		else{
			obj.value=obj.value;
		}
	}
}

function charCheck3(obj)
	{
		var varccode,varlen
		varccode=0
		varlen=obj.value.length
		for(i=0;i<varlen;i++)
		{
			varccode=obj.value.charCodeAt(i)
			if((varccode>96 && varccode<123)||(varccode>64 && varccode <91)|| varccode==32 ||(varccode>47 && varccode<58) || varccode==42)
			{}
			else
			{
					varMsg="A0026: Only numbers and/or characters are allowed."
					alert (varMsg);
					obj.value = "";
					obj.focus()
					return false		
			}
		}
		return true;

	}
	
function ShowHelp(URL) {
	MM_openBrWindow(URL,'Help',"width=880, height=710, left=0, top=0, scrollbars=yes");
}