var request = null;

function createRequest() {
	try {
		request = new XMLHttpRequest();
	}
	catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				alert("Cannot create XMLHttpRequest object or Microsoft.XMLHTTP object\nNot able to show XML data");
				request = null;
			}
		}
	}
	if (request == null)
		alert("Cannot create request object!");
}
function checkReadyState(obj) {
	if(obj.readyState == 4) {
		if(obj.status == 200) {
			return true;
		} else {
			alert("Problem retrieving Ajax XML data, status = " + obj.status + " - " + obj.statusText);
			return false;
		}
	}
}

function getRequestBody(oForm) {
	// Generic function top read form values
	// obj = form element
	// result = querystring (no leading ?)
	// see http://www.captain.at/howto-ajax-form-post-get.php
	
	var tt;
	var aParams = new Array();
	var elems = oForm.getElementsByTagName("INPUT");
	for (i=0; i<elems.length; i++) {
		if (elems[i].type == "text" || elems[i].type == "hidden") {
			var sParam = elems[i].name + "=" + encodeURIComponent(trim(elems[i].value));
			//var sParam = elems[i].name + "=" + trim(elems[i].value);
			aParams.push(sParam);
		}
		if (elems[i].type == "checkbox") {
			if (elems[i].checked) {
				var sParam = elems[i].name + "=" + encodeURIComponent(elems[i].value);
				aParams.push(sParam);
			}
		}
		if (elems[i].type == "radio") {
			if (elems[i].checked) {
				var sParam = elems[i].name + "=" + encodeURIComponent(elems[i].value);	// runs twice!!
				aParams.push(sParam);
			}
		}
	}
	elems = oForm.getElementsByTagName("SELECT");
	for (i=0; i<elems.length; i++) {
		var sel = elems[i];
		var sParam = sel.name + "=" + encodeURIComponent(sel.options[sel.selectedIndex].value);
		aParams.push(sParam);
	}
	elems = oForm.getElementsByTagName("textarea");
	for (i=0; i<elems.length; i++) {
		var sParam = elems[i].name + "=" + encodeURIComponent(trim(elems[i].value));
		aParams.push(sParam);
	}
	return aParams.join("&"); 
}

// Below is Tell A Friend ("refer"):
function requestSendRefer_1(form, task) {
	showLoadingImage();
	var query = getRequestBody(form);
	//alert("requestSendRefer_1 - task = " + task)
	createRequest();
	var url = "ajax_sendrefer.php"
	request.open("POST", url, true);
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	if (task == "send") {
		request.onreadystatechange = requestSendRefer_2;
	} else {
		request.onreadystatechange = requestPreview_2;	
	}
	request.send(query);
}
function requestSendRefer_2() {
	if(checkReadyState(request)) {
		//alert("requestSendRefer_2: " + request.responseText);
		hideLoadingImage();
		showResult(request.responseText);
		setTimeout("hideLightbox();", 2000);
//		var response = request.responseText;
//		//alert("requestSendRefer_2: " + response);
//		if (response == "ERROR") {
//			document.getElementById("msgLogon").innerHTML = "En feil har oppstått. Vennligst kontakt Livredd."
//		} else {
//			document.getElementById("msgLogon").innerHTML = "En epost har blitt sendt til oppgitt adresse.";
//		}
	}
}
function requestPreview_2 () {
	if(checkReadyState(request)) {
		hideLoadingImage();
		//alert("requestPreview_2: " + request.responseText);
		showPreview(request.responseText);
	}
}