// JavaScript Document

function Signup_Form_Validator(theForm)
{ 	
	var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

  	if (theForm.txtFName.value=="")
	{
		alert("Please enter your first name.");
		theForm.txtFName.focus();
		return (false);
	}
	for (var i = 0; i < theForm.txtFName.value.length; i++)
	{
		if (iChars.indexOf(theForm.txtFName.value.charAt(i)) != -1)
		{
			alert ("Your first name has special characters. \nThese are not allowed.\n Please remove them and try again.");
			theForm.txtFName.focus();
			return (false);
		}
	}
	if (theForm.txtLName.value=="")
	{
		alert("Please enter your last name.");
		theForm.txtLName.focus();
		return (false);
	}
	for (var i = 0; i < theForm.txtLName.value.length; i++)
	{
		if (iChars.indexOf(theForm.txtLName.value.charAt(i)) != -1)
		{
			alert ("Your last name has special characters. \nThese are not allowed.\n Please remove them and try again.");
			theForm.txtLName.focus();
			return (false);
		}
	}	
	if (theForm.txtJTitle.value=="")
	{
		alert("Please enter your job title.");
		theForm.txtJTitle.focus();
		return (false);
	}
	for (var i = 0; i < theForm.txtJTitle.value.length; i++)
	{
		if (iChars.indexOf(theForm.txtJTitle.value.charAt(i)) != -1)
		{
			alert ("Your job title has special characters. \nThese are not allowed.\n Please remove them and try again.");
			theForm.txtJTitle.focus();
			return (false);
		}
	}	
	if (theForm.txtCompany.value=="")
	{
		alert("Please enter your company name.");
		theForm.txtCompany.focus();
		return (false);
	}
	for (var i = 0; i < theForm.txtCompany.value.length; i++)
	{
		if (iChars.indexOf(theForm.txtCompany.value.charAt(i)) != -1)
		{
			alert ("Your company name has special characters. \nThese are not allowed.\n Please remove them and try again.");
			theForm.txtCompany.focus();
			return (false);
		}
	}	
	if (theForm.txtPhone.value=="")
	{
		alert("Please enter your phone number.");
		theForm.txtPhone.focus();
		return (false);		
	}
	if (!IsNumeric(theForm.txtPhone.value)) 
   	{ 
      	alert("Please enter only numbers or decimal points."); 
      	theForm.txtPhone.focus(); 
      	return (false); 
     } 
	if (!emailCheck(theForm))
    {
		theForm.txtEmail.focus();
		return (false);
	}
	if (theForm.txtCity.value=="")
	{
		alert("Please enter your city.");
		theForm.txtCity.focus();
		return (false);
	}
	for (var i = 0; i < theForm.txtCity.value.length; i++)
	{
		if (iChars.indexOf(theForm.txtCity.value.charAt(i)) != -1)
		{
			alert ("Your city name has special characters. \nThese are not allowed.\n Please remove them and try again.");
			theForm.txtCity.focus();
			return (false);
		}
	}		
	if (theForm.txtCountry.value=="")
	{
		alert("Please select your country.");
		theForm.txtCountry.focus();
		return (false);
	}	
	/*if (theForm.rdsoftware.value=="") 
	{
		alert("Please check which software does your company use?.");
		return (false);		
	}
	if ( ( theForm.rdsoftware[0].checked == false ) || ( theForm.rdsoftware[1].checked == false )) { alert ( "Please check which software does your company use?." ); return false; 

return(true);
} */
//alert(theForm.rdsoftware.checked);
//alert(theForm.rsvp2.value);
if  ( theForm.rdsoftware.checked == false && theForm.rdsoftware2.checked == false)
{ alert ( "Which software does your company use?." ); return false; }
	
if  ( theForm.rdsoftware.checked == true && theForm.rsvp2.value=="")
{ alert ( "Please enter which EnterpriseOne version you are using?." ); theForm.rsvp2.focus(); return false; }

if  ( theForm.rdsoftware2.checked == true  && theForm.jdever2.value=="")
{ alert ( "Please enter which World version you are using?." ); theForm.jdever2.focus(); return false; }

if ( ( theForm.rdWrSource[0].checked == false ) && ( theForm.rdWrSource[1].checked == false ) && ( theForm.rdWrSource[2].checked == false )&& ( theForm.rdWrSource[3].checked == false )&& ( theForm.rdWrSource[4].checked == false )) { alert ( "Please choose: How did you hear about this webinar?" ); return false; 

return(true);}
} 

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function emailCheck(obj)
{
	var emailStr=obj.txtEmail.value;
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var firstChars=validChars
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom="(" + firstChars + validChars + "*" + ")"
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	//var result = true;
	var beginPos = emailStr.indexOf("@");
	var endPos = emailStr.indexOf(".");
	var provider = emailStr.substring(beginPos+1,endPos);
	provider = provider.toLowerCase();
	
	var freeServiceProviders = new Array()
	freeServiceProviders[0] = "hotmail"; 
	freeServiceProviders[1] = "yahoo";
	freeServiceProviders[2] = "lycos";
	freeServiceProviders[3] = "msn";
	freeServiceProviders[4] = "anywhereemail";
	freeServiceProviders[5] = "rediffmail";
	freeServiceProviders[6] = "gmail";
	freeServiceProviders[7] = "rediff";
	freeServiceProviders[8] = "indiatimes";
	freeServiceProviders[9] = "vsnl";
	freeServiceProviders[10] = "mtnl";
	freeServiceProviders[11] = "gawab";
	freeServiceProviders[12] = "netscape";
	freeServiceProviders[13] = "aol";
	freeServiceProviders[14] = "pacbell";
	freeServiceProviders[15] = "sbcglobal";
	freeServiceProviders[16] = "comcast";
	freeServiceProviders[17] = "fsmail";
	freeServiceProviders[18] = "infy";
	freeServiceProviders[19] = "caribsurf";
	freeServiceProviders[20] = "bol";
	
	for (i=0;i<freeServiceProviders.length;i++)
	{
		if (provider == freeServiceProviders[i]){
		alert("Please provide your corporate email id. We do not accept email ids from free services.");
		obj.txtEmail.focus();		
		return false;}
	}
	
	if (provider == "SYSTIME")
	{
		<!--alert("If you are a SYSTIME employee, you do not need to register for this webinar. Please contact webinar@SYSTIME.net for login details.");-->
		<!--return false;0-->
	}
	
	if (matchArray==null) 
	{
	  	alert("Enter valid Email Address");
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	if (user.match(userPat)==null) 
	{
	    alert("Enter valid Email Address");
	    return false;
	}
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) 
	{
	    for (var i=1;i<=4;i++) 
	    {
			if (IPArray[i]>255) 
			{
		        alert("Destination IP address is invalid!");
				return false;
			}
		}
	    return true;
	}
	var domainArray=domain.match(domainPat)
	if (domainArray==null) 
	{
		alert("The domain name doesn't seem to be valid.");
	    return false;
	}
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if ((domArr[domArr.length-1].length<2) || (domArr[domArr.length-1].length>3)) 
	{
	   alert("The address must end in a three-letter domain, or two letter country.");
	   return false;
	}
	if (domArr[domArr.length-1].length==3 && len<2) 
	{
	   var errStr="This address is missing a hostname!"
	   alert(errStr);
	   return false;
	}
	return true;
}	

