﻿//This js file is specific for Microsoft browser functions

//menu variables
//worden in code behind gegenereerd en in pagina geladen

var tab_clicked = null;

function Tab_FindAll() {
    var realId = 'menubar';
    var menu = document.getElementById(realId);
    var menuItems = Array();
    for (var i = 0; i < menu.childNodes.length; i++) {
        menuItems.push(menu.childNodes.item(i));
    }
    return menuItems;
}

function Tab_MouseOver(obj) {
    //als er een tab is geclicked
    if (tab_clicked) {
        //als de mouse over op de geclicked tab gaat
        if (Tab_Check(obj)) {
            //background zwart blijven
            //text wit blijven
        }
        else {
            //background zwart worden
            //text wit worden
            obj.style['backgroundImage'] = clickedurl;
            obj.firstChild.style.color = 'white';
        }
    }
    //als er geen tab is geclicked
    else {
        //background zwart worden
        //text wit worden
        obj.style['backgroundImage'] = clickedurl;
        obj.firstChild.style.color = 'white';
    }
}

function Tab_MouseOut(obj) {
    //als er een tab is geclicked
    if (tab_clicked) {
        //als de mouse uit de geclicked tab gaat
        if (Tab_Check(obj)) {
            //background zwart blijven
            //text wit blijven
        }
        else {
            //background wit worden
            //text zwart worden
            obj.style['backgroundImage'] = nonclickedurl;
            obj.firstChild.style.color = 'black';
        }
    }
    //als er geen tab is geclicked
    else {
        //background wit worden
        //text zwart worden
        obj.style['backgroundImage'] = nonclickedurl;
        obj.firstChild.style.color = 'black';
    }
}

//tab click functie
function Tab_Click(obj) {
    if (obj) {
        var objEle = null;

        if (obj.parentElement.tagName.toLowerCase() == 'li') {
            objEle = obj.parentElement;
        }
        else if (obj.parentElement.parentElement.parentElement.tagName.toLowerCase() == 'li') {
            objEle = obj.parentElement.parentElement.parentElement;
        }

        if (objEle) {
            if (!tab_clicked) {
                //als er nog niet eerder geclicked is
                tab_clicked = objEle;
                //maak deze tab geclicked
                Tab_isClicked(objEle, false);
            }
            else if (!Tab_Check(objEle)) {
                //als geclicked tab niet de eerder geclicked tab is
                tab_clicked = objEle;
                //maak deze tab geclicked en de tab die geclicked was weer standaard
                Tab_isClicked(objEle, true);
            }
            else {
                //de geclicked tab is al de geclicked tab
                //gebeurt niets
            }
        }
    }
}

//maak tab geclicked (obj)
//check of er al geclicked is false = niet, true = wel (bool)
function Tab_isClicked(obj, bool) {
    if (obj) {
        var menuItems = Tab_FindAll();
        //wel geclicked
        if (bool) {

            //maak alle tabs standaard
            for (var i = 0; i < menuItems.length; i++) {
                if (obj.id.substring(2, 3) == menuItems[i].id.substring(2, 3)) {
                    menuItems[i].style['backgroundImage'] = clickedurl;
                    menuItems[i].firstChild.style.color = 'white';
                }
                else {
                    menuItems[i].style['backgroundImage'] = nonclickedurl;
                    menuItems[i].firstChild.style.color = 'black';
                }
            }
        }
        //niet geclicked
        else {
            for (var i = 0; i < menuItems.length; i++) {
                if (obj.id.substring(2, 3) == menuItems[i].id.substring(2, 3)) {
                    menuItems[i].style['backgroundImage'] = clickedurl;
                    menuItems[i].firstChild.style.color = 'white';
                }
            }
        }
    }
}

//helper functies
//check of tab al eerder geclicked is
function Tab_Check(obj) {
    if (obj) {
        if (tab_clicked == obj) {
            return true;
        }
        else {
            return false;
        }
    }
}

//breadcrumb tab finder
function FindTabBySelectedBreadcrumbItem() {
    if (!tab_clicked) {
        var breadElement;
        var breadCrumbItems = Array();
        var breadCrumbItemCount;
        var selectedCrumbItem;

        var breadcrumbID = getRealId('breadcrumb');

        if (breadcrumbID) {
            breadElement = document.getElementById(breadcrumbID);
        }
        if (breadElement) {
            breadCrumbItems = Breadcrumb_FindAll(breadElement);
            breadCrumbItemCount = breadCrumbItems.length;
        }

        if (breadCrumbItemCount > 0) {
            if (breadCrumbItemCount == 1) {
                //hoofd menu pagina
                var firstItem = breadCrumbItems[0];
                FindTabBySelectedBreadcrumbItemHref(firstItem);
            }
            else if (breadCrumbItemCount > 1) {
                //sub menu pagina
                var lastItem = breadCrumbItems[(breadCrumbItemCount - 1)];
                if (!FindTabBySelectedBreadcrumbItemHref(lastItem)) {
                    lastItem = breadCrumbItems[(breadCrumbItemCount - 2)];
                    if (!FindTabBySelectedBreadcrumbItemHref(lastItem)) {
                        lastItem = breadCrumbItems[(breadCrumbItemCount - 3)];
                        if (!FindTabBySelectedBreadcrumbItemHref(lastItem)) {
                            lastItem = breadCrumbItems[(breadCrumbItemCount - 4)];
                            FindTabBySelectedBreadcrumbItemHref(lastItem);
                        }
                    }
                }
            }
        }
    }
}

function FindTabBySelectedBreadcrumbItemHref(obj) {
    var hrefToFind = obj.href.toLowerCase();
    var tabs = Array();
    tabs = Tab_FindAll();
    var currentTabAnchor;
    var currentTab;

    for (var i = 0; i < tabs.length; i++) {
        currentTab = tabs[i];
        if (currentTab.childNodes.length > 0) {
            for (var j = 0; j < currentTab.childNodes.length; j++) {
                if (currentTab.childNodes.item(j).tagName) {
                    if (currentTab.childNodes.item(j).tagName.toLowerCase() == 'a') {
                        currentTabAnchor = currentTab.childNodes.item(j);
                        if (currentTabAnchor.href) {
                            if (currentTabAnchor.href.toLowerCase() == hrefToFind) {
                                break;
                            }
                            else {
                                currentTabAnchor = null;
                            }
                        }
                    }
                }
            }
        }
        if (currentTabAnchor && currentTab) {
            break;
        }
    }
    Tab_Click(currentTabAnchor);
    return currentTabAnchor;
}

function Breadcrumb_FindAll(obj) {
    var crumbItems = Array();
    for (var i = 0; i < obj.childNodes.length; i++) {
        if (obj.childNodes.item(i).tagName) {
            if (obj.childNodes.item(i).tagName.toLowerCase() == 'span') {
                var objSpan = obj.childNodes.item(i);
                for (var j = 0; j < objSpan.childNodes.length; j++) {
                    if (objSpan.childNodes.item(j).tagName) {
                        if (objSpan.childNodes.item(j).tagName.toLowerCase() == 'a') {
                            crumbItems.push(objSpan.childNodes.item(j));
                        }
                    }
                }
            }
        }
    }
    return crumbItems;
}
