// JavaScript Document

function validate()

{	

	var validate = false;
	validate = CheckNull('name', 'Name');
	if(!validate)
	{	
		return validate;
	}
	
	
	validate = CheckNull('email', 'Email');
	if(!validate)

	{	
		return validate;
	}

	

	//===========Tel Primary
	validate = CheckPhoneX('homePhone', 'Home Phone Number');

	if(!validate)

	{	

		return validate;

	}

	validate = CheckPhoneX('workPhone', 'Work Phone Number');

	if(!validate)

	{	

		return validate;

	}
	validate = CheckEmail('email');
	if(!validate)

	{	

		return validate;

	}

	return validate;

}



function trim(a){

	var tmp=new Array();

	for(j=0;j<a.length;j++)

		if(a[j]!=' ')

			tmp[tmp.length]=a[j];

	a.length=tmp.length;

	for(j=0;j<tmp.length;j++)

		a[j]=tmp[j];

	return a;

}

//================check null

function CheckNull(objID, msg){

	var obj=document.getElementById(objID);
	var text = obj.value;
	text = text.replace(/^\s*|\s*$/g,"");
//	alert('==' + text + '==');

	if ((text==null)||(text=="")){

		alert(msg + " cannot be empty.")
		obj.focus()
		return false

	}
	return true;

}



function CheckNullMulti(objID1,objID2,objID3, msg){

	var obj1=document.getElementById(objID1);
	var obj2=document.getElementById(objID2);
	var obj3=document.getElementById(objID3);	

	var text1 = obj1.value;
	text1 = text1.replace(/^\s*|\s*$/g,"");	

	var text2 = obj2.value;
	text2 = text2.replace(/^\s*|\s*$/g,"");

	var text3 = obj3.value;
	text3 = text3.replace(/^\s*|\s*$/g,"");	
	

	if( ((text1==null)||(text1=="")) && ((text2==null)||(text2=="")) && ((text3==null)||(text3=="")) ){

		alert(msg + " cannot be empty.")
		obj1.focus()
		return false

	}

	return true;

}

//================end check null


//================check address

function CheckAddress(addr01ID, addr02ID){

	var addr01=document.getElementById(addr01ID);
	var addr02=document.getElementById(addr02ID);
	if ((addr01.value==null)||(addr01.value=="")){

		if((addr02.value==null)||(addr02.value==""))

		{

			alert("Address cannot be empty.")
			addr01.focus()
			return false

		}

		else

		{

			return true;

		}

	}

	return true;

}

//================end check address



//=======================================email validation

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 Email address.");
		   return false

		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid Email address.");
		   return false

		}



		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){

		    alert("Invalid Email address.");
		    return false

		}



		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid Email address.");
		    return false

		 }



		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid Email address.");
		    return false

		 }



		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid Email address.");
		    return false

		 }

		

		 if (str.indexOf(" ")!=-1){
		    alert("Invalid Email address.");
		    return false

		 }



 		 return true					

	}



function CheckEmail(email){

	var emailID=document.getElementById(email);
	var text = emailID.value;
	text = text.replace(/^\s*|\s*$/g,"");

	if ((text==null)||(text=="")){
		alert("Email address cannot be empty.")
		emailID.focus()
		return false

	}

	if (echeck(text)==false){
		emailID.value=""
		emailID.focus()
		return false

	}
	return true
 }

//===================================end email validation



//===================================phone 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 = 7;



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 CheckPhone(phone, msg){

	var Phone=document.getElementById(phone);
	var text = Phone.value;
	text = text.replace(/^\s*|\s*$/g,"");	

	if ((text==null)||(text=="")){

		alert(msg + " cannot be empty");
		Phone.focus()
		return false

	}

	if (checkInternationalPhone(text)==false){
		alert("Invalid " + msg);
		Phone.value=""
		Phone.focus()
		return false

	}
	return true

}

function CheckPhoneX(phone, msg){

	var Phone=document.getElementById(phone);
	var text = Phone.value;
	text = text.replace(/^\s*|\s*$/g,"");
	if ((text==null)||(text=="")){

		return true;

	}

	if (checkInternationalPhone(text)==false){
		alert("Invalid " + msg);
		Phone.value=""
		Phone.focus()
		return false		

	}
	return true
}
//=====================================end phone validation

