//ajax instance
function getHTTPObject(){
	var xhr=false;
	if(window.XMLHttpRequest){
		xhr = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		try{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				xhr = new ActiveXObject("Microsoft.XMLHttp");
			}catch(e){
				xhr = false;
			}
		}
	}
	return xhr;
}

//sends data from form
function sendData(data){
	var request = getHTTPObject();
	if(request){
		displayLoading(document.getElementById("contactform"));
		request.onreadystatechange = function(){
			parseResponse(request);
		};
		request.open("POST","form.asp",true);
		request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		request.send(data);
		return true;
	}else{
		return false;
	}
}

//prepares to form to send data
function prepareForm(){
	if(!document.getElementById){
		return;
	}
	if(!document.getElementById("frm")){
		return;
	}
	document.getElementById("frm").onsubmit = function(){
		var data = "";
		for(var i = 0;i<this.elements.length;i++){
			data+= this.elements[i].name;
			data+= "=";
			data+= escape(this.elements[i].value);
			data+= "&";
		}
		return !sendData(data);
	};
}

//does the response
function parseResponse(request){
	if(request.readyState == 4){
		if(request.status == 200 || request.status == 304){
			var container = document.getElementById("contactform");
			container.innerHTML = request.responseText;
			prepareForm();
		}
	}
}

//displays loading animation
function displayLoading(element){
	
	var image = document.createElement("img");
	image.setAttribute("src","/images/layout/loading.gif");
	image.setAttribute("alt","Loading...");
	element.appendChild(image);
}

function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != 'function'){
		window.onload = func;
	}else{
		window.onload = function(){
			if(oldonload){
				oldonload();
			}
			func();
		}
	}
}

addLoadEvent(prepareForm);