//Validate Email 
function validateEmailv2(email)
{
 if(email.length <= 0)
	{
	  return true;
	}
    var splitted = email.match("^(.+)@(.+)$");
    if(splitted == null) return false;
    if(splitted[1] != null )
    {
      var regexp_user=/^\"?[\w-_\.]*\"?$/;
      if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
      var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
      if(splitted[2].match(regexp_domain) == null) 
      {
	    var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	    if(splitted[2].match(regexp_ip) == null) return false;
      }// if
      return true;
    }
return false;
}

//Validate Telephone 
function validatePhone(phone)
{
	if(phone.length <= 0)
	{
	  return true;
	}
	if(phone.search("[a-zA-Z]")!=-1)
    {
	 return false;	
    }
return true;
}

//Validate Data
function V2validateData(strValidateStr,objValue,strError) 
{ 
    var epos = strValidateStr.search("="); 
    var  command  = ""; 
    var  cmdvalue = ""; 
    if(epos >= 0) 
    { 
     command  = strValidateStr.substring(0,epos); 
     cmdvalue = strValidateStr.substr(epos+1); 
    } 
    else 
    { 
     command = strValidateStr; 
    } 
    switch(command) 
    { 
        case "req": 
        case "required": 
         { 
           if(eval(objValue.value.length) == 0) 
           { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : Required Field"; 
              }//if 
              alert(strError); 
              objValue.focus(); 
              return false; 
           }//if 
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : "+cmdvalue+" characters maximum "; 
               }//if 
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               objValue.focus();  
               return false; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : " + cmdvalue + " characters minimum  "; 
               }//if               
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               objValue.focus();  
               return false;                 
             }//if 
             break; 
            }//case minlen 
        case "alnum": 
        case "alphanumeric": 
           { 
              var charpos = objValue.value.search("[^A-Za-z0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
               if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alpha-numeric characters allowed "; 
                }//if 
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//case alphanumeric 
        case "num": 
        case "numeric": 
           { 
              var charpos = objValue.value.search("[^0-9]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only digits allowed "; 
                }//if               
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                objValue.focus();
                return false; 
              }//if 
              break;               
           }//numeric 
        case "alphabetic": 
        case "alpha": 
           { 
              var charpos = objValue.value.search("[^A-Za-z]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": Only alphabetic characters allowed "; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                
                return false; 
              }//if 
              break; 
           }//alpha 
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 			
			break;
			}
        case "email": 
          { 
               if(!validateEmailv2(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.name+": Enter a valid Email address "; 
                 }//if                                               
                 alert(strError);
                 objValue.focus();  
                 return false; 
               }//if 
           break; 
          }//case email 
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = objValue.name + " : value should be less than "+ cmdvalue; 
              }//if               
              alert(strError); 
              return false;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert(objValue.name+": Should be a number "); 
              return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = objValue.name + " : value should be greater than "+ cmdvalue; 
               }//if               
               alert(strError); 
               return false;                 
             }//if             
            break; 
         }//case greaterthan 
        case "regexp": 
         { 
		 	if(objValue.value.length > 0)
			{
	            if(!objValue.value.match(cmdvalue)) 
	            { 
	              if(!strError || strError.length ==0) 
	              { 
	                strError = objValue.name+": Invalid characters found "; 
	              }//if                                                               
	              alert(strError); 
	              return false;                   
	            }//if 
			}
           break; 
         }//case regexp 
        case "dontselect": 
         { 
            if(objValue.selectedIndex == null) 
            { 
              alert("BUG: dontselect command for non-select Item"); 
              return false; 
            } 
            if(objValue.selectedIndex == eval(cmdvalue)) 
            { 
             if(!strError || strError.length ==0) 
              { 
              strError = objValue.name+": Please Select one option "; 
              }//if                                                               
              alert(strError);
              objValue.focus(); 
              return false;                                   
             } 
             break; 
         }//case dontselect 
          case "phone": 
          { 
               if(!validatePhone(objValue.value)) 
               { 
                 if(!strError || strError.length ==0) 
                 { 
                    strError = objValue.id+": Enter a valid Phone Number "; 
                 }//if                                               
                 alert(strError);
                 objValue.focus();  
                 return false; 
               }//if 
           break; 
         }
          
    }//switch 
    return true; 
}

//Validate Telephone
function TelephoneNumber(){//--Alpha + Numeric, _ -
   if ((event.keyCode > 32 && event.keyCode < 40) ||(event.keyCode ==42) ||(event.keyCode > 43 && event.keyCode < 45)||(event.keyCode > 45 && event.keyCode < 48)|| (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 95) || (event.keyCode > 95 && event.keyCode < 97) || (event.keyCode > 122)) 
   {
	alert("The character you attempted to enter is not allowed for this field.");
	event.returnValue = false;
	}
	else
	{
	event.returnValue = true;
	}
}
//Validate Alpha Numeric
function AlphaNumeric()
{
   	if ((event.keyCode >32 && event.keyCode < 45) || (event.keyCode >45 && event.keyCode < 48) ||(event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode >=123 && event.keyCode < 127)) 
   	{
	alert("The character you attempted to enter is not allowed for this field.");
	event.returnValue = false;
	}
	else
	{
	event.returnValue = true;
	}
}

//Validate Alphabatice Characters Only
function AlphaOnly()
{
	if ((event.keyCode >32 && event.keyCode < 39) ||(event.keyCode >=40 && event.keyCode < 45) ||(event.keyCode >45 && event.keyCode < 48) || (event.keyCode > 57 && event.keyCode < 65) || (event.keyCode > 90 && event.keyCode < 97) || (event.keyCode ==124) || (event.keyCode ==126) ||(event.keyCode > 47 && event.keyCode < 58) ) 
	{
	alert("The character you attempted to enter is not allowed for this field.");
	event.returnValue = false;
	}
	else
	{
	event.returnValue = true;
	}
}

//Validate Email Address
function emaildataentry()
{
	var strChar = window.event.keyCode;
	
	if (((strChar >= 65) && (strChar <= 90)) || ((strChar >= 97) && (strChar <= 122)) || ((strChar >= 48) && (strChar <= 57)))
	{
		window.event.returnValue = true;
		}
	else
	{
		if ((strChar != 13) && (strChar != 46) && (strChar != 95) && (strChar != 45) && (strChar != 64) && (strChar != 27))
		{
		alert("The character you typed is not allowed for e-mail addresses");
		window.event.returnValue = false;
		}
	}
}

	//Browser Detection
	var strUserAgent = navigator.userAgent.toLowerCase(); 
	var isIE = strUserAgent.indexOf("msie") > -1; 
	var isNS6 = strUserAgent.indexOf("netscape6") > -1; 
	var isNS4 = !isIE && !isNS6  && parseFloat(navigator.appVersion) < 5; 

	//Validate Alphabatice Characters Only
	function maskChangeAlphaOnly(objEvent) {
	var objInput;
	if (isIE) 
	{
	objInput = objEvent.srcElement; 
	}
	else 
	{
	objInput = objEvent.target;
	}
	if (!/^[A-Za-z\s\'\-]*$/.test(objInput.value)) {
	alert("The character you attempted to used is not allowed for this field.");
	objInput.value = objInput.validValue || "";
	objInput.focus();
	objInput.select(); 
	} else {
	objInput.validValue = objInput.value;
	}
	}
	
	//Validate Alpha Numeric
	function maskChangeAlphaNumeric(objEvent) {
	var objInput;
	if (isIE) 
	{
	objInput = objEvent.srcElement; 
	}
	else 
	{
	objInput = objEvent.target;
	}
	if (!/^[A-Za-z0-9\s\-]*$/.test(objInput.value)) {
	alert("The character you attempted to used is not allowed for this field.");
	objInput.value = objInput.validValue || "";
	objInput.focus();
	objInput.select(); 
	} else {
	objInput.validValue = objInput.value;
	}
	}
	
	//Validate Email Address
	function maskChangeEmail(objEvent) {
	var objInput;
	if (isIE) 
	{
	objInput = objEvent.srcElement; 
	}
	else 
	{
	objInput = objEvent.target;
	}
	if (!/^[A-Za-z0-9\-\_\@\.]*$/.test(objInput.value)) {
	alert("The character you attempted to used is not allowed for this field.");
	objInput.value = objInput.validValue || "";
	objInput.focus();
	objInput.select(); 
	} else {
	objInput.validValue = objInput.value;
	}
	}
	
	//Validate Telephone
	function maskChangeTelephone(objEvent) {
	var objInput;
	if (isIE) 
	{
	objInput = objEvent.srcElement; 
	}
	else 
	{
	objInput = objEvent.target;
	}
	if (!/^[A-Za-z0-9\s\-\+\(\)]*$/.test(objInput.value)) {
	alert("The character you attempted to used is not allowed for this field.");
	objInput.value = objInput.validValue || "";
	objInput.focus();
	objInput.select(); 
	} else {
	objInput.validValue = objInput.value;
	}
	}
	
	
	//Validate Date
var minYear=1900;
var maxYear=2100;

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 isDate(dtStr1,dtStr2,dtStr3,strError){
	var daysInMonth = DaysArray(12)
	
	var strMonth=dtStr2.selectedIndex
	var strDay=dtStr1.selectedIndex
	var strYear=dtStr3.options[dtStr3.selectedIndex].text
	
	if(strMonth!=0 || strDay!=0 || strYear!="Year")
	{
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYear)
	
	if (strMonth.length<1 || month<1 || month>12)
	{
		alert(strError);
		dtStr1.focus();
		return false 
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		
		alert(strError);
		dtStr2.focus();
		return false
	}
	if (strYear=="Year" || year<minYear || year>maxYear){
		alert(strError);
		dtStr3.focus();
		return false
	}
}
return true
}



// Validate Current Date Range
function isCurrentDateRange(Day,Month,Year,Hours,Min,strError)
{
var dt				= new Date();
var Currentyear		= dt.getYear();
var Currentmonth	=dt.getMonth()+1;
var Currentday		=dt.getDate();
var CurrentHours	=dt.getHours();
var CurrentMin		=dt.getMinutes();

var yrDif =Year.options[Year.selectedIndex].text- Currentyear;
var monDif =Month.selectedIndex- Currentmonth;
var dayDif =Day.selectedIndex  - Currentday;
var hourDif =Hours.options[Hours.selectedIndex].text - CurrentHours;
var MinDif =Min.options[Min.selectedIndex].text- CurrentMin;
 
if (yrDif > 0) 
 {
 	return true;
 }
 else if (yrDif < 0) 
 {
	alert(strError);
	Year.focus();	
 	return false;
 } 
 else if (yrDif == 0) 
 {
 if (monDif > 0 ) 
 {
	return true;
 } 
else if (monDif < 0) {
	alert(strError);
	Month.focus();		
	return false;
}
	else if (monDif == 0) 
	{
if (dayDif > 0) 
	{
	return true;
	} 
else if (dayDif < 0) {
	alert(strError);
	Day.focus();		
	return false;
}
else if(Hours.selectedIndex!=0 && Min.selectedIndex!=0)
{
if (dayDif == 0) 
 {
 if (hourDif > 0 ) 
 {
	return true;
 } 
else if (hourDif < 0) {
	alert(strError);
	Hours.focus();		
	return false;
}
else if (hourDif == 0) 
 {
 if (MinDif >= 0 ) 
 {
	return true;
 } 
 else 
 {
	alert(strError);
	Min.focus();		
	return false;
	}
}
 }
 else
 {
 return true;
 }
 
}
}		

}
}

//Select Date
function SelectDate(Day,Month,Year,Hour,Min,strError1,strError2)
{
	if(Day.selectedIndex!=0 || Month.selectedIndex!=0 ||Year.selectedIndex!=0)
	{
	
	if(Day.selectedIndex==0)
	{
	alert(strError1);
	Day.focus();		
	return false;
	}
	
	if(Month.selectedIndex==0)
	{
	alert(strError1);
	Month.focus();		
	return false;
	}
	
	if(Year.selectedIndex==0)
	{
	alert(strError1);
	Year.focus();		
	return false;
	}
	
	}
	
	if(Hour.selectedIndex!=0 || Min.selectedIndex!=0)
	{
	
	if(Day.selectedIndex==0)
	{
	alert(strError1);
	Day.focus();		
	return false;
	}
	
	if(Month.selectedIndex==0)
	{
	alert(strError1);
	Month.focus();		
	return false;
	}
	
	if(Year.selectedIndex==0)
	{
	alert(strError1);
	Year.focus();		
	return false;
	}
	
	if(Min.selectedIndex==0)
	{
	alert(strError2);
	Min.focus();		
	return false;
	}
	
	if(Hour.selectedIndex==0)
	{
	alert(strError2);
	Hour.focus();		
	return false;
	}
	}
	else
	{
   return true;
   }
}



