var request = null;
var request_2 = 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 createRequest_2() {
	try {
		request_2 = new XMLHttpRequest();
	}
	catch (trymicrosoft) {
		try {
			request_2 = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (othermicrosoft) {
			try {
				request_2 = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				alert("Cannot create XMLHttpRequest object or Microsoft.XMLHTTP object\nNot able to show XML data");
				request_2 = null;
			}
		}
	}
	if (request_2 == null)
		alert("Cannot create request object!");
}
function checkReadyState(obj) {
	if(obj.readyState == 4) {
		if(obj.status == 200) {
			return true;
		} else {
			alert("Problem retrieving XML data, status = " + obj.status + " - " + obj.statusText);
			return false;
		}
	}
}
function abandonSession() {
	createRequest();
	var url = "ajax_abandonsession.asp?unique=" + new Date().getTime();
	request.open("GET", url, true);
	//request.onreadystatechange = validateUser_2;
	request.send(null);
}
function validateUser_1(id, pw) {
	createRequest();
	var url = "ajax_validateuser.asp?id=" + id + "&pw=" + pw + "&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = validateUser_2;
	request.send(null);
}
function validateUser_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "ERROR") {
			document.getElementById("msgLogon").innerHTML = "En feil har oppstått. Vennligst kontakt Livredd."
		} else if (response == "NONE") {
			document.getElementById("msgLogon").innerHTML = "Epost/passord er ikke registrert, vennligst prøv en gang til eller:<ul><li><a href='aa_signon.asp'>Klikk her for påmelding</a></li><li><a href='javascript:requestPW_1(trim(document.getElementById(\"textID\").value))'>klikk her hvis du har glemt ditt passord</a></li></ul>"
		} else if (response == "NOTVALID") {
			document.getElementById("msgLogon").innerHTML = "Vi beklager: Denne konto er ikke lenger gyldig."
		} else {
			//alert("response = " + response);
			document.getElementById("msgLogon").innerHTML = "";
			
			startSession(response);
		}
	}
}
function checkForumUser_1(id) {
	// First check whether user already registered with forum
	createRequest();
	var url = "ajax_checkforum_user.asp?id=" + id + "&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = checkForumUser_2;
	request.send(null);
}
function checkForumUser_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "NONE") {
			var userName = prompt("Før ditt første besøk til Livredd Brukerforum, må du oppgi et Brukernavn.\nDette brukernavn vil representere deg i forumet.\nVennligst skriv inn ønsket brukernavn:", "");
			if (userName != null) {
				checkForumUser_3(userName)
			}
		} else {	// already registered
			openForum()
		}
	}
}
function checkForumUser_3(name) {
	// Now, check whether username already taken
	//alert("checkForumUser_3")
	createRequest();
	var url = "ajax_checkforum_username.asp?username=" + name + "&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = checkForumUser_4;
	request.send(null);
}
function checkForumUser_4() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "EXIST") {	// taken, continue with Recurse till unique
			var userName = prompt("'" + name + "' er allerede tatt i bruk.\nVennligst skriv inn et nytt brukernavn:", "");
			if (userName != null) {
				checkForumUser_3(userName)	// RECURSE!
			}
		} else {
			openForum()
		}
	}
}
function requestExam_1(form) {
	var query = getRequestBody(form);
	//alert(query)
	createRequest();
	var url = "ajax_sendmail_exam.asp"
	//alert("url: " + url);
	request.open("POST", url, true);
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.onreadystatechange = requestExam_2;
	request.send(query);
}
function requestExam_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		//alert("requestExam_2: " + response);
		if (response == "ERROR") {
			displaySignonExamMsg("<strong>Vi beklager: En feil har oppstått. Vennligst kontakt Livredd.</strong>", false)
		} else if (response == "NOMAIL") {
				displaySignonExamMsg("<strong>Vi beklager: Du er registrert som påmeldt til eksamen, men melding om dette har ikke blitt sendt til deg og Livredd. Vennligst kontakt Livredd.</strong>", false)
		} else {
			//displaySignonExamMsg(response, true)
			displaySignonExamMsg("<strong>Din påmelding til eksamen - Norsk Båtførerprøve har blitt sendt til LIVREDD.NO.</strong><br />En kopi av påmeldingen har blitt sendt til din epost adresse.", true)
		}
	}
}
function displaySignonExamMsg (msg, success) {
	if (success) {
		document.getElementById("signon").style.display = "none";
		document.getElementById("msgExam").style.display = "none";
		document.getElementById("examinfo").style.display = "none";
		document.getElementById("msgWelcomeNewUser").innerHTML = msg;
		document.getElementById("msgWelcomeNewUser").style.display = "block";
	} else {
		document.getElementById("msgExam").innerHTML = msg;
		document.getElementById("msgExam").style.display = "block";
	}
}
function requestPW_1(email) {
	//alert("requestPW_1: " + email);
	createRequest();
	var url = "ajax_sendmail_pw.asp?email=" + email + "&unique=" + new Date().getTime();
	//alert("url: " + url);
	request.open("GET", url, true);
	request.onreadystatechange = requestPW_2;
	request.send(null);
}
function requestPW_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		//alert("requestPW_2: " + response);
		if (response == "ERROR") {
			document.getElementById("msgLogon").innerHTML = "En feil har oppstått. Vennligst kontakt Livredd."
		} else if (response == "NONE") {
			document.getElementById("msgLogon").innerHTML = "Spesifisert epost adresse er ikke registrert, vennligst prøv en gang til eller:<ul><li><a href='aa_signon.asp'>Klikk her for påmelding</a></li><li><a href='javascript:requestPW_1(trim(document.getElementById(\"textID\").value))'>Klikk her hvis du har glemt ditt passord</a></li></ul>"
		} else {
			document.getElementById("msgLogon").innerHTML = "En epost har blitt sendt til oppgitt adresse.";
		}
	}
}
function writeUserName_1(email) {
	createRequest();
	var url = "ajax_getusername.asp?email=" + email + "&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = writeUserName_2;
	request.send(null);
}
function writeUserName_2() {
	if(checkReadyState(request)) {
		//alert(request.responseText);
		document.getElementById("username").innerHTML = "Pålogget bruker:<br />&nbsp;" + request.responseText;
		// additional data for aa_mypage.asp and aa_exam.asp:
		if (document.getElementById("mypage_name") || document.getElementById("examinfo")){
			getUser_1(getCookie("livredd"));
		}
	}
}
function getUser_1(email) {
	// get user data from unique email
	createRequest();
	var url = "ajax_getuser.asp?email=" + email + "&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = getUser_2;
	request.send(null);
}
function getUser_2() {
	// read the returned user data (XML)
	if(checkReadyState(request)) {
		var xmlDoc = request.responseXML.documentElement;
		//var xmlDoc = request.responseText;
		
		if (document.getElementById("mypage_name")){
			var name = xmlDoc.getElementsByTagName("userfirst")[0].childNodes[0].nodeValue + "&nbsp;" + xmlDoc.getElementsByTagName("userlast")[0].childNodes[0].nodeValue;
			var endTime = xmlDoc.getElementsByTagName("dateend")[0].childNodes[0].nodeValue;
			document.getElementById("mypage_name").innerHTML = name;
			document.getElementById("mypage_enddate").innerHTML = endTime.substring(8, 10) + "/" + endTime.substring(5, 7) + "/" + endTime.substring(0, 4);
		} else if (document.getElementById("examinfo")){
			document.getElementById("exam_mail").value = xmlDoc.getElementsByTagName("useremail")[0].childNodes[0].nodeValue;
			document.getElementById("exam_name1").value = xmlDoc.getElementsByTagName("userfirst")[0].childNodes[0].nodeValue;
			document.getElementById("exam_name2").value = xmlDoc.getElementsByTagName("userlast")[0].childNodes[0].nodeValue;
			document.getElementById("exam_address1").value = xmlDoc.getElementsByTagName("useraddress1")[0].childNodes[0].nodeValue;
			//if (xmlDoc.getElementsByTagName("userAddress2")) document.getElementById("exam_address2").value = xmlDoc.getElementsByTagName("userAddress2")[0].childNodes[0].nodeValue;
			if (xmlDoc.getElementsByTagName("useraddress2")[0].childNodes[0]) document.getElementById("exam_address2").value = xmlDoc.getElementsByTagName("useraddress2")[0].childNodes[0].nodeValue;
			document.getElementById("exam_pno").value = xmlDoc.getElementsByTagName("userpostcode")[0].childNodes[0].nodeValue;
			document.getElementById("exam_place").value = xmlDoc.getElementsByTagName("userplace")[0].childNodes[0].nodeValue;
		}
	}
}
function checkEmail_1(email, includecourse, isgift) {
	// valid email upon blur
	var str = trim(email);
	//alert(includecourse + " - " + isgift)
	var re = /.+/;
	if(!str.match(re)) {	// empty?
		document.getElementById("msgEmail").innerHTML = "";
		//document.frmSignon.cmdSubmit.disabled = false;
	} else {
		re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		if (!str.match(re)) {		// valid?
			document.getElementById("msgEmail").innerHTML = "Dette er ikke en gyldig epost adresse.";
			setTimeout("document.forms['frmSignon'].elements['member_mail'].focus();", 0);
			setTimeout("document.forms['frmSignon'].elements['member_mail'].select();", 0);
		} else if (includecourse == 1 && isgift == "off") {		
			if (equalsAnyGroupAddress(email)) {
				setTimeout("document.forms['frmSignon'].elements['member_mail'].focus();", 0);
				setTimeout("document.forms['frmSignon'].elements['member_mail'].select();", 0);
				document.getElementById("msgEmail").innerHTML = "Denne epost-adresse er lik en allerede oppgitt adresse.<br />Hvert hustandsmedlem må ha sin egen epost-adresse.";
			} else {
				createRequest_2();
				var url = "ajax_getusername.asp?email=" + str + "&unique=" + new Date().getTime();
				request_2.open("GET", url, true);
				request_2.onreadystatechange = checkEmail_2;
				request_2.send(null);
			}
		} else {
			document.getElementById("msgEmail").innerHTML = "";
			enableDisableMailConfirm(true);
			setTimeout("document.forms['frmSignon'].elements['member_mail_confirm'].focus();", 0);
		}
	}
}
function checkEmail_2() {
	if(checkReadyState(request_2)) {
		var response = request_2.responseText;
		//alert(response)
		if (response != "NONE") {
			document.getElementById("msgEmail").innerHTML = "Du er allerede registrert som kursdeltaker,<br />ønsker du gavekort må du velge det før du kan gå videre.";
			setTimeout("document.forms['frmSignon'].elements['member_mail'].focus();", 1);
			setTimeout("document.forms['frmSignon'].elements['member_mail'].select();", 2);
			
		} else {
			document.getElementById("msgEmail").innerHTML = "";
			enableDisableMailConfirm(true);
			setTimeout("document.forms['frmSignon'].elements['member_mail_confirm'].focus();", 0);
			checkComplete();
		}
	}
}
function equalsAnyGroupAddress (email) {
	// check if any other group email address equals main subscriber
	var result;
	for( var i = 2; i < 6; i++) { 
		eval("result = ('" + email + "' == trim(document.getElementById('member" + i + "_mail').value))")
		if (result) {return true};
	}
	return false
}
function checkEmailGroup_1(elem, index) {
	// valid email of extra members upon blur, include course always true
	var str = trim(elem.value);
	
	var re = /.+/;
	if(!str.match(re)) {	// empty?
		document.getElementById("msgEmail").innerHTML = "";
		//document.frmSignon.cmdSubmit.disabled = false;
	} else {
		re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		if (!str.match(re)) {		// valid?
			document.getElementById("msgEmail").innerHTML = "Dette er ikke en gyldig epost adresse.";
			//elem.focus();
			//elem.select();
			//setTimeout("elem.focus();", 0);
			//setTimeout("elem.select();", 0);
			
		} else {		
			//alert(str)
			if (equalGroupAddress(elem, index)) {
				elem.value = "";
				document.getElementById("msgEmail").innerHTML = "Hvert hustandsmedlem må ha sin egen epost-adresse.<br />Denne epost-adresse er lik en av de andre.";
				//eval("document.getElementById('member" + index + "_mail').focus()")
				//elem.focus();
				//setTimeout("elem.focus();", 0);
				//setTimeout("elem.select();", 0);
			} else {
				createRequest_2();
				var url = "ajax_getusername.asp?email=" + str + "&unique=" + new Date().getTime();
				request_2.open("GET", url, true);
				request_2.onreadystatechange = checkEmailGroup_2;
				request_2.send(null);
			}
		}
	}
}
function equalGroupAddress (elem, index) {
	// check if any other equal email address in same group
	var result;
	// first check main subscriber
	result = (trim(elem.value) == trim(document.getElementById('member_mail').value))
	if (result) {return true};
	
	for( var i = 2; i < 6; i++) { 
		if (i != index) {
			eval("result = (trim(elem.value) == trim(document.getElementById('member" + i + "_mail').value))")
			if (result) {return true};
		}
	}
	return false
}
function checkEmailGroup_2() {
	if(checkReadyState(request_2)) {
		var response = request_2.responseText;
		//alert(response)
		if (response != "NONE") {
			document.getElementById("msgEmail").innerHTML = "En kursdeltaker med denne adresse er allerede registrert som kursdeltaker.";
	//		setTimeout("document.forms['frmSignon'].elements['member_mail'].focus();", 1);
//			setTimeout("document.forms['frmSignon'].elements['member_mail'].select();", 2);
			
		} else {
			document.getElementById("msgEmail").innerHTML = "";
//			setTimeout("document.forms['frmSignon'].elements['member_mail_confirm'].focus();", 0);
//			checkComplete();
		}
	}
}
function displaySignonMsg (msg, success) {
	if (success) {
		document.getElementById("signon").style.display = "none";
		document.getElementById("msgSignon").style.display = "none";
		document.getElementById("msgWelcomeNewUser").innerHTML = msg;
		document.getElementById("msgWelcomeNewUser").style.display = "block";
	} else {
		document.getElementById("msgSignon").innerHTML = msg;
		document.getElementById("msgSignon").style.display = "block";
	}
}
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("&"); 
}

function writeNewPW_1 (pw, email) {
	// write new password to db
	createRequest();
	var url = "ajax_writepw.asp?email=" + email + "&pw=" + pw + "&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = writeNewPW_2;
	request.send(null);
}
function writeNewPW_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "ERROR") {
			displaySignonMsg("En feil har oppstått. Vennligst kontakt Livredd.")
		} else {
			//startSession(response);
			displaySignonMsg("<strong>Ditt passord er nå endret til " + response + ".</strong>")
		}
	}
}
function getDiscountData_1(code) {
	//if (trim(code) != "") {
		gWait = true;
		createRequest();
		var url = "ajax_getdiscount.asp?code=" + code + "&unique=" + new Date().getTime();
		//alert("getDiscountData_1, code = " + code)
		request.open("GET", url, true);
		request.onreadystatechange = getDiscountData_2;
		request.send(null);
	//}
}
function getDiscountData_2() {
	// cmp. identical strings in livredd.js:showDiscount!
	if(checkReadyState(request)) {
		var xmlDoc = request.responseXML.documentElement;
		//alert(xmlDoc.getElementsByTagName("campaignid")[0].childNodes[0].nodeValue);
		if (xmlDoc.getElementsByTagName("campaignid")[0] == undefined) {
			if(document.getElementById("discountCode").value != "") {
				document.getElementById("warncode").innerHTML = "<span class='nocode'>Dette er ikke en gyldig rabattkode.<br />Vennligst slett eller prøv på nytt.</span>";
				document.getElementById("warncode").style.display = "block";
			}
			//document.getElementById("discountCode").focus();
    		//document.getElementById("discountCode").select();
			endDiscountData_1();
		} else {
			var campaignID = xmlDoc.getElementsByTagName("campaignid")[0].childNodes[0].nodeValue;
			var partnerID = xmlDoc.getElementsByTagName("partnerid")[0].childNodes[0].nodeValue;
			var partnerName = xmlDoc.getElementsByTagName("partnername")[0].childNodes[0].nodeValue;
			var discount = xmlDoc.getElementsByTagName("discount")[0].childNodes[0].nodeValue;
			var campaignType = xmlDoc.getElementsByTagName("type")[0].childNodes[0].nodeValue;
			var campaignCode = xmlDoc.getElementsByTagName("campaigncode")[0].childNodes[0].nodeValue;
			//alert("getDiscountData_2, discount = " + discount + ", getPriceSelectedProducts = " + getPriceSelectedProducts())
			if (discount == 0) {
				document.getElementById("warncode").innerHTML = "<span class='nocode'>Denne kode gir ingen rabatt.</span>";
				document.getElementById("warncode").style.display = "block";
			//} else if (discount >= gbl_minCoursePrice) {	// set in showDiscount upon page load
			} else if ((discount >= getPriceSelectedProducts()) && !(gPrepaid && document.forms['frmSignon'].elements['totalprice'].value > 0)) {	// back to discount only if members added
				//alert("getDiscountData_2, PREPAID, code = " + campaignCode)
				gPrepaid = true;
				campaignType = "PREPAID"
				//document.getElementById("creditinvoice").value = "off";
				updateCreditInvoice("on");
				document.getElementById("msgDiscount").className = "discountOK";
				document.getElementById("msgDiscount").innerHTML = "<strong>Dette kurs er allerede betalt</strong> (" + partnerName + ")<br>Meld deg på og du vil umiddelbart få tilgang til kurset!";
				document.getElementById("msgcredit").innerHTML = "Tilgang til Den store norske Båtførerprøven er allerede betalt, <a href='aa_signon.asp'>klikk her for umiddelbar, gratis tilgang!</a>";
				document.getElementById("msgcredit").style.display = "block";
				
				setDiscountData_1(discount, partnerID, partnerName, campaignID, campaignType);	// Set new session varables for campaign with discount and display message in msgcredit
				
				adjustPrices_1(discount);	// adjust prices in product dropdown
				
				document.getElementById('signon').className = "discount";
				document.getElementById('signonhead').innerHTML = "Ditt kurs er forhåndsbetalt!"
				// close any extra members and gift card
				disableGifts();
				hideCreditOption(true)
			} else {
				//alert("getDiscountData_2, DISCOUNT, code = " + campaignCode)
				campaignType = "NORMAL"
				document.getElementById("msgDiscount").className = "discountOK";
				document.getElementById("msgDiscount").innerHTML = "<strong>Du får et avslag på kroner " + discount + ".</strong> (" + partnerName + ")<br>Dette beløp er trukket fra ordinær pris.";
				document.getElementById("msgcredit").innerHTML = "Du får et avslag på " + discount + " kroner ved kjøp av Den store norske Båtførerprøven!&nbsp;&nbsp;&nbsp;<a href='aa_signon.asp'>Klikk her for å melde deg på!</a>";
				document.getElementById("msgcredit").style.display = "block";
				
				setDiscountData_1(discount, partnerID, partnerName, campaignID, campaignType)	// Set new session varables for campaign with discount and display message in msgcredit

				adjustPrices_1(discount);	// adjust prices in product dropdown
				
				document.getElementById('signon').className = "discount";
				document.getElementById('signonhead').innerHTML = "Du sparer kr. " + discount + " på alle kurs!"
				hideCreditOption(false)
			}
			//alert(document.getElementById("msgcredit").innerHTML)
			document.forms["frmSignon"].discount.value = discount;
			document.forms["frmSignon"].partnerid.value = partnerID;
			document.forms["frmSignon"].partnername.value = partnerName;
			document.forms["frmSignon"].campaignid.value = campaignID;
			document.forms["frmSignon"].campaigntype.value = campaignType;
			document.forms["frmSignon"].campaigncode.value = campaignCode;
			gWait = false
		}
	}
}
function adjustPrices_1(discount) {
	// adjust prices in product dropdown
	gblDiscount = discount;		// HATE IT ...
	createRequest();
	var url = "ajax_getproducts.asp?discount=" + discount + "&unique=" + new Date().getTime();
	
	//if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
	//if(navigator.userAgent.toLowerCase().indexOf('msie') + 1) {
	//if (document.all) {
	// CRAZY CODE : IE only works with synch Ajax and opposite !!!!!! *******************************
	if (getInternetExplorerVersion() == -1) {	
		request.open("GET", url, true);
	} else {
		request.open("GET", url, false);
	}
	request.onreadystatechange = adjustPrices_2;
	request.send(null);
}
function adjustPrices_2() {
	if(checkReadyState(request)) {
		//document.getElementById("cmdsubmit").disabled = true;
		var xmlDoc = request.responseXML.documentElement;
		var selProduct = document.forms['frmSignon'].elements['product'];
		var selIndex = selProduct.selectedIndex;
		selProduct.length = 0;
		selProduct.options[0] = new Option("Vennligst velg", "-1");
		var arrProducts = xmlDoc.getElementsByTagName("p");
		for( var i = 0; i < arrProducts.length;i++) {
			//selProduct.options[i + 1] = new Option(arrProducts[i].getAttribute("productid"), arrProducts[i].getAttribute("name"));
			var discount = (xmlDoc.getElementsByTagName("includecourse")[i].firstChild.nodeValue == 1) ? gblDiscount : 0;
			selProduct.options[i + 1] = new Option(xmlDoc.getElementsByTagName("name")[i].firstChild.nodeValue + ": NOK " + Math.max((xmlDoc.getElementsByTagName("price")[i].firstChild.nodeValue-discount),0).toFixed(2), xmlDoc.getElementsByTagName("productid")[i].firstChild.nodeValue + "_" + Math.max((xmlDoc.getElementsByTagName("price")[i].firstChild.nodeValue-discount),0));
		}
		if (i == 0) {	// only one option
			selProduct.selectedIndex = 0;
			selProduct.disabled = true;
		} else {
			selProduct.selectedIndex = selIndex;
			selProduct.disabled = false;
		}
		//hideCreditOption(true)
		updateTotal(getPriceSelectedProducts())
		gblDiscount = 0;
		//document.getElementById("cmdsubmit").disabled = false;
	}
}
function showHideDiscount_1(prodid) {
	createRequest();
	var url = "ajax_iscourseincluded.asp?id=" + prodid + "&unique=" + new Date().getTime();
	//alert("showHideDiscount_1, url = " + url)
	// 16.11.2009:
	// CHROME - MAC: Set to false! No ASYNC necessary to set includecourse below and to avoid crash with checkEmail_1 in checkProduct() !!
	// CHROME - WIN: Both OK
	// SAFARI - MAC & WIN: Both OK
	// Firefox - MAC & WIN: Set to true!
	// IE7: Both OK, but False no work with check on dup email !!?
	// IE8: Set to True (load error on false!?)
	if (isChromeOnMac()) {
		request.open("GET", url, false);
	} else {
		request.open("GET", url, true);	
	}
	//request.open("GET", url, true);
	request.onreadystatechange = showHideDiscount_2;
	request.send(null);
}
function showHideDiscount_2() {
	//alert("showHideDiscount_2")
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "YES" && !gPrepaid) {
			if (document.getElementById("msgDiscount")) {
				//setTimeout("showGroupAndDiscount()", 0); CMP. no ASYNC above!
				showGroupAndDiscount()
			}
		} else {
			if (document.getElementById("msgDiscount")) {
				//setTimeout("hideGroupAndDiscount();", 0);	CMP. no ASYNC above!
				hideGroupAndDiscount()
			}
		}
	}
}
function showGroupAndDiscount () {
	if ((gExtraMember2 || gExtraMember3 || gExtraMember4 || gExtraMember5) && (document.getElementById("extramembers").value == "on")) {
		document.getElementById("group_yes").checked=true;
		document.getElementById("group_no").checked=false;
		document.getElementById('lblGroup_yes').style.fontWeight="bold";
		document.getElementById('lblGroup_no').style.fontWeight="normal";
		document.getElementById("groupsignon").style.display = "block";
		//document.getElementById("extramembers").value = "on";
	} else {
		document.getElementById("group_yes").checked=false;
		document.getElementById("group_no").checked=true;
		document.getElementById('lblGroup_yes').style.fontWeight="normal";
		document.getElementById('lblGroup_no').style.fontWeight="bold";
	}
	document.getElementById("group_yes").disabled=false;
	document.getElementById("group_no").disabled=false;
	if (document.getElementById("giftcard").value == "on") {
		document.getElementById("gift_yes").checked=true;
		document.getElementById("gift_no").checked=false;
		document.getElementById('lblGift_yes').style.fontWeight="bold";
		document.getElementById('lblGift_no').style.fontWeight="normal";
		document.getElementById("giftcard-contain").className = "checked";
		//document.getElementById("giftcard").value="on";
	} else {
		document.getElementById("gift_yes").checked=false;
		document.getElementById("gift_no").checked=true;
		document.getElementById('lblGift_yes').style.fontWeight="normal";
		document.getElementById('lblGift_no').style.fontWeight="bold";
		document.getElementById("giftcard-contain").className = "nochecked";
	}
	document.getElementById("gift_yes").disabled=false;
	document.getElementById("gift_no").disabled=false;
	document.getElementById("msgGroup_yes").style.display = "inline";
	document.getElementById("msgGift_yes").style.display = "inline";
	document.getElementById("msgGroup_no").style.display = "none";
	document.getElementById("msgGift_no").style.display = "none";
	document.getElementById("msgDiscount").style.display = "block";
	document.getElementById("includecourse").value = 1;
	
	//alert(document.getElementById("includecourse").value)
}
function hideGroupAndDiscount () {
	//document.getElementById("giftcard").value="off";
	document.getElementById("group_yes").checked=false;
	document.getElementById("group_no").checked=true;
	document.getElementById("group_yes").disabled=true;
	document.getElementById("group_no").disabled=true;
	document.getElementById('lblGroup_yes').style.fontWeight="normal";
	document.getElementById('lblGroup_no').style.fontWeight="bold";
	document.getElementById("gift_yes").checked=false;
	document.getElementById("gift_no").checked=true;
	document.getElementById("gift_yes").disabled=true;
	document.getElementById("gift_no").disabled=true;
	document.getElementById('lblGift_yes').style.fontWeight="normal";
	document.getElementById('lblGift_no').style.fontWeight="bold";
	document.getElementById("giftcard-contain").className = "nochecked";
	document.getElementById("msgGroup_yes").style.display = "none";
	document.getElementById("msgGift_yes").style.display = "none";
	document.getElementById("msgGroup_no").style.display = "inline";
	document.getElementById("msgGift_no").style.display = "inline";
	document.getElementById("groupsignon").style.display = "none";
	document.getElementById("msgDiscount").style.display="none";
	document.getElementById("includecourse").value = 0;
	document.getElementById("extramembers").value == "off"
	//alert("hideGroupAndDiscount, includecourse after showHideDiscount_2: " + document.getElementById("includecourse").value)
}
function setDiscountData_1(discount, partner, partnername, campaign, campaigntype) {
	// Set new session varables for campaign with discount and display message in msgcredit
	createRequest();
	var url = "ajax_startdiscount_session.asp?d=" + discount + "&p=" + partner + "&pn=" + partnername + "&c=" + campaign + "&ct=" + campaigntype + "&unique=" + new Date().getTime();
	request.open("GET", url, true);	// NO ASYNC !!
	request.onreadystatechange = setDiscountData_2;
	request.send(null);
}
function setDiscountData_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "OK") {
			document.getElementById("msgcredit").style.display = "block";
		}
	}
}
function endDiscountData_1() {
	createRequest();
	var url = "ajax_startdiscount_session.asp?end=yes&unique=" + new Date().getTime();
	request.open("GET", url, true);
	request.onreadystatechange = endDiscountData_2;
	request.send(null);
}
function endDiscountData_2() {
	if(checkReadyState(request)) {
		var response = request.responseText;
		if (response == "OK") {
			document.getElementById("msgcredit").style.display = "none";
		}
	}
}

// Below is Tell A Friend ("refer"):
function requestSendRefer_1(form, task) {
	var query = getRequestBody(form);
	//alert("requestSendRefer_1 - task = " + task)
	createRequest();
	var url = "ajax_sendrefer.asp"
	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)) {
		//hideLoadingImage();
		showResult("MELDING<br>ER SENDT!");
		setTimeout("hideRefer();", 2000);
	}
}
function requestPreview_2 () {
	if(checkReadyState(request)) {
		//alert(request.responseText)
		showPreview(request.responseText);
	}
}