function checkForm(TheForm,Fields) {
    if (validateinput(TheForm,Fields)) {
        if (ValidateForm(document.theform.email)){
            if (ValidateFormPhone(document.theform.phone)){
                if (ValidateFormAreaCode(document.theform.areacode)){
                    return true
                } else {
                    return false
                }
            } else {
                return false
            }
        } else {
            return false
        }
    } else {
        return false
    }
}// end function checkalForm


function validateinput(TheForm,RequiredFields)
{
    var fields = RequiredFields.split(",")
    var szMissing= new Array();
    for (x=0;x<fields.length;x++) {
        if (TheForm.elements[fields[x]].value.length==0) {
            szMissing[szMissing.length]=new String(fields[x]);
		    break
        }
    }
    if (szMissing.length) {
        alert("The field"+((szMissing.length>1)?"s ":" ")+szMissing.join(",")+" is required.");
        TheForm.elements[szMissing].style.backgroundColor='yellow'
        TheForm.elements[szMissing].focus()
        return false
    }
    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 Address")
		   return false
		}

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

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

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

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

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

 		 return true
	}

function ValidateForm(theemailfield){
	var emailID=theemailfield
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
        emailID.style.backgroundColor='yellow'
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		//emailID.value=""
        emailID.style.backgroundColor='yellow'
		emailID.focus()
		return false
	}
	return true
 }

// 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 = 7;
// Minimum no of digits in an international phone no.
var minDigitsInAreaCode = 3;

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);
}

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

function ValidateFormPhone(thephonefield){
	var Phone=thephonefield
	
	if ((Phone.value!==null)||(Phone.value!=="")){
    	if (checkInternationalPhone(Phone.value)==false){
    		alert("Please Enter a Valid Phone Number")
    		//Phone.value=""
		    Phone.style.backgroundColor='yellow'
    		Phone.focus()
    		return false
    	}
    }
	return true
 }

function ValidateFormAreaCode(theareacodefield){
	var Areacode=theareacodefield
	
	if ((Areacode.value!==null)||(Areacode.value!=="")){
    	if (checkAreaCode(Areacode.value)==false){
    		alert("Please Enter a Valid Area Code")
    		//AreaCode.value=""
		    Areacode.style.backgroundColor='yellow'
    		Areacode.focus()
    		return false
    	}
    }
	return true
 }

function autoTab(input,len, goto) {
    if(input.value.length >= len) {
        goto.focus()
    }
}



