﻿var strBrowser;
var TopNavUrl = '';

function AdvantiveOnLoad()
{
    GetBrowser();

    if (strBrowser == "MSIE6")
    {
        CorrectPNG();
    }

    if (typeof (GetMap) != 'undefined')
    {
        GetMap();
    }
}

// -------------------------------------------------------------------------------------------------------------------- Common
function NavigateTo(url)
{
    window.location.href = url;
}

function HoverArrow(obj)
{
    if (strBrowser == "MSIE6")
    {
        var theSpan = obj.getElementsByTagName('SPAN');
        if (theSpan)
        {
            var stylefilter = theSpan[0].style.filter;
            if (stylefilter.indexOf('-hover') != -1)
            {
                stylefilter = stylefilter.replace('-hover.png', '.png');
            }
            else
            {
                stylefilter = stylefilter.replace('.png', '-hover.png');
            }

            theSpan[0].style.filter = stylefilter;
        }
    }
    else
    {
        var theImg = obj.getElementsByTagName('IMG');
        if (theImg)
        {
            var src = theImg[0].src;
            if (src.indexOf('-hover') != -1)
            {
                src = src.replace('-hover.png', '.png');
            }
            else
            {
                src = src.replace('.png', '-hover.png');
            }

            theImg[0].src = src;
        }
    }
}

function TopNavItemHover(obj, isLastItem)
{
    // Als de huidige node geen class heeft, dan de hover class geven
    if (obj.className == '')
    {
        obj.className = 'hover';
    }
    else if (obj.className == 'hover')
    {
        obj.className = '';
    }

    // Als deze node een pijl heeft, dan src aanpassen
    if (obj.childNodes.length == 3)
    {
        HoverArrow(obj.childNodes[1]);
    }

    // Het eerste submenu weergeven en breedte aanpassen
    var childLists = obj.getElementsByTagName('UL');
    if (childLists.length > 0)
    {
        var list = childLists[0];

        if (list.style.display == 'none')
        {
            list.style.display = 'block';
            window.setTimeout(function() { CorrectWidth(list, isLastItem); }, 0);
        }
        else
        {
            list.style.display = 'none';
        }
    }
}

function CorrectWidth(list, isLastItem)
{
    // Als dit submenu al is gedaan, dan stoppen
    if (list.ID == 'done_CorrectWidth')
    {
        return;
    }

    // Submenu items ophalen
    var childNodes = list.childNodes;
    // Standaard minimale breedte
    var minWidth = 157;
    // De breedte van het breedste submenu item
    var thisWidth = 0;

    // Door alle submenu items lopen
    for (var i = 0; i < childNodes.length; i++)
    {
        // De laatste child node van het huidige submenu item bepalen (A-tag)
        var nodeLink = childNodes[i].childNodes[childNodes[i].childNodes.length - 1];
        // Breedte op auto zetten
        nodeLink.style.width = 'auto';
        // Breedte bepalen
        thisWidth = nodeLink.offsetWidth;

        // Als het huidige submenu item nog een submenu bevat, dan de breedte van het pijlje bij de breedte tellen
        if (childNodes[i].getElementsByTagName('UL').length > 0)
        {
            thisWidth = thisWidth + 22;
        }

        // Als de breedte van het huidige submenu item breder is als de minimale breedte, dan deze breedte als minimale breedte onthouden
        if (thisWidth > minWidth)
        {
            minWidth = thisWidth;
        }
    }

    // Door alle submenu items lopen
    for (var i = 0; i < childNodes.length; i++)
    {
        // De minimale breedte toepassen op alle submenu items.
        childNodes[i].style.width = minWidth + 'px';

        // Als het huidige submenu item nog een submenu bevat, dan de linker marge van het submenu en pijltje aanpassen
        if (childNodes[i].getElementsByTagName('UL').length > 0)
        {
            childNodes[i].childNodes[0].style.marginLeft = minWidth + 'px';
            childNodes[i].childNodes[1].style.marginLeft = (minWidth - 22) + 'px';
        }

        // Als dit een submenu is van het laatste hoofdmenu item, dan...
        if (isLastItem)
        {
            if (list.className == 'Level1')
            {
                // Als dit het eerste submenu is, dan de linker marge aanpassen aan de breedte van een Level0 item, omdat hij anders buiten beeld kan vallen,
                list.style.marginLeft = ((minWidth - 157) * -1) + 'px';
            }
            else
            {
                // Als dit submenu meer dan 1 nivo diep is, dan de linker marge aanpassen aan de minimale breedte, zodat dit submenu links ipv rechts staat
                list.style.marginLeft = (minWidth * -1) + 'px';
            }
        }
    }

    // Onthouden dat dit item is verwerkt
    list.ID = 'done_CorrectWidth';
}

function TopNavItemClick(obj)
{
    if (TopNavUrl == '')
    {
        TopNavUrl = obj.childNodes[obj.childNodes.length - 1].href;
        NavigateTo(TopNavUrl);
    }
}

function HoverReference(obj, over)
{
    if (over)
    {
        obj.className = obj.className + 'hover';
    }
    else
    {
        obj.className = obj.className.replace('hover', '');
    }

    if (typeof (HoverReferenceWithMap) != 'undefined')
    {
        HoverReferenceWithMap(obj, !over);
    }
}

function HoverProjectTheme(obj, themeID, over)
{
    if (over)
    {
        obj.className = 'hover';
    }
    else
    {
        obj.className = '';
    }

    if (typeof (HoverProjectThemeWithMap) != 'undefined')
    {
        HoverProjectThemeWithMap(themeID, !over);
    }

    var summaryWP = document.getElementById('ProjectRefSummary');
    if (summaryWP)
    {
        var tid = '_tID' + themeID + '_';
        HilightProjectInSummary(summaryWP, tid, !over);
    }
}

function HoverCustomerType(obj, typeID, over)
{
    if (over)
    {
        obj.className = 'hover';
    }
    else
    {
        obj.className = '';
    }

    if (typeof (HoverCustomerTypeWithMap) != 'undefined')
    {
        HoverCustomerTypeWithMap(typeID, !over);
    }

    var summaryWP = document.getElementById('ProjectRefSummary');
    if (summaryWP)
    {
        var ctid = '_ctID' + typeID + '_';
        HilightProjectInSummary(summaryWP, ctid, !over);
    }
}

function HilightProjectInSummary(container, key, resetSummary)
{
    if (!resetSummary)
    {
        for (var i = 0; i < container.childNodes.length; i++)
        {
            var row = container.childNodes[i];
            if (row.getAttribute('id').indexOf(key) != -1)
            {
                if (row.className.indexOf('hover') == -1)
                {
                    row.className = row.className + 'hover';
                    customerHilighted = true;
                }
            }
            else
            {
                row.className = row.className.replace('hover', '');
            }
        }
    }
    else
    {
        for (var i = 0; i < container.childNodes.length; i++)
        {
            var row = container.childNodes[i];
            row.className = row.className.replace('hover', '');
        }
    }
}

// -------------------------------------------------------------------------------------------------------------------- Search
function SearchBoxKeyPress(k, obj)
{
    var unicode = k.keyCode ? k.keyCode : k.charCode;

    if (unicode == 13 || unicode == 10)
    {
        k.returnValue = false;
        DoSearch(obj);
        return false;
    }
    else
    {
        return true;
    }
}

function DoSearch(obj)
{
    var sb = obj.getElementsByTagName('INPUT')[0];

    if (sb)
    {
        if (sb.value != '')
        {
            NavigateTo('/pages/results.aspx?k=' + encodeURIComponent(sb.value));
        }
        else
        {
            //		        if (L_Menu_LCID == '1033')
            //		        {
            //			        alert('No search keyword entered!');
            //			    }
            //			    else
            //			    {
            alert('U heeft geen zoekwoord opgegeven');
            //			    }
        }
    }
}

// --------------------------------------------------------------------------------------------------------------------

function GetBrowser()
{
    strBrowser = navigator.appVersion;
    if (strBrowser.indexOf('MSIE') > 0)
    {
        strBrowser = 'MSIE' + parseFloat(strBrowser.substring(strBrowser.indexOf('MSIE') + 5));
    }
    else
    {
        strBrowser = navigator.appName + parseInt(strBrowser);
    }
}

function CorrectPNG()
{
    for (var i = 0; i < document.images.length; i++)
    {
        var img = document.images[i];
        var imgName = img.src.toUpperCase();

        if (imgName.substring(imgName.length - 3, imgName.length) == "PNG")
        {
            var imgID = (img.id) ? "id='" + img.id + "' " : "";
            var imgClass = (img.className) ? "class='" + img.className + "' " : "";
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
            var imgStyle = "display:inline-block;" + img.style.cssText;

            if (img.align == "left")
            {
                imgStyle = "float:left;" + imgStyle;
            }

            if (img.align == "right")
            {
                imgStyle = "float:right;" + imgStyle;
            }

            if (img.parentElement.href)
            {
                imgStyle = "cursor:hand;" + imgStyle;
            }

            var strNewHTML = "<span " + imgID + imgClass + imgTitle
			+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
			+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
			+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";

            img.outerHTML = strNewHTML;
            i = i - 1;
        }
    }
}

function HookEvent(element, eventName, callback)
{
    if (element.addEventListener)
    {
        if (eventName == 'mousewheel')
        {
            element.addEventListener('DOMMouseScroll', callback, false);
        }
        else
        {
            element.addEventListener(eventName, callback, false);
        }
    }
    else if (element.attachEvent)
    {
        element.attachEvent("on" + eventName, callback);
    }
    else
    {
        var currentEventHandler = elementObj['on' + eventName];
        if (currentEventHandler == null)
        {
            elementObj['on' + eventName] = eventHandlerFunctionName;
        }
        else
        {
            elementObj['on' + eventName] = function(e) { currentEventHandler(e); eventHandlerFunctionName(e); }
        }
    }
}

// --------------------------------------------------------------------------------------------------------------------

// Bind scripts to events
HookEvent(window, 'load', AdvantiveOnLoad);

// Overrule standard sharepoint scripts
function ProcessImn() { }
