
function validateWorkbenchRegistration()
{
	var errors = 0;
	
	// Make quick references to our fields
	var firstname = document.getElementById('firstname');
	var lastname = document.getElementById('lastname');
	var company = document.getElementById('company');
	var email = document.getElementById('email');
	
	var errorFirstname = document.getElementById('errorFirstName');
	var errorLastname = document.getElementById('errorLastName');
	var errorCompany = document.getElementById('errorCompanyName');
	var errorEmail = document.getElementById('errorEmail');
	
	if(!notEmpty(firstname, "Please enter your first name", errorFirstname))
	{
		errors++;
	}
	
	if(!notEmpty(lastname, "Please enter your last name", errorLastname))
	{
		errors++;
	}
	
	if(!notEmpty(company, "Please enter a company name", errorCompany))
	{
		errors++;
	}
	
	if(!emailValidator(email, "Please enter a valid email address", errorEmail))
	{
		errors++;
	}
	
	if(errors == 0)
	{
		return true;
		
	} else 
	{
		return false;
	}
	
}

function validateContactForm()
{	
	var errors = 0;
	
	// First name
	var firstname = document.getElementById('email-firstname');
	var errorFirstname = document.getElementById('error-firstname');
	
	// Last name
	var lastname = document.getElementById('email-lastname');
	var errorLastname = document.getElementById('error-lastname');
	
	// Email
	var email = document.getElementById('email-email');
	var errorEmail = document.getElementById('error-email');
	
	// Tel
	var telephone = document.getElementById('email-telephone');
	var errorTelephone = document.getElementById('error-telephone');
	
	// Company name
	var company = document.getElementById('email-company');
	var errorCompany = document.getElementById('error-company');
	
	// Enquiry topic
	var topic = document.getElementById('email-topic');
	var errorTopic = document.getElementById('error-topic');
	
	// Enquiry
	var enquiry = document.getElementById('email-enquiry');
	var errorEnquiry = document.getElementById('error-enquiry');
		
	if(!notEmpty(firstname, "Please enter your first name", errorFirstname))
	{
		errors++;
	}

	if(!notEmpty(lastname, "Please enter your last name", errorLastname))
	{
		errors++;
	}
		
	if(!notEmpty(company, "Please enter a company name", errorCompany))
	{
		errors++;
	}
	
	if(!emailValidator(email, "Please enter a valid email address", errorEmail))
	{					
		errors++;
	}
	
	if(!notEmpty(enquiry, "Please type you enquiry below or select one of the options above.", errorEnquiry) || !isSelected(topic, "Please select an option or type a message in the box below.", errorTopic) )
	{
		errors++;
	}
	
	if(errors == 0)
	{
		return true;
		
	} else 
	{
		return false;
	}
	
}

function changeLocation( s )
{
	var freeText = document.getElementById("optional-equiry-freetext")
	
	var selected = s.selectedIndex;
	
	if(selected == (s.length-1))
	{
		freeText.style.display = "block";
		
	} else 
	{
		freeText.style.display = "none";
	}
}

function isSelected(elem, helperMsg, errorLocation)
{	
	var selected = elem.selectedIndex;
	
	// alert("this is " + selected)
		
	if(selected > 0)
	{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "";
		return true;
		
		
	} else
	{
		errorLocation.innerHTML = "* " + helperMsg;
		// errorInfo.innerHTML = "<p>" + helperMsg + "</p>";
		elem.focus();
		return false;
	}
}

function notEmpty(elem, helperMsg, errorLocation)
{	
	var uInput = elem.value;
	
	if(uInput.length > 0)
	{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "";
		return true;
		
		
	} else
	{
		errorLocation.innerHTML = "" + helperMsg;
		// errorInfo.innerHTML = "<p>" + helperMsg + "</p>";
		elem.focus();
		return false;
	}
}

function isNumeric(elem, helperMsg){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem, helperMsg, errorLocation){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp))
	{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "";
		return true;
	} else
	{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "<p>" + helperMsg + "</p>";
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg, errorLocation){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	
	if(elem.value.match(alphaExp))
	{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "";
		return true;
	}else{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "<p>" + helperMsg + "</p>";
		elem.focus();
		return false;
	}
}

function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert("Please enter between " +min+ " and " +max+ " characters");
		elem.focus();
		return false;
	}
}

function madeSelection(elem, helperMsg){
	if(elem.value == "Please Choose"){
		alert(helperMsg);
		elem.focus();
		return false;
	}else{
		return true;
	}
}

function emailValidator(elem, helperMsg, errorLocation){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	var s = trimAll( elem.value )
		
	if(s.match(emailExp))
	{
		errorLocation.innerHTML = "";
		// errorInfo.innerHTML = "";
		return true;
	} else
	{
		errorLocation.innerHTML = helperMsg;
		// errorInfo.innerHTML = ("<p>" + helperMsg + "</p>");
		elem.focus();
		return false;
	}
}

function trimAll( strValue ) {
/************************************************
DESCRIPTION: Removes leading and trailing spaces.

PARAMETERS: Source string from which spaces will
  be removed;

RETURNS: Source string with whitespaces removed.
*************************************************/
 var objRegExp = /^(\s*)$/;

    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }

   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
  return strValue;
}