// JavaScript Document



function validate()

{	

	var validate = false;

	

	validate = CheckNull('firstname', 'First Name');

	if(!validate)

	{	

		return validate;

	}

	

	validate = CheckNull('lastname', 'Last Name');

	if(!validate)

	{	

		return validate;

	}
	
	validate = CheckNull('email', 'Email');

	if(!validate)

	{	

		return validate;

	}

	

	//===========Tel Primary

//	validate = CheckNullMulti('tel_primary01', 'tel_primary02', 'tel_primary03', 'Primary Telephone');

//	if(!validate)

//	{	

//		return validate;

//	}

	

	validate = CheckPhoneX('tel_primary01', 'Primary Home Telephone');

	if(!validate)

	{	

		return validate;

	}

	

	validate = CheckPhoneX('tel_primary02', 'Primary Work Telephone');

	if(!validate)

	{	

		return validate;

	}

	

	validate = CheckPhoneX('tel_primary03', 'Primary Cell Telephone');

	if(!validate)

	{	

		return validate;

	}

	

	validate = CheckPhoneX('tel_secondary01', 'Secondary Home Telephone');

	if(!validate)

	{	

		return validate;

	}

	

	validate = CheckPhoneX('tel_secondary02', 'Secondary Work Telephone');

	if(!validate)

	{	

		return validate;

	}

	

	validate = CheckPhoneX('tel_secondary03', 'Secondary Cell Telephone');

	if(!validate)

	{	

		return validate;

	}



	var obj = document.getElementById('call_other');

	

	if(obj.disabled == false)

	{

		validate = CheckOptionNull('call', 6, 'Please specify when we can call you.');

		if(!validate)

		{	

			return validate;

		}

		

		validate = CheckCallOption();

		if(!validate)

		{	

			return validate;

		}

	}

		

	

	validate = CheckEmail('email');

	if(!validate)

	{	

		return validate;

	}

	

//	validate = CheckOptionNull('service', 7, 'Please specify your mediation service.');

//	if(!validate)

//	{	

//		return validate;

//	}

//	

//	validate = CheckServiceOption();

//	if(!validate)

//	{	

//		return validate;

//	}

	

//	validate = CheckNull('comment', 'Comment or Questions');

//	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 Call Option

function CheckCallOption()

{

	var callOption = document.getElementById('call_other');

	var text = document.getElementById('call_other_text');

	val = text.value.replace(/^\s*|\s*$/g,"");

	

	if(callOption.checked)

	{

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

			alert("Please specify when we can call you.");

			text.focus();

			return false;

		}

		return true;

	}

	else

	{

		return true;

	}

	

}



function CheckOptionNull(option, range, msg)

{

	var count = 0;

	for (var i=1; i <= range; i++)

	{

		var obj = document.getElementById(option + '0' + i);

		if(obj.checked)

		{

			count ++;

		}

	}

	

	if(count != 0)

	{

		return true;

	}

	else

	{

		var callOption = document.getElementById(option + '_other');

		if(callOption.checked)

		{

			return true;

		}

		else

		{

			var obj = document.getElementById(option + '0' + 1);

			obj.focus();

			alert(msg);		

			return false;

		}

	}

}

//=====end  checl call option



//==========check service option

function CheckServiceOption()

{

	var serviceOption = document.getElementById('service_other');

	var text = document.getElementById('service_other_text');

	val = text.value.replace(/^\s*|\s*$/g,"");

	

	if(serviceOption.checked)

	{



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

			alert("Please specify your mediation service.")

			text.focus()

			return false

		}

		return true;

	}

	else

	{

		return true;

	}

	

}

//==========check service option

//==========check state

function CheckState(){

	var state=document.getElementById('state');

	var country=document.getElementById('country');	

	

	if(country.value == 'UNITED STATES')

	{

		if(state.value == 'Other')

		{

			alert("State/Prov must be selected.");

			state.focus();

			return false;

		}	

	}

	return true;

}

//==========end check state



//=================check Zip

function CheckZip(zipID) {

var zip=document.getElementById(zipID);

var zipValue = zip.value;

var valid = "0123456789-";

var hyphencount = 0;



if ((zipValue.length!=5) && (zipValue.length!=10)) {

alert("Invalid Zip/Postal code3243.");

zip.value = "";

zip.focus();

return false;

}

for (var i=0; i < zipValue.length; i++) {

temp = "" + zipValue.substring(i, i+1);

if (temp == "-") hyphencount++;

if (valid.indexOf(temp) == "-1") {

alert("Invalid Zip/Postal code.");

zip.value = "";

zip.focus();

return false;

}

if ((hyphencount > 1) || ((zipValue.length==10) && ""+zipValue.charAt(5)!="-")) {

alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");

zip.value = "";

zip.focus();

return false;

   }

}

return true;

}

//==================end check Zip



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

