﻿var whitespace = " \t\n\r";


//function CheckPhoneNumber(val)

//{
//    var PhoneNo;
//    PhoneNo=document.getElementById(val);
//    
//	var checkOK = new String("-");
//	var strNo = new String(PhoneNo.value);
////	PhoneNo.value="";
//	for (i = 0; i < strNo.length; i++ )
//	{
//		ch = strNo.charAt(i);
//        for (j = 0;  j < 1;  j++)
//		{
//			if (ch == checkOK.charAt(j))
//            {
//                if (i!=3 && i!=7)
//                {
//                    i++;
//                    alert('Invalid digit in place ' + i + '\nThe format should be XXX-XXX-XXXX');
//                    PhoneNo.focus();
//                    return false;
//                }
//            }

//		}

//	}
//	if ( (PhoneNo.value.length != 0) && (PhoneNo.value.length < 12) )
//	{
//		alert("Please enter exactly 10 digits in telephone.\nThe format should be XXX-XXX-XXXX");
//		PhoneNo.focus();
//		return (false);
//	}
//	if (PhoneNo.value.length > 12)
//	{
//    	alert("Please enter exactly 10 digits in telephone.\nThe format should be XXX-XXX-XXXX");
//		PhoneNo.focus();
//		return (false);
//	}
//	var checkStr = PhoneNo.value;
//	var allValid = true;
//	if ( checkStr.length == 12 )
//	{
//	    if ( checkStr.charAt(3) != '-' )
//		{
//		    alert('The fourth digit of the area code should be (-) cannot be a numeric.\nThe format should be XXX-XXX-XXXX');
//		    PhoneNo.focus();
//		    return (false);
//		}
//		if ( checkStr.charAt(7) != '-' )
//		{
//			alert('The eigth digit of the area code should be (-) cannot be a numeric.\nThe format should be XXX-XXX-XXXX');
//			PhoneNo.focus();
//			return (false);
//		}
//    	else
//    	{
//		    return (true);
//		}
//		//alert("OK");
//    }
//}
             
function isPhoneNumber(val,txt,h,m)
{
  var str;
  str=document.getElementById(val).value;
  var re = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/
  if(re.test(str)==false)
  {        
        if(document.getElementById(h).value=='')
            {
                document.getElementById(h).value=val;
                document.getElementById(m).innerHTML ="Invalid " + txt + ". \nThe format should be 000-000-0000";    
            }   
            
            return false;
  }       
        return true;

 }

 function trimAll(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
    sString = sString.substring(0,sString.length-1);
    }
    return sString;
}


function DropDownChk(val,txt,h,m)
    {
        if(document.getElementById(val).value==0)
        {
              if(document.getElementById(h).value=='')
            {
                document.getElementById(h).value=val;
            }
      
            if (document.getElementById(m).innerHTML !='')
            {
                //document.getElementById(m).innerHTML  =document.getElementById(m).innerHTML  +", "+ txt
            }
            else
            {
                document.getElementById(m).innerHTML  ="Please fill in all required fields (not marked optional)"
            }
            
            return false;
        }       
        return true;
    }

function TextChk(val,txt,h,m)
    {
    
        var targetvalue=trimAll(document.getElementById(val).value)   
        if(targetvalue=='')
        {  
           
            //alert("Please enter "+ txt);   
            //document.getElementById(val).focus();      
            
            if(document.getElementById(h).value=='')
            {
                document.getElementById(h).value=val;
            }
      
            if (document.getElementById(m).innerHTML  !='')
            {
                //document.getElementById(m).innerHTML  =document.getElementById(m).innerHTML  +", "+ txt
            }
            else
            {
                document.getElementById(m).innerHTML  ="Please fill in all required fields (not marked optional)"
            }
            
            return false;
        }       
        return true;
    }    
    
function checkEmail (val,txt)
{   
//    var s = document.getElementById(val);
//    if(isEmail(s,s.value)==false)
//    {
//     //alert("Please enter valid " + txt)
//     //document.getElementById(val).focus();  
//         if(document.getElementById("<%= txtFocus.ClientID%>").value=='')
//            {
//                document.getElementById("<%= txtFocus.ClientID%>").value=str;
//                document.getElementById("<%= lblMsg.ClientID%>").value="Invalid Email"
//            }    
//     
//     return false;
//    }
//    return true;
}


function isEmail(t,s)
{    
    var i = 1;
    var sLength = s.length;
     
// is s whitespace?
    if (isWhitespace(s))
    {     
        
      t.focus();  
      return false;      
     }
    
     //look for whitespace
    while ((i < sLength))
    { 
      if(isWhitespace(s.charAt(i)))
      {      
          t.focus();  
          return false;
      }
      i++      
    }
    i = 0;

        //look for whitespace
    while ((i < sLength))
    { 
      //alert(s.charAt(i));
      if(isSplChar(s.charAt(i)))
      {         
          t.focus();  
          return false;
      }
      i++      
    }
     i = 1;         
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { 
      i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) 
    {
      t.focus();  
      return false;
     }
    else i += 2;

    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != "."))
    {
      t.focus();  
      return false;
     }

    else return true;
}


function emailchecking(str,txt)
{
    x=str;
        str=trimAll(document.getElementById(str).value)           
        if(str.indexOf("..")>0)
        {
            //alert("Please enter valid " + txt);
            //document.getElementById(x).focus();
		    return false;
        }
     
        if(str.indexOf("@@")>0)
        {
            //alert("Please enter valid " + txt)
            //document.getElementById(x).focus();
		    return false;
        }
        
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		
		
		if (str.indexOf(at)==-1){
		   //alert("Please enter valid " + txt)
		   //document.getElementById(x).focus();		 
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		  //  alert(str.indexOf(at))
		   //alert("Please enter valid " + txt)
		   //document.getElementById(x).focus();
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Please enter valid " + txt)
		    //document.getElementById(x).focus();
		    return false;
		}
		else
		{
//		    var myString = str.split("@");
//		    if (myString.length > 0)
//		    {
//		        var myString1 = myString[1].split(".");
//                if (myString1.length != 2)
//                {
//                   alert("Please enter valid " + txt) 
//                   document.getElementById(x).focus();
//		           return false;
//                }
//            }
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		 //alert(str.indexOf(at,(lat+1)))
		    //alert("Please enter valid " + txt)
		    //document.getElementById(x).focus();
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Please enter valid " + txt)
		    //document.getElementById(x).focus();
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		   //alert("Please enter valid " + txt)
		    //document.getElementById(x).focus();
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		// alert(str.indexOf(" "))
		   //alert("Please enter valid " + txt)
		   //document.getElementById(x).focus();
		   return false;
		 }
	
       // alert('success');		
 		 return true;		

}

function echeck(str,txt,h,m) 
{     
     if(emailchecking(str,txt)==false)
     {
            if(document.getElementById(h).value=='')
            {
                document.getElementById(h).value=str;
                document.getElementById(m).innerHTML  ="Invalid " + txt 
            }                
      } 
      
    var s = document.getElementById(str);
    if(isEmail(s,s.value)==false)
    {
     //alert("Please enter valid " + txt)
     //document.getElementById(val).focus();  
         if(document.getElementById(h).value=='')
            {
                document.getElementById(h).value=str;
                document.getElementById(m).innerHTML  ="Invalid " + txt 
            }    
     
     return false;
    }
    
    
    return true;
}

function isWhitespace (s)
{  
 var i;
    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);       
        if (whitespace.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isSplChar(str)
{	
	
    var spchar;		
    spchar="/`()(\\~!^&*+\"|%:=,<>#";	
   // alert(str)
    //alert(spchar)
    for(var j=0; j<	spchar.length;j++)	
    {			
      
      if(str== spchar.charAt(j))			
        {							
          return true;		
        }	     		
    }	
     if(str=="'")
    {
       return true;	
    }

   return false;        
}
function onlyNumbers(event)
{
    var key=event.which || event.keyCode;
    //alert(key);
    if (key==8 || key==37 || key==39 || key==46) return true;
    if (key > 31 && (key < 48 || key > 57))
    { 
        alert('Enter Numbers');
        return false
    }
    return true
}
function IsDateCheck(val,txt)
{
    var ctlValue=document.getElementById(val).value;
    

    
    if (ctlValue !='')
    {   
             if (isDate(ctlValue)== false)
        { 
          document.getElementById(val).focus();
          return false;
        }
       return true;
   }
   else
   {
    return true;
   }
   
 }
 var dtCh= "/";
 var minYear=1900;
 var maxYear=2100;
function isDate(dtStr)
{
        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("The date format should be : mm/dd/yyyy")                       
            return false             
        }
        if (strMonth.length<1 || month<1 || month>12){
           // alert("Please enter a valid month")     
            alert("The date format should be : mm/dd/yyyy")     
            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("The date format should be : mm/dd/yyyy")           
            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("The date format should be : mm/dd/yyyy")
            return false
        }
        if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
            //alert("Please enter a valid date")     
            alert("The date format should be : mm/dd/yyyy")    
            return false
        }
    return true
}

  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 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 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 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 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
    }


 
