//======================== Start ArticleDisplay-functions ===================================
function swapImage(asCurrentID, asNewID) {
	document.getElementById(asCurrentID).style.display = "none";
	document.getElementById(asNewID).style.display = "block";
}

function swapArticle(asCurrentActiveID, aoSender, asAltObjID) {
	var loCurrentDiv = document.getElementById(asCurrentActiveID);
	var loAltObj = document.getElementById(asAltObjID)
	if (loCurrentDiv) {
		loCurrentDiv.style.display = "none";
	}
	if (aoSender) {
		var lsValue = aoSender.options[aoSender.selectedIndex].value;
		var lsAltValue = "";
		if (loAltObj) {
			lsAltValue = loAltObj.options[loAltObj.selectedIndex].value;
		}
		//alert(lsAltValue + lsValue);
		if (lsValue != "") {
			lsValue = stripToIDFormat(lsValue);
			lsAltValue = stripToIDFormat(lsAltValue);
			var loNewDiv = document.getElementById(lsAltValue + lsValue);
			if (loNewDiv) {
				loNewDiv.style.display = "block";
			}
			else {
				loNewDiv = document.getElementById(lsValue + lsAltValue);
				if (loNewDiv) {
					loNewDiv.style.display = "block";
				}
			}
		}
	}
	resetState(asCurrentActiveID,aoSender);
}

function stripToIDFormat(asInput) {
	var lsInput = asInput;
	lsInput = lsInput.replace(/\ /g, "");
	lsInput = lsInput.replace(/&lt;none&gt;/g, "");
	lsInput = lsInput.replace(/\(/g, "");
	lsInput = lsInput.replace(/\)/g, "");
	return lsInput;
}

function resetState(asString,aoObj) {
	if (document.getElementById("size_" + asString)) {
		aoObj.value = document.getElementById("size_" + asString).value;
	}
	if(document.getElementById("color_" + asString)) {
		aoObj.value = document.getElementById("color_" + asString).value;
	}
}

function setValue(asID, asValue) {
	var loObj = document.getElementById(asID);
	if (loObj) {
		loObj.value = asValue;
		if (loObj.onchange) {
			loObj.onchange();
		}
	}
}

//======================== Start Shoppingcart-functions ===================================

function updateShoppingCartWidget() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=CartContentSimple", updateShoppingCartSetValue);
	function updateShoppingCartSetValue(aoXMLHTTP) {
		if (aoXMLHTTP.responseText != "") {
			goDOM.setInnerHTML("cartcontentsimple", aoXMLHTTP.responseText);
		}
	}
}

function updateCartContent() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=CartContentExtended", updateCartContentSetValue);
	function updateCartContentSetValue(aoXMLHTTP) {
		if (aoXMLHTTP.responseText != "empty") {
			goDOM.setInnerHTML("cartcontentextended", aoXMLHTTP.responseText);
		}
		else {
			goDOM.setInnerHTML("mainTextTas", "<h2 class=\"winkelTasLeeg rond\">Je winkeltas is leeg. <a href=\"javascript:history.back()\">Winkel verder</a></h2>");
			goDOM.setInnerHTML("cartcontentextended", "");
		}
	}
}

function updateCartContentPrices() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=CartContentPrices", updateCartContentPriceSetValue);
	function updateCartContentPriceSetValue(aoXMLHTTP) {
		if (aoXMLHTTP.responseText != "") {
			var lsarrValues = aoXMLHTTP.responseText.split("#NEXT#")
			goDOM.setInnerHTML("totalprice1", lsarrValues[0]);
			goDOM.setInnerHTML("totaltax1", lsarrValues[1]);
			goDOM.setInnerHTML("totalordercosts1", lsarrValues[2]);
		}
	}
}

function hideWrappingTextDiv() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=WrappedArticlesOrdered", hideWrappingTextDivSetValue);
	function hideWrappingTextDivSetValue(aoXMLHTTP) {
		if (aoXMLHTTP.responseText != "true") {
			goDOM.hideElement("divCadeauText")
		}
	}
}

function addArticle(aiID, asNumberInCartID, asShouldBeWrappedID, asAddOrUpdate) {
	var liNumberInCart = document.getElementById(asNumberInCartID).value;
	var lbShouldBeWrapped;
	if (document.getElementById(asShouldBeWrappedID)) {
		lbShouldBeWrapped = document.getElementById(asShouldBeWrappedID).checked;
	}
	else if(asShouldBeWrappedID == true) { //Vieze workaround voor updaten vanuit cart-overzicht...
		lbShouldBeWrapped = "true";
	}
	else {
		lbShouldBeWrapped = "false";
	}

	if ((liNumberInCart == "") || (isNaN(liNumberInCart)) || (liNumberInCart < 1)) {
		alert("Voer een geldig aantal in");
		return false;
	}
	var lsParams = "type=AddArticle&id=" + aiID + "&numberincart=" + liNumberInCart + "&shouldbewrapped=" + lbShouldBeWrapped + "&addorupdate=" + asAddOrUpdate;
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", lsParams, addArticleResponse);
	
	function addArticleResponse(aoXMLHTTP) {
		if (aoXMLHTTP.responseText == "ok") {
			if (asAddOrUpdate == "add") { //Must be called from main articlepage
				updateShoppingCartWidget();
			}
			else { //Must be called from cartcontent-overview
				updateShoppingCartWidget();
				updateCartContent();
				updateCartContentPrices();
			}
			cartAlert(aiID);
			return true;
		}
	}
	return true;
}

function removeArticle(aiID) {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=RemoveArticle&id=" + aiID, removeArticleResponse);
	
	function removeArticleResponse(aoXMLHTTP) {
		if (aoXMLHTTP.responseText == "ok") {
			updateShoppingCartWidget();
			updateCartContent();
			updateCartContentPrices();
			cartAlert(aiID);
			return true;
		}
	}
}

function cartAlert(aiID) {
	cartAlertOn(aiID);
	eval("setTimeout('cartAlertOff(" + aiID + ")', 2000)");
	//eval("setTimeout('cartAlertOn(" + aiID + ")', 1000)");
	//eval("setTimeout('cartAlertOff(" + aiID + ")', 1500)");
	//eval("setTimeout('cartAlertOn(" + aiID + ")', 2000)");
	//eval("setTimeout('cartAlertOff(" + aiID + ")', 2500)");
}

function cartAlertOn(aiID) {
	var loCartLink = document.getElementById("winkeltasinhoudlink");
	var loAddButton = document.getElementById("buttonadd_" + aiID);
	if (loCartLink) {
		loCartLink.className += " tas-alert"
	}
	if ( loAddButton) {
		loAddButton.className += " tas-alert"
	}
}

function cartAlertOff(aiID) {
	var loCartLink = document.getElementById("winkeltasinhoudlink");
	var loAddButton = document.getElementById("buttonadd_" + aiID);
	if (loCartLink) {
		loCartLink.className = loCartLink.className.replace(" tas-alert", "");
		loCartLink.className = loCartLink.className.replace("tas-alert", "");
	}
	if (loAddButton) {
		loAddButton.className = loAddButton.className.replace(" tas-alert", "")
		loAddButton.className = loAddButton.className.replace("tas-alert", "")
	}
}
//======================== Start Address-functions ===================================

function displayLogin(aoObj) {
	if (aoObj.value == "yes") {
		goDOM.unHideElement("customerlogin");
		goDOM.hideElement("passwords");
	}
	else {
		goDOM.hideElement("customerlogin");
		goDOM.unHideElement("passwords");
	}
}

function displaySendToAddress(aoObj) {
	if ((aoObj.value == "useotheraddress") || (aoObj.value == "pickup")) {
		goDOM.hideElement("sendtoaddress");
	}
	else {
		goDOM.unHideElement("sendtoaddress");
	}
}

function fetchUserData(asSubType) {
	var lsDataString = "type=GetUserData&subType=" + asSubType + "&email=" + document.getElementById('email').value + "&password=" + document.getElementById('password').value;
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", lsDataString, getUserDataResponse);
	
	function getUserDataResponse(aoXMLHTTP) {
		//alert(aoXMLHTTP.responseText);
		if (aoXMLHTTP.responseText != "") {
			if (aoXMLHTTP.responseText.substring(0,3) == "var") {
				goDOM.setInnerHTML("serverResponse", "");
				eval(aoXMLHTTP.responseText);
				if (lsResponseType) {
					if (lsResponseType == "existingcustomer") {
						goDOM.hideElement("gegevenskwijt");
					}
					else {
						goDOM.unHideElement("gegevenskwijt");
					}
				}
				if (lsNotANewCustomer) {
					//setRadio("notanewcustomer_y", lsNotANewCustomer);
					//setRadio("notanewcustomer_n", lsNotANewCustomer);
				}
				setValue("voornaam", lsFirstName);
				setValue("tussenvoegsel", lsSurNamePrefix);
				setValue("achternaam", lsSurName);
				setValue("bedrijf", lsCompany);
				if (document.getElementById('email').value != "") {
					setValue("email2", document.getElementById('email').value);
				}
				else {
					setValue("email2", lsEmail);
					setValue("email", lsEmail);
				}
				setValue("adres", lsStreet);
				setValue("huisnr", lsHouseNr);
				setValue("pc", lsZipCode);
				setValue("woonplaats", lsCity);
				setSelect("land", lsCountry);
				setValue("telefoon", lsTelephone);
				setValue("openvraagInput", lsExtraText);
				setValue("cadeautekst", lsCadeauText);
				setRadio("verzendadres1", lsPreferredSendMethod);
				setRadio("verzendadres2", lsPreferredSendMethod);
				setRadio("verzendadres3", lsPreferredSendMethod);
				setValue("sendtovoornaam", lsSendToFirstName);
				setValue("sendtotussenvoegsel", lsSendToSurNamePrefix);
				setValue("sendtoachternaam", lsSendToSurName);
				setValue("sendtobedrijf", lsSendToCompany);
				setValue("sendtoadres", lsSendToStreet);
				setValue("sendtohuisnr", lsSendToHouseNr);
				setValue("sendtopc", lsSendToZipCode);
				setValue("sendtowoonplaats", lsSendToCity);
				setValue("sendtoland", lsSendToCountry);
				
				sendUserData(false);
			}
			else {
				goDOM.setInnerHTML("serverResponse", aoXMLHTTP.responseText);
			}
		}
	}
}

function sendUserData(abShowErrors, asURL) {
	var lsarrFields = new Array("notanewcustomer","voornaam","tussenvoegsel","achternaam","bedrijf","adres","huisnr","pc","woonplaats","land","telefoon","email2",
					"password","newpassword","newpassword2",
					"openvraagInput","cadeautekst","verzendadres","sendtovoornaam","sendtotussenvoegsel","sendtoachternaam","sendtobedrijf","sendtoadres",
					"sendtohuisnr","sendtopc","sendtowoonplaats","sendtoland");
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=SendUserData&" + goGENFUNC.makePostString(lsarrFields), sendUserDataResponse);
	
	function sendUserDataResponse(aoXMLHTTP) {
		var lsResponse = aoXMLHTTP.responseText;
		var lsErrors = "";
		if (lsResponse == "OK") { //Gegevens juist gevalideerd
			if (abShowErrors == true) {
				window.location = asURL
			}
		}
		else if(lsResponse.substr(0,9) == "DUPLICATE") {
			lsErrors = "<ul><li>Je emailadres is wel bekend maar het bestaat al in de database met een ander wachtwoord. Gebruik het juiste wachtwoord, of vraag een nieuw wachtwoord aan. U kunt ook een ander emailadres kiezen.</li></ul>";
		}
		else { //Fouten gevonden
			if (abShowErrors) {
				var lsarrErrors = lsResponse.split("#NEXT#");
				var i;
				var lsarrError
				for (i=0;i<lsarrErrors.length;i++) {
					lsarrError = lsarrErrors[i].split("#SPLIT#");
					try {
						document.getElementById(lsarrError[0]).className += "actief";
						if (lsarrError[1] != "") {
							lsErrors += "<li>" + lsarrError[1] + "</li>";
						}
					} catch (e) {}
				}
				if (lsErrors != "") {
					lsErrors = "<ul>" + lsErrors + "</ul>"
				}
			}
		}
		if (lsErrors != "") {
			lsErrors = "<h3>Ai, dat gaat nog niet helemaal goed, de volgende velden, met rode randen, zijn niet (goed) ingevuld</h3><p>Vul alsjeblieft deze velden (goed) in, dan kunnen wij ervoor zorgen dat je bestelling verder goed komt.</p>" + lsErrors;
			goDOM.setInnerHTML("error",lsErrors);
			window.scroll(0,450);
		}
	}
}

//======================== Start PaymentMethod-functions ===================================
function getPaymentMethod() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=GetPaymentMethod", getPaymentMethodResponse);
	
	function getPaymentMethodResponse(aoXMLHTTP) {
		//alert(aoXMLHTTP.responseText);
		if (aoXMLHTTP.responseText != "") {
			if (aoXMLHTTP.responseText.substring(0,3) == "var") {
				eval(aoXMLHTTP.responseText);
				if (lsPaymentMethod) {
					setRadio("ideal", lsPaymentMethod);
					setRadio("vooruitbetaling", lsPaymentMethod);
					setRadio("incasso", lsPaymentMethod);
					setRadio("paypal", lsPaymentMethod);
				}
			}
		}
	}
}

function sendPaymentMethod(abShowErrors, asURL) {
	var lsarrFields = new Array("betaalmethode");
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=SendPaymentMethod&" + goGENFUNC.makePostString(lsarrFields), sendPaymentMethodResponse);
	
	function sendPaymentMethodResponse(aoXMLHTTP) {
		var lsResponse = aoXMLHTTP.responseText;
		var lsErrors = "";
		if (lsResponse == "OK") { //Gegevens juist gevalideerd
			if (abShowErrors == true) {
				window.location = asURL
			}
		}
		else { //Fouten gevonden
			var lsarrError = lsResponse.split("#SPLIT#");
			try {
				document.getElementById(lsarrError[0]).className += "actief";
				if (lsarrError[1] != "") {
					lsErrors += "<li>" + lsarrError[1] + "</li>";
				}
			} catch (e) {}
			
			lsErrors = "<h3>Ai, dat gaat nog niet helemaal goed, de volgende velden, met rode randen, zijn niet ingevuld</h3><p>Vul alsjeblieft deze velden (goed) in, dan kunnen wij ervoor zorgen dat je bestelling verder goed komt.</p><ul>" + lsErrors + "</ul>";
			goDOM.setInnerHTML("error",lsErrors);
			window.scroll(0,450);
		}
	}
}

//======================== Start Summary-functions ===================================
function updateSummaryContent() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=GetSummary", updateSummaryContentSetValue);
	function updateSummaryContentSetValue(aoXMLHTTP) {
		if (aoXMLHTTP.responseText.substr(0,3) == "var") {
			eval(aoXMLHTTP.responseText);
			goDOM.setInnerHTML("bedrijf", lsCompany);
			goDOM.setInnerHTML("naam", lsName);
			goDOM.setInnerHTML("adres", lsAddress);
			goDOM.setInnerHTML("postcodeplaats", lsZipAndCity);
			goDOM.setInnerHTML("land", lsCountry);
			goDOM.setInnerHTML("email", lsEmail);
			goDOM.setInnerHTML("telefoon", lsTelephone);
			
			if (lsPreferredSendMethod != "pickup") {
				goDOM.setInnerHTML("sendtobedrijf", lsSendToCompany);
				goDOM.setInnerHTML("sendtonaam", lsName2);
				goDOM.setInnerHTML("sendtoadres", lsAddress2);
				goDOM.setInnerHTML("sendtopostcodeplaats", lsZipAndCity2);
				goDOM.setInnerHTML("sendtoland", lsSendToCountry);
			}
			else {
				goDOM.hideElement("verzendgegevens");
				goDOM.unHideElement("verzendgegevens_afhalen");
			}
			
			if (lsCadeauText != "") {
				goDOM.setInnerHTML("cadeaukaartje", lsCadeauText);
			}
			else {
				goDOM.hideElement("cadeautext");
			}
			
			if (lsExtraText != "") {
				goDOM.setInnerHTML("opmerkingen", lsExtraText);
			}
			else {
				goDOM.hideElement("extratext");
			}
			goDOM.setInnerHTML("betaalgegevens", lsPaymentMethod);		
		}
	}
}

function updateCartContentStatic() {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=CartContentExtendedStatic", updateCartContentSetValue);
	function updateCartContentSetValue(aoXMLHTTP) {
		if (aoXMLHTTP.responseText != "empty") {
			goDOM.setInnerHTML("cartcontentextended", aoXMLHTTP.responseText);
		}
		else {
			goDOM.setInnerHTML("mainTextTas", "<h2 class='winkelTasLeeg rond'>De winkeltas is leeg.</h2>");
			goDOM.setInnerHTML("cartcontentextended", "");
		}
	}
}

//======================== Start EndOrder-functions ===============================
function confirmOrder() {
	var lsarrFields = new Array("betaalmethode");
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=ConfirmOrder", confirmOrderResponse);
	
	function confirmOrderResponse(aoXMLHTTP) {
		var lsResponse = aoXMLHTTP.responseText;
		if (lsResponse.substring(0,3) == "var") {
			eval(lsResponse);
			location.href = lsURL;
		}
		else {
			location.href = "betaalmethode.asp";
		}
	}
}

function closeOrder(asExtraParam) {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=CloseOrder" + asExtraParam, closeOrderResponse);
	
	function closeOrderResponse(aoXMLHTTP) {
		//do nothing, not needed because /winkeltas/service.asp already updated order-record and abandonned session.
	}
}

function updateiDealStatus(asStatus) {
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=UpdateiDealStatus&status=" + asStatus, updateiDealStatusResponse);
	
	function updateiDealStatusResponse(aoXMLHTTP) {
		//do nothing, not needed because /winkeltas/service.asp already updated order-record etc...
	}
}

function sendBankData(asURL) {
	var lsarrFields = new Array("rekeninghouder","adres","woonplaats","bankgiro");
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=SendBankData&" + goGENFUNC.makePostString(lsarrFields), sendBankDataResponse);
	
	function sendBankDataResponse(aoXMLHTTP) {
		var lsResponse = aoXMLHTTP.responseText;
		var lsErrors = "";
		if (lsResponse == "OK") { //Gegevens juist gevalideerd
			window.location = asURL
		}
		else { //Fouten gevonden
			var lsarrErrors = lsResponse.split("#NEXT#");
			var i;
			var lsarrError;
			lsErrors = "";
			for (i=0;i<lsarrErrors.length;i++) {
				lsarrError = lsarrErrors[i].split("#SPLIT#");
				try {
					document.getElementById(lsarrError[0]).className += "actief";
					if (lsarrError[1] != "") {
						lsErrors += "<li>" + lsarrError[1] + "</li>";
					}
				} catch (e) {}
			}
		}
		if (lsErrors != "") {
			lsErrors = "<h3>Oeps, dat gaat nog niet helemaal goed, de volgende velden, met rode randen, zijn niet (goed) ingevuld</h3><p>Vul alsjeblieft deze velden (goed) in, dan kunnen wij ervoor zorgen dat je bestelling verder goed komt.</p><ul>" + lsErrors + "</ul>";
			goDOM.setInnerHTML("error",lsErrors);
			//window.scroll(0,450);
		}
	}
}

//======================== Start Contactform-functions ============================
function sendContactData() {
	var lsarrFields = new Array("naam","email","vraagInput","bedrijfsnaam","telefoon");
	goAsyncHTTP.httpRequest("/winkeltas/service.asp", "type=SendContactData&" + goGENFUNC.makePostString(lsarrFields), sendContactDataResponse);
	
	function sendContactDataResponse(aoXMLHTTP) {
		var lsResponse = aoXMLHTTP.responseText;
		var lsErrors = "";
		if (lsResponse == "OK") { //Gegevens juist gevalideerd
			goDOM.hideElement("contactForm");
			goDOM.hideElement("error");
			goDOM.unHideElement("serverResponse");
		}
		else { //Fouten gevonden
			var lsarrErrors = lsResponse.split("#NEXT#");
			var i;
			var lsarrError;
			lsErrors = "";
			for (i=0;i<lsarrErrors.length;i++) {
				lsarrError = lsarrErrors[i].split("#SPLIT#");
				try {
					document.getElementById(lsarrError[0]).className += "actief";
					if (lsarrError[1] != "") {
						lsErrors += "<li>" + lsarrError[1] + "</li>";
					}
				} catch (e) {}
			}
		}
		if (lsErrors != "") {
			lsErrors = "<h3>Oeps, dat gaat nog niet helemaal goed, de volgende velden, met rode randen, zijn niet (goed) ingevuld</h3><p>Vul alsjeblieft deze velden (goed) in, dan kunnen wij ervoor zorgen dat je e-mail bij ons aankomt.</p><ul>" + lsErrors + "</ul>";
			goDOM.setInnerHTML("error",lsErrors);
			//window.scroll(0,450);
		}
	}
}

//======================== Start Misc-functions ===================================
function setValue(aiID, asValue) {
	var loObj = document.getElementById(aiID)
	if (loObj) {
		loObj.value = asValue;
	}
	else {
		alert(aiID);
	}
}

function setRadio(aiID, asValue) {
	var loObj = document.getElementById(aiID);
	if (loObj) {
		if (asValue == loObj.value) {
			loObj.checked = true;
			if (loObj.onchange) {
				loObj.onchange();
			}
		}
	}
}

function setSelect(aiID, asValue) {
	var loObj = document.getElementById(aiID);
	if (loObj) {
		var i;
		for (i=0;i<loObj.options.length;i++) {
			if (loObj.options[i].value == asValue) {
				loObj.selectedIndex = i;
				break;
			}
		}
	}
}


