﻿//EERSTE CLIENT SIDE METHODE DIE WORDT UITEGEVOERD ALS DE PAGINA GELADEN IS.
function initialize() {

    BuildSubMenu(null, null);
    BuildHMenu(null, 'HMENU');
    
    GetHorizontalMenuXML();

    var AjaxCont = document.getElementById("AjaxContent");
    AjaxCont.style.minHeight = screen.availHeight - window.screenTop + "px";

}



function test() {
 
}


function GetTopMenuXML() {

}



function BuildTopMenu(response) {

}

function GetSubMenuXML(Parent) {
    //call to build submenu depending on main category
    CallServerSubMenu("subMenu," + Parent, "VMENU");
}


function BuildSiteMap(response) {
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(response);
    xmlDoc.setProperty("SelectionLanguage", "XPath");

    var SubCategories = xmlDoc.getElementsByTagName("Table");

    //aanmaken van de root element    
    var divLeftMenu = document.getElementById("leftMenu");


    var ulElement = document.createElement("ul");
    ulElement.id = "siteMap";
    ulElement.setAttribute("class", "siteMap")
    divLeftMenu.appendChild(ulElement);


    //doorlopen van de xml om de boomstructuur in elkaar te zetten
    for (var i = 0; i < SubCategories.length; i++) {
        sNodeId = SubCategories[i].childNodes[1].text;
        sParentId = SubCategories[i].childNodes[2].text;
        sHtml = SubCategories[i].childNodes[7].text;
        sIcon = SubCategories[i].childNodes[10].text;

        var liCounter = 0;

        if (sParentId == "0") {
            var rootElement = document.getElementById("siteMap");

            ulElement = document.createElement("ul");
            ulElement.id = "n" + sNodeId;

            var hrefElement = document.createElement("a");
            hrefElement.setAttribute("href", "javascript:TreeNavigate('" + SubCategories[i].childNodes[4].text + "'," + "'" + SubCategories[i].childNodes[3].text + "');");
            hrefElement.appendChild(document.createTextNode(SubCategories[i].childNodes[7].text));
            ulElement.appendChild(hrefElement);
            rootElement.appendChild(ulElement);


            //insert link for expanding the menu
            var hrefExpandElement = document.createElement("a");
            hrefExpandElement.setAttribute("href", "javascript:TreeNavigate('" + SubCategories[i].childNodes[4].text + "'," + "'" + SubCategories[i].childNodes[3].text + "');");
            var hrefSpanElement = document.createElement("SPAN");
            hrefSpanElement.setAttribute("class", "ExpandSiteMap");
            hrefSpanElement.appendChild(document.createTextNode("Meer"));
            hrefExpandElement.appendChild(hrefSpanElement);
            rootElement.appendChild(hrefExpandElement);

            //insert 2 linebreaks
            brElement = document.createElement("HR");
            rootElement.appendChild(brElement);

        }
        else {
            var parentElement = document.getElementById("n" + sParentId);

            var ulElementChild = document.createElement("ul");
            ulElementChild.id = "n" + sParentId;
            parentElement.appendChild(ulElementChild);

            var childCount = parentElement.getElementsByTagName('LI').length;

            if (childCount < 2) {
                var liElement = document.createElement("li");
                liElement.id = "n" + sNodeId;

                hrefElement = document.createElement("a");
                hrefElement.setAttribute("href", "javascript:TreeNavigate('" + SubCategories[i].childNodes[4].text + "'," + "'" + SubCategories[i].childNodes[1].text + "');");
                hrefElement.appendChild(document.createTextNode(SubCategories[i].childNodes[7].text));
                liElement.appendChild(hrefElement);

                ulElementChild.appendChild(liElement);
            }
        }
    }
}



//deze moet blijven!
function BuildSubMenu(response, context) {

    BuildHMenu.sitemapstyler = function() {
        var sitemap = document.getElementById("treeMenu");
        if (sitemap) {

            this.listItem = function(li) {

            
                if (li.getElementsByTagName("ul").length > 0) {
                    var ul = li.getElementsByTagName("ul")[0];
                    ul.style.display = "block";
                    var span = document.createElement("span");
                    span.className = "expanded";
                    span.onclick = function() {
                        ul.style.display = (ul.style.display == "none") ? "block" : "none";
                        this.className = (ul.style.display == "none") ? "collapsed" : "expanded";
                    };
                    li.appendChild(span);
                };
            };

            var items = sitemap.getElementsByTagName("li");
            for (var i = 0; i < items.length; i++) {
                this.listItem(items[i]);
            };


        };
    };


    BuildHMenu.sitemapstyler();
    
    var HMENU = document.getElementById("HMENU");
    HMENU.style.visibility = "visible";
   
    
}

//build up the horizontal menu
function GetHorizontalMenuXML() {
    //CallServerHMenu("HMenu,HMENU", "HMENU");

}

function BuildHMenu(response, context) {

    if (context == "HMENU") {

        var divMainStrip = document.getElementById("ctl00_mainStrip");

        //divMainStrip.innerHTML = divMainStrip.innerHTML + response;
        var ulTags = divMainStrip.getElementsByTagName("ul");
        
        if (ulTags.length > 0) {
            ulTags[0].className = "HMenu";
            ulTags[0].id = "HMenu";
        }
    }

    if (context == "VMENU") {

        var divLeftMenu = document.getElementById("leftMenu");

        if (document.getElementById("divSubMenuExtraMenus") == null) {
            var divSubMenuExtraMenus = document.createElement("divSubMenuExtraMenus");
            divSubMenuExtraMenus.id = "divSubMenuExtraMenus";
            divSubMenuExtraMenus.className = "divSubMenuExtraMenus";
            divLeftMenu.appendChild(divSubMenuExtraMenus);
            divSubMenuExtraMenus.innerHTML = divSubMenuExtraMenus.innerHTML + response;
        }
        else
            divSubMenuExtraMenus.innerHTML = response;
    }


}
//end


function TabNavigate(PageFile, Parent) {
    //eerst bestaand boomstructuur verwijderen
    clearTree();

    GetSubMenuXML(Parent);

    //loadPage(PageFile, Parent); 
    CallServerGetPage("getPage," + PageFile + "," + Parent, "");
}


//als er mbv het tree menu wordt genavigeerd
function TreeNavigate(PageFile, Parent) {
    CallServerGetPage("getPageTest," + PageFile + "," + Parent, "");
}
var respstr = "";
function GetServerPage(response, context) {
    var divAjaxContent = document.getElementById("AjaxContent");
    respstr = response;
    AjaxContent.innerHTML = respstr;
    //document.write(response);
    //alert(response);


}
//einde


//als er een doorlink via een contentpagina plaatsvindt
function ContentPageNavigate(PageFile, Context) {
    CallServerGetPage("getContentPage," + PageFile, Context);
}
//einde


//add items to cart then update the cart presentation on client page
function AddToCart(PageFile, Context) {
    CallServerGetPage("getContentPage," + PageFile, Context);

    CallServerGetCartData("GetCartData", "GetCartData");

}

function GetCartDataResponse(response, context) {

    if (context == "GetCartData") {

        var r = response.toString().split("|");

        var lblTotalItemsFront = document.getElementById('lblTotalItemsFront');
        lblTotalItemsFront.innerHTML = r[0];

        var lblTotalPriceFront = document.getElementById('lblTotalPriceFront');
        lblTotalPriceFront.innerHTML = r[1];
    }

}
//end

function clearTree() {
    var divLeftMenu = document.getElementById("leftMenu");
    if (divLeftMenu.hasChildNodes()) {
        while (divLeftMenu.childNodes.length >= 1) {
            divLeftMenu.removeChild(divLeftMenu.firstChild);
        }
    }
}

function loadPage(PageFile, CategoryParentID) {
    document.getElementById("mainContent").src = PageFile + "?HCAT=" + CategoryParentID;
}

function loadContentPage(PageFile) {

    document.getElementById("mainContent").src = PageFile;
}





//CART LOGIC
function updateCart(e) {

    CallServerMethod("updateCart," + e.value, "updateCart");

    CallServerGetCartData("GetCartData", "GetCartData");

    ContentPageNavigate('ShoppingCart.aspx');


}


//deze functie moet blijven!
function AddToProductOptions(productnumber, val, type) {

    if (type == 'Warranty')
        CallServerMethod("AddToProductOptions," + productnumber + "|" + val + "|" + type + "|" + "Warranty", "Warranty");



    if (type == 'Services') {
        CallServerMethod("AddToProductOptions," + productnumber + "|" + val + "|" + type + "|" + "Services", "Services");
    }


    if (type == 'RelatedProduct') {
        CallServerMethod("AddToProductOptions," + productnumber + "|" + val + "|" + type + "|" + "RelatedProduct", "RelatedProduct");
    }    

}
///////////////////////////////



function deleteItemFromCart(e) {
    CallServerMethod("deleteItemFromCart," + e, "deleteItem");
    window.location.href = "ShoppingCart.aspx";

}

function ServerMethodResponse(response, context) {
    if (context == "test") {

        var divAjaxContent = document.getElementById("AjaxContent");
        respstr = response;
        AjaxContent.innerHTML = respstr;

    }

    if (context == "logout") {

        var divAccount = document.getElementById('Account');
        divAccount.style.visibility = "hidden";

        var divLogin = document.getElementById('Login');
        divLogin.style.visibility = "visible";
    }


}
//


function Login(from) {

    if (from == 'Checkout') {
        var tbEmail = document.getElementById('tbEmail').value;
        var tbPassw = document.getElementById('tbPassw').value;
    }
    else {
        var tbEmail = document.getElementById('tbEmailFront').value;
        var tbPassw = document.getElementById('tbPasswFront').value;

    }
    CallServerLogin("Login," + tbEmail + "," + tbPassw + "," + from, from);
}


function LoginResponse(response, context) {

    if (response == "False")
        alert("E-mail of wachtwoord onjuist!");

    else {
        var from = context;

        if (from == 'Checkout') {
            var divAccount = document.getElementById('Account');
            divAccount.style.visibility = "visible";

            var divLogin = document.getElementById('Login');
            divLogin.style.visibility = "hidden";

            var divAjaxContent = document.getElementById("AjaxContent");
            respstr = response;
            AjaxContent.innerHTML = respstr;
        }

        if (from == 'Front') {
            var divAccount = document.getElementById('Account');
            divAccount.style.visibility = "visible";

            var divLogin = document.getElementById('Login');
            divLogin.style.visibility = "hidden";

            var AccountWelcome = document.getElementById('AccountWelcome');
            AccountWelcome.innerText = response;

        }

    }
}

function Logout() {

    CallServerMethod("logout,", "logout");
}




function RequestPassword() {
    var tbEmail = document.getElementById('tbEmailRequest').value;

    CallServerRequestPassword("RequestPassword," + tbEmail, "");

}
function RequestPasswordResponse(response) {


    var lbMelding = document.getElementById('lbRequestPwMelding');
    lbMelding.innerText = response;

}


// thumb image creator
function SetImg(element) {
    document.getElementById('ctl00_MainContentHolder_dl_ProductDetail_ctl00_imgProductPicture').src = element.src;
}


//TODO:deze control dynamisch maken
//controlling the behaviour of the mimiced tabcontrol
function TabSwitch(SwitchTo) {
    var t1 = document.getElementById('t1');
    var t2 = document.getElementById('t2');

    if (SwitchTo == "t1") {
        t1.style.visibility = "visible";
        t2.style.visibility = "hidden";
    }
    if (SwitchTo == "t2") {
        t2.style.visibility = "visible";
        t1.style.visibility = "hidden";
    }
}






