var RS = RS || {};
		
(function () {

	var xhr = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		xhr = new XMLHttpRequest();
		if (xhr.overrideMimeType) {
			xhr.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	} 

	if (!xhr) {
		alert('Cannot create XMLHTTP instance');
		return false;
	}

	RS.sendMail = function (evt) {
		evt = evt || window.event;
		
		var name = document.getElementById("fullname"),
			email = document.getElementById("email"),
			msg = document.getElementById("comment"),
			validEmail = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/.test(email.value);
			
		// Validation
		if(name.value === "") {
			name.className = "error";
		} else {
			name.className = "";
		}
		if(msg.value === "") {
			msg.className = "error";
		} else {
			msg.className = "";
		}
		if(email.value === "" || !validEmail) {
			email.className = "error";
		} else {
			email.className = "";
		}
		
		if(name.value !== "" && email.value !== "" && validEmail && msg.value !== "") {
			msg.className = "sending";
			
			xhr.open('get', '/contact.php?msg='+msg.value+'&name='+name.value+'&email='+email.value+'&action=send');
			xhr.onreadystatechange = RS.xhrResponse;
			xhr.send(null);
		}
		
		(evt.preventDefault) ? evt.preventDefault() : evt.returnValue = false;
		return false;
	};
	
	RS.xhrResponse = function () {
		if(xhr.readyState == 4){
			var update = xhr.responseText;

			document.getElementById("contact").innerHTML = update;
		}
	};
	
	document.getElementById("contact").onsubmit = RS.sendMail;
})();
