var TREE =  "0#VDK Info#info/index_body.htm#0+++" +
            "1#Voorwoord#info/voorwoord.htm#0+++" +
            "1#Bestuur#info/bestuur.htm#0+++" +
            "1#VDK in cijfers#info/vdkcijfers.htm#0+++" +
            "1#Vestigingen#info/kantoren.htm#0+++" +
            "0#Producten#producten/index_body.htm#0+++" +
            "1#Betalingsverkeer#producten/betalingsverkeer/index_body.htm#0+++" +
            "2#GiroPlusrekening#producten/betalingsverkeer/giro.htm#0+++" +
            "2#IBAN en BIC#producten/betalingsverkeer/iban_bic.htm#0+++" +
            "2#SEPA#producten/betalingsverkeer/SEPA.htm#0+++" +
            "1#Sparen#producten/sparen/index_body.htm#0+++" +
            "2#Spaarrekening#producten/sparen/spaarrekening.htm#0+++" +
            "2#Rentespaarrekening#producten/sparen/rentespaarrekening.htm#0+++" +
            "2#Wereldspaarrekening#producten/sparen/wereldspaarrekening.htm#0+++" +
            "2#Solidariteitsspaarrekening#producten/sparen/solidariteitssparen.htm#0+++" +
            "2#Knuffelspaarrekening#producten/sparen/knuffelspaarrekening.htm#0+++" +
            "2#Jongerenspaarrekeningen#http://jovo.vdk.be#1+++" +
            "2#Spaarbons#producten/sparen/spaarbons.htm#0+++" +
            "2#Step-up bon#producten/sparen/stepupbon.htm#0+++" +
            "2#Termijnrekeningen#producten/sparen/termijnrekening.htm#0+++" +
            "1#Beleggen#producten/beleggen/index_body.htm#0+++" +
            "2#Aanbod obligaties#producten/beleggen/obligaties.htm#0+++" +
            "2#Fondsen#producten/beleggen/fondsen.htm#0+++" +
            "2#VDK Quality Life#producten/beleggen/vdkqualitylife.htm#0+++" +
            "2#VDK Invest Life#producten/beleggen/vdkinvestlife.htm#0+++" +
            "2#VDK Life#producten/beleggen/vdklife.htm#0+++" +
            "2#Comfort Life#producten/beleggen/Comfort_Life.htm#0+++" +
            "2#Pensioensparen#producten/beleggen/pensioensparen.htm#0+++" +
            "2#Effectenrekening#producten/beleggen/effectenrekening.htm#0+++" +
            "1#Kredieten#producten/kredieten/index_body.htm#0+++" +
            "2#Woonkrediet#producten/kredieten/woonkrediet.htm#0+++" +
            "2#Lening op afbetaling#producten/kredieten/loa.htm#0+++" +
            "2#Autolening#producten/kredieten/autolening.htm#0+++" +
            "2#Credifisc#producten/kredieten/credifisc.htm#0+++" +
            "2#Andere kredietvormen#producten/kredieten/ander_krediet.htm#0+++" +
            "1#Tarievenoverzicht#producten/tarieven/index_body.htm#0+++" +
            "0#Jongeren#http://jovo.vdk.be#1+++" +
            "0#Elektronisch       bankieren#elektron_bankieren/index_body.htm#0+++" +
            "1#Telefoonbankieren        VDK-foon#elektron_bankieren/vdkfoon.htm#0+++" +
            "1#Zelfbankieren      Self'oMatic#elektron_bankieren/selfomatic.htm#0+++" +
            "1#Internetbankieren online@vdk#elektron_bankieren/online_vdk/index_body.htm#0+++" +
            "2#Functionaliteiten#elektron_bankieren/online_vdk/functies.htm#0+++" +
            "2#Systeemvereisten#elektron_bankieren/online_vdk/systeemvereisten.htm#0+++" +
            "2#Abonnement aanvragen#elektron_bankieren/online_vdk/abonnement.htm#0+++" +
            "2#Veiligheidsaspecten#elektron_bankieren/online_vdk/veiligheid.htm#0+++" +
            "2#Reglement#elektron_bankieren/online_vdk/reglement.htm#0+++" +
            "2#Helpdesk + vragen#elektron_bankieren/online_vdk/helpdesk.htm#0+++" +
            "1#Pc-bankieren          Liesbeth#elektron_bankieren/liesbeth/index_body.htm#0+++" +
            "2#Wat is Liesbeth? #elektron_bankieren/liesbeth/wat_is.htm#0+++" +
            "2#Functies #elektron_bankieren/liesbeth/functies.htm#0+++" +
            "2#Systeemvereisten #elektron_bankieren/liesbeth/vereisten.htm#0+++" +
            "2#Kosten #elektron_bankieren/liesbeth/kosten.htm#0+++" +
            "2#Reglement #elektron_bankieren/liesbeth/reglement.htm#0+++" +
            "2#Veel gestelde vragen #elektron_bankieren/liesbeth/vragen.htm#0+++" +
            "2#Download software #elektron_bankieren/liesbeth/download_liesbeth.php#0+++" +
            "0#Meer dan bankieren#meer_dan_bankieren/index_body.htm#0+++" +
            "1#Soc.-maatschappelijk#meer_dan_bankieren/engagement/index_body.htm#0+++" +
            "1#VDK-Prijs#meer_dan_bankieren/VDK-prijs/index_body.htm#0+++" +
            "1#Cultureel#meer_dan_bankieren/cultuur/Index_body.htm#0+++" +
            "2#Tentoonstellingen#meer_dan_bankieren/cultuur/tentoonstellingen.php#0+++" +
            "2#Structurele sponsoringen#meer_dan_bankieren/cultuur/Structureel.htm#0+++" +
            "1#Sportief#meer_dan_bankieren/sport/index_body.htm#0+++" +
            "2#Voetbal#meer_dan_bankieren/sport/voetbal.htm#0+++" +
            "2#Volleybal#meer_dan_bankieren/sport/volleybal.htm#0+++" +
            "1#Andere initiatieven#meer_dan_bankieren/andere_initiatieven/index_body.htm#0+++" +
            "0#Vacatures#http://jobs.vdk.be#1+++" +
            "0#Sitemap#sitemap.htm#0+++" +
            "0#css/mifidleft2.gif#producten/mifid/MiFID.htm#0+++" +
            "0#css/onlinevdk_menu.gif#https://online.vdk.be#2";

var DELIMITER = "+++";
var LEVEL = 0;
var NAAM = 1;
var LINK = 2;
var TARGET = 3;
var COLLAPSE = 4;
var SHOW = 5;
var URL_ARROW = "css/pijltje.gif";
var MenuArray;

var m_is_nav6up;
var m_is_ie;
var m_is_safari;

var target_frame = new Array();
target_frame[0] = "main";
target_frame[1] = "window";
target_frame[2] = "_blank";

var img_extensions = new Array();
img_extensions[0] = ".gif";
img_extensions[1] = ".jpg";
img_extensions[2] = ".jpeg";
img_extensions[3] = ".png";

function loadMenuWindow()
{
    initBrowserType();
    buildMenuList();
    paintLeftMenu();
}

function buildMenuList()
{
    MenuArray = parseMenuString();
}

function unfoldMenuItem(p_item)
{
    var i = 0;
    var idx = 0;
    var level = 0;

    idx = getMenuIndex(p_item);
    level = parseFloat(MenuArray[idx][LEVEL]) + 1;

    MenuArray[idx][COLLAPSE] = 1;

    i = idx + 1;
    var flag = false;

    while( !flag && MenuArray[i][LEVEL] >= level )
    {
        if( MenuArray[i][LEVEL] == level )
            MenuArray[i][SHOW] = 1;

        i++;

        if( i >= MenuArray.length)
            flag = true; 
    }

    // Find superparent (Level = 0)
    var prnt_idx = idx;
    var tmp_level = MenuArray[prnt_idx][LEVEL];

    if( tmp_level != 0 )
    {
        var flag = false;
        while( !flag && prnt_idx >= 0 )
        {
            if( MenuArray[prnt_idx][LEVEL] == 0 )
                flag = true;
            else
                prnt_idx--;
        }

        loop_idx = prnt_idx + 1;
        flag = false;

        while( loop_idx < MenuArray.length && MenuArray[loop_idx][LEVEL] != 0)
        {
            if( MenuArray[loop_idx][LEVEL] <= tmp_level )
                MenuArray[loop_idx][SHOW] = 1;

            loop_idx++;
        }
    }
}

function getMenuIndex(p_item)
{
    var count = 0;
    flag = false;

    while( count < MenuArray.length && !flag )
    {
        if( MenuArray[count][NAAM] == p_item)
        {
            flag = true;
        }
        else{
            count++;
        }
    }

    return count;
}

function menuClick(e)
{
    var sender = null;
    if( m_is_nav6up )
        sender = e.currentTarget;

    if( m_is_ie )
        sender = event.srcElement;

    getMenuItem(sender.id);
}

function getMenuItem(p_menu_item)
{
    item_idx = getMenuIndex(p_menu_item);
    browseToPage(MenuArray[item_idx][LINK], MenuArray[item_idx][TARGET]);

    switch( MenuArray[item_idx][COLLAPSE] )
    {
        case -1:
            if( MenuArray[item_idx][LEVEL] == 0 )
            {
                collapseAll();
            }

            break;

        case 0:
            collapseAll();
            unfoldMenuItem(p_menu_item);
            break;
    }

    paintLeftMenu();
}

function browseToPage(p_url, p_target)
{
    var l_target_frame = target_frame[p_target];

    if( p_target == 2 ){
        openNewWindow(p_url, "");    
    }
    else{
        parent.frames[target_frame[p_target]].location = p_url;
    }
}

function collapseAll()
{
    for( idx = 0; idx < MenuArray.length; idx++ )
    {
        MenuArray[idx][SHOW] = (MenuArray[idx][LEVEL] == 0 ? 1 : 0);
        MenuArray[idx][COLLAPSE] = (MenuArray[idx][COLLAPSE] == -1? -1 : 0);
    }
}

function paintLeftMenu()
{
    if( MenuArray.length != 0 )
    {
        var l_menu_table = document.getElementById("menuTable");
        removeChildNodes(l_menu_table);
        var l_table_body = document.createElement("tbody");
        l_menu_table.appendChild(l_table_body);

        for( idx = 0; idx < MenuArray.length; idx++)
        {
            if( MenuArray[idx][SHOW] == 1 )
            {
                l_row = document.createElement("tr");
                l_table_body.appendChild(l_row);
                l_cell = document.createElement("td");
                l_row.appendChild(l_cell);

                if( ! isImage(MenuArray[idx][NAAM]) )
                {
                    l_cell.onmouseover = mouseOver;
                    l_cell.onmouseout = mouseOut;

                    switch( parseFloat(MenuArray[idx][LEVEL]))
                    {
                        case 0: l_cell.className = "url_lvl_0"; break;
                        case 1: l_cell.className = "url_lvl_1"; break;
                        case 2: l_cell.className = "url_lvl_2"; break;
                    }

                    if(MenuArray[idx][COLLAPSE] != -1)
                    {
			l_cell.appendChild(document.createTextNode(MenuArray[idx][NAAM]));
		     	l_arrow_img = document.createElement("img");
                        l_arrow_img.src = URL_ARROW;
                        l_cell.appendChild(l_arrow_img);
                        l_arrow_img.className = "pijltje_hidden";
                    }
                    else{
			l_cell.appendChild(document.createTextNode(MenuArray[idx][NAAM]));
                    }
                }
                else
                {
                    var l_img = document.createElement("img");
                    l_img.src = MenuArray[idx][NAAM];
                    l_img.name = MenuArray[idx][NAAM];
                    l_img.id = MenuArray[idx][NAAM];

                    l_img.className = "img_link";
                    l_cell.appendChild(l_img);
                }

                l_cell.name = MenuArray[idx][NAAM];
                l_cell.id = MenuArray[idx][NAAM];
                l_cell.onclick = menuClick;
            }
        }
    }
}

function isImage( p_item_name )
{
    var flag = false;
    var idx = 0;

    while( !flag && idx != img_extensions.length)
    {
        if( p_item_name.indexOf(img_extensions[idx]) != -1 )
        {
            flag = true;
        }
        else{
            idx++;
        }
    }

    return flag;
}

function mouseOver(e)
{
    var sender = null;
    if( m_is_nav6up )
        sender = e.currentTarget;

    if( m_is_ie )
        sender = event.srcElement;

    var arrow_img = sender.childNodes[1];
    if( arrow_img != null )
        arrow_img.className = "pijltje_visible";

    switch( sender.className )
    {
        case "url_lvl_0": sender.className = "url_lvl_0_hover"; break;
        case "url_lvl_1": sender.className = "url_lvl_1_hover"; break;
        case "url_lvl_2": sender.className = "url_lvl_2_hover"; break;
    }
}

function mouseOut(e)
{
    var sender = null;

    if( m_is_nav6up )
        sender = e.currentTarget;

    if( m_is_ie )
        sender = event.srcElement;

    var arrow_img = sender.childNodes[1];
    if( arrow_img != null )
        arrow_img.className = "pijltje_hidden";

    switch( sender.className )
    {
        case "url_lvl_0_hover": sender.className = "url_lvl_0"; break;
        case "url_lvl_1_hover": sender.className = "url_lvl_1"; break;
        case "url_lvl_2_hover": sender.className = "url_lvl_2"; break;
    }
}

function parseMenuString()
{
    var l_split_array = splitString(TREE, DELIMITER);
    var l_temp_array = new Array();
    var l_prev_level = 0;
    var l_menu_level = 0;

    for( var idx = 0; idx < l_split_array.length; idx++)
    {
        var l_menu_item = splitString(l_split_array[idx], "#");
        var level = l_menu_item[LEVEL];
        var naam = l_menu_item[NAAM];
        var link = l_menu_item[LINK];
        var target = l_menu_item[TARGET];
        
        if( l_temp_array.length > 0)
        {
            if( l_prev_level < level)
            {
                l_temp_array[l_temp_array.length - 1][COLLAPSE] = 0;
            }
        }

        l_temp_array[l_temp_array.length] = createMenuItem(level, naam, link, target);
        l_prev_level = level;
    }

    return l_temp_array;
}

function createMenuItem(p_level, p_naam, p_path, p_target)
{
    var l_menu_item         = new Array();
    l_menu_item[LEVEL]      = p_level;
    l_menu_item[NAAM]       = p_naam;
    l_menu_item[LINK]       = p_path;
    l_menu_item[TARGET]     = p_target;
    l_menu_item[COLLAPSE]   = -1;
    l_menu_item[SHOW]       = (p_level == 0 ? 1 : 0);
    
    return l_menu_item;
}

function splitString(s, delimit)
{
    return s.split(delimit);
}

function initBrowserType()
{
   var l_agent = navigator.userAgent.toLowerCase();
   var l_is_major = parseInt(navigator.appVersion, 10);
   var l_is_minor = parseFloat(navigator.appVersion);
   var l_is_nav  = (l_agent.indexOf('mozilla')!=-1);
   var l_is_saf  = (l_agent.indexOf('safari')!=-1);

   m_is_nav6up = (l_is_nav && (l_is_major >= 5));
   m_is_ie     = ((l_agent.indexOf("msie") != -1) && (l_agent.indexOf("opera") == -1));
   m_is_safari = (m_is_nav6up && l_is_saf) ;

	m_is_firefox = (l_agent.indexOf('firefox')!=-1);

   if(!(m_is_nav6up || m_is_ie))
   {
      alert('Unsupported browser agent : ' + l_agent + ' major : ' + l_is_major + ' minor : ' + l_is_minor) ;
      throw('Unsupported browser agent') ;
   }
}

function removeChildNodes(p_element)
{
    while(p_element.childNodes.length > 0)
        p_element.removeChild(p_element.lastChild);
}

function openNewWindow( p_url, p_naam )
{
    window.open(p_url, p_naam, "width=640,height=480, location=yes, status=yes, menubar=yes, directories=yes, toolbar=yes, resizable=yes, scrollbars=yes");
}
