	function formChecker(form) {
		retURLMakr();
		var elementsToBeChecked = ['company','title','first_name','last_name','areaCode','localArea','fourDigits','street','city','statedropdown','zip','email','province'];
		
		for(i=0;i<form.elements.length;i++) {			
			for(j=0;j<elementsToBeChecked.length;j++) {
				if( form.elements[i].name == elementsToBeChecked[j] ) {
					if(!checkFields(form.elements[i])) {
						return false;
					} 
					break;
				}										
			}									
		}		
		
		if(form.extension.value == "" || form.extension.value == null){
		form.phone.value = "(" + form.areaCode.value + ")" + form.localArea.value + "-" + form.fourDigits.value;
		}
		else{
		form.phone.value = "(" + form.areaCode.value + ")" + form.localArea.value + "-" + form.fourDigits.value + "x" + form.extension.value;
		}
		
		form.areaCode.disabled = true;
		form.localArea.disabled = true;
		form.fourDigits.disabled = true;
		form.extension.disabled = true;

		form.zip.disabled = false;
		form.state.disabled = false;
		
		if(form.country.value == "Canada"){
			form.zip.value = form.zipcanada.value;
			form.state.value = form.province.value;
		}
		if(form.country.value == "United States"){
			form.state.value = form.statedropdown.value;
		}
		form.statedropdown.disabled = true;
		form.zipcanada.disabled = true;
		form.province.disabled = true;

		//if(!form.OptIn.checked) {form.OptIn.checked = true; form.OptIn.style.display =  'none'; form.OptIn.value = "No"} else { form.OptIn.value = "Yes" }
		return true;							
	}
	
	function checkFields(elem) {
		if(elem.value == null || elem.value == "" || elem.name == "zip" || elem.name == "statedropdown" || elem.name == "areaCode" || elem.name == "localArea" || elem.name == "fourDigits" || elem.name == "email" || elem.name == "province") {			
			if(elem.name == "email") { if( checkEmail(elem.value) ) { return true; }	}	
			if(elem.name == "statedropdown") { if(elem.selectedIndex != 0 || elem.disabled == true) { return true; } }
			if(elem.name == "province") { if(elem.selectedIndex != 0 || elem.disabled == true) { return true; }	}
			if(elem.name == "zip") { if (elem.value != "" && elem.value.length == 5 && IsNumeric(elem.value) || elem.disabled == true) { return true; } }
			if(elem.name == "zipcanada") { if (elem.value != "" || elem.disabled == true) { return true; } }				
			if(elem.name == "areaCode") { if ((elem.value != "" && elem.value.length == 3) && IsNumeric(elem.value) ) { return true; } }
			if(elem.name == "localArea") { if ((elem.value != "" && elem.value.length == 3) && IsNumeric(elem.value) ) { return true; } }
			if(elem.name == "fourDigits") { if ((elem.value != "" && elem.value.length == 4) && IsNumeric(elem.value) ) { return true; } }			
			
			switch (elem.name) {
				case "company":			alert("Please enter your company name.");break;
				case "title":			alert("Please enter your title.");break;
				case "first_name":		alert("Please enter your first name.");break;
				case "last_name":		alert("Please enter your last name.");break;
				case "street":			alert("Please enter your address.");break;
				case "city":			alert("Please enter your city.");break;
				case "zip":				alert("Please enter your five digit zip code. eg. 02332");break;
				case "zipcanada":		alert("Please enter your zip code");break;
				case "statedropdown":			alert("Please select your state.");break;
				case "province":		alert("Please select your province.");break;
				case "areaCode":		alert("Please enter phone number in correct ten digit format. eg. 555-555-5555");break;
				case "localArea":		alert("Please enter phone number in correct ten digit format. eg. 555-555-5555");break;
				case "fourDigits":		alert("Please enter phone number in correct ten digit format. eg. 555-555-5555");break;
				case "email":			alert("Please enter a valid E-mail address.");break;
			}
			
			elem.focus();
			return false;
		}
		else {
			return true;
		}		
	}
	
	function IsNumeric(sText) {
		var ValidChars = "0123456789";
		var IsNumber = true;
		var Char;

		for (k = 0; k < sText.length && IsNumber == true; k++) 
		{ 
			Char = sText.charAt(k); 
			if (ValidChars.indexOf(Char) == -1) {
				IsNumber = false;
			}
		}		
		return IsNumber;	   
	}
	
	function checkEmail(email) {
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		return emailPattern.test(email); 
	}
	
	function retURLMakr(){
		var URLarray = (document.URL).split("/")
		var currentBaseURL = "";
		var pageURLarray = (document.getElementById('retURL').value).split("/");
		var pageURL = pageURLarray[pageURLarray.length-1];
		
		
		for(var i = 0; i < URLarray.length-1;i++){
		currentBaseURL += URLarray[i] + "/";
		}
		
		document.getElementById('retURL').value = currentBaseURL + pageURL;
	}
	
	function changeStateDropdown(obj){

	if (obj.selectedIndex == 0){
		document.getElementById('provinceHeader').style.display = "none";
		document.getElementById('provinceSelect').style.display = "none";
		document.getElementById('provinceSelect').disabled = true;
		
		document.getElementById('zipCanadaHeader').style.display = "none";
		document.getElementById('zipCanadaInput').style.display = "none";
		document.getElementById('zipCanadaInput').disabled = true;
		
		document.getElementById('stateHeader').style.display = "block";
		document.getElementById('stateSelect').style.display = "block";
		document.getElementById('stateSelect').disabled = false;
		
		document.getElementById('zipHeader').style.display = "block";
		document.getElementById('zipInput').style.display = "block";
		document.getElementById('zipInput').disabled = false;
		
	}
	
	if (obj.selectedIndex == 1){
		document.getElementById('provinceHeader').style.display = "block";
		document.getElementById('provinceSelect').style.display = "block";
		document.getElementById('provinceSelect').disabled = false;
		
		document.getElementById('zipCanadaHeader').style.display = "block";
		document.getElementById('zipCanadaInput').style.display = "block";
		document.getElementById('zipCanadaInput').disabled = false;
		
		document.getElementById('stateHeader').style.display = "none";
		document.getElementById('stateSelect').style.display = "none";
		document.getElementById('stateSelect').disabled = true;
		
		document.getElementById('zipHeader').style.display = "none";
		document.getElementById('zipInput').style.display = "none";
		document.getElementById('zipInput').disabled = true;
	}

	}