/**
 * This file contains utility fonctions to perform 
 * form validation.
 *
 * written by:		Tony Belanger
 * last updated on: 04/22/2009
 */
function validateNewClientForm(){
	var gtitle = document.theForm.gtitle.value;
	var gfirstName = document.theForm.gfirstName.value;
	var glastName = document.theForm.glastName.value;
	var gaddress = document.theForm.gaddress.value;
	var gaddress_type = document.theForm.gaddress_type.value;
	var gcity = document.theForm.gcity.value;
	var gprovince = document.theForm.gprovince.value;
	var gpostalCode = document.theForm.gpostalCode.value;
	var gtel = document.theForm.gtel.value;
	var gmonth = document.theForm.gmonth.value;
	var gday = document.theForm.gday.value;
	var gemail = document.theForm.gemail.value;
	var glanguage = document.theForm.glanguage.value;
	var gaddress = document.theForm.gaddress.value;
	var gvisit = document.theForm.gvisit.value;
	var checkArray = new Array();
	var greferenceOther = document.theForm.greferenceOther.value;
	
	// get array of checkboxes
	for (var i=0; i < document.theForm.greference.length; i++){
  		 if (document.theForm.greference[i].checked){
     		 checkArray[i] = document.theForm.greference[i].value;
   		}
	}
	// check every field
	if(gtitle == "") {
		alert('You must select a title.');
		return false;
	} else
	if (gfirstName == "") {
		alert('You must enter a first name.'); 
		return false;
	}
	else
	if (glastName == "") {
		alert('You must enter a last name.'); 
		return false;
	}
	else
	if (gaddress == "") {
		alert('You must enter an address.'); 
		return false;
	}
	if (gaddress_type == "") {
		alert('You must enter an address type.'); 
		return false;
	}
	else
	if (gcity == "") {
		alert('You must enter a city.'); 
		return false;
	}
	else
	if (gprovince == "") {
		alert('You must select a province.'); 
		return false;
	}
	else
	if (gpostalCode == "") {
		alert('You must enter a postal code.'); 
		return false;
	}
	else
	if(gtel == "") {
		alert('You must enter a phone number.');
		return false;
	}
	else
	if (gmonth == "" ) {
		alert('You must enter a month.'); 
		return false;
	}
	else 
	if(gmonth < 1 || gmonth > 12)
	{
		alert('Month must be a number in the range of 1-12.');
		return false;
	}
	else
	if (gday == "") {
		alert('You must enter a day.'); 
		return false;
	}
	if (gday < 1 || gday > 31) {
		alert('Day must be a number in the range of 1-31.');
		return false;
	}
	else
	if (!echeck(gemail)) {
		return false;
	}
	else
	if (glanguage == "") {
		alert('You must select a language.'); 
		return false;
	}
	else
	if (gvisit == "") {
		alert('You must select either'); 
		return false;
	}
	else
	if (checkArray.length == 0) {
		alert('You must select at least one reference.');
		return false;
	} 
	else
	if(checkArray[5] == "Other" && greferenceOther == "") {
		alert('You must enter the other reference.');
		return false;
	}
}

// validate edit client form
function validateEditClientForm() {
var gtitle = document.theForm.gtitle.value;
	var gfirstName = document.theForm.gfirstName.value;
	var glastName = document.theForm.glastName.value;
	var gaddress = document.theForm.gaddress.value;
	var gaddress_type = document.theForm.gaddress_type.value;
	var gcity = document.theForm.gcity.value;
	var gprovince = document.theForm.gprovince.value;
	var gpostalCode = document.theForm.gpostalCode.value;
	var gtel = document.theForm.gtel.value;
	var gmonth = document.theForm.gmonth.value;
	var gday = document.theForm.gday.value;
	var gemail = document.theForm.gemail.value;
	var glanguage = document.theForm.glanguage.value;
	var gaddress = document.theForm.gaddress.value;
	var gvisit = document.theForm.gvisit.value;
	
	// get array of checkboxes
	for (var i=0; i < document.theForm.greference.length; i++){
  		 if (document.theForm.greference[i].checked){
     		 checkArray[i] = document.theForm.greference[i].value;
   		}
	}
	// check every field
	if(gtitle == "") {
		alert('You must select a title.');
		return false;
	} else
	if (gfirstName == "") {
		alert('You must enter a first name.'); 
		return false;
	}
	else
	if (glastName == "") {
		alert('You must enter a last name.'); 
		return false;
	}
	else
	if (gaddress == "") {
		alert('You must enter an address.'); 
		return false;
	}
	if (gaddress_type == "") {
		alert('You must enter an address type.'); 
		return false;
	}
	else
	if (gcity == "") {
		alert('You must enter a city.'); 
		return false;
	}
	else
	if (gprovince == "") {
		alert('You must select a province.'); 
		return false;
	}
	else
	if (gpostalCode == "") {
		alert('You must enter a postal code.'); 
		return false;
	}
	else
	if(gtel == "") {
		alert('You must enter a phone number.');
		return false;
	}
	else
	if (gmonth == "" ) {
		alert('You must enter a month.'); 
		return false;
	}
	else 
	if(gmonth < 1 || gmonth > 12)
	{
		alert('Month must be a number in the range of 1-12.');
		return false;
	}
	else
	if (gday == "") {
		alert('You must enter a day.'); 
		return false;
	}
	if (gday < 1 || gday > 31) {
		alert('Day must be a number in the range of 1-31.');
		return false;
	}
	else
	if (!echeck(gemail)) {
		return false;
	}
	else
	if (glanguage == "") {
		alert('You must select a language.'); 
		return false;
	}
	else
	if (gvisit == "") {
		alert('You must select either'); 
		return false;
	}
	return true;
}

// validate emailAllClients form
function validateMessage() {
	var subject = document.theForm.subject.value;
	var language = document.theForm.language.value;
	var message = document.theForm.message.value;
	
	// check every field
	if(subject == "") {
		alert('You must enter a subject.');
		return false;
	} else 
	if (language == "") {
		alert('You must select a language.');
		return false;
	} else
	if (message == "") {
		alert('You must enter a message.');
		return false;
	} else {
		return true;
	}
}

function validateSinglePersonEmail() {
	var rname = document.theForm.rname.value;
	var remail = document.theForm.remail.value;
	var from = document.theForm.from.value;
	var sender = document.theForm.sender.value;
	var subject = document.theForm.subject.value;
	var message = document.theForm.message.value;
	
	// check every field
	if(rname == "") {
		alert('You must enter a name.');
		return false;
	} else
	if(subject == "") {
		alert('You must enter a subject.');
		return false;
	} else 
	if (!echeck(remail)) {
		return false;
	} else
	if (!echeck(sender)) {
		return false;
	} else
	if (message == "") {
		alert('You must enter a message.');
		return false;
	} else
	if (from == "") {
		alert('From field cannot be left empty.');
		return false;
	} 
	if (subject == "") {
		alert('Subject field cannot be left empty.');
		return false;
	} 
	return true;
}

/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

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;					
	}
