function ajaxFunction(){
	var ajaxRequest;  // The variable that makes Ajax possible!
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				// alert("Your browser broke!");
				return true;
			}
		}
	}
	var source = document.getElementById("source").value;
	var name = document.getElementById("name").value;
	var company = document.getElementById("company").value;
	var telephone = document.getElementById("telephone").value;
	var email = document.getElementById("email").value;
	var website = document.getElementById("website").value;
	var howfind = document.getElementById("howfind").value;
	var howother = document.getElementById("howother").value;
	var message = document.getElementById("message").value;
	var keywords = "";
	if (source == "analysis") 
		keywords = document.getElementById("keyword1").value + ', ' + document.getElementById("keyword2").value + ', ' + document.getElementById("keyword3").value;
	var params = "name="+name+
				 "&source="+source+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&howfind="+howfind+
				 "&howother="+howother+
				 "&message="+message+
				 "&keywords="+keywords;
				 

	ajaxRequest.open("POST", "sendmail.php", true);
	ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajaxRequest.setRequestHeader("Content-length", params.length);
	ajaxRequest.setRequestHeader("Connection", "close");	
	// name = document.getElementById("name").value;
	// alert(name);
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			document.getElementById("response").innerHTML = ajaxRequest.responseText;
			document.getElementById("loader").style.display = "none";			
		}
	}	
	ajaxRequest.send(params);
	return false;
}

function ajaxFunction2(){
	var ajaxRequest;  // The variable that makes Ajax possible!
	
	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return true;
			}
		}
	}
	
	var source = document.getElementById("source").value;
	
	var params = 'source='+source;

	
	switch (source) {
		case "mini":
			// company, name, telephone, email, website, message
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var message = document.getElementById("message").value;		
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&message="+message;
			break;
		case "contact":
			// company, name, telephone, email, website, howfind, howother, message
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var message = document.getElementById("message").value;		
			var howfind = document.getElementById("howfind").value;		
			var howother = document.getElementById("howother").value;		
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&message="+message+
				 "&howfind="+howfind+
				 "&howother="+howother;
			break;	
		case "webdesign":
			// company, name, telephone, email, website, howfind, howother, message
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var message = document.getElementById("message").value;		
			var howfind = document.getElementById("howfind").value;		
			var howother = document.getElementById("howother").value;		
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&message="+message+
				 "&howfind="+howfind+
				 "&howother="+howother;
			break;	
		case "wdmini":
			// company, name, telephone, email, website, message
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var message = document.getElementById("message").value;		
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&message="+message;
			break;
		case "outsource":
			// company, name, telephone, email, website, howfind, howother, message
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var message = document.getElementById("message").value;		
			var howfind = document.getElementById("howfind").value;		
			var howother = document.getElementById("howother").value;		
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&message="+message+
				 "&howfind="+howfind+
				 "&howother="+howother;
			break;		
		
		case "custom":
			// company, name, telephone, email, website, keywords, design, message
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var message = document.getElementById("message").value;		
			var keywords = document.getElementById("keywords").value;		
			var designyes = document.getElementById("designyes");
			var designno = document.getElementById("designno");
			var design = '';
			if (designyes.checked)
				design = "yes";
			else if (designno.checked)
				design = "no";
			else 
				design = "";
				
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&message="+message+
				 "&keywords="+keywords+
				 "&design="+design;
			break;
			
		case "analysis":
			// company, name, telephone, email, website, keyword1, keyword2, keyword3
			var name = document.getElementById("name").value;
			var company = document.getElementById("company").value;
			var telephone = document.getElementById("telephone").value;
			var email = document.getElementById("email").value;
			var website = document.getElementById("website").value;
			var keyword1 = document.getElementById("keyword1").value;		
			var keyword2 = document.getElementById("keyword2").value;		
			var keyword3 = document.getElementById("keyword3").value;
			var message = document.getElementById("message").value;
			params = params + "&name="+name+
				 "&company="+company+
				 "&telephone="+telephone+
				 "&email="+email+
				 "&website="+website+
				 "&keyword1="+keyword1+
				 "&keyword2="+keyword2+
				 "&keyword3="+keyword3+
				 "&message="+message;
			break;
			
		default:
		
	}

	ajaxRequest.open("POST", "sendmail.php", true);
	ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajaxRequest.setRequestHeader("Content-length", params.length);
	ajaxRequest.setRequestHeader("Connection", "close");	
	
	ajaxRequest.onreadystatechange = function(){
		if(ajaxRequest.readyState == 4){
			if (ajaxRequest.status == 200) {
				document.getElementById("response").style.display = "block";
				document.getElementById("response").innerHTML = ajaxRequest.responseText;
				document.getElementById("loader").style.display = "none";
				
			} else {
				document.getElementById("response").style.display = "block";
				document.getElementById("response").innerHTML = "Theres a problem with the request";
				document.getElementById("loader").style.display = "none";
			}
			// document.getElementById("loader").style.display = "none";			
		}
	}	
	ajaxRequest.send(params);
	return false;
}


function formValidator(){

	// Make quick references to our fields
	var source = document.getElementById('source').value;
	
	switch (source) {
		case "mini":
		case "wdmini":
			var name = document.getElementById('name');
			var company = document.getElementById('company');
			var email = document.getElementById('email');
			var message = document.getElementById('message');
			var telephone = document.getElementById('telephone');
			if(!isEmpty(company, "Please enter your company name")){
				if(!isEmpty(name, "Please enter your name")){
					if(!isEmpty(telephone, "Please enter your telephone number")){
						if(!isEmpty(message, "Please enter your message")){
							if(!isEmpty(email, "Please enter your email address")){
								if(emailValidator(email, "Please enter a valid email address")){
									/*
									document.getElementById("submit").disabled=true;
									
									sendRequest();
									*/
									document.getElementById("response").style.display='block';
									document.getElementById("response").value='Please Wait..';
									document.getElementById("loader").style.display = "";
									
									// alert("Thank you for your enquiry!");
									return ajaxFunction2();
									// return true;
								}
							}
						}
					}
				}
			}
			break;
		case "contact":
			var name = document.getElementById('name');
			var company = document.getElementById('company');
			var email = document.getElementById('email');
			var message = document.getElementById('message');
			var telephone = document.getElementById('telephone');
			if(!isEmpty(company, "Please enter your company name")){
				if(!isEmpty(name, "Please enter your name")){
					if(!isEmpty(telephone, "Please enter your telephone number")){
						if(!isEmpty(message, "Please enter your message")){
							if(!isEmpty(email, "Please enter your email address")){
								if(emailValidator(email, "Please enter a valid email address")){
									/*
									document.getElementById("submit").disabled=true;
									
									sendRequest();
									*/
									document.getElementById("response").style.display='block';
									document.getElementById("response").value='Please Wait..';
									document.getElementById("loader").style.display = "";
									
									// alert("Thank you for your enquiry!");
									return ajaxFunction2();
									// return true;
								}
							}
						}
					}
				}
			}		
			break;
		case "webdesign":
			var name = document.getElementById('name');
			var company = document.getElementById('company');
			var email = document.getElementById('email');
			var message = document.getElementById('message');
			if(!isEmpty(company, "Please enter your company name")){
				if(!isEmpty(name, "Please enter your name")){
					if(!isEmpty(message, "Please enter your message")){
						if(!isEmpty(email, "Please enter your email address")){
							if(emailValidator(email, "Please enter a valid email address")){
								/*
								document.getElementById("submit").disabled=true;
								
								sendRequest();
								*/
								document.getElementById("response").style.display='block';
								document.getElementById("response").value='Please Wait..';
								document.getElementById("loader").style.display = "";
								
								// alert("Thank you for your enquiry!");
								return ajaxFunction2();
								// return true;
							}
						}
					}
				}
			}		
			break;			
		case "outsource":
			var name = document.getElementById('name');
			var company = document.getElementById('company');
			var email = document.getElementById('email');
			var message = document.getElementById('message');
			if(!isEmpty(company, "Please enter your company name")){
				if(!isEmpty(name, "Please enter your name")){
					if(!isEmpty(message, "Please enter your message")){
						if(!isEmpty(email, "Please enter your email address")){
							if(emailValidator(email, "Please enter a valid email address")){
								/*
								document.getElementById("submit").disabled=true;
								
								sendRequest();
								*/
								document.getElementById("response").style.display='block';
								document.getElementById("response").value='Please Wait..';
								document.getElementById("loader").style.display = "";
								
								// alert("Thank you for your enquiry!");
								return ajaxFunction2();
								// return true;
							}
						}
					}
				}
			}		
			break;
		case "custom":
			var name = document.getElementById('name');
			var company = document.getElementById('company');
			var email = document.getElementById('email');
			var message = document.getElementById('message');
			if(!isEmpty(company, "Please enter your company name")){
				if(!isEmpty(name, "Please enter your name")){
					if(!isEmpty(message, "Please enter your message")){
						if(!isEmpty(email, "Please enter your email address")){
							if(emailValidator(email, "Please enter a valid email address")){
								/*
								document.getElementById("submit").disabled=true;
								
								sendRequest();
								*/
								document.getElementById("response").style.display='block';
								document.getElementById("response").value='Please Wait..';
								document.getElementById("loader").style.display = "";
								
								// alert("Thank you for your enquiry!");
								return ajaxFunction2();
								// return true;
							}
						}
					}
				}
			}				
			break;		
		case "analysis":
			var name = document.getElementById('name');
			var website = document.getElementById('website');
			var email = document.getElementById('email');
			if(!isEmpty(website, "Please enter your website address")){
				if(!isEmpty(name, "Please enter your name")){
						if(!isEmpty(email, "Please enter your email address")){
							if(emailValidator(email, "Please enter a valid email address")){
								/*
								document.getElementById("submit").disabled=true;
								
								sendRequest();
								*/
								document.getElementById("response").style.display='block';
								document.getElementById("response").value='Please Wait..';
								document.getElementById("loader").style.display = "";
								
								// alert("Thank you for your enquiry!");
								return ajaxFunction2();
								// return true;
							}
						}
					
				}
			}				
			break;
		default:
	}
	
	return false;
}

function isEmpty(elem, helperMsg){
	if(elem.value.length == 0){
		alert(helperMsg);
		elem.focus(); // set the focus to this input
		return true;
	}
	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){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphanumeric(elem, helperMsg){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		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){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
	}
}