        function ValidateFields(button, crmUrl) {
            var form = button.form;
            var result = true;
            var errMsg = "";
            var fieldValue = "";
            var ictr = 0;
            var hasItemSelected = false;

            if (trim(form["Title"].value) == "") {
			    if (errMsg == "")
			    {
			        errMsg = "Please choose your Title.";
			    }
			    else
			    {
			        errMsg = errMsg + "<br />" + "Please choose your Title.";
				}
			    result = false;
            }

		    if(trim(form["FirstName"].value) == "") {
			    if (errMsg == "")
			    {
			        errMsg = "Please enter your First Name.";
			    }
			    else
			    {
			        errMsg = errMsg + "<br />" + "Please enter your First Name.";
			    }
			    result = false;
		    }
    		
		    if(trim(form["LastName"].value) == "") {
    		
			    if (errMsg == "")
			    {
			        errMsg = "Please enter your Last Name.";
			    }
			    else
			    {
			        errMsg = errMsg + "<br />" + "Please enter your Last Name.";
			    }
			    result = false;
		    }	
            
            // contact method: 
		    if(trim(form["preferedContactMethod"].value) == "") {
    		
			    if (errMsg == "")
			    {
			        errMsg = "Please select your preferred contact method.";
			    }
			    else
			    {
			        errMsg = errMsg + "<br />" + "Please select your preferred contact method.";
			    }
			    result = false;
		    }
    		
    		// contact time: 
		    fieldValue = "";
		    for(ictr = 0; ictr < form["preferedContactTime"].length; ictr++)
            {
                if (form["preferedContactTime"][ictr].checked)
                {
                    fieldValue = form["preferedContactTime"][ictr].value;
                }
            }
            
            if(trim(fieldValue) == "") {
			    if (errMsg == "")
			    {
			        errMsg = "Please choose your preferred contact time.";
			    }
			    else
			    {
			        errMsg = errMsg + "<br />" + "Please choose your preferred contact time.";
			    }
			    result = false;
		    }
    		
    		
    		// email:
		    if(trim(form["Email"].value) == "") {
    		
			    if (errMsg == "")
			    {
			        errMsg = "Please enter your Email.";
			    }
			    else
			    {
			        errMsg = errMsg + "<br />" + "Please enter your Email.";
			    }
			    result = false;
		    }
		    else
		    {
		        fieldValue = trim(form.Email.value);
		        if (!ValidEmail(fieldValue))
		        {
		            if (errMsg == "")
			        {
			            errMsg = "Entered Email is invalid.";
			        }
			        else
			        {
			            errMsg = errMsg + "<br />" + "Entered Email is invalid.";
			        }
			        result = false;
		        } 
		    }
    		
    		// the preferred contact method must have a value :
		    var contact_method = trim(form["preferedContactMethod"].value);
		    if (contact_method == "Home phone")
		    {
		        fieldValue = trim(form["HomePhone"].value);
		        if (fieldValue == "")
		        {
		            if (errMsg == "")
			        {
			            errMsg = "Please enter Home Phone.";
			        }
			        else
			        {
			            errMsg = errMsg + "<br />" + "Please enter Home Phone.";
			        }
			        result = false;
		        }
		    }
    		
		    if (contact_method == "Work phone")
		    {
		        fieldValue = trim(form["WorkPhone"].value);
		        if (fieldValue == "")
		        {
		            if (errMsg == "")
			        {
			            errMsg = "Please enter Work Phone.";
			        }
			        else
			        {
			            errMsg = errMsg + "<br />" + "Please enter Work Phone.";
			        }
			        result = false;
		        }
		    }
    		
		    if (contact_method == "Mobile phone")
		    {
		        fieldValue = trim(form["MobilePhone"].value);
		        if (fieldValue == "")
		        {
		            if (errMsg == "")
			        {
			            errMsg = "Please enter Mobile Phone.";
			        }
			        else
			        {
			            errMsg = errMsg + "<br />" + "Please enter Mobile Phone.";
			        }
			        result = false;
		        }
		    }
            
            // validate phones: 
	        if(!ValidPhone(form["HomePhone"].value))
	        {
	            errMsg = (errMsg == "") ? "Entered Home Phone is invalid." : errMsg + "<br />" + "Entered Home Phone is invalid.";

		        result = false;
	        }
	        
	        if(!ValidPhone(form["WorkPhone"].value))
	        {
	            if (errMsg == "")
		        {
		            errMsg = "Entered Work Phone is invalid.";
		        }
		        else
		        {
		            errMsg = errMsg + "<br />" + "Entered Work Phone is invalid.";
		        }
		        result = false;
	        }

    	    if(!ValidPhone(form["MobilePhone"].value))
	        {
	            if (errMsg == "")
		        {
		            errMsg = "Entered Mobile Phone is invalid.";
		        }
		        else
		        {
		            errMsg = errMsg + "<br />" + "Entered Mobile Phone is invalid.";
		        }
		        result = false;
	        }
    		
    		
    		// currently a TOWER customer :
		    fieldValue = "";
		    for(ictr = 0; ictr < form["CurrentCustomer"].length; ictr++)
            {
                if (form["CurrentCustomer"][ictr].checked)
                {
                    fieldValue = form["CurrentCustomer"][ictr].value;
                }
            }
            
            
            if (fieldValue == "")
            {
                if (errMsg == "")
		        {
		            errMsg = "Please specify if you are currently a TOWER customer or not.";
		        }
		        else
		        {
		            errMsg = errMsg + "<br />" + "Please specify if you are currently a TOWER customer or not.";
		        }
		        result = false;
		    }
		    form["Description"].value = "A current TOWER customer.";

			
		    fieldValue = form["SourceMedia"].value;
		    if (fieldValue == "-")
		    {
		        if (errMsg == "")
	            {
	                errMsg = "Please select what prompted you to contact TOWER today.";
	            }
	            else
	            {
	                errMsg = errMsg + "<br />" + "Please select what prompted you to contact TOWER today.";
	            }
	            result = false;
		    }
//	This is the error checking for the 'other' box field. Enabling this will force users to enter data into the other box field. 
//		    if (fieldValue == "") or (fieldValue == "-") 
//		    {
//		        fieldValue = trim(form["txtOtherHowHeard"].value);
//		        if (fieldValue == "")
//		        {
//		            if (errMsg == "")
//	                {
//	                    errMsg = "Please enter what prompted you to contact TOWER today.";
//	                }
//	                else
//	                {
//	                    errMsg = errMsg + "<br />" + "Please enter what prompted you to contact TOWER today.";
//	                }
//	                result = false;
//		        }
//		    }
    		
		    if(!(form["TermsAndConditions"].checked)) {
    		
    		    errMsg = (errMsg == "") ? "Please make sure that you read and agree to the terms and conditions." : errMsg + "<br />" + "Please make sure that you read and agree to the terms and conditions.";

			    result = false;
		    }
    		
		    if (!result)
		    {
		        document.getElementById("ErrorPanel").innerHTML = errMsg;
		        document.getElementById("ErrorPanel").className = "raqerrorpanel-show";
		        document.getElementById("divShadowBottom").className="shadow-bottom";
		        //scroll(0,0);
		    }
    		
		    if(result)	
		    {
		        var ddlHowHeard = document.getElementById("SourceMedia");
                if (ddlHowHeard != null)
                {
                    if (ddlHowHeard.value == "")
                    {
                        form["00N200000018AoT"].value = form["txtOtherHowHeard"].value;
                    }
                    else
                    {
                        form["00N200000018AoT"].value = ddlHowHeard.value;
                    }
                }
                form.action = crmUrl;
            }
            
            
		    return result;
	    }
	    
        function ValidEmail(email) 
        {
           var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
           return reg.test(email) 
        } 	
 
        
        function ValidPhone(phone) 
        {
           phone = trim(phone);
           if (phone == "")
           {
               return true;
           } 
           else
           {
               var reg = /^(\s|[0-9]|\(|\+)([0-9]{1,12}|\-)(\s|\)|\(|\-|[0-9])(\s|[0-9]){0,12}(\s|\)|\(|\-|[0-9])(\s|[0-9]){0,12}(\s|\)|\(|\-|[0-9])(\s|[0-9]){0,12}(\s|\)|\(|\-|[0-9])(\s|[0-9]){0,12}(\s|\)|\(|\-|[0-9])(\s|[0-9]){0,12}$/;
                                                                                                                                                                                                    
               return reg.test(phone)
           } 
        }
        function trim(stringToTrim) 
        {
            if(stringToTrim == null)
            {
                return "";
            }
            else
            {
	            return stringToTrim.replace(/^\s+|\s+$/g,"");
	        }
        }
        function ltrim(stringToTrim) 
        {if(stringToTrim == null)
            {
                return "";
            }
            else
            {
	            return stringToTrim.replace(/^\s+/,"");
	        }
        }
        function rtrim(stringToTrim) 
        {
            if(stringToTrim == null)
            {
                return "";
            }
            else
            {
	            return stringToTrim.replace(/\s+$/,"");
	        }
        }
                

