﻿// JScript File

/**
 * Written: Edmond 9/4/08
 * The email validation script is Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// support the validation

    // 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 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 trim(s)
    {   var i;
        var returnString = "";
        // Search through string's characters one by one.
        // If character is not a whitespace, append to returnString.
        for (i = 0; i < s.length; i++)
        {   
            // Check that current character isn't whitespace.
            var c = s.charAt(i);
            if (c != " ") returnString += c;
        }
        return returnString;
    }
    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)
    {
        var bracket=3
        strPhone=trim(strPhone)
        if(strPhone.indexOf("+")>1) return false
        if(strPhone.indexOf("-")!=-1)bracket=bracket+1
        if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
        var brchr=strPhone.indexOf("(")
        if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
        if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
        s=stripCharsInBag(strPhone,validWorldPhoneChars);
        return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
    }


    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;
	}


    function isEmptyField(obj, err_name)
    {
	    if ((obj.value == null) || (obj.value == ""))
	    {
		    alert('Please Enter your ' + err_name);
		    obj.focus();
		    return true;
	    }
	    else
	        return false;
    }

    function ValidateForm()
    {
        //var bEmpty = false;     // indicate an empty field        
	    var oEmail = document.getElementById("txtEmail");
    	var oFirst = document.getElementById("txtFirst");
    	var oCompany = document.getElementById("txtCompany");
    	var oLast = document.getElementById("txtLast");
    	var oPhone = document.getElementById("txtPhone");

        if (isEmptyField(oFirst, 'First name'))
            return false;
    	

            
        if (isEmptyField(oLast, 'Last name'))
            return false;    	

        if (isEmptyField(oEmail, 'Email address'))
            return false;

        // validate the e-mail address
	    if (echeck(oEmail.value) == false)
	    {
		    oEmail.value="";
		    oEmail.focus();
		    return false;
	    }
            
        if (isEmptyField(oPhone, 'Phone number'))
            return false;

        // validate the phone #
	    if (checkInternationalPhone(oPhone.value) == false)
	    {
	        alert("Invalid Phone number\nFor example: 415-123-0000");
		    oPhone.value="";
		    oPhone.focus();
		    return false;
	    }
	    
        if (isEmptyField(oCompany, 'Company'))
            return false;
	    // All validations should be done and found valid at this point
	    var oButton = document.getElementById("SubmitUser");
	    if (oButton != null)
	    {
	        // disable the button
	        oButton.value = 'Please wait...';
	        oButton.disabled = true;
	    }
	    return true;
     }

