function isName (phrase) {
	if	(phrase == null) return false;
	var s = phrase;
	
	if	(s.length == 0) return false;
	
	for (var i = 0; i < s.length; i++) {
		if (!isAlpha(s.charAt(i)) && s.charAt(i) != " " && s.charAt(i) != ".") return false;
	} // for
	return true;
} // isName

	function validateKeyPress(e, validSet)
	{
	    var key;
	    var keychar;
	    
	    if(window.event || !e.which) // IE
	            key = e.keyCode; // IE
	    else if(e)
	            key = e.which;   // Netscape
	    else
			    return true;     // no validation

		keychar = String.fromCharCode(key);
		validSet += String.fromCharCode(8);
		validSet += String.fromCharCode(9);
		validSet += String.fromCharCode(46);

		if (validSet.indexOf(keychar) < 0)
			return false;
			
		return true;
	}
		
		
    function valPress(txtBox)
    {
	    txtBox.value=txtBox.value.toUpperCase();
    }
    
    function Zip(e)
    {
        if(e && e.which)
	    {
	        var kc = e.which;	                    
            if(((kc>=48) && (kc <=57)) || (kc ==40)|| (kc ==41) || (kc ==45) || (kc ==8) ||(kc ==13)||(kc ==0) || (kc==9)) 
            {
	            return true;
            }
            else
            {		
	            return false;
            }
	    }
	    else
	    {		  	   
	        var kc = window.event.keyCode;	     		      		      
	        if(((kc>=48) && (kc <=57)) || (kc ==40)|| (kc ==41) || (kc ==45) || (kc ==8) ||(kc ==13)||(kc ==0) || (kc==9)) 
	        {
	            return true;
	        }
	        else
	        {
	            return false;
	        }		  
	    }
    } 
     
	function Phone(e)
    {    	 			
	    if(e && e.which)
	    {		   
            var kc = e.which;	          
            if(((kc>=48) && (kc <=57)) || (kc ==46)|| (kc ==40)|| (kc ==41) || (kc ==45) || (kc ==8) ||(kc ==13)||(kc ==0) || (kc==9)) 
            {
	            return true;
            }
            else
            {		
	            return false;
            }
	    }
	    else
	    {		  	   
	        var kc = window.event.keyCode;		      		      
	        if(((kc>=48) && (kc <=57)) || (kc ==46)|| (kc ==40)|| (kc ==41) || (kc ==45) || (kc ==8) ||(kc ==13)||(kc ==0) || (kc==9)) 
	        {
	            return true;
	        }
	        else
	        {
	            return false;
	        }		  
	    }
    }    		
    		
    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 FormValidator(Registration)
    {
     
     // if (stration.txtmail.value == "")
    if (document.Registration.txtmail.value == "")
      {
       alert("Please enter a value for the \"email\" field.");
        document.Registration.txtmail.focus();
        document.Registration.txtmail.focus();
        return (false);
      }

      if (!isEmailAddr(document.Registration.txtmail.value))
      {
        alert("Please enter a complete email address in the form: yourname@yourdomain.com");
       document.Registration.txtmail.focus();
	    document.Registration.txtmail.focus();
        return (false);
      }
       
      if (document.Registration.txtmail.value.length < 3)
       if (document.Registration.txtmail.value.length < 3)
      {
        alert("Please enter at least 3 characters in the \"email\" field.");
        
        document.Registration.txtmail.focus();
        document.Registration.txtmail.focus();
        
        return (false);
      }
      return (true);
    }

    function isInteger (phrase) 
    {
	    if	(phrase == null) return false;
	    return	(phrase.match(/\d/) != null && phrase.match(/\D/) == null) ? true : false;
    } 
    
    function checkemail(email)
	{
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;	
		if (filter.test(email))
		{
			testresults=true;
		}			
		else
		{
//		    radalert("Please input a valid email address!");
//			document.getElementById(obj).focus();			
			testresults=false;
		}
		return (testresults);
	}
	
//	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;
//    }
    
    function Trim(str)
    {
        return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
    }
	

    // If used in onkeypress, pass in the event and this will
    // grab the character and do the right thing. This allows
    // for a smoother user experience than if the chars are
    // being visibly deleted.
	
// formatPhone(this,event)
function formatPhone(elm, e)
{
    var keychar;  
    if (e) 
    {
        var keynum;
        if (window.event) 
        {
            keynum = e.keyCode;
        }
        else if (e.which) 
        {
            keynum = e.which;
        }
        if(keynum!=null)
        {
            if(keynum=="9")
            {
                keychar = keynum;
            }
            else
            {
                keychar = String.fromCharCode(keynum);        
            }
        }
        else
        {
            keychar = keynum;
        }
    }
    if(keychar!=null)
    {     
        if(keychar == "9")
        {
            return true;
        }
        else if (/[\b]/.exec(keychar)) 
        {
            return true;
        }         
        else 
        {
            var p = elm.value + keychar;

            // Don't allow a leading 1 or 0. We also strip out all
            // non-numeric characters here to make the formatting
            // easier later on. This could be modified to allow
            // letters if you consider them valid.
           // p = p.replace(/^[01]/,"");
            p = p.replace(/\D+/g, "");

            // You can easily change the formatting of the phone
            // number by editing the conditionals below.
            if (p.length > 0 && p.length < 3) 
            {
                p = "("+p;
            }
            else if (p.length >= 3 && p.length < 7) 
            {
                p = "("+p.substring(0,3)+") "+p.substring(3);
            }
            else if (p.length >= 7 && p.length < 10) 
            {
                p = "("+p.substring(0,3)+") "+p.substring(3,6)+"-"+p.substring(6);
            }
            else if (p.length) 
            {
                p = "("+p.substring(0,3)+") "+p.substring(3,6)+"-"+p.substring(6,10);
            }
            elm.value = p;

            return false;
        }
    }    
}   
    // formatTime(this,event)
function formatTime(elm, e)
{
    var keychar;  
    if (e) 
    {
        var keynum;
        if (window.event) 
        {
            keynum = e.keyCode;
        }
        else if (e.which) 
        {
            keynum = e.which;
        }        
        if(keynum!=null)
        {
            keychar = String.fromCharCode(keynum);        
        }
        else
        {
            keychar = keynum;
        }
    } 
    if(keychar!=null)
    {      
        if (/[\b]/.exec(keychar)) 
        {
            return true;
        } 
        else 
        {
            var p = elm.value + keychar;

            // Don't allow a leading 1 or 0. We also strip out all
            // non-numeric characters here to make the formatting
            // easier later on. This could be modified to allow
            // letters if you consider them valid.
           // p = p.replace(/^[01]/,"");
            p = p.replace(/\D+/g, "");

            // You can easily change the formatting of the phone
            // number by editing the conditionals below.
            if(p.length==1)
            {
                if(p!=1 && p!=0)
                {
                    return false
                }
            }
            if(p.length==2)
            {
                if(p==00)
                {
                    return false;
                }
                else if(p>12)
                {
                    return false;
                }
            }           
            else if (p.length > 2 && p.length < 4) 
            {
                p = p.substring(0,2)+":"+p.substring(2);
            }       
            else if (p.length) 
            {
                p = p.substring(0,2)+":"+p.substring(4,2);
            }       
            elm.value = p;

            return false;
        }
    }
}

function fnRequire(obj) { obj = pre + obj; if (jQuery.trim($(obj).val()) == '') { $(obj).css('border', '1px solid red'); if (!focus) $(obj).focus(); focus = true; filled = false; } else { $(obj).css('border', '2px inset #EBE9ED'); } }
function fnddlRequire(obj, obj1) { obj = pre + obj; if ($(obj).val() == '0' || $(obj).val() == '-1' || $(obj).val().toLowerCase() == 'zz' || $(obj).val().toLowerCase() == 'select') { $(obj1).css('border', '1px solid red'); if (!focus) $(obj).focus(); focus = true; filled = false; } else { $(obj1).css('border', ''); } }
function setErr(obj,err){obj = pre+obj;if(err){$(obj).css('border' , '1px solid red');if(!focus)$(obj).focus(); focus = true;filled = false;}else{$(obj).css('border' , '2px inset #EBE9ED');}}
function isValidEmail(email){
email = jQuery.trim(email).toLowerCase(); 
var RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/ 
if(RegExp.test(email)){return true;}else{return false;}} 
function checkEmail(name){if(!isValidEmail($(pre+name).val())){setErr(name,true);}else{setErr(name,false);}} 
function fnCompare(obj,obj1){obj = pre+obj;obj1 = pre+obj1;if($(obj).val() != $(obj1).val()){$(obj1).css('border' , '1px solid red');if(!focus)$(obj1).focus();focus = true;filled = false;}else{$(obj1).css('border' , '2px inset #EBE9ED');}} 

function IsCompareDate(objStartDate,objEndDate)
			{				
		var dtStartDate;
		var dtEndDate;
		dtStartDate = new Date(objStartDate.value);
		dtEndDate = new Date(objEndDate.value);
		if(Date.parse(dtEndDate,10) < Date.parse(dtStartDate,10))
		{
			return false;
		}	
		return true;
    }
function isDateValid(dateStr) {

    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat); // is the format ok?

    if (matchArray == null) {       
        return false;
    }

    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];

    if (month < 1 || month > 12) { // check month range       
        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) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {            
            return false;
        }
    }
    return true; // date is valid
}
