function validate(form)
{
	
	if (form.elements["selectDateGroup"]) {
		var radiobtns = form.elements["selectDateGroup"];
		var radiobtnslength = form.elements["selectDateGroup"].length;
	
		var radiobtncount = -1;
		for(var i=radiobtnslength-1; i > -1; i--) {
			if(radiobtns[i].checked) { 
				radiobtncount = i;
				i = -1;
			} 
		}
		if (radiobtncount == -1) {
			alert('Please select a date.');
			location="#selectDateLink";
			return false;
		}
	
	}
	
	//temp
	if (form.elements["RadioGroup1"]) {
		var radiobtns = form.elements["RadioGroup1"];
		var radiobtnslength = form.elements["RadioGroup1"].length;
	
		var radiobtncount = -1;
		for(var i=radiobtnslength-1; i > -1; i--) {
			if(radiobtns[i].checked) { 
				radiobtncount = i;
				i = -1;
			} 
		}
		if (radiobtncount == -1) {
			alert('Please select webcast(s).');
			location="#selectRadioGroup1Link";
			return false;
		}
	
	}	



	if (form.FirstName) {
		form.FirstName.value = allTrim(form.FirstName.value);
		if (form.FirstName.value == "")
		{
			alert('Please enter your first name.');
			location="#FirstNameLink";
			form.FirstName.focus();
			return false;
		}
	}

	if (form.LastName) {
		form.LastName.value = allTrim(form.LastName.value);
		if (form.LastName.value == "")
		{
			alert('Please enter your last name.');
			location="#LastNameLink";
			form.LastName.focus();
			return false;
		}
	}
	
	if (form.CompanyName) {
		form.CompanyName.value = allTrim(form.CompanyName.value);
		if (form.CompanyName.value == "")
		{
			alert('Please enter your company name.');
			location="#CompanyNameLink";
			form.CompanyName.focus();
			return false;
		}
	}

	if (form.JobTitle) {
		form.JobTitle.value = allTrim(form.JobTitle.value);
		if (form.JobTitle.value == "")
		{
			alert('Please enter your job title.');
			location="#JobTitleLink";
			form.JobTitle.focus();
			return false;
		}
	}

	if (form.Email) {
		form.Email.value = allTrim(form.Email.value);
		if (form.Email.value == "")
		{
			alert('Please enter your email address.');
			location="#EmailLink";
			form.Email.focus();
			return false;
		}
		
		if (!(validEmailSyntax(form.Email.value)))
		{
			alert('Please enter a valid Business Email Address.');
			location="#EmailLink";
			form.Email.focus();
			return false;
		}
		
		if (form.Email.value!="") {
				//Check for non-business email
				/*if(form.Email.value.match(/@yahoo.com|@hotmail.com|@msn.com|@comcast.com|@sbcglobal.net|@aol.com|@earthlink.net|@gmail.com/i)) {*/
				if(form.Email.value.match(/@hotmail.com|@msn.com|@comcast.com|@sbcglobal.net|@aol.com|@earthlink.net/i)) {

					alert("Please enter a valid Business Email Address.");
					return false;
			}
		}
	}
	
	if (form.Phone) {
		form.Phone.value = allTrim(form.Phone.value);
		if (form.Phone.value.length <= 9)
		{
			alert('Please enter your phone number.');
			location="#PhoneLink";
			form.Phone.focus();
			return false;
		}
	}
	
	
	if (form.StreetAddress) {
		form.StreetAddress.value = allTrim(form.StreetAddress.value);
		if (form.StreetAddress.value == "")
		{
			alert('Please enter your Street Address.');
			location="#StreetAddressLink";
			form.StreetAddress.focus();
			return false;
		}
	}	
	

	if (form.City) {
		form.City.value = allTrim(form.City.value);
		if (form.City.value == "")
		{
			alert('Please enter your City.');
			location="#CityLink";
			form.City.focus();
			return false;
		}
	}
	
	
	if (form.Country) {
		form.Country.value = allTrim(form.Country.value);
		if (form.Country.value == "")
		{
			alert('Please select a country.');
			location="#CountryLink";
			form.Country.focus();
			return false;
		}
	}


	if (form.StrategicInitiative_Faster) {
		//alert(form.StrategicInitiative_Faster.value);
		if (form.StrategicInitiative_Faster.value == "")
		{
			alert('Please select a faster time-to-hire.');
			location="#StrategicInitiatives";
			form.StrategicInitiative_Faster.focus();
			return false;
		}
	}

	if (form.StrategicInitiative_Improve) {
		if (form.StrategicInitiative_Improve.value == "")
		{
			alert('Please select a improve quality-of-hire.');
			location="#StrategicInitiatives";
			form.StrategicInitiative_Improve.focus();
			return false;
		}
	}

	if (form.StrategicInitiative_Reduce) {
		if (form.StrategicInitiative_Reduce.value == "")
		{
			alert('Please select a reduce cost-per-hire.');
			location="#StrategicInitiatives";
			form.StrategicInitiative_Reduce.focus();
			return false;
		}
	}

	if (form.Country) {
		if (form.Country.value=="USA" || form.Country.value=="Canada")
		{
			if (form.StateProvince.value == "")
			{
				alert('Please select a state/province.');
				location="#ltStateProvinceLink";
				form.StateProvince.focus();
				return false;
			}
		//Clear 	
		} else { form.StateProvince.value = ""; }
	}

	if (form.ZipCode) {
		form.ZipCode.value = allTrim(form.ZipCode.value);
		if (form.ZipCode.value == "") {
			alert('Please enter your Zip or Postal Code.');
			location="#ZipCodeLink";
			form.ZipCode.focus();
			return false;
		}
	
		if (form.Country) {
			if (form.Country.value=="USA" || form.Country.value=="Canada") {
				if (form.Country.value=="USA") {
					// Check for correct zip code
					reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
					if (!reZip.test(form.ZipCode.value)) {
						alert("Please enter your 5 digit or 5 digit + 4 digit Zip Code.  Example: 12345 or 12345-1234.");
						return false;
					}
				}
				if (form.Country.value=="Canada") {
					//Check for correct postal code
					rePostal = new RegExp(/(^s*([a-z](\s)?\d(\s)?){3}$)s*/i);
					if(!rePostal.test(form.ZipCode.value)) {
						alert("Please enter a valid Postal Code.");
						return false;
					}
				}
			}
		}
	}


	if (form.Industry) { 
		form.Industry.value = allTrim(form.Industry.value);
		if (form.Industry.value == "")
		{
			alert('Please add your Industry.');
			location="#Industry";
			form.Industry.focus();
			return false;
		}
	}

	if (form.numberEmployees) {
		form.numberEmployees.value = allTrim(form.numberEmployees.value);
		if (form.numberEmployees.value == "")
		{
			alert('Please answer the "Number of Employees?" question.');
			location="#numberofEmployeesLink";
			form.numberEmployees.focus();
			return false;
		}
	}
	
	
	if (form.PurchaseTimeframe) {
		form.PurchaseTimeframe.value = allTrim(form.PurchaseTimeframe.value);
		if (form.PurchaseTimeframe.value == "")
		{
			alert('Please select a purchase timeframe.');
			location="#PurchaseTimeframe";
			form.PurchaseTimeframe.focus();
			return false;
		}
	}


	if(form.ProductInterest_Recruiting) {  // refactor
	
		var ProductInterestChecked = 0;
		if (document.getElementsByName("ProductInterest_Recruiting")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Performance-Management")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Onboarding")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Analytics")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Succession-Planning")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Career-and-Goal-Management")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Compensation")[0].checked == true) { ProductInterestChecked++ ; }
		if (document.getElementsByName("ProductInterest_Other")[0].checked == true) { ProductInterestChecked++ ; }
		
		if (!ProductInterestChecked >= 1 )
			{
				alert('Please select one or more products.');
				location="#ProductInterest";
				return false;
			}
	}


	if (form.CompanyWebsite) { 
		form.CompanyWebsite.value = allTrim(form.CompanyWebsite.value);
		if (form.CompanyWebsite.value == "")
		{
			alert('Please add your Company Website.');
			location="#CompanyWebsite";
			form.CompanyWebsite.focus();
			return false;
		}
	}


	
	if (form.CurrentSolution) { 
		form.CurrentSolution.value = allTrim(form.CurrentSolution.value);
		if (form.CurrentSolution.value == "")
		{
			alert('Please add your Current Solution.');
			location="#CurrentSolution";
			form.CurrentSolution.focus();
			return false;
		}
	}




	return true;
}

//---------------



function dropDownEmpty(objDropDown, objTextFieldOther)
{
	return ((dropDownSelectedValue(objDropDown)=="" || objDropDown.selectedIndex==objDropDown.length-1) && objTextFieldOther.value=="");
}


function dropDownSelectedValue(objDropDown)
{
	return objDropDown.options[objDropDown.selectedIndex].value;
}


function dropDownChangeOther(objDropDown, objTextFieldOther)
{
	if (objDropDown.selectedIndex == objDropDown.length-1)
	{
		objTextFieldOther.focus();
	}
	else
	{
		objTextFieldOther.value = "";
		objTextFieldOther.blur();
	}
}


function dropDownConflict(objDropDown, objTextFieldOther)
{
	return (objTextFieldOther.value!="" && objDropDown.selectedIndex!=objDropDown.length-1);
}


function radioEmpty(objRadioGroup)
{
	for (b=0; b<objRadioGroup.length; b++)
	{
		if (objRadioGroup[b].checked) {return false;}
	}
	return true;
}


function radioSelectedValue(objRadioGroup)
{
	for (b=0; b<objRadioGroup.length; b++)
	{
		if (objRadioGroup[b].checked) {return objRadioGroup[b].value;}
	}
	return "";
}


function checkboxEmpty(objForm,checkboxGroupName,nbrCheckbox)
{
	lettres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	for (c=0; c<nbrCheckbox; c++)
	{
		if (eval("objForm." + checkboxGroupName + "_" + lettres.substring(c,c+1) + ".checked")) {return false;}
	}
	return true;
}


function checkboxChecked(objForm,checkboxGroupName,nbrCheckbox)
{
	lettres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	nbrChecked = 0;
	for (c=0; c<nbrCheckbox; c++)
	{
		if (eval("objForm." + checkboxGroupName + "_" + lettres.substring(c,c+1) + ".checked")) {nbrChecked++;}
	}
	return nbrChecked;
}


function checkboxSelectedValue(objCheckbox)
{
	if (objCheckbox.checked)
	{
		return objCheckbox.value;
	}
	return "";
}


function checkboxChangeOther(objCheckbox, objTextFieldOther)
{
	if (objCheckbox.checked)
	{
		objTextFieldOther.focus();
	}
	else
	{
		objTextFieldOther.value = "";
		objTextFieldOther.blur();
	}
}


function checkboxConflict(objCheckbox, objTextFieldOther)
{
	return (objTextFieldOther.value!="" && !(objCheckbox.checked));
}


function IsNumeric(sText)
{
   var ValidChars = "0123456789.-+ ";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}


function validEmailSyntax(str)
{
	emailAdr = allTrim(str);
	atIndex = emailAdr.indexOf("@",0);
	return (atIndex!=-1 && atIndex==emailAdr.lastIndexOf("@",emailAdr.length) && emailAdr.indexOf(".",atIndex)!=-1 && emailAdr.indexOf(" ",0)==-1);
}


function validWebsiteSyntax(str)
{
	websiteAdr = allTrim(str);
	return (websiteAdr!="http://" && websiteAdr.indexOf(".",0)!=-1 && websiteAdr.indexOf(" ",0)==-1);
}


function leftTrim(str)
{
	texte = str;
	while (texte.substring(0,1) == " ")
	{
		texte = texte.substring(1,texte.length);
	}
	return texte;
}


function rightTrim(str)
{
	texte = str;
	while (texte.substring(texte.length-1,texte.length) == " ")
	{
		texte = texte.substring(0,texte.length-1);
	}
	return texte;
}


function allTrim(str)
{
	return rightTrim(leftTrim(str));
}


function delayLink(adr, delay)
{
	setTimeout('location="'+adr+'"', delay);
}



//---------------
function validateEmail(ea) {
	if ( form.email.value.length == 0 ){
		alert("Please Enter Your Email Address"); 
		form.email.focus();
		return false;
	}
	if (checkEmail(form.email.value) == false) {
	    form.email.value=""
	    form.email.focus();
	    return false;
	}
}

function checkEmail(ea)
{
    var reEmail = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    if (!reEmail.test(ea)) {
        alert("Please enter a valid Email Address!")
        return false
    }
    return true
}

function changeCase(frmObj) {
var index;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strlen;
tmpStr = frmObj.value.toLowerCase();
strLen = tmpStr.length;
if (strLen > 0)  {
for (index = 0; index < strLen; index++)  {
if (index == 0)  {
tmpChar = tmpStr.substring(0,1).toUpperCase();
postString = tmpStr.substring(1,strLen);
tmpStr = tmpChar + postString;
}
else {
tmpChar = tmpStr.substring(index, index+1);
if (tmpChar == " " && index < (strLen-1))  {
tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
preString = tmpStr.substring(0, index+1);
postString = tmpStr.substring(index+2,strLen);
tmpStr = preString + tmpChar + postString;
         }
      }
   }
}
frmObj.value = tmpStr;
}



// calculate the ASCII code of the given character
function CalcKeyCode(aChar) {
  var character = aChar.substring(0,1);
  var code = aChar.charCodeAt(0);
  return code;
}

function checkNumber(val) {
  var strPass = val.value;
  var strLength = strPass.length;
  var lchar = val.value.charAt((strLength) - 1);
  var cCode = CalcKeyCode(lchar);

  /* Check if the keyed in character is a number
     do you want alphabetic UPPERCASE only ?
     or lower case only just check their respective
     codes and replace the 48 and 57 */

  if (cCode < 48 || cCode > 57 ) {
    var myNumber = val.value.substring(0, (strLength) - 1);
    val.value = myNumber;
  }
  return false;
}

function checkLetter(val) {
  var strPass = val.value;
  var strLength = strPass.length;
  var lchar = val.value.charAt((strLength) - 1);
  var cCode = CalcKeyCode(lchar);

  /* Check if the keyed in character is a number
     do you want alphabetic UPPERCASE only ?
     or lower case only just check their respective
     codes and replace the 48 and 57 */

  if (cCode < 65 || cCode > 122) {
	  //allow dash - hyphen
	  if (cCode != 32 || cCode != 45) {
		var myNumber = val.value.substring(0, (strLength) - 1);
		val.value = myNumber;
	  }
  }
  return false;
}

function fixPhone(x) {

	//strip invalid characters
	for (i = 0; i < x.value.length; i++) {
		
		x.value = x.value.replace('-','');
		x.value = x.value.replace(' ','');
		x.value = x.value.replace('.','');
		x.value = x.value.replace('(','');
		x.value = x.value.replace(')','');
		x.value = x.value.replace('_','');
		x.value = x.value.replace('!','');
		x.value = x.value.replace('@','');
		x.value = x.value.replace('#','');
		x.value = x.value.replace('$','');
		x.value = x.value.replace('%','');
		x.value = x.value.replace('^','');
		x.value = x.value.replace('&','');
		x.value = x.value.replace('*','');
		x.value = x.value.replace('=','');
		
		//these must be in this order because they contain each other
		x.value = x.value.replace('ext','');
		x.value = x.value.replace('ex','');
		x.value = x.value.replace('x','');
	}

	//strip leading one
	if (x.value.substring(0,1) == "1") {
		x.value = x.value.substring(1,x.value.length);
	}

	//format number == 10
	if (x.value.length == 10) { 
		x.value = "(" + x.value.substring(0,3) + ") " + x.value.substring(3,6) + "-" + x.value.substring(6,x.value.length);
	}

	//format number > 10 (extension)
	else if (x.value.length > 10) { 
		x.value = "(" + x.value.substring(0,3) + ") " + x.value.substring(3,6) + "-" + x.value.substring(6,10) + " x" + x.value.substring(10,x.value.length);
	}

}//end function fixPhone




function changeToLowerCase(Obj) {
	Obj.value=Obj.value.toLowerCase();
}

function doLink(url) {
//	alert(url);
	window.location.href = url;
}
