function validate() {
    var error = true;
	var errorMsg = "";   
    
    //validate tbName	  
	var trimmed = document.getElementById("tbName").value.replace(/^\s+|\s+$/g, '') ;
    if (trimmed == "") {
        document.getElementById("tbName").focus();
        errorMsg="Name is required<br />";
        document.getElementById("errorName").style.display = "inline";
        document.getElementById("errorName").style.visibility = "visible";
        error=false;
    } else {
        document.getElementById("errorName").style.display = "none";
        document.getElementById("errorName").style.visibility = "hidden";
    }
    
     //validate tbSurname	  
	var trimmed = document.getElementById("tbSurname").value.replace(/^\s+|\s+$/g, '') ;
    if (trimmed == "") {
        if(error==true){
          document.getElementById("tbSurname").focus();
        }
        errorMsg=errorMsg+"Surname is required<br />";
        document.getElementById("errorSurname").style.display = "inline";
        document.getElementById("errorSurname").style.visibility = "visible";
        error=false;
    } else {
        document.getElementById("errorSurname").style.display = "none";
        document.getElementById("errorSurname").style.visibility = "hidden";
    }
    
    //validate tbEmail
	var str = document.getElementById("tbEmail").value.replace(/^\s+|\s+$/g, ''); // email string
	if (str == "") {
	    if(error==true){
          document.getElementById("tbEmail").focus();
        }
        errorMsg=errorMsg+"Email is required<br />";
        document.getElementById("errorEmail1").style.display = "inline";
        document.getElementById("errorEmail1").style.visibility = "visible";
        error=false;
	} else {
	    document.getElementById("errorEmail1").style.display = "none";
        document.getElementById("errorEmail1").style.visibility = "hidden";
	    var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	    var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
	    if (!reg1.test(str) && reg2.test(str)) { // if syntax is valid
    		document.getElementById("errorEmail2").style.display = "none";
            document.getElementById("errorEmail2").style.visibility = "hidden";
	    }
	    else{
            if(error==true){
               document.getElementById("tbEmail").focus();
            }
	        errorMsg=errorMsg+"Invalid Email<br />";
	        document.getElementById("errorEmail2").style.display = "inline";
            document.getElementById("errorEmail2").style.visibility = "visible";
	        error= false;
	    }
	}
	
	//validate tbEnquiry	  
	var trimmed = document.getElementById("tbEnquiry").value.replace(/^\s+|\s+$/g, '') ;
    if (trimmed == "") {
        if(error==true){
           document.getElementById("tbEnquiry").focus();
        }  
        errorMsg=errorMsg+"Enquiry is required<br />";
        document.getElementById("errorEnquiry").style.display = "inline";
        document.getElementById("errorEnquiry").style.visibility = "visible";
        error=false;
    } else {
        document.getElementById("errorEnquiry").style.display = "none";
        document.getElementById("errorEnquiry").style.visibility = "hidden";
    }
    
    if(!error)
	{
       //Display error summary
	   document.getElementById("errorSummary").style.display = "block";
       document.getElementById("errorSummary").style.visibility = "visible";
       document.getElementById("errorSummary").innerHTML = "Some fields are incorrect:<br />" + errorMsg;
	   return error;
	}
	else
	{
	    document.getElementById("errorSummary").style.display = "none";
        document.getElementById("errorSummary").style.visibility = "hidden";
	    //No errors, disable submit button
	    
        var elem = document.getElementById('submit');
        var btn = document.createElement('input');
        btn.type = "button";
        btn.disabled = true;
        btn.value = "Submitting...";
        elem.parentNode.insertBefore(btn, elem);
        elem.style.display = 'none';
        elem.style.visibility = 'hidden';
	
	    return error;
	}
}
