var emptyString = " field is blank. Please enter a "

var ALPHABETIC = "A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/- "

var ALPHANUMERIC = "A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/1/2/3/4/5/6/7/8/9/0/'/ /-/&/"

var ALPHANUMERIC1 = "A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/1/2/3/4/5/6/7/8/9/0/`/~/!/@/#/$/%/^/\/&/*/(/)/_/+/=/-/?/>/</./,/[/]/{/}/|/ /;/:/'/"

var ALPHANUMERIC2 = "A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/1/2/3/4/5/6/7/8/9/0/-/@/./"

var ALPHANUMERIC3 = "A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/1/2/3/4/5/6/7/8/9/0/`/~/!/@/#/$/%/^/&/*/(/)/_/+/=/-/?/>/</./,/[/]/{/}/|/ /'/;/:/"

var phone = "0/1/2/3/4/5/6/7/8/9/-"


// ---------------------------------------------------------------------------------------------------------------------------

    function isString(a) 
    {    
        return typeof a == 'string';
    }
    
	function isEmail(emailStr)
	{
	alert("email");
		var split1;
		var split2;

		split1 = emailStr.split("@")
		if (split1.length == 2) {
			if (split1[0].length != 0 || split1[1].length != 0) {
			
							
				split2 = split1[1].split(".")
				if (split2.length == 2 || split2.length == 3) {
					
					if (split2[0].length != 0 || split2[1].length != 0 && split2[1].length !=0)
						return true;
					else
						return false;
				}
				else 
					return false;	
			}	
			else 
				return false;			
		}
		else 
			return false;
	}

	
// ---------------------------------------------------------------------------------------------------------------------------


//function IsEmail(sValue)
//{
//	var strObj=new String(sValue);
//	if (strObj.length>0)
//	{
//		if (isWhitespace(sValue)!=true)
//		{
//			if ((strObj.indexOf("@") == -1) || (strObj.charAt(0) == ".") || (strObj.charAt(0) == "@") || (strObj.length < 6) || (strObj.indexOf(".") == -1) || (strObj.charAt(strObj.indexOf("@")+1) == ".") || (strObj.charAt(strObj.indexOf("@")-1) == ".")) 
//				return false;
//			else
//				return true;
//		}
//	}
//	else
//		return true
//}


// ---------------------------------------------------------------------------------------------------------------------------


	function isWebsite(webStr)
	{

		var split1;
		
		split1 = webStr.split(".")
		if (split1.length == 3) {

			if (split1[0] == 'www' && split1[1].length != 0 && split1[2].length != 0)
				return true;
			else
				return false;
		}
		else
			return false;

	}


// ---------------------------------------------------------------------------------------------------------------------------


	function notNull(str){

		if (str.length == 0 )
			return false
		else{
			return true
		}
	}


// ---------------------------------------------------------------------------------------------------------------------------

	// FLOAT VALUE
	function isNumber1(str)	{

		numdecs = 0;

		for (i = 0; i < str.length; i++) {
			mychar = str.charAt(i)
			if (i == 0)
			{
				if ((mychar >= "0" && mychar <= "9") || mychar == "." || mychar == "-"){
					if (mychar == ".")
						numdecs++
				}
				else{
					return false;
				}
			}
			else
			{
				if ((mychar >= "0" && mychar <= "9") || mychar == "."){
					if (mychar == ".")
						numdecs++
				}
				else{
					return false;
				}
			}
		}

		if (numdecs > 1){
				return false
		}
		return true

	}


// ---------------------------------------------------------------------------------------------------------------------------

	// INTEGER VALUE
	function isNumber(str){

			numdecs = 0;

			for (i = 0; i < str.length; i++) {

				mychar = str.charAt(i)

				if ((mychar >= "0" && mychar <= "9")){
					if (mychar == ".")
						numdecs++
				}
				else{
					return false;
				}
			}

			if (numdecs > 0){
					return false
			}
			return true
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function notBlank(str)	{

		for (i = 0; i < str.length; i++){

			if (str.charAt(i) != " ")
				return true
		}
		return false
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function isDigits(str)	{

		var i

		for (i = 0; i < str.length; i++){

			mychar = str.charAt(i)
			if (mychar < "0" || mychar > "9")
				return false
		}
		return true

	}


// ---------------------------------------------------------------------------------------------------------------------------


	function stripNonDigits(str){

		var i
		var newstring = ""

		for (i = 0;  i < str.length; i++){

			mychar = str.charAt(i)
			if (isDigits(mychar))
				newstring += mychar
		}
		return newstring
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function isValid(pattern, str){

		return pattern.test(str);
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function isDate(sValue,dateformat)
	{
//		var dateformat=0;
//		if(locale_dateformat!=undefined)
//		dateformat=locale_dateformat;

		str = new String(sValue);
		var re=/\d+/g;
		var arr=str.match(re);
		var dt;
		var dt1;
		if(arr==null || arr.length<3)
		{
			return false;
		}

		while(arr.length<3)
			arr[arr.length]=0;


		// create date
		
	//	if(dateformat==0){
	//		dt = new Date(arr[2],arr[0]-1,arr[1]);
	//	}
		if(dateformat==1){					// mm/dd/yyyy
			dt = new Date(arr[2],arr[0]-1,arr[1]);
		}
		if(dateformat==2){					// dd/mm/yyyy
			dateStr = arr[1] + "/" + arr[0] + "/" + arr[2];
//			alert(dateStr);
			dt = new Date(dateStr);
//			alert(dt);
		}
		/*if(dateformat==3){					// mmm-yyyy
			dt = new Date(arr[2],arr[1]-1,arr[0]);
		}*/


//alert(dt.getDate()+'--'+arr[0])
//alert(dt.getMonth()+'--'+arr[1])
//alert(dt.getYear()+'--'+arr[2])

	//	check date and month
		if(dateformat==1 && (dt.getMonth()!=arr[0]-1 || dt.getDate()!=arr[1]))
			return false;
		if(dateformat==2 && (dt.getMonth()!=arr[1]-1 || dt.getDate()!=arr[0]))
			return false; 
		/*if(dateformat==3 && (dt.getMonth()!=arr[0]-1 || dt.getDate()!=arr[1]))
			return false;*/
	
		return true;
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function IsMoney(sValue)
	{
		var moneyPass=true;
		var dotFound=false;
		var dotFoundAt=-1;
		var strField = new String(sValue);
		var i=true;
		var k = 0;

		for (k = 0; k < strField.length; k++)
		{
			var x=strField.charAt(k);
			if (x == ".")
			{
				dotFound = true;
				if (dotFoundAt < 0)
				{
					dotFoundAt=k;
				}
			}
			if (((x < '0') || (x > '9')) && (x != '.'))
			{
				i=false;
				k = strField.length;
			}
			if ((x == '.') && (dotFoundAt != k))
			{
				i=false;
				k = strField.length;
			}
		}
		return i;
	}


// ---------------------------------------------------------------------------------------------------------------------------

	
	function isPhoneNumber (str){

		numdecs = 0;

		for (i = 0; i < str.length; i++) {
			mychar = str.charAt(i)
			if ((mychar >= "0" && mychar <= "9") || mychar == "-" || mychar == "(" || mychar == ")" || mychar == "+") {
				if (mychar == ".")
					numdecs++
			}
			else{
				return false;
			}
		}

		if (numdecs > 1)	{
				return false
		}

		return true
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function validateString(myfield, message)
	{
	    if (notNull(myfield.value)&& notBlank(myfield.value))
			return true
		else{
			if (message.length != 0){
				myfield.focus()
				alert(message )
			}
			return false
		}
	}


// ---------------------------------------------------------------------------------------------------------------------------

	function isSize(str, size){
		if (str.length == size)
			return true
		else
			return false
	}


// ---------------------------------------------------------------------------------------------------------------------------


	function validateZip(myfield)	{

		if (notNull(myfield.value))	{
			//newstring = stripNonDigits(myfield.value)
			newstring = myfield.value
			l=newstring.length
			
			if ((l<5) || (l>9)) {
				alert("Zip Code must be 5-9 digit")
				return false
			}
			else
				return true
		}
		
	}

// ---------------------------------------------------------------------------------------------------------------------------


	//check correct number of day for given month/year
	function validateDate(day, month, year)
	{
	  if (day.selectedIndex != 0 && month.selectedIndex != 0 && year.selectedIndex != 0)
      	{
		      switch(month.value) 
		      {
         			case "02" :
            			//February
            			if (year.value == Math.round(year.value / 4) * 4)
       				//leap year
				       {
					       if (day.value > 29)
			                  {
                  				return false;
                  			}
               			}
            			else
			            {
               				//non-leap year
			      	      if (day.value > 28)
			                  {
                  				return false;
                  			}
               			}
               			break;	
         			case "04" :
			            //April
            			if (day.value > 30)
			            {
               				return false;
               			}	
               			break;
         			case "06":
            			//June
            			if (day.value > 30)
               			{
               				return false;
               			}	
               			break;		
         			case "09":
            			//September
            			if (day.value > 30)
               			{
               				return false;
               			}	
               			break;
         			case "11":
            			//November
            			if (day.value > 30)
               			{
               				return false;
               			}	
               			break;
         			default:
            			//date is valid
            			return true;
            			break;
         		}
      	}
   	}	


// ---------------------------------------------------------------------------------------------------------------------------


	function GetFormatedDate(dt,form)
	{

		var d;
		var d_month;
		var d_day;
		var d_year;
		var d_out;

		d = new Date();

		d_month = d.getMonth(dt)+1;
		d_day = d.getDate(dt)
		d_year = d.getYear(dt);

		if (form == 1)
			d_out =  d_month +'/'+ d_day +'/'+ d_year;
		if (form == 2)
			d_out =  d_day +'/'+ d_month +'/'+ d_year;
		if (form == 3)
			d_out =  d_month +'-'+ d_year;


		return d_out;
	}



// ---------------------------------------------------------------------------------------------------------------------------

	function textCounter(field,maxlimit) {
		cntfield = maxlimit
		if (field.value.length > maxlimit) 
		field.value = field.value.substring(0, maxlimit);
		
		else
		cntfield = maxlimit - field.value.length;
	}
	
// ---------------------------------------------------------------------------------------------------------------------------

	function CompareDates(dt1,dt2)
	{
		if(Date.parse(dt1) < Date.parse(dt2)) 
			return true;
		else
			return false;
	}
	
// ---------------------------------------------------------------------------------------------------------------------------

		function InStr(strSearch, charSearchFor)
			{
				for (i=0; i < Len(strSearch); i++)
				{
					if (charSearchFor == Mid(strSearch, i, 1))
					{
						return i;
					}
				}
				return -1;
			}
//--------------------------------------------------for automatic '/' for entering date manualy
		function Trim(STRING){
			STRING = LTrim(STRING);
			return RTrim(STRING);
		}

		function RTrim(STRING){
			while(STRING.charAt((STRING.length -1))==" "){
				STRING = STRING.substring(0,STRING.length-1);
			}
			return STRING;
		}

		function LTrim(STRING){
			while(STRING.charAt(0)==" "){
				STRING = STRING.replace(STRING.charAt(0),"");
			}
			return STRING;
		}

		function Mid(str, start, len)
		{
				if (start < 0 || len > 0) return "";

				var iEnd, iLen = String(str).length;
				if (start + len > iLen)
					iEnd = iLen;
				else
					iEnd = start + len;

				return String(str).substring(start,iEnd);
			}
//-----------------for replacing Enter Key with <BR> so the remaining string should come on next line

	function add_BR(field,e){
		//alert(e.keyCode);
		if (e.keyCode == 13)
		   field.value = field.value +'<BR>';
	}	
	
	function comparedate(d1_str,d2_str,op,dateformat){
			var d1,d2;
			if (dateformat == 2){
				d1 = new Date(d1_str.split('/')[2],d1_str.split('/')[1],d1_str.split('/')[0]);
				d2 = new Date(d2_str.split('/')[2],d2_str.split('/')[1],d2_str.split('/')[0]);
			}
			else{
				d1 = new Date(d1_str);
				d2 = new Date(d2_str);		
			}
			if ( op == ">") 
				if (d1.getTime() > d2.getTime()) 
					return 1;
				else
					return 0;
			else 
				if ( op == ">=") 
					if (d1.getTime() >= d2.getTime()) 
						return 1;
					else
						return 0;
				else
					if ( op == "<") 
						if (d1.getTime() < d2.getTime()) 
							return 1;
						else
							return 0;
					else
						if ( op == "<=") 
							if (d1.getTime() <= d2.getTime()) 
								return 1;
							else
								return 0;
						else
							if ( op == "!=") 
								if (d1.getTime() != d2.getTime()) 
									return 1;
								else
									return 0;
							else
								if ( op == "=") 
									if (d1.getTime() == d2.getTime()) 
										return 1;
									else
										return 0;

		}
 
 
 
function fn_SetFocus(next_control,previous_control)
{
	if (window.event.keyCode == 13)
	{
		next_control.focus()
	}
	if (window.event.keyCode == 27)
	{
		previous_control.focus()
	}
}


       function Left(str, n)
        /***
                IN: str - the string we are LEFTing
                    n - the number of characters we want to return

                RETVAL: n characters from the left side of the string
        ***/
        {
                if (n <= 0)     // Invalid bound, return blank string
                        return "";
                else if (n > String(str).length)   // Invalid bound, return
                        return str;                // entire string
                else // Valid bound, return appropriate substring
                        return String(str).substring(0,n);
        }


		function Right(str, n)
        /***
                IN: str - the string we are RIGHTing
                    n - the number of characters we want to return

                RETVAL: n characters from the right side of the string
        ***/
        {
                if (n <= 0)     // Invalid bound, return blank string
                   return "";
                else if (n > String(str).length)   // Invalid bound, return
                   return str;                     // entire string
                else { // Valid bound, return appropriate substring
                   var iLen = String(str).length;
                   return String(str).substring(iLen, iLen - n);
                }
        }

// ---------------------------------------------------------------------------------------------------------------------------


function date_dash(field,e){
		//alert(e.keyCode);
		if (e.keyCode == 8 || e.keyCode == 46)
			return;
		if ( Trim(field.value).length == 2 )
			field.value = Trim(field.value) +'/';
		if ( Trim(field.value).length == 5)
			field.value = Trim(field.value) +'/';
	 	if ( Trim(field.value).length >10)
			field.value = field.value.substring(0,10);
	}	
	
// ---------------------------------------------------------------------------------------------------------------------------

function fn_SetFocus(next_control,previous_control)
{
	if (window.event.keyCode == 13)
	{
		next_control.focus()
	}
	if (window.event.keyCode == 27)
	{
		previous_control.focus()
	}
}

// ---------------------------------------------------------------------------------------------------------------------------

function roundNumber(rnum,rlength) {
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} else {
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	return newnumber;
}

// ---------------------------------------------------------------------------------------------------------------------------

//Added By NileshM for .Net Validations for Custom validator

 function isValidateInteger( oSrc,args)       
 {
     var val =args.Value;
    args.IsValid =this.isNumber(val);
 }
  
 function isValidateFloat( oSrc,args)       
 {
     var val =args.Value;
    args.IsValid =this.isNumber1(val);
 }
  
 function isValidateDate( oSrc,args,dateFormat)       
 {
    alert(args);
    var val = args.Value;        
    args.IsValid =this.isDate(val,dateFormat);
 }
 
 function isValidateString( oSrc,args)       
 {
    var val =args.Value;
    args.IsValid =this.isString(val);
 }
 //--------------------Custom validator Ends Here--------------------------------
 
 