﻿// JScript File


function addItem(prodid, aantalid) {
    var aantalfld = document.getElementById(aantalid);
    var url = "xmlhttp/DCMSaveRequestEx.aspx?dcmproc=Usr_SaveDataRecord_BasketRow&pid=" + prodid;

    if (aantalfld != null) {
        if (aantalfld.value != "") {
      	    url = url + "&cnt=" + aantalfld.value;
      	} else {
      	    url = url + "&cnt=1";
    	}
    } else {
  	    url = url + "&cnt=1";
    }

    var xmlhttp = mdlSaveData(url);
    xmlhttp.onreadystatechange=function() {
	    if (xmlhttp.readyState==4) {
	        var respons = xmlhttp.responseText;

	        if (respons == "0") {
	            window.alert("Er heeft zich een fout voorgedaan bij het opslaan van het artikel!");
	        } else {
		        DCMGetObject('69');
		        DCMGetObject('70');
		        DCMGetObject('93');
		        setTimeout("if (document.getElementById('obj70') != null) {document.getElementById('obj70').style.visibility='hidden'}", 4000);
	        }
        }
    }
    xmlhttp.send(null);
}

function deleteItem(prodid) {
    var url = "xmlhttp/DCMSaveRequestEx.aspx?dcmproc=Usr_DeleteDataRecord_BasketRow&pid=" + prodid;
    var xmlhttp = mdlSaveData(url);
    xmlhttp.onreadystatechange=function() {
	    if (xmlhttp.readyState==4) {
            if (document.getElementById("obj87") != null) {
                leesAantalInBasket();
	        }

	        var respons = xmlhttp.responseText;
	        if (respons == "0") {
	            window.alert("Er heeft zich een fout voorgedaan bij het opslaan van het artikel!");
	        } else if (respons.length > 1) {
	            var responsparts = respons.split(",");
	            var aantal = 0;
	            if (responsparts[1] != null) {
	                aantal = responsparts[1];
	            }
	            if (aantal > 0) {
	                if (document.getElementById("obj87") != null) {
		                DCMGetObject("87");
    		        }
	                if (document.getElementById("obj69") != null) {
    		            DCMGetObject("69");
    		        }
	                if (document.getElementById("obj93") != null) {
		                DCMGetObject("93");
    		        }
	                if (document.getElementById("obj94") != null) {
		                DCMGetObject("94");
    		        }
	            } else {
   		            hObj("69");
   		            hObj("87");
	                hObj("89");
	                hObj("90");
	                hObj("91");
	                if (document.getElementById("obj93") != null) {
		                DCMGetObject("93");
    		        }
	                if (document.getElementById("obj94") != null) {
		                DCMGetObject("94");
    		        }
	                if (document.getElementById("obj91") != null) {
		                DCMGetObject("96");
    		        }
	            }
	        }
        }
    }
    xmlhttp.send(null);
}

function leesLanden() {
    var fldLand = mdlGet("fldLand");
    
    if (fldLand != null) {
        var url = "xmlhttp/DCMReadUsr_data.aspx?proc=Usr_GetDataset_Landen"
        var xmlhttp = mdlReadData(url);
        xmlhttp.onreadystatechange=function() {
	        if (xmlhttp.readyState==4) {
	            var respons = xmlhttp.responseText;
	            if (respons == "0") {
	                window.alert("Er heeft zich een fout voorgedaan bij het inlezen van de landen!");
	            } else {
	                var records = respons.split("/;/");
	                for (var i=0; i<records.length; i++) {
	                    var rec = records[i].split("/=/");
	                    if (rec[1] != null) {
	                        var option = document.createElement("<option>");
	                        var optiontext = document.createTextNode(rec[1]);
	                        if (rec[1] == "NEDERLAND") {
	                            option.selected=true;
	                        }
	                        option.appendChild(optiontext);
	                        fldLand.appendChild(option);
	                    }
	                }
	                leesAantalInBasket();
	                fldLand.onchange = function() { leesAantalInBasket(); }
	            }
            }
        }
        xmlhttp.send(null);
    }
}

function cursorChange() {
	var checkField=mdlGet("fldAkkoord");
	if (checkField != null) {
		if (checkField.checked) {
			mdlGet("obj91").style.cursor = "pointer";
			mdlGet("obj91").onclick = function() { validateFields(); };
		} else {
			mdlGet("obj91").style.cursor = "not-allowed";
			mdlGet("obj91").onclick = null;
		}
	}
}

function leesAantalInBasket() {
    var vland = 'NEDERLAND';
    var fldLand = mdlGet("fldLand");
    
    if (fldLand != null) {
        vland = fldLand[fldLand.selectedIndex].text;
    }

    var url = "xmlhttp/DCMReadUsr_data.aspx?proc=Usr_GetDataset_AantalInBasket"
    var xmlhttp = mdlReadData(url);
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4) {
            var respons = xmlhttp.responseText;
            if (respons == "0") {
                window.alert("Er heeft zich een fout voorgedaan bij het lezen van het mandje!");
	        } else if (respons.length > 1) {
                var aantal = 0;
                var rec = respons.split("/=/");
                if (rec[1] != null) {
                    aantal = rec[1];
                }
	            if (aantal == 0) {
	                hObj("89");
	                hObj("90");
	                hObj("91");
	                DCMGetObject("96");
	            } else {
	                hObj("96");
	                sObj("89");
	                DCMGetObject("90");
	                DCMGetObject("91");
	                DCMGetObject("94", "@LandNaam=" + vland);
	            }
            }
        }
    }
    xmlhttp.send(null);
}


function validateFields() {
	var checkField=mdlGet("fldAkkoord");
	if (checkField != null) {
		if (checkField.checked == false) {
			return;
		}
	}
	var fldNaam = mdlGet("fldNaam");
	var fldAdres = mdlGet("fldAdres");
	var fldPostcode = mdlGet("fldPostcode");
	var fldPlaats = mdlGet("fldPlaats");
	var fldLand = mdlGet("fldLand");
	var fldEmail = mdlGet("fldEmail");
	var fldTelefoon = mdlGet("fldTelefoon");
	var fldOpmerkingen = mdlGet("fldOpmerkingen");
	var fldBetaalwijze = mdlGet("fldBetaalwijze");
	
	var fieldsok = true;
    
	if (fldNaam != null) {
	    if (fldNaam.value == "") {
	        fieldsok = false;
	        fldNaam.style.backgroundColor = "#fff65e";
	    } else {
	        fldNaam.style.backgroundColor = "white";
	    }
	} else {
	    window.alert("Er heeft zich een onverwachte fout voorgedaan.");
        return;
	}
	if (fldAdres != null) {
	    if (fldAdres.value == "") {
	        fieldsok = false;
	        fldAdres.style.backgroundColor = "#fff65e";
	    } else {
	        fldAdres.style.backgroundColor = "white";
	    }
	} else {
	    window.alert("Er heeft zich een onverwachte fout voorgedaan.");
        return;
	}
	if (fldPostcode != null) {
	    if (fldPostcode.value == "") {
	        fieldsok = false;
	        fldPostcode.style.backgroundColor = "#fff65e";
	    } else if (!checkZipcode(fldPostcode.value) && !checkZipcode1(fldPostcode.value)) {
	        fieldsok = false;
	        fldPostcode.style.backgroundColor = "#fff65e";
	    } else {
	        fldPostcode.style.backgroundColor = "white";
	    }
	} else {
	    window.alert("Er heeft zich een onverwachte fout voorgedaan.");
        return;
	}
	if (fldPlaats != null) {
	    if (fldPlaats.value == "") {
	        fieldsok = false;
	        fldPlaats.style.backgroundColor = "#fff65e";
	    } else {
	        fldPlaats.style.backgroundColor = "white";
	    }
	} else {
	    window.alert("Er heeft zich een onverwachte fout voorgedaan.");
        return;
	}
	if (fldEmail != null) {
	    if (fldEmail.value == "") {
	        fieldsok = false;
	        fldEmail.style.backgroundColor = "#fff65e";
	    } else if (!checkEmailAddress(fldEmail.value)) {
	        fieldsok = false;
	        fldEmail.style.backgroundColor = "#fff65e";
	    } else {
	        fldEmail.style.backgroundColor = "white";
	    }
	} else {
	    window.alert("Er heeft zich een onverwachte fout voorgedaan.");
        return;
	}
	if (fldTelefoon != null) {
	    if (fldTelefoon.value == "") {
	        fieldsok = false;
	        fldTelefoon.style.backgroundColor = "#fff65e";
        } else if (!mdlCheckInternationalPhone(fldTelefoon.value)) {
	        fieldsok = false;
	        fldTelefoon.style.backgroundColor = "#fff65e";
	    } else {
	        fldTelefoon.style.backgroundColor = "white";
	    }
	} else {
	    window.alert("Er heeft zich een onverwachte fout voorgedaan.");
        return;
	}
	
	if (fieldsok) {
        var url = "xmlhttp/DCMSaveRequestEx.aspx?dcmproc=Usr_SaveDatarecord_InternetOrder";
        url = url + "&vNaam=" + DCMescape(fldNaam.value);
        url = url + "&vAdres=" + DCMescape(fldAdres.value);
        url = url + "&vPostcode=" + DCMescape(fldPostcode.value);
        url = url + "&vPlaats=" + DCMescape(fldPlaats.value);
        url = url + "&vLand=" + DCMescape(fldLand[fldLand.selectedIndex].text);
        url = url + "&vEmail=" + DCMescape(fldEmail.value);
        url = url + "&vTelefoon=" + DCMescape(fldTelefoon.value);
        url = url + "&vOpmerkingen=" + DCMescape(fldOpmerkingen.value);
        url = url + "&vBetaalwijze=" + DCMescape(fldBetaalwijze[fldBetaalwijze.selectedIndex].text);

        var xmlhttp = mdlSaveData(url);
        xmlhttp.onreadystatechange=function() {
	        if (xmlhttp.readyState==4) {
	            var respons = xmlhttp.responseText;
	            if (respons == "0") {
	                window.alert("Er heeft zich een fout voorgedaan bij het opslaan van het artikel!");
	            } else {
	                var fields = respons.split(";");
	                var vOrderNr = -1;
	                var vOrderBedrag = -1;
	                var vBestellijst = "";
	                if (fields[1] != null) {
	                    vOrderNr = fields[1];
	                }
	                if (fields[2] != null) {
	                    vOrderBedrag = fields[2];
	                }
	                if (fields[3] != null) {
	                    vBestellijst = fields[3];
	                }
	                
	                sendConfirmation(3, vOrderNr, vOrderBedrag, fldEmail.value, fldNaam.value, fldAdres.value, fldPostcode.value,
	                                 fldPlaats.value, fldLand[fldLand.selectedIndex].text, fldTelefoon.value, fldOpmerkingen.value,
	                                 fldBetaalwijze[fldBetaalwijze.selectedIndex].text, vBestellijst);
	                sendConfirmation(6, vOrderNr, vOrderBedrag, fldEmail.value, fldNaam.value, fldAdres.value, fldPostcode.value,
	                                 fldPlaats.value, fldLand[fldLand.selectedIndex].text, fldTelefoon.value, fldOpmerkingen.value,
	                                 fldBetaalwijze[fldBetaalwijze.selectedIndex].text, vBestellijst);

	            }
            }
        }
        xmlhttp.send(null);
	}
}

function sendConfirmation(tplid, vOrderNr, vOrderBedrag, vEmail, vNaam, vAdres, vPostcode, vPlaats, vLand, vTelefoon, vOpmerking, vBetaalwijze, vBestellijst) {
    var doc;
    var xmlString = "<pagina><algemeen></algemeen></pagina>";

    if (document.implementation.createDocument) {
        var parser = new DOMParser()
        doc = parser.parseFromString(xmlString, "text/xml")
    // MSIE
    } else if (window.ActiveXObject) {
        doc = new ActiveXObject("Microsoft.XMLDOM")
        doc.async="false"
        doc.loadXML(xmlString)
    }
    var newNode;
    var namedNodeMap = doc.documentElement;

    newNode = doc.createElement("vOrderNr");
    newNode.text = vOrderNr;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vOrderBedrag");
    newNode.text = vOrderBedrag;
    namedNodeMap.childNodes.item(0).appendChild(newNode);
    
    newNode = doc.createElement("vBetaalwijze");
    newNode.text = vBetaalwijze;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vNaam");
    newNode.text = vNaam;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vAdres");
    newNode.text = vAdres;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vPostcode");
    newNode.text = vPostcode;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vPlaats");
    newNode.text = vPlaats;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vLand");
    newNode.text = vLand;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vTelefoon");
    newNode.text = vTelefoon;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vEmail");
    newNode.text = vEmail;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vOpmerkingen");
    newNode.text = vOpmerking;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    newNode = doc.createElement("vBestellijst");
    newNode.text = vBestellijst;
    namedNodeMap.childNodes.item(0).appendChild(newNode);

    var url = "xmlhttp/DCMSaveRequestEx.aspx?dcmmail=" + tplid + "&xml=1";
    var xmlhttp = mdlSaveData(url);
    xmlhttp.setRequestHeader('content-type', 'application/xml');
    xmlhttp.onreadystatechange=function() {
	    if (xmlhttp.readyState==4) {
            var respons = xmlhttp.responseText;
            if (respons == "0") {
                window.alert("Er heeft zich een fout voorgedaan bij het verzenden van de bevestiging!");
            } else {
                DCMGetObject('92', '@Ordernr=' + vOrderNr);
            }
	    }
    }
    xmlhttp.send(doc);
}

function checkEmailAddress(email) {
    var emailpattern = /^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/;
    if (emailpattern.test(email)) {
        return true;
    } else {
        return false;
    }
}

function updateZipcode() {
	var fldPostcode = mdlGet("fldPostcode");
	
	if (fldPostcode != null) {
	    fldPostcode.value = fldPostcode.value.toUpperCase();
	}
}

