/**
* project:    Thio Pharma • HerhaalOpTijd
* module:     SSL • EcmaScript interface functies
* versie:     5.8.1
* datum:      020809
*/

var httpsBase, httpAdmin, strRef, strButtonClicked;
var localhost;
var objGs;
var arrButtons;

function init() {
    var strUrl, strHTMLbutton;
    var objHornavTop, objHornavRightTop;
    var objVertNav, objContent, objVertNavRight;
    var objHornavLeftBot, objHornavBot, objHornavRightBot, objHornavBotIcons;
    var objElement, objAttribute;
    var objList;

    localhost = ((window.location.hostname == "localhost") || (window.location.hostname == "localhost-pseudossl")) ? true : false;
    httpHot = localhost ? "http://localhost/herhaaloptijd" : "http://www.herhaaloptijd.nl";
    httpsBase = localhost ? "http://localhost-pseudossl/herhaaloptijd/_herhaalo_ssl" : "https://herhaaloptijd-nl.ssl.eatserver.nl";
    httpAdmin = localhost ? "http://localhost/herhaaloptijd/admin" : "http://admin.herhaaloptijd.nl";
    objGs = initUtils("", "");
    strButtonClicked = "";
    arrButtons = document.getElementsByName("vertnavbutton");
    objContent = document.getElementById("content");
    objVertNav = document.getElementById("vertnavleft");

    // INITIEER INTERFACE
    strRef = "hot";
    objHornavTop = document.getElementById("hornavtop");
    objHornavRightTop = document.getElementById("hornavtop_right");
    objVertNavRight = document.getElementById("vertnavright");
    objHornavLeftBot = document.getElementById("hornavbot_left");
    objHornavBot = document.getElementById("hornavbot_back");
    objHornavBotIcons = document.getElementById("hornavbot");
    objHornavRightBot = document.getElementById("hornavbot_right");
    objContent.style.width = (document.body.clientWidth - objVertNav.offsetWidth - objVertNavRight.offsetWidth - 20) + "px";
    if (objContent.offsetHeight < (document.body.clientHeight - objContent.offsetTop)) {
        objContent.style.height = (document.body.clientHeight - objContent.offsetTop - objHornavBot.offsetHeight) + "px";
    }
    objHornavTop.style.width = objContent.offsetWidth + "px";
    objHornavRightTop.style.left = ((objVertNav.offsetWidth) + (objContent.offsetWidth - objHornavRightTop.offsetWidth) + 21) + "px";
    objVertNav.style.height = ((objContent.offsetHeight + objHornavBot.offsetHeight) - 5) + "px";
    objVertNavRight.style.height = ((objContent.offsetHeight + objHornavBot.offsetHeight) - 5) + "px";
    objVertNavRight.style.left = (document.body.clientWidth - objVertNavRight.offsetWidth) + "px";
    objVertNavRight.style.visibility = "visible";
    objHornavLeftBot.style.top = (objContent.offsetTop + objContent.offsetHeight) + "px";
    objHornavLeftBot.style.visibility = "visible";
    objHornavBot.style.top = (objContent.offsetTop + objContent.offsetHeight) + "px";
    objHornavBot.style.width = (objContent.offsetWidth + 20) + "px";
    objHornavBot.style.visibility = "visible";
    objHornavBotIcons.style.top = (objContent.offsetTop + objContent.offsetHeight + 25) + "px";
    objHornavBotIcons.style.left = (objVertNav.offsetWidth + (objContent.offsetWidth - objHornavBotIcons.offsetWidth - 50)) + "px";
    objHornavBotIcons.style.visibility = "visible";
    objHornavRightBot.style.top = (objContent.offsetTop + objContent.offsetHeight) + "px";
    objHornavRightBot.style.left = (document.body.clientWidth - objVertNavRight.offsetWidth) + "px";
    objHornavRightBot.style.visibility = "visible";
    objGs.event.catchEvent("keydown", keyDownEventHandler);
    objGs.event.catchEvent("keyup", keyUpEventHandler);
    document.body.style.visibility = "visible";
    objList = document.getElementsByTagName("form");
    if (objList.length == 1) {
        switch (objList[0].attributes["id"].value) {
            case "form_per" :
                copyAddress(document.getElementById("woonadreskopie"));
                if (document.getElementById("huisarts_id").selectedIndex) {
                    objElement = document.getElementById("huisarts_naam");
                    objAttribute = document.createAttribute("readonly");
                    objAttribute.value = "readonly";
                    objElement.setAttributeNode(objAttribute);
                }
                document.getElementById("voorletters").focus();
            break;
            case "form_med_input" :
                //document.getElementById("omschrijving").focus();
            break;
            case "form_login" :
                document.getElementById("login_email").focus();
            break;
            case "form_conditions" :
                objElement = document.getElementById("button_conditions");
                objAttribute = document.createAttribute("disabled");
                objAttribute.value = "disabled";
                objElement.setAttributeNode(objAttribute);
            break;
            case "form_contact" :
                document.getElementById("contact_naam").focus();
            break;
            case "form_wachtwoord" :
                if (document.getElementById("zoekmodus_bsn").checked) {
                    document.getElementById("login_wachtwoord_bsn").focus();
                } else {
                    document.getElementById("login_wachtwoord_geboortedatum").focus();
                }
            break;
        }
    }
    if (objList.length > 1) {
        switch (objList[1].attributes["id"].value) {
            case "form_per" :
                copyAddress(document.getElementById("woonadreskopie"));
                if (document.getElementById("huisarts_id").selectedIndex) {
                    objElement = document.getElementById("huisarts_naam");
                    objAttribute = document.createAttribute("readonly");
                    objAttribute.value = "readonly";
                    objElement.setAttributeNode(objAttribute);
                }
                findGPs(document.getElementById("woonpc_4pp"), "GPexisting");
                document.getElementById("voorletters").focus();
            break;
            case "form_med" :
                //document.getElementById("omschrijving").focus();
            break;
            case "form_login_wijzig" :
                document.getElementById("wachtwoord1").focus();
            break;
        }
    }
    objGs.event.catchEvent("click", clickEventHandler);
    objGs.event.catchEvent("mousemove", mouseEventHandler);
}

function signoff(strDir) {
    
}

function mouseEventHandler(e) {
    var objSource;

    objGs.event.fire(e);
    objSource = objGs.event.source;
    if (objSource.attributes && objSource.attributes["class"]) {
        for (i = 0; i < arrButtons.length; i++) {
            arrButtons[i].attributes["class"].value = "vertnavbutton";
            arrButtons[i].parentNode.parentNode.attributes["class"].value = "vertnavbutton";
        }
        if (objSource.attributes["class"].value.indexOf("vertnavbutton") != -1) {
            switch (objSource.nodeName) {
                case "DIV" :
                    objSource.attributes["class"].value = "vertnavbutton_hover";
                    arrTemp = objSource.getElementsByTagName("a");
                    for (i = 0; i < arrTemp.length; i++) {
                        arrTemp[i].attributes["class"].value = "vertnavbutton_hover";
                    }
                break;
                case "H4" :
                    objSource.parentNode.attributes["class"].value = "vertnavbutton_hover";
                    if (objSource.firstChild.attributes) {
                        objSource.firstChild.attributes["class"].value = "vertnavbutton_hover";
                    }
                break;
                case "A" :
                    objSource.parentNode.parentNode.attributes["class"].value = "vertnavbutton_hover";
                    if (objSource.attributes) {
                        objSource.attributes["class"].value = "vertnavbutton_hover";
                    }
                break;
            }
        }
    }
}

function clickEventHandler(e) {
    var strHref = "";
    var arrTemp;
    var objSource, objForm;

    objGs.event.fire(e);
    objSource = objGs.event.source;
    if (objSource.attributes && objSource.attributes["class"]) {
        if (objSource.attributes["class"].value == "vertnavbutton") {
            switch (objSource.nodeName) {
                case "DIV" :
                    for (i = 0; i < objSource.childNodes.length; i++) {
                        if (objSource.childNodes[i].firstChild && objSource.childNodes[i].firstChild.attributes["href"]) {
                            strHref = objSource.childNodes[i].firstChild.attributes["href"].value;
                        }
                    }
                break;
                case "H4" :
                    if (objSource.firstChild.attributes["href"]) {
                        strHref = objSource.firstChild.attributes["href"].value;
                    }
                break;
            }
            if (strHref) {
                window.location.href = strHref;
            }
        }
        if (objSource.attributes["class"].value == "dossier_tab") {
            objForm = document.getElementById("form_tabdossierkeuze");
            arrTemp = objSource.id.split("_");
            objForm.login_dossier.value = arrTemp[2];
            objForm.submit();
        }
        if (objSource.attributes["alt"] && (objSource.parentNode.attributes["class"] && (objSource.parentNode.attributes["class"].value == "centreer"))) {
            objTemp = document.getElementById("a_" + objSource.attributes["alt"].value.toLowerCase());
            if (objTemp) {
                window.location.href = objTemp.attributes["href"].value;
            }
        }
        if (objSource.parentNode.id && objSource.parentNode.id == "holder_logo") {
            strUrl = (objGs.event.ctrl && objGs.event.alt) ? (httpAdmin + "/") : (httpHot + "/");
            objGs.event.release();
            window.location.href = strUrl;
        }
    }
}

function keyDownEventHandler(e) {
    objGs.event.key(e);
}

function keyUpEventHandler(e) {
    objGs.event.release();
}

function copyAddress(objCb) {
    var strAttrName;
    var objTemp, objAttribute;
    var arrFields = new Array("straat", "huisnr", "huisnr_ext", "pc_4pp", "pc_ext", "plaats");

    if (objCb.checked) {
        for (i = 0; i < arrFields.length; i++) {
            objTemp = document.getElementById("bezorg" + arrFields[i]);
            objTemp.value = document.getElementById("woon" + arrFields[i]).value;
            objAttribute = document.createAttribute("readonly");
            objAttribute.value = "readonly";
            objTemp.setAttributeNode(objAttribute);
        }
    } else {
        for (i = 0; i < arrFields.length; i++) {
            objTemp = document.getElementById("bezorg" + arrFields[i]);
            strAttrName = objGs.client.isMSIECompatible ? "readOnly" : "readonly";
            objTemp.removeAttribute(strAttrName);
            //objTemp.value = "";
        }
    }
}

function copyGP(objSo) {
    var strAttrName;
    var arrTemp;
    var objTarget, objAttribute;
    var objForm = objSo.form;

    strAttrName = objGs.client.isMSIECompatible ? "readOnly" : "readonly";
    if (objSo.selectedIndex && objSo.selectedIndex < objSo.length - 1) {
        objTarget = objForm.elements.huisarts_naam;
        objTarget.value = objSo.options[objSo.selectedIndex].text;
        objAttribute = document.createAttribute("readonly");
        objAttribute.value = "readonly";
        objTarget.setAttributeNode(objAttribute);
        objTarget = objForm.elements.huisarts_tel;
        arrTemp = objSo.options[objSo.selectedIndex].value.split(";");
        objTarget.value = arrTemp[1].split("=")[1];
        if (objTarget.value) {
            objAttribute = document.createAttribute("readonly");
            objAttribute.value = "readonly";
            objTarget.setAttributeNode(objAttribute);
        } else {
            objTarget.removeAttribute(strAttrName);
            objTarget.focus();
        }
    } else if (objSo.selectedIndex == objSo.length - 1) {
        objTarget = objForm.elements.huisarts_tel;
        objTarget.removeAttribute(strAttrName);
        objTarget.value = "";
        objTarget = objForm.elements.huisarts_naam;
        objTarget.removeAttribute(strAttrName);
        objTarget.value = "";
        if (objSo.options[objSo.selectedIndex].text.indexOf("ANDERS") != -1) {
            objTarget.focus();
        } else {
            document.getElementById("woonplaats").focus();
        }
    } else {
        objTarget = objForm.elements.huisarts_tel;
        objTarget.removeAttribute(strAttrName);
        objTarget.value = "";
        objTarget = objForm.elements.huisarts_naam;
        objTarget.removeAttribute(strAttrName);
        objTarget.value = "";
        objTarget.focus();
    }
}

function findGPs(io, noe) {
    var objInput, objAttribute;
    var input = io.value;
    var url = "../scripts/query2xml.php";
    var objForm = io.form;
    var objTarget = objForm.elements.huisarts_id;

    if (input.match(new RegExp("^\\d{4}$"))) {
        objInput = document.getElementById("woonplaats");
        objAttribute = document.createAttribute("readonly");
        objAttribute.value = "readonly";
        objInput.setAttributeNode(objAttribute);
        objAttribute = document.createAttribute("disabled");
        objAttribute.value = "disabled";
        objTarget.setAttributeNode(objAttribute);
        objTarget.options[0].text = "EVEN WACHTEN S.V.P.";
        objGs.dom.openA((url + "?pc=" + input), function(){
            objGs.dom.finalize();
            if (!objGs.dom.busyParsing) {
                objTarget.removeAttribute("disabled");
                handleQueryResponse(noe);
                objGs.dom.purge();
            }
        });
    }
}

function findArticle(so) {
    var input;
    var url = "../scripts/query2xml.php";
    var objForm = so.form;
    var objRadio;
    var objTarget = objForm.elements.aantal;

    if (so.selectedIndex) {
        objRadio = document.getElementById("levering_bezorgen");
        objRadio.checked = true;
        objRadio = document.getElementById("verlenger_apotheek");
        objRadio.checked = true;
        input = so.options[so.selectedIndex].value;
        objGs.dom.openA((url + "?artikelen__id=" + input), function(){
            objGs.dom.finalize();
            if (!objGs.dom.busyParsing) {
                handleQueryResponse("article");
                objGs.dom.purge();
            } else {
                objTarget.style.cursor = "wait";
            }
        });
    } else {
        for (i = 0; i < objForm.length; i++) {
            switch (objForm.elements[i].type) {
                case "text" :
                    objForm.elements[i].value = "";
                break;
                case "checkbox" :
                case "radio" :
                    objForm.elements[i].checked = false;
                break;
                case "select-one" :
                    objForm.elements[i].selectedIndex = 0;
                break;
            }
        }
    }
}

function handleQueryResponse(strM) {
    var i;
    var strTemp, strAttrName;
    var objInput, objSelect, objOption;
    var objAttribute, objNodeList;
    var objForm = document.getElementById("form_per");

    switch (strM) {
        case "GPnew" :
            //!!! select-object genereren indien huisartsen gevonden !!!
            objInput = document.getElementById("woonplaats");
            objInput.style.cursor = "default";
            objSelect = document.getElementById("huisarts_id");
            if (objGs.dom.documentElement) {
                strTemp = objGs.dom.getNodeValueByName(null, "woonplaats");
                if (!strTemp) {
                    objSelect.options[0].innerHTML = "&#160;";
                    strAttrName = objGs.client.isMSIECompatible ? "readOnly" : "readonly";
                    objInput.value = "";
                    objInput.removeAttribute(strAttrName);
                } else if (strTemp != objInput.value) {
                    objForm.elements.huisarts_naam.value = "";
                    objForm.elements.huisarts_tel.value = "";
                    objInput.value = strTemp;
                    copyAddress(document.getElementById("woonadreskopie"));
                    while (objSelect.length > 1) {
                        objSelect.options[objSelect.length - 1] = null;
                    }
                    objSelect.options[0].text = "KIES HUISARTS IN UW WOONPLAATS";
                    objNodeList = objGs.dom.documentElement.getElementsByTagName("row");
                    if (objNodeList.length) {
                        for (i = 0; i < objNodeList.length; i++) {
                            objOption = new Option();
                            objOption.value  = "huisarts_id=";
                            objOption.value += objGs.dom.getNodeValueByName(objNodeList.item(i), "id") + ";";
                            objOption.value += "huisarts_tel=";
                            objOption.value += objGs.dom.getNodeValueByName(objNodeList.item(i), "telefoon");
                            objOption.text = objGs.dom.getNodeValueByName(objNodeList.item(i), "naam");
                            objSelect.options[objSelect.length] = objOption;
                        }
                        objOption = new Option();
                        objOption.text = "ANDERS...";
                        objOption.value = "0";
                        objSelect.options[objSelect.length] = objOption;
                    } else {
                        objSelect.options[0].innerHTML = "&#160;";
                    }
                } else {
                    objSelect.options[0].innerHTML = "&#160;";
                }
            } else {
                objSelect.options[0].text = "ERROR";
                alert(objGs.dom.parseError);
            }
        break;
        case "GPexisting" :
            objSelect = document.getElementById("huisarts_id");
            if (objGs.dom.documentElement) {
                objSelect.options[0].text = "KIES HUISARTS IN UW WOONPLAATS";
                objNodeList = objGs.dom.documentElement.getElementsByTagName("row");
                if (objNodeList.length) {
                    for (i = 0; i < objNodeList.length; i++) {
                        objOption = new Option();
                        objOption.value  = "huisarts_id=";
                        objOption.value += objGs.dom.getNodeValueByName(objNodeList.item(i), "id") + ";";
                        objOption.value += "huisarts_tel=";
                        objOption.value += objGs.dom.getNodeValueByName(objNodeList.item(i), "telefoon");
                        objOption.text = objGs.dom.getNodeValueByName(objNodeList.item(i), "naam");
                        objSelect.options[objSelect.length] = objOption;
                    }
                } else {
                    objSelect.options[0].innerHTML = "&#160;";
                }
            }
        break;
        case "article" :
            objInput = document.getElementById("aantal");
            objInput.style.cursor = "default";
            if (objGs.dom.documentElement) {
                if (strTemp = objGs.dom.getNodeValueByName(null, "KNMP")) {
                    strTemp = objGs.dom.getNodeValueByName(null, "aantal");
                    objInput.value = (strTemp != "0") ? strTemp : "";
                    objSelect = document.getElementById("maateenheden__id");
                    objSelect.selectedIndex = parseInt(objGs.dom.getNodeValueByName(null, "maateenheden__id"));
                    objRadio = document.getElementById("levering_afhalen");
                    objRadio.click();
                    if (!parseInt(objGs.dom.getNodeValueByName(null, "herhaalbaar"))) {
                        objRadio = document.getElementById("verlenger_client");
                        objRadio.click();
                        objRadio = document.getElementById("verlenger_apotheek");
                        objAttribute = document.createAttribute("disabled");
                        objAttribute.value = "disabled";
                        objRadio.setAttributeNode(objAttribute);
                        objElement = document.getElementById("label_verlenger_apotheek");
                        objAttribute = document.createAttribute("class");
                        objAttribute.value = "disabled";
                        objElement.setAttributeNode(objAttribute);
                        window.alert("Raadpleeg uw huisarts om het recept van dit artikel te herhalen!");
                    } else {
                        objRadio = document.getElementById("verlenger_apotheek");
                        objRadio.removeAttribute("disabled");
                        objElement = document.getElementById("label_verlenger_apotheek");
                        objElement.removeAttribute("class");
                        objRadio = document.getElementById("verlenger_apotheek");
                        objRadio.click();
                    }
                    if (objInput.value) {
                        objInput = document.getElementById("gebruik");
                    }
                    objInput.focus();
                }
            } else {
                //objInput.value = "ERROR";
                //alert(objGs.dom.parseError);
            }
        break;
    }
    objGs.dom.purge();
}

function setConditionsRead(cbo) {
    var objElement;

    if (cbo.checked) {
        objElement = document.getElementById("button_conditions");
        objElement.removeAttribute("disabled");
    }
}

function printPage() {
    window.print();
}

function checkForm(fo) {
    var counter;
    var boolReturn = true;

    switch (fo.attributes["id"].value) {
        case "form_contact" :
            if (!fo.contact_naam.value && !fo.contact_email.value && !fo.contact_bericht.value) {
                fo.contact_naam.focus();
                boolReturn = false;
            }
        break;
        case "form_login" :
            if (!fo.login_email.value && !fo.login_wachtwoord.value) {
                fo.login_email.focus();
                boolReturn = false;
            }
        break;
        case "form_wachtwoord" :
            if (document.getElementById("zoekmodus_bsn").checked) {
                if (!fo.login_wachtwoord_bsn.value) {
                    fo.login_wachtwoord_bsn.focus();
                    boolReturn = false;
                }
            } else {
                if (!fo.login_wachtwoord_geboortedatum.value && !fo.login_wachtwoord_pc4pp.value && !fo.login_wachtwoord_pcext.value) {
                    fo.login_wachtwoord_geboortedatum.focus();
                    boolReturn = false;
                }
            }
        break;
        case "form_med" :
            if (fo.row_edit.length) {
                boolReturn = false;
                counter = 0;
                while (!boolReturn && counter < fo.row_edit.length) {
                    boolReturn = fo.row_edit[counter].checked;
                    counter++;
                }
            } else {
                boolReturn = fo.row_edit.checked;
            }
            if (!boolReturn) {
                window.alert("Selecteer s.v.p. een recept.");
            }
        break;
        case "form_med_input" :
            switch (strButtonClicked) {
                case "Voeg toe" :
                    if (!fo.artikelen__id.selectedIndex && !fo.verloopdatum.value) {
                        boolReturn = false;
                    }
                break;
                case "Verwijder" :
                    boolReturn = window.confirm("Weet u zeker dat u het geselecteerde recept wilt verwijderen?");
                break;
            }
        break;
    }

    return boolReturn;
}

function showCalender(feo) {
    //objCalender = document.createElement("div");
    //objCalender.id = "calenderPopUp";
}

function sendPresc(io) {
    var objForm = io.form;

    if (objForm.attributes["id"].value == "form_med") {
        objForm.submit();
    }
}

function setSendPasswordMode(ro) {
    var objElement, objAttribute;

    switch (ro.value) {
        case "pc" :
            objElement = document.getElementById("label_login_wachtwoord_bsn");
            objElement.setAttribute("class", "disabled");
            objElement = document.getElementById("login_wachtwoord_bsn");
            objAttribute = document.createAttribute("disabled");
            objAttribute.value = "disabled";
            objElement.setAttributeNode(objAttribute);
            objElement = document.getElementById("label_login_wachtwoord_geboortedatum");
            objElement.setAttribute("class", "");
            objElement = document.getElementById("login_wachtwoord_datpat");
            objElement.setAttribute("class", "");
            objElement = document.getElementById("login_wachtwoord_geboortedatum");
            objElement.removeAttribute("disabled");
            objElement.focus();
            objElement = document.getElementById("label_login_wachtwoord_postcode");
            objElement.setAttribute("class", "");
            objElement = document.getElementById("login_wachtwoord_pc4pp");
            objElement.removeAttribute("disabled");
            objElement = document.getElementById("login_wachtwoord_pcext");
            objElement.removeAttribute("disabled");
        break;
        case "bsn" :
            objElement = document.getElementById("label_login_wachtwoord_geboortedatum");
            objElement.setAttribute("class", "disabled");
            objElement = document.getElementById("login_wachtwoord_geboortedatum");
            objAttribute = document.createAttribute("disabled");
            objAttribute.value = "disabled";
            objElement.setAttributeNode(objAttribute);
            objElement = document.getElementById("login_wachtwoord_datpat");
            objElement.setAttribute("class", "disabled");
            objElement = document.getElementById("label_login_wachtwoord_postcode");
            objElement.setAttribute("class", "disabled");
            objElement = document.getElementById("login_wachtwoord_pc4pp");
            objAttribute = document.createAttribute("disabled");
            objAttribute.value = "disabled";
            objElement.setAttributeNode(objAttribute);
            objElement = document.getElementById("login_wachtwoord_pcext");
            objAttribute = document.createAttribute("disabled");
            objAttribute.value = "disabled";
            objElement.setAttributeNode(objAttribute);
            objElement = document.getElementById("label_login_wachtwoord_bsn");
            objElement.setAttribute("class", "");
            objElement = document.getElementById("login_wachtwoord_bsn");
            objElement.removeAttribute("disabled");
            objElement.focus();
        break;
    }
}

