function FormValidator(RegistrationQForm, lang)
{	
	if (isObject(RegistrationQForm.txtFirstName)) {		
		if (trim(RegistrationQForm.txtFirstName.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese su nombre.");
					break;
				default:
					alert("Please enter your first name.");
					break;
			}
			RegistrationQForm.txtFirstName.focus();
			return (false);
		} 
		else {
			if (RegistrationQForm.txtFirstName.value.length < 2)
			{
				switch (lang) {
					case 'es':
						alert("Por favor ingrese un nombre válido.");
						break;
					default: 
						alert("Please enter a valid first name.");
						break;
				}
				RegistrationQForm.txtFirstName.focus();
				return (false);
			}			
		}
	}
 
	if (isObject(RegistrationQForm.txtLastName)) {
		if (trim(RegistrationQForm.txtLastName.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese su apellido.");
					break;
				default:
					alert("Please enter your last name.");
					break;
			}
			RegistrationQForm.txtLastName.focus();
			return (false);
		} 
		else {
			if (RegistrationQForm.txtLastName.value.length < 2)
			{
				switch (lang) {
					case 'es':
						alert("Por favor ingrese su apellido válido.");
						break;
					default:
						alert("Please enter a valid last name.");
						break;
				}
				RegistrationQForm.txtLastName.focus();
				return (false);
			}			
		}
	}
  
	if (isObject(RegistrationQForm.txtCompany)) {
		if (trim(RegistrationQForm.txtCompany.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese el nombre de su compañía.");
					break;
				default:
					alert("Please enter your company name.");
					break;
			}
			RegistrationQForm.txtCompany.focus();
			return (false);
		}
		else {
			if (RegistrationQForm.txtCompany.value.length < 2)
			{
				switch (lang) {
					case 'es':
						alert("Por favor ingrese el nombre de su compañía válido.");
						break;
					default:
						alert("Please enter a valid company name.");
						break;
				}
				RegistrationQForm.txtCompany.focus();
				return (false);
			}			
		}
	}
	
	if (isObject(RegistrationQForm.txtJobTitle)) {
		if (trim(RegistrationQForm.txtJobTitle.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese un nombre de puesto.");
					break;
				default:
					alert("Please enter your job title.");
					break;
			}
			RegistrationQForm.txtJobTitle.focus();
			return (false);
		}
		else {
			if (RegistrationQForm.txtJobTitle.value.length < 2)
			{
				switch (lang) {
					case 'es':
						alert("Por favor ingrese un nombre de puesto válido.");
						break;
					default:
						alert("Please enter a valid job title.");
						break;
				}
				RegistrationQForm.txtJobTitle.focus();
				return (false);
			}			
		}
	}
	
	if (isObject(RegistrationQForm.txtAddress1)) {
		if (trim(RegistrationQForm.txtAddress1.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese un domicilio.");
					break;
				default:
					alert("Please enter your address.");
					break;
			}
			RegistrationQForm.txtAddress1.focus();
			return (false);
		}
		else {
			if (RegistrationQForm.txtAddress1.value.length < 2)
			{
				switch (lang) {
					case 'es':
						alert("Por favor ingrese un domicilio válido.");
						break;
					default:
						alert("Please enter a valid address.");
						break;
				}
				RegistrationQForm.txtAddress1.focus();
				return (false);
			}			
		}
	}
	
	if (isObject(RegistrationQForm.txtCity)) {
		if (trim(RegistrationQForm.txtCity.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese su ciudad.");
					break;
				default:
					alert("Please enter your city.");
					break;
			}
			RegistrationQForm.txtCity.focus();
			return (false);
		}
		else {
			if (RegistrationQForm.txtCity.value.length < 2)
			{
				switch (lang) {
					case 'es':
						alert("Por favor ingrese un domicilio válido.");
						break;
					default:
						alert("Please enter a valid city.");
						break;
				}
				RegistrationQForm.txtCity.focus();
				return (false);
			}			
		}
	}	
	
	if (isObject(RegistrationQForm.lstCountry)) {
		if (RegistrationQForm.lstCountry.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione su país de residencia.");
					break;
				default:
					alert("Please select your country.");
					break;
			}
			RegistrationQForm.lstCountry.focus();
			return (false);
		} else {
			if (isObject(RegistrationQForm.lstState)) {
				strSelectedCountry = RegistrationQForm.lstCountry.options[RegistrationQForm.lstCountry.selectedIndex].text;
				
				blnUSCanada = false;
				if (strSelectedCountry == 'United States' || strSelectedCountry == 'Canada')
					blnUSCanada = true;
				
				if (RegistrationQForm.lstState.selectedIndex == 0)
				{
					if (strSelectedCountry == 'United States') {
						switch (lang) {
							case 'es':
								alert("Por favor ingrese el Estado en donde vive.");
								break;
							default:
								alert("Please enter your U.S. State.");
								break;
						}
						RegistrationQForm.lstState.focus();						
						return (false);
					}
					else if (strSelectedCountry == 'Canada') {
						switch (lang) {
							case 'es':
								alert("Por favor ingrese la provincia en donde vive.");
								break;
							default:
								alert("Please enter your Province.");
								break;
						}						
						RegistrationQForm.lstState.focus();
						return (false);
					}
				}
				
				if (isObject(RegistrationQForm.txtPostalCode) && blnUSCanada) {
					if (trim(RegistrationQForm.txtPostalCode.value) == "") {
						switch (lang) {
							case 'es':
								alert("Por favor ingrese su código postal.");
								break;
							default:
								alert("Please enter your postal code.");
								break;
						}
						RegistrationQForm.txtPostalCode.focus();
						return (false);
					} 
					else if (strSelectedCountry == 'United States' && !validate_uszip(trim(RegistrationQForm.txtPostalCode.value))){
						switch (lang) {
							case 'es':
								alert("Por favor ingrese un código postal válido.");
								break;
							default:
								alert("Please enter a valid U.S. postal code.");
								break;
						}
						RegistrationQForm.txtPostalCode.focus();
						return (false);
					}
				}
			}
		}
	}	
	
	if (isObject(RegistrationQForm.txtPhone)) {
		if (trim(RegistrationQForm.txtPhone.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese su número telefónico.");
					break;
				default:
					alert("Please enter your phone number.");
					break;
			}
			RegistrationQForm.txtPhone.focus();
			return (false);
		}
		else if (!validate_phone(RegistrationQForm.txtPhone.value)) {
			switch (lang) {
				case 'es':
					alert("Por favor ingrese un número telefónico válido.");
					break;
				default:
					alert("Please enter a valid phone number.");
					break;
			}
			RegistrationQForm.txtPhone.focus();
			return (false);
		}
	}
	
	if (isObject(RegistrationQForm.txtEmail)) {
		if (trim(RegistrationQForm.txtEmail.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor ingrese su dirección de correo electrónico.");
					break;
				default:
					alert("Please enter your email address.");
					break;
			}
			RegistrationQForm.txtEmail.focus();
			return (false);
		} 
		else if (!validate_email(RegistrationQForm.txtEmail.value)) {
			switch (lang) {
				case 'es':
					alert("Por favor ingrese un correo electrónico válido.");
					break;
				default:
					alert("Please enter a valid email address.");
					break;
			}
			RegistrationQForm.txtEmail.focus();
			return (false);
		}
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion7)) {
		if (RegistrationQForm.ProfileQuestion7.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione la industria a la que pertenece su compañía.");
					break;
				default:
					alert("Please select your company's industry.");
					break;
			}
			RegistrationQForm.ProfileQuestion7.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion28)) {
		if (RegistrationQForm.ProfileQuestion28.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione las ganancias anuales de su compañía.");
					break;
				default:
					alert("Please select your company's annual revenue.");
					break;
			}
			RegistrationQForm.ProfileQuestion28.focus();
			return (false);
		}
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion3)) {
		if (RegistrationQForm.ProfileQuestion3.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione un tipo de software.");
					break;
				default:
					alert("Please select software type.");
					break;
			}
			RegistrationQForm.ProfileQuestion3.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion11)) {
		if (RegistrationQForm.ProfileQuestion11.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione un tipo de software.");
					break;
				default:
					alert("Please select software type.");
					break;
			}
			RegistrationQForm.ProfileQuestion11.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion4)) {
		if (RegistrationQForm.ProfileQuestion4.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione el tamaño de su compañía.");
					break;
				default:
					alert("Please select your company size.");
					break;
			}
			RegistrationQForm.ProfileQuestion4.focus();
			return (false);
		}
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion32)) {
		if (RegistrationQForm.ProfileQuestion32.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione el tamaño de su call center.");
					break;
				default:
					alert("Please select the size of your call center.");
					break;
			}
			RegistrationQForm.ProfileQuestion32.focus();
			return (false);
		}
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion5)) {
		if (RegistrationQForm.ProfileQuestion5.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor, indique cuándo cree que tomará una decisión de compra.");
					break;
				default:
					alert("Please indicate when your company is looking to purchase a solution.");
					break;
			}
			RegistrationQForm.ProfileQuestion5.focus();
			return (false);
		}
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion31)) {
		if (RegistrationQForm.ProfileQuestion31.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor indique si está interesado en adquirir/probar una herramienta de gestión de campañas PPC.");
					break;
				default:
					alert("Please indicate if you are interested in trying/buying a PPC Management Tool.");
					break;
			}
			RegistrationQForm.ProfileQuestion31.focus();
			return (false);
		}
	}
	
	if (isCheckboxArray(RegistrationQForm, "ProfileQuestion9")) {
		itemsChecked = checkArray(RegistrationQForm, "ProfileQuestion9");
		if(itemsChecked.length == 0) {
			switch (lang) {
				case 'es':
					alert("Por favor seleccione al menos un método de contacto para Microsoft.");
					break;
				default:
					alert('Please select at least one contact method for Microsoft.');
					break;
			}
			RegistrationQForm.ProfileQuestion9.focus();
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion17)) {
		if (RegistrationQForm.ProfileQuestion17.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione el presupuesto con el que cuenta para su software de contabilidad.");
					break;
				default:
					alert('Please select your accounting software budget.');
					break;
			}
			RegistrationQForm.ProfileQuestion17.focus();
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion18)) {
		if (RegistrationQForm.ProfileQuestion18.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione las ganancias anuales de su compañía.");
					break;
				default:
					alert('Please select your company\'s annual revenue.');
					break;
			}
			RegistrationQForm.ProfileQuestion18.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion19)) {
		if (RegistrationQForm.ProfileQuestion19.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione su sistema de contabilidad actual.");
					break;
				default:
			     	alert('Please select your current accounting system.');
					break;
			}
			RegistrationQForm.ProfileQuestion19.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion20)) {
		if (RegistrationQForm.ProfileQuestion20.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione su sistema de SFA/CRM actual.");
					break;
				default:
			     	alert('Please select your current SFA/CRM system.');
					break;
			}			
			RegistrationQForm.ProfileQuestion20.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion21)) {
		if (RegistrationQForm.ProfileQuestion21.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione su presupuesto mensual destinado a campañas de marketing en buscadores.");
					break;
				default:
					alert('Please select your paid search marketing monthly spendings.');
					break;
			}
			RegistrationQForm.ProfileQuestion21.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion22)) {
		if (RegistrationQForm.ProfileQuestion22.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione una herramienta de gestión de campañas PPC.");
					break;
				default:
					alert('Please select your SEM management type.');
					break;
			}
			RegistrationQForm.ProfileQuestion22.focus();
			return (false);
	    }
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion35)) {
		if (RegistrationQForm.ProfileQuestion35.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione qué uso le daría a una herramienta de gestión de contenidos.");
					break;
				default:
					alert('Please select your needs for a content management solution.');
					break;
			}

			RegistrationQForm.ProfileQuestion35.focus();
			return (false);
	    } 
	}
	
	if (isCheckboxArray(RegistrationQForm, "ProfileQuestion35")) {
		itemsChecked = checkArray(RegistrationQForm, "ProfileQuestion35");
		if(itemsChecked.length == 0) {
			switch (lang) {
				case 'es':
					alert("Por favor seleccione al menos un uso que le daría a una herramienta de gestión de contenidos.");
					break;
				default:
					alert('Please select at least one need you have for a content management solution.');
					break;
			}
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion36)) {
		if (trim(RegistrationQForm.ProfileQuestion36.value) == "")
		{
			switch (lang) {
				case 'es':
					alert("Por favor, díganos más acerca de sus necesidades específicas de software para Call Center.");
					break;
				default:
			     	alert('Please tell us more about your specific needs for Call Center software.');
					break;
			}			
			RegistrationQForm.ProfileQuestion36.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion37)) {
		if (RegistrationQForm.ProfileQuestion37.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione su departamento.");
					break;
				default:
					alert('Please select your department.');
					break;
			}
			RegistrationQForm.ProfileQuestion37.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion39)) {
		if (RegistrationQForm.ProfileQuestion39.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione qué tipo de sistema de QA Testing le interesa.");
					break;
				default:
					alert('Please select which type of QA Testing Solution you are interested in.');
					break;
			}

			RegistrationQForm.ProfileQuestion39.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion40)) {
		if (RegistrationQForm.ProfileQuestion40.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione el tipo de Call Center que le interesa.");
					break;
				default:
					alert('Please select which type of Call Center you are interested in.');
					break;
			}

			RegistrationQForm.ProfileQuestion40.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion45)) {
		if (RegistrationQForm.ProfileQuestion45.selectedIndex == 0)
		{			
		   	alert('Please select your Job Role.');
			RegistrationQForm.ProfileQuestion45.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion44)) {
		if (RegistrationQForm.ProfileQuestion44.selectedIndex == 0)
		{			
		   	alert('Please select the number of computers managed at your company.');
			RegistrationQForm.ProfileQuestion44.focus();
			return (false);
	    } 
	}
  
	return (true);
}

function SurveyValidator(RegistrationQForm, lang)
{
	if (isObject(RegistrationQForm.ProfileQuestion7)) {
		if (RegistrationQForm.ProfileQuestion7.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione la industria a la que pertenece su compañía.");
					break;
				default:
					alert("Please select your company's industry.");
					break;
			}			
			RegistrationQForm.ProfileQuestion7.focus();
			return (false);
		} 
	}
	
	if (isCheckboxArray(RegistrationQForm, "ProfileQuestion8")) {
		itemsChecked = checkArray(RegistrationQForm, "ProfileQuestion8");
		if(itemsChecked.length == 0) {
			switch (lang) {
				case 'es':
					alert("Por favor seleccione al menos una funcionalidad de CRM que le interese.");
					break;
				default:
					alert('Please select at least one CRM functionality you are interested in.');
					break;
			}
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion12)) {
		if (RegistrationQForm.ProfileQuestion12.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione las necesidades de Software de Mesa de Ayuda que necesita");
					break;
				default:
					alert("Please select your company's Help Desk needs.");
					break;
			}
			RegistrationQForm.ProfileQuestion12.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion13)) {
		if (RegistrationQForm.ProfileQuestion13.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor indique la cantidad de empleados de servicio técnico que usted tiene");
					break;
				default:
					alert("Please select how many Help Desk personnel you have.");
					break;
			}
			RegistrationQForm.ProfileQuestion13.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion14)) {
		if (RegistrationQForm.ProfileQuestion14.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione la cantidad de incidentes por día que su equipo técnico maneja.");
					break;
				default:
					alert("Please select how many incidents per day your Help Desk currently handles.");
					break;
			}
			RegistrationQForm.ProfileQuestion14.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion15)) {
		if (RegistrationQForm.ProfileQuestion15.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione el presupuesto con el que cuenta para adquirir un Software de Mesa de Ayuda.");
					break;
				default:
					alert("Please select your company's budget for Help Desk Software.");
					break;
			}
			RegistrationQForm.ProfileQuestion15.focus();
			return (false);
		} 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion17)) {
		if (RegistrationQForm.ProfileQuestion17.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione el presupuesto con el que cuenta para su software de contabilidad.");
					break;
				default:
					alert('Please select your accounting software budget.');
					break;
			}
			RegistrationQForm.ProfileQuestion17.focus();
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion18)) {
		if (RegistrationQForm.ProfileQuestion18.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione las ganancias anuales de su compañía.");
					break;
				default:
					alert('Please select your company\'s annual revenue.');
					break;
			}
			RegistrationQForm.ProfileQuestion18.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.dynamiclistbox)) {
		if (RegistrationQForm.dynamiclistbox.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione cuál de estas funcionalidades de un CRM considera más importante.");
					break;
				default:
					alert("Please select which of the chosen CRM functionalities is the most important.");
					break;
			}
			RegistrationQForm.dynamiclistbox.focus();
			return (false);
		} 
	}
	
	if (isCheckboxArray(RegistrationQForm, "ProfileQuestion26")) {
		itemsChecked = checkArray(RegistrationQForm, "ProfileQuestion26");
		if(itemsChecked.length == 0) {
			switch (lang) {
				case 'es':
					alert("Por favor díganos cómo cree que un software de servicio al cliente debería ayudarlo.");
					break;
				default:
					alert('Please tell us how you want customer service software to improve your support.');
					break;
			}
			return (false);
	    }  
	}
	
	if (isCheckboxArray(RegistrationQForm, "ProfileQuestion27")) {
		itemsChecked = checkArray(RegistrationQForm, "ProfileQuestion27");
		if(itemsChecked.length == 0) {
			switch (lang) {
				case 'es':
					alert("Por favor, indíquenos cómo cree que un Software de Mesa de ayuda lo puede ayudar.");
					break;
				default:
			        alert('Please tell us how you want help desk software to improve your service.');
					break;
			}
			RegistrationQForm.ProfileQuestion27.focus();
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion28)) {
		if (RegistrationQForm.ProfileQuestion28.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione las ganancias anuales de su compañía.");
					break;
				default:
					alert("Please select your company's annual revenue.");
					break;
			}
			RegistrationQForm.ProfileQuestion28.focus();
			return (false);
		} 
	}
	
	if (isCheckboxArray(RegistrationQForm, "ProfileQuestion29")) {
		itemsChecked = checkArray(RegistrationQForm, "ProfileQuestion29");
		if(itemsChecked.length == 0) {
			switch (lang) {
				case 'es':
					alert("Por favor díganos el motivo principal por el que necesita un software de call center.");
					break;
				default:
					alert('Please tell us your primary needs for call center software.');
					break;
			}
			RegistrationQForm.ProfileQuestion29.focus();
			return (false);
	    }  
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion21)) {
		if (RegistrationQForm.ProfileQuestion21.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione su presupuesto mensual destinado a campañas de marketing en buscadores.");
					break;
				default:
					alert('Please select your paid search marketing monthly spendings.');
					break;
			}
			RegistrationQForm.ProfileQuestion21.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion22)) {
		if (RegistrationQForm.ProfileQuestion22.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione una herramienta de gestión de campañas PPC.");
					break;
				default:
					alert('Please select your SEM management type.');
					break;
			}
			RegistrationQForm.ProfileQuestion22.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion38)) {
		if (RegistrationQForm.ProfileQuestion38.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione qué cantidad de usuarios tendrán acceso al sistema.");
					break;
				default:
					alert('Please select how many users will be using this system.');
					break;
			}
			RegistrationQForm.ProfileQuestion38.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion41)) {
		if (RegistrationQForm.ProfileQuestion41.selectedIndex == 0)
		{
			switch (lang) {
				case 'es':
					alert("Por favor seleccione si usted es buscando una Solución de Acceso Remoto para su equipo de Soporte Técnico.");
					break;
				default:
			     	alert('Please select if you are looking for Remote Support/Desktop Access Solution for IT Support.');
					break;
			}
						
			RegistrationQForm.ProfileQuestion41.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion45)) {
		if (RegistrationQForm.ProfileQuestion45.selectedIndex == 0)
		{			
		   	alert('Please select your Job Role.');
			RegistrationQForm.ProfileQuestion45.focus();
			return (false);
	    } 
	}
	
	if (isObject(RegistrationQForm.ProfileQuestion44)) {
		if (RegistrationQForm.ProfileQuestion44.selectedIndex == 0)
		{			
		   	alert('Please select the number of computers managed at your company.');
			RegistrationQForm.ProfileQuestion44.focus();
			return (false);
	    } 
	}
	
	return (true);
}

function isObject(a) 
{
	return (typeof a == 'object' && !!a);
}

function isArray(o) {return isObject(o) && o.constructor == Array;}

function checkArray(form, arrayName)
{
	var retval = new Array();
	for(var i=0; i < form.elements.length; i++) {
	  var el = form.elements[i];
	  if(el.type == "checkbox" && el.name.indexOf(arrayName) > -1 && el.checked) {
	    retval.push(el.value);
	  }
	}
	return retval;
}

function isCheckboxArray (form, arrayName) {
	
	for(var i=0; i < form.elements.length; i++) {
		var el = form.elements[i];		
		
		if(el.type == "checkbox" && el.name.indexOf(arrayName) > -1) {
			return true;
		}

	}
	
	return false;
}

var bugchars = '!#$^&*()+|}{[]?><~%:;/,=`"\'';
function CharsInBag(s)
{   var i;
var lchar="";
    // Search through string's characters one by one.
    // If character is not in bag.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
		if(i>0)lchar=s.charAt(i-1)
        if (bugchars.indexOf(c) != -1 || (lchar=="." && c==".")) return false;
    }
    return true;
}


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 validate_email(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var lastdot=str.lastIndexOf(dot)
	if (str.indexOf(at)==-1){
	  
	   return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   
	   return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr || str.substring(lastdot+1)==""){
	    
	    return false
	}
	 
	 if (str.indexOf(at,(lat+1))!=-1){
	   
	    return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    
	    return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    
	    return false
	 }
	
	 if (str.indexOf(" ")!=-1){
	    
	    return false
	 }
	if(CharsInBag(str)==false){
	    
	    return false
	 }

	 var arrEmail=str.split("@")
	 var ldot=arrEmail[1].indexOf(".")
	 
	 if(isInteger(arrEmail[1].substring(ldot+1))){
	    return false
	 }

	 return true					
}

//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 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 validate_phone(str){
	var bracket = 3;	
	if(str.indexOf("+")>1) return false;
	if(str.indexOf("-")!=-1 || str.indexOf(" ")!=-1) bracket=bracket+1;
	if(str.indexOf("(")!=-1 && str.indexOf("(")>bracket)return false;

	//if we're using paranthesis, make sure there exist numbers in between them
	//this inherently also checks for an existing );  
	var lpchr=str.indexOf("(");
	var rpchr=str.indexOf(")");
	var pchrdiff = rpchr-lpchr;
	if(str.indexOf("(")!=-1 && (pchrdiff < 2))return false;
	s=stripCharsInBag(str,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function validate_uszip (zipCode) {
	var valid = true;
	var validChars = "0123456789- ";
	var i = 0;
	if (zipCode=="") {
		// Return false if number is empty
		valid = false;
	}
	else if (zipCode.length < 5) {
		valid = false;
	}
	else {
		for (i =0; i <= zipCode.length -1; i++) {
			if (validChars.indexOf(zipCode.charAt(i)) == -1) {
				valid = false;
			} // End if statement
		} // End for loop
	}
	 
	return valid;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}
