// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function clickDisL()
{
	
	if(document.getElementById("usage").value == 'Other ...')
	{
		document.getElementById("other_usage").disabled = false;
	}
	else
	{
		document.getElementById("other_usage").disabled = true;
	}
}

function clickDisR()
{
	
	if(document.getElementById("referrer").value == 'Other ...')
	{
		document.getElementById("other_referrer").disabled = false;
	}
	else
	{
		document.getElementById("other_referrer").disabled = true;
	}
}

function checkzip()
{
	var s = document.getElementById("zip").value;
	if(!isInteger(s) && (s != 'n' && s != 'a' && s != "na" && s != 'N' && s != 'A' && s != "NA"))
	{
		window.alert("Your input is not an integer");
		document.getElementById("zip").value = '';
		document.getElementById("zip").focus();
	}
}

function checkPhone()
{
	var strPhone = document.getElementById("phone").value;	
	if(!checkInternationalPhone(strPhone))
	{
		window.alert("Your Phone number is not valid!");
		document.getElementById("phone").value = '';
		document.getElementById("phone").focus();
	}
}


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 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++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

/* Form Validation*/

function validation()
{	
	
	if(document.getElementById("user_name").value == "")
	{
		window.alert("Please insert your User Name!");
		document.getElementById("user_name").focus();
		return false;
	}
	
	else if(document.getElementById("password").value == "")
	{
		window.alert("Please insert your Password!");
		document.getElementById("password").focus();
		return false;
	}
	
	else if(document.getElementById("confirm_password").value == "")
	{
		window.alert("Please insert your Password again!");
		document.getElementById("confirm_password").focus();
		return false;
	}
	
	else if(document.getElementById("confirm_password").value != document.getElementById("password").value)
	{
		window.alert("Your Password in not confirmed.Please Type same Password!");
		document.getElementById("confirm_password").value = '';
		document.getElementById("confirm_password").focus();
		return false;
	}
	
	else if(document.getElementById("first_name").value == "")
	{
		window.alert("Please insert your First Name!");
		document.getElementById("first_name").focus();
		return false;
	}
	
	else if(document.getElementById("last_name").value == "")
	{
		window.alert("Please insert your Last Name!");
		document.getElementById("last_name").focus();
		return false;
	}
	
	else if(document.getElementById("address").value == "")
	{
		window.alert("Please insert your Address!");
		document.getElementById("address").focus();
		return false;
	}
	
	else if(document.getElementById("city").value == "")
	{
		window.alert("Please insert your City!");
		document.getElementById("city").focus();
		return false;
	}
	
	else if(document.getElementById("zip").value == "")
	{
		window.alert("Please insert your zip or Postal code!");
		document.getElementById("zip").focus();
		return false;
	}
	
	else if(!isInteger(document.getElementById("zip").value) && (document.getElementById("zip").value != "na" && document.getElementById("zip").value != "NA"))
	{
		window.alert("Please insert your CURRECT zip or Postal code!");
		document.getElementById("zip").value = '';
		document.getElementById("zip").focus();
		return false;
	}
		
	else if(document.getElementById("phone").value == "")
	{
		window.alert("Please insert your Contact Number!");
		document.getElementById("phone").focus();
		return false;
	}
	
	else if(!checkInternationalPhone(document.getElementById("phone").value))
	{
		window.alert("Your Phone number is not valid!");
		document.getElementById("phone").value = '';
		document.getElementById("phone").focus();
		return false;
	}
	
	else if(document.getElementById("email").value == "aaa@aaa.com" || document.getElementById("email").value == "" )
	{
		window.alert("Please insert your Email Address!");
		document.getElementById("email").focus();
		return false;
	}	
	else if(!echeck(document.getElementById("email").value))
	{
		document.getElementById("email").value = '';
		document.getElementById("email").focus();
		return false;
		
	}	
	else if(document.getElementById("confirm_email").value == "")
	{
		window.alert("Please Retype your Email Address!");
		document.getElementById("confirm_email").focus();
		return false;
	}
	
	else if(document.getElementById("confirm_email").value != document.getElementById("email").value)
	{
		window.alert("Your Email Address is not confirmed.Please try again!");
		document.getElementById("confirm_email").value = '';
		document.getElementById("confirm_email").focus();
		return false;
	}
	
	else if(document.getElementById("age_group").value == "")
	{
		window.alert("Please Choose your Age Group!");
		document.getElementById("age_group").focus();
		return false;
	}	
	
	else if(document.getElementById("referrer").value == "" && document.getElementById("other_referrer").value == "" )
	{
		window.alert("Please Choose or type your Referrer!");
		document.getElementById("referrer").focus();
		return false;
	}
	
	else if(document.getElementById("usage").value == "" && document.getElementById("other_usage").value == "" )
	{
		window.alert("Please Choose or type your User Account!");
		document.getElementById("usage").focus();
		return false;
	}
	
	else if(!document.getElementById("agree").checked)
	{
		window.alert("Please Accept!");
		document.getElementById("agree").focus();
		return false;
	}
	
	else if(document.getElementById("account_password").value == "")
	{
		window.alert("Please enter your Account password!");
		document.getElementById("account_password").focus();
		return false;
	}
	
	else if(document.getElementById("frontpage").value == "")
	{
		window.alert("Are you going to use Microsoft FrontPage?");
		document.getElementById("frontpage").focus();
		return false;
	}
	else
	{
		return true;
	}
	
	
}









function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}