﻿var isIE	= document.all;

// Javascript function that will return an array of elements based on DOM element, tag, and class name.
// For instance, getElementsByClassName(document, 'tr', 'INFO') will get all "tr" tags under the document node with the "INFO" class and return an array of them.
function getElementsByClassName(oElm, strTagName, strClassName)
{   var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
	
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if (strClassName!="")
        {  if(oRegExp.test(oElement.className)){
                arrReturnElements.push(oElement);
            }
        } else 
        {   arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

// Javascript function that will return an array of elements based on DOM element, tag 'input' and input type.
// For instance, getElementsByInputType(oElm, 'checkbox') will get all 'input' tags under the document node with the "checkbox" type and return an array of them.
function getElementsByInputType(oElm, strInputType)
{   var arrElements = (oElm.getElementsByTagName('input'));
    var arrReturnElements = new Array();

    for (var i=0; i<arrElements.length; i++)
    {   var oElement = arrElements[i];
        if (oElement.type==strInputType)
        {   arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements);
}

// in stylesheet wordt de border van input element gestyled.
// echter in IE wordt ook de border style bij input radio en input checkbox gestyled.
// Dit willen we niet. We overriden met deze functie de border.
// We kunnen niet handmatig de inline css classes aanpassen, omdat DotNetNuke ertussen zit.
function removeBorderFromInputRadioAndCheckbox()
{   var arrRadioElements = getElementsByInputType(document.getElementById('Body'),'radio');
//alert(arrRadioElements.length);
    for (var i=0; i<arrRadioElements.length; i++)
    {   var oElement = arrRadioElements[i];
        oElement.style.border = "none";
    }

    var arrCheckboxElements = getElementsByInputType(document.getElementById('Body'),'checkbox');
    for (var i=0; i<arrCheckboxElements.length; i++)
    {   var oElement = arrCheckboxElements[i];
        oElement.style.border = "none";
    }
}


// Input URL Get-variabele
// Output: Value van de Get-variabele
function GetVariable(key) {
    var s = location.search.match('(?:\\?|\&)' + key + '=([^\&]*)');
    return s ? unescape(s[1].replace(/\+/g, " ")) : false;
}


/* BEGIN - HOOFDMENU NAVIGATIE GERELATEERDE FUNCTIES */
var root = (jkRoot) ? jkRoot : '/joanknecht';
var navigatie = new Array(
    'header-navigatie-home',
    'header-navigatie-over-joanknecht',
    'header-navigatie-werken-met-joanknecht',
    'header-navigatie-bovenop-zaken',
    'header-navigatie-werken-bij-joanknecht');
var subnavigatie = new Array(
    'header-subnavigatie-home',
    'header-subnavigatie-over-joanknecht',
    'header-subnavigatie-werken-met-joanknecht',
    'header-subnavigatie-bovenop-zaken',
    'header-subnavigatie-werken-bij-joanknecht');
var linknavigatie = new Array(
    root + '/',
    root + '/Home/OverJoanknecht/tabid/62/Default.aspx',
    root + '/Home/WerkenmetJoanknecht/tabid/63/Default.aspx',
    root + '/Home/Bovenopzaken/tabid/64/Default.aspx',
    root + '/Home/WerkenbijJoanknecht/tabid/65/Default.aspx'
);

function ShowSubMenu()
{   // aanroep vanuit callback. this is het object wat getoond moet worden.
    if (this != null)
    {   this.style.display = 'block';
    }
}

function HideSubMenu(e)
{   // aanroep vanuit callback. this is het object wat getoond moet worden.
    if (this != null)
    {   this.style.display = 'none';
    }
}

function CancelBubble(e)
{   YAHOO.util.Event.preventDefault(e);
    YAHOO.util.Event.stopPropagation(e);
}

function GotoUrl()
{   // aanroep vanuit callback. this is het object waarnaar genavigeerd moet worden
    window.location.href = this;
}



function InitNavigatieMenu()
{   var navigatieItem;
    var subNavigatieItem;
    
    for (i=0;i<navigatie.length;i++)
    {   // open/dichtklappen van het menu
        if (document.getElementById(navigatie[i]) && (document.getElementById(subnavigatie[i])))   // Navigatiemenu in header komt niet voor op homepagina.
        {
            YAHOO.util.Event.addListener(navigatie[i],'mouseover', ShowSubMenu , document.getElementById(subnavigatie[i]),true);
            YAHOO.util.Event.addListener(navigatie[i],'mouseout', HideSubMenu, document.getElementById(subnavigatie[i]),true);
            
            
            YAHOO.util.Event.addListener(subnavigatie[i],'mouseout', CancelBubble, document.getElementById(subnavigatie[i]),true);
            //YAHOO.util.Event.addListener(subnavigatie[i],'mouseout', HideSubMenu, document.getElementById(subnavigatie[i]),true);
            
            // klikken op navigatie items op 1e niveau.
            YAHOO.util.Event.addListener(navigatie[i],'click', GotoUrl, linknavigatie[i],true);
        }
    }
}

InitNavigatieMenu();

/* EINDE - HOOFDMENU NAVIGATIE GERELATEERDE FUNCTIES */


// Alleen voor IE. Niet nodig voor Firefox. <=IE7 ondersteund geen css selectors. Firefox wel.
if (isIE)
{   removeBorderFromInputRadioAndCheckbox();
}

