
function Validator(frmname)
{
  this.formobj=document.forms[frmname];
	if(!this.formobj)
	{
	  alert("BUG: couldnot get Form object "+frmname);
		return;
	}
	if(this.formobj.onsubmit)
	{
	 this.formobj.old_onsubmit = this.formobj.onsubmit;
	 this.formobj.onsubmit=null;
	}
	else
	{
	 this.formobj.old_onsubmit = null;
	}
	this.formobj.onsubmit=form_submit_handler;
	this.addValidation = add_validation;
	this.setAddnlValidationFunction=set_addnl_vfunction;
	this.clearAllValidations = clear_all_validations;
}
function set_addnl_vfunction(functionname)
{
  this.formobj.addnlvalidation = functionname;
}
function clear_all_validations()
{
	for(var itr=0;itr < this.formobj.elements.length;itr++)
	{
		this.formobj.elements[itr].validationset = null;
	}
}
function form_submit_handler()
{
	for(var itr=0;itr < this.elements.length;itr++)
	{
		if(this.elements[itr].validationset &&
	   !this.elements[itr].validationset.validate())
		{
		  return false;
		}
	}
	if(this.addnlvalidation)
	{
	  str =" var ret = "+this.addnlvalidation+"()";
	  eval(str);
    if(!ret) return ret;
	}
	return true;
}
function add_validation(itemname,descriptor,errstr)
{
  if(!this.formobj)
	{
	  alert("BUG: the form object is not set properly");
		return;
	}//if
	var itemobj = this.formobj[itemname];
  if(!itemobj)
	{
	  alert("BUG: Couldnot get the input object named: "+itemname);
		return;
	}
	if(!itemobj.validationset)
	{
	  itemobj.validationset = new ValidationSet(itemobj);
	}
  itemobj.validationset.add(descriptor,errstr);
}
function ValidationDesc(inputitem,desc,error)
{
  this.desc=desc;
	this.error=error;
	this.itemobj = inputitem;
	this.validate=vdesc_validate;
}
function vdesc_validate()
{
 if(!V2validateData(this.desc,this.itemobj,this.error))
 {
    this.itemobj.focus();
		return false;
 }
 return true;
}
function ValidationSet(inputitem)
{
    this.vSet=new Array();
	this.add= add_validationdesc;
	this.validate= vset_validate;
	this.itemobj = inputitem;
}
function add_validationdesc(desc,error)
{
  this.vSet[this.vSet.length]= 
	  new ValidationDesc(this.itemobj,desc,error);
}
function vset_validate()
{
   for(var itr=0;itr<this.vSet.length;itr++)
	 {
	   if(!this.vSet[itr].validate())
		 {
		   return false;
		 }
	 }
	 return true;
}
function validateEmailv2(email)
{
// a very simple email validation checking. 
// you can add more complex email checking if it helps 
    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;*/

	var isValidE;
	//var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	//var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	//var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	//var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	//var pattern1 = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
	var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var regEx;

  	isValidE = true;
	regEx = new RegExp(pattern); 
		isValidE = regEx.test(email);
	/*if (isValidE == true)
  	{
  		regEx = new RegExp(pattern1);  
  		isValidE = regEx.test(email); 
  		return isValidE;
  	}*/
	return isValidE;
	
	//if ((! email.match(pattern)) && (! email.match(pattern1)))
  	//{
  		//alert("Invalid email address");
  		//return (false);
  	//}

}

function val_me() 
{

if (document.myform.txtSkillSet.value.length==0)
{
	alert("Please select or enter SkillSet");
	document.myform.sport1.focus();
	
	
	return false;
}
 
if (document.myform.txtSkill.value.length==0)
{
alert("Please select or enter Skill");
document.myform.player1.focus();
return false;
}

if (document.myform.txtYears.value.length==0)
{
alert("Please enter Years");
document.myform.txtYears.focus();
return false;
}
else if(!V2validateData("numeric",document.myform.txtYears,"Invalid Years"))
{
	document.myform.txtYears.focus();
	return false;
}
else if(!V2validateData("gt=-1",document.myform.txtYears,"Invalid Years"))
{
	document.myform.txtYears.focus();
	return false;
}


if (document.myform.txtMonths.value.length==0)
{
alert("Please enter Months");
document.myform.txtMonths.focus();
return false;
}
else if(!V2validateData("numeric",document.myform.txtMonths,"Invalid Months"))
{
	document.myform.txtMonths.focus();
	return false;
}
else if(!V2validateData("lt=12",document.myform.txtMonths,"Invalid Months"))
{
	document.myform.txtMonths.focus();
	return false;
}
else if(!V2validateData("gt=-1",document.myform.txtMonths,"Invalid Months"))
{
	document.myform.txtMonths.focus();
	return false;
}









}


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); 
              return false; 
           }//if 
           break;             
         }//case required 
        case "maxlength": 
        case "maxlen": 
          { 
             if(eval(objValue.value.length) >  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError =  cmdvalue+" characters maximum "; 
               }//if 
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false; 
             }//if 
             break; 
          }//case maxlen 
        case "minlength": 
        case "minlen": 
           { 
             if(eval(objValue.value.length) <  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = cmdvalue + " characters minimum  "; 
               }//if               
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               return false;                 
             }//if 
             break; 
            }//case minlen 
            
            
    case "spminlength": 
        case "spminlen": 
           { 
           if (eval(objValue.value.length)!= 0)
           {
             if(eval(objValue.value.length) < eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError =  cmdvalue + " characters minimum  "; 
               }//if               
               alert(strError + "\n[Current length = " + objValue.value.length + " ]"); 
               
               alert(document.myform.txtPhone1.value.length);					
               return false;                 
             }//if 
             }
             break; 
            }//
            
            
        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 = "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 = "Only digits allowed "; 
                }//if               
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                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 = "Only alphabetic characters allowed "; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//alpha 
           
           
        case "alphabeticspace": 
        case "alphaspace": 
           { 
              var charpos = objValue.value.search("[^A-Za-z ]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = "Only alphabetic characters allowed "; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//alpha 
           
        case "alphaspacedot": 
           { 
              //var charpos = objValue.value.search("[^A-Za-z. ]"); 
              var charpos = objValue.value.search("([^A-Za-z. ])"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = "Only alphabetic characters allowed "; 
                }//if                             
                alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); 
                return false; 
              }//if 
              break; 
           }//alphaspacedot            
		case "alnumhyphen":
			{
              var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); 
              if(objValue.value.length > 0 &&  charpos >= 0) 
              { 
                  if(!strError || strError.length ==0) 
                { 
                  strError = "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": 
          { 
		browserversion="0";
		if (navigator.appVersion.indexOf("2.")!=-1) {browserversion="2"};
		if (navigator.appVersion.indexOf("3.")!=-1) {browserversion="3"};
		if (navigator.appVersion.indexOf("4.")!=-1) {browserversion="4"};
		if (navigator.appVersion.indexOf("5.")!=-1) {browserversion="5"};
		if (navigator.appVersion.indexOf("6.")!=-1) {browserversion="6"}; 
		
		//alert(browserversion);
          
	       // Check for IE5 first
	    if (navigator.appName == "Microsoft Internet Explorer" && browserversion == 5)
		{
			//Added by Jyothi
			
			var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
			strEmail = objValue.value;
			if(strEmail.search(pattern) == -1)
				{
					alert("Enter a valid Email address")
					return false;
				}			
			
			//End of the code
		}
		else
		{
	        if(!validateEmailv2(objValue.value)) 
		       { 
	                 if(!strError || strError.length ==0) 
	                 { 
	                    strError = "Enter a valid Email address "; 
	                 }//if                                               
	                 alert(strError); 
	                 return false; 
	               }//if 
		}
		
           break; 
          }//case email 
          
        case "lt": 
        case "lessthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert("Should be a number "); 
              return false; 
            }//if 
            if(eval(objValue.value) >=  eval(cmdvalue)) 
            { 
              if(!strError || strError.length ==0) 
              { 
                strError = "Value should be less than "+ cmdvalue; 
              }//if               
              alert(strError); 
              return false;                 
             }//if             
            break; 
         }//case lessthan 
        case "gt": 
        case "greaterthan": 
         { 
            if(isNaN(objValue.value)) 
            { 
              alert("Should be a number "); 
              return false; 
            }//if 
             if(eval(objValue.value) <=  eval(cmdvalue)) 
             { 
               if(!strError || strError.length ==0) 
               { 
                 strError = "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 = "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 "; 
              //strError = "Please Select your State"; 
              }//if                                                               
              alert(strError); 
              return false;                                   
             } 
             break; 
         }//case dontselect 
         case "phoneCheckAll":
         {
			alert(txtPhone3.value);
         }
        break;
        case "phoneCheck": 
        {
				if (document.myform.txtPhone1.value.length !=0 || document.myform.txtPhone2.value.length !=0 || document.myform.txtPhone3.value.length !=0)
				{
					if (document.myform.txtPhone1.value.length !=0 && document.myform.txtPhone2.value.length ==0 || document.myform.txtPhone3.value.length ==0)
					{
						alert("Please check the phone numbers you have entered");
						document.myform.txtPhone1.focus();
						return false;
					}               
					
					if (document.myform.txtPhone2.value.length !=0 && document.myform.txtPhone1.value.length ==0 || document.myform.txtPhone3.value.length ==0)
					{
						alert("Please check the phone numbers you have entered");
						document.myform.txtPhone2.focus();
						return false;
					}
										
					if (document.myform.txtPhone3.value.length !=0 && document.myform.txtPhone1.value.length ==0 || document.myform.txtPhone2.value.length ==0)
					{
						alert("Please check the phone numbers you have entered");
						document.myform.txtPhone2.focus();
						return false;
					}					
				}
        }
        break;
        case "otherscheck":
        {
			if (document.myform.radOther.checked == true) 
			{
				if (document.myform.txtOther.value.length == 0)
				{
					alert("Please enter the value in the textbox");
					document.myform.txtOther.focus();
					return false;
				}
			}
        }
         
    }//switch 
    return true; 



}

//Content Added by Jyothi



			var usastatenames= new Array("Alabama", "Alaska", "Arkansas", "Arizona", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "Washington DC", "West Virginia", "Wisconsin", "Wyoming");
			var canadastatenames = new Array("Alberta", "British Columbia", "Manitoba", "New Brunswick", "Newfoundland and Labrador", "Northwest Territories", "Nova Scotia", "Nunavut Territory", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon Territory");

			function set_country() 
			{ 
				var select_country = document.myform.country;
				var select_state = document.myform.state;
				var selected_country = select_country.options[select_country.selectedIndex].value;
				select_state.options.length=0;
				
				if (selected_country == "USA")
				{ 
				    for(var i=0; i<usastatenames.length; i++)  
					{
						select_state.options[select_state.options.length] = new Option(usastatenames[i]); 
						select_state[i].value =usastatenames[i];
					} 
				}
			
				if (selected_country == "Canada")
				{
					for(var i=0; i<canadastatenames.length; i++) 
					{
						select_state.options[select_state.options.length] = new Option(canadastatenames[i]); 
						select_state[i].value =canadastatenames[i];
					}
				}  
			}
