/**********************************************************************
/**********************************************************************
/ GLOBAL.JS
/**********************************************************************
/**********************************************************************/

// browser sniffer
var Browser = function() {
    this.uA = navigator.userAgent.toLowerCase();
    this.aN = navigator.appName.toLowerCase();
    this.iE = this.aN.indexOf('microsoft') != -1 ? 1 : 0;
    this.mac = this.uA.indexOf('mac') != -1 ? 1 : 0;
    this.win = this.uA.indexOf('windows') != -1 ? 1 : 0;
    this.safari = this.uA.indexOf('webkit') != -1 ? 1 : 0;
    this.opera = this.uA.indexOf('opera') != -1 ? 1 : 0;
    this.operaMini = this.uA.indexOf('mini') != -1 ? 1 : 0;
    this.mozilla = this.aN.indexOf('netscape') != -1 && !this.safari ? 1 : 0;
    this.winMozilla = this.mozilla && this.win ? 1 : 0;
    this.winIE = this.iE && this.win && !this.opera ? 1 : 0;
    this.winIE6Down = this.winIE && /msie|MSIE 6/.test(navigator.userAgent) == 1 ? 1 : 0;
    this.macIE = this.iE && this.mac ? 1 : 0;
};
var browser = new Browser();

// addStyle
var addStyle = function(selector, properties) {
    if (document.styleSheets) {
        var s = document.getElementsByTagName('STYLE');
        if (s.length == 0) {
            var sheet = document.createElement('style');
            sheet.setAttribute('type', 'text/css');
            document.getElementsByTagName('HEAD')[0].appendChild(sheet);
        }
        if (browser.winIE) {
            var lastSheet = document.styleSheets[document.styleSheets.length - 1];
            lastSheet.addRule(selector, properties);
        }
        else {
            var lastSheet = s[0];
            lastSheet.appendChild(document.createTextNode(selector + ' { ' + properties + ' }'));
        }
    }
};
addStyle('.drempel', 'display:none;');
addStyle('.noscript', 'display: block !important;');

//incl. .js
var jsPath = "/Scripts/";
if (browser.winIE6Down) {
    document.write('<scr' + 'ipt type="text/javascript" src="' + jsPath + 'jquery.ifixpng.js"><\/scr' + 'ipt>');
};

(function($) {

    //layout on DomLoad
    $.fn.layOut = function() {

        //// frontend
        //// frontend
        if (browser.winIE) {
            $('#container.wide .right-pane:first').insertBefore("#container.wide .content-pane");
        };

        //rounded background corners
        if (browser.winIE) {
            $('#frontend .btn-sidebar').corner("4px");
            $('#frontend .rnd-small').corner("4px");
            $('#frontend .rnd-big').corner("8px");
            $('#frontend #toolbar').corner("4px");
            $('#frontend #toolbar a').corner("4px");
            $('#frontend .toolbarUser a').corner("4px");
        }

    }; // end layout on DomLoad

    //toggle input value
    $.fn.toggleVal = function() {
        return this.focus(function() {
            if (this.value == this.defaultValue) {
                this.value = "";
            }
        }).blur(function() {
            if (!this.value.length) {
                this.value = this.defaultValue;
            }
        });
    };

    //toggle div sequence
    $.fn.toggleSeq = function(id, class1, class2) {
        $('#' + id + ' li a:first').addClass(class2);
        $('#' + id + ' li div:first').show();
        $('#' + id + ' li a').click(function() {
            var checkElement = $(this).next();
            if ((checkElement.is('div.drempel')) && (checkElement.is(':visible'))) {
                return false;
            }
            if ((checkElement.is('div.drempel')) && (!checkElement.is(':visible'))) {
                $('#' + id + ' li a').removeClass(class2);
                $(this).addClass(class2);
                $('#' + id + ' div.drempel:visible').animate({ height: 'toggle' }, { queue: true, duration: 600 }); //, opacity: 'toggle' breaks cleartype IE7	
                checkElement.animate({ height: 'toggle' }, { queue: true, duration: 600 }); //, opacity: 'toggle' breaks cleartype IE7
                return false;
            }
        });
    };

    //toggle div
    $.fn.toggleDiv = function(text1, text2, class1, class2) {
        return this.toggle(function() {
            var el = $('#' + this.href.split('#')[1]);
            $(this).text(text2);
            $(this).removeClass(class1);
            $(this).addClass(class2);
            el.animate({ height: 'toggle' }, { queue: false, duration: 600 }); //, opacity: 'toggle' breaks cleartype IE7
        }, function() {
            var el = $('#' + this.href.split('#')[1]);
            $(this).text(text1);
            $(this).removeClass(class2);
            $(this).addClass(class1);
            el.animate({ height: 'toggle' }, { queue: false, duration: 400 }); //, opacity: 'toggle' breaks cleartype IE7
        });
    };

    /**********************************************************************
    /**********************************************************************
    / ASPACTS.JS
    /**********************************************************************
    /**********************************************************************/

    //tooltip
    $.fn.tooltip = function() {
        xOffset = -20;
        yOffset = 0;
        $("a.tooltip").hover(function(e) {
            this.t = this.title;
            this.title = "";
            $("body").append("<p id='tooltip'>" + this.t + "</p>");
            $("#tooltip")
			.css("top", (e.pageY - xOffset) + "px")
			.css("left", (e.pageX + yOffset) + "px")
			.fadeIn("fast");
        },
	function() {
	    this.title = this.t;
	    $("#tooltip").remove();
	});
        $("a.tooltip").mousemove(function(e) {
            $("#tooltip")
			.css("top", (e.pageY - xOffset) + "px")
			.css("left", (e.pageX + yOffset) + "px");
        });
    };

    //suckerfish navigation
    $(document).ready(function() {
        $("ul.nav li").hover(
    function() { $(this).addClass("active"); },
    function() { $(this).removeClass("active"); }
  );
    });

    //DomLoad
    jQuery(function() {

        //set font size
        $(document).ready(function() {

            $(".txt-size-01").click(function(event) {
                event.preventDefault();
                $("body").removeClass();
                $("body").addClass("txt-size-01");
                $.cookie("fontSize", "txt-size-01", { path: '/' });
                return false;
            });

            $(".txt-size-02").click(function(event) {
                event.preventDefault();
                $("body").removeClass();
                $("body").addClass("txt-size-02");
                $.cookie("fontSize", "txt-size-02", { path: '/' });
                return false;
            });

            $(".txt-size-03").click(function(event) {
                event.preventDefault();
                $("body").removeClass();
                $("body").addClass("txt-size-03");
                $.cookie("fontSize", "txt-size-03", { path: '/' });
                return false;
            });

            // Cookie
            var fontSize = $.cookie("fontSize");            
            if (fontSize == "txt-size-01") {
                $("body").addClass("txt-size-01");
            };

            if (fontSize == "txt-size-02") {
                $("body").addClass("txt-size-02");
            };

            if (fontSize == "txt-size-03") {
                $("body").addClass("txt-size-03");
            };

        });

        //start onload events

        $('html').layOut();
        $('html').tooltip();
        $('.togval').toggleVal();

        //$('a.toggle').toggleDiv('meer opties','minder opties','icon-plus','icon-min');
        //$('html').toggleSeq('faq','faq-plus','faq-min');

        if (browser.winIE6Down) {
            $('img[src$=.png]').ifixpng();
            try { document.execCommand('BackgroundImageCache', false, true); } catch (e) { };
        };
        if (browser.winIE) {
            $('input:checkbox, input:radio, input:hidden').css({ border: "none", background: "none" });
        };
        if (browser.safari) { $('input[type=file]').css({ backgroundColor: "transparent", border: "none" }); };
        //end onload events

    });

})(jQuery);

// FacetBase Loading Window
function OpenLoadingFacetBase(strMessage) {
    var refDocument = document

    if (window.frameElement) {
        if (window.frameElement.refWindow) {
            refDocument = window.frameElement.refWindow.windowSystem.refBlockLayerElement.ownerDocument
        }
    }
    var intWidth = 480
    var intHeight = 210
    if (!strMessage)
        strMessage = "Een moment geduld"
    var nodes = new Array()
    var divLoading = refDocument.createElement("div")
    divLoading.className = "loading"
    var imgLoading = refDocument.createElement("img")
    imgLoading.src = "/images/backend/loading.gif"
    imgLoading.alt = "Loading"
    imgLoading.className = "loading"
    divLoading.appendChild(imgLoading)
    var subP = refDocument.createElement("p")
    subP.appendChild(refDocument.createTextNode(strMessage))
    divLoading.appendChild(subP)
    nodes.push(divLoading)

    var refWin
    if (window.frameElement) {
        if (window.frameElement.refWindow) {
            refWin = window.frameElement.refWindow.windowSystem.OpenLoadingWindow(nodes, 'aPopin', intWidth, intHeight);
            window.frameElement.refWindow.LoadingWin = refWin
        }
    }

    if (!refWin) {
        refWin = Aspacts.Idios3.I_CAP.Scripting.InlineWin.System.OpenLoadingWindow(nodes, 'aPopin', intWidth, intHeight);
    }


}

/**********************************************************************
/**********************************************************************
/ LOCATIONPATH.JS
/**********************************************************************
/**********************************************************************/

// ---------------------------------------------------------------------- Tooltip
// function toolTips(){
// 	var toolTip = new Tips($$('.toolTip'));
// }

// ---------------------------------------------------------------------- Striketrough breadcrumb
function strikeTrough(linkID) {
    $(linkID).toggleClass('strikeTrough');
}

// ---------------------------------------------------------------------- Clears form and changes text color
// Usage: <input id="search" name="search" type="text" value="Type uw zoekterm" onfocus="checkEntry(this,'Type uw zoekterm');"/>
function checkEntry(o, dTxt) {
    if (!o.defTxt) {
        o.defTxt = dTxt;
        o.onblur = function() {
            trimField(this);
            with (this) {
                if (value == '' || value == defTxt) {
                    value = defTxt;
                    o.style.color = '#a5acb2';
                }
            }
        }
    }
    if (o.value == o.defTxt) {
        o.value = '';
        o.style.color = '#000000';
    }
}
function trimField(o) {
    var v = o.value.replace(/^ +| +$/g, '');
    o.value = v;
}
// ---------------------------------------------------------------------- Mouse-over images
// Usage: <body id="bodyHome" onload="createMouseOvers();"> | name images "name_over" and "name_out"
function createMouseOvers() {
    var p = 0, d = document.images;
    prelImgs = new Array();
    for (var i = 0; i < d.length; i++) {
        var o = d[i];
        if (o.src.indexOf('_out') != -1) {
            var s = o.src, l = s.length, e = s.substring(l - 4, l);
            o.outSrc = s;
            o.overSrc = s.substring(0, l - 8) + '_over' + e;
            o.onmouseover = function() { this.src = this.overSrc; }
            o.onmouseout = function() { this.src = this.outSrc; }
            prelImgs[p] = new Image();
            prelImgs[p].src = o.overSrc;
            p++;
        }
    }
}

/**********************************************************************
/**********************************************************************
/ EXTERNAL.JS
/**********************************************************************
/**********************************************************************/

function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
            anchor.target = "_blank";
    }
}

/**********************************************************************
/**********************************************************************
/ TABLES.JS
/**********************************************************************
/**********************************************************************/

function addEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla 
// By Scott Andrew 
{
    if (elm.addEventListener) {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    } else if (elm.attachEvent) {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    } else {
        elm['on' + evType] = fn;
    }
}

// climb up the tree to the supplied tag.
function ascendDOM(e, target) {
    while (e.nodeName.toLowerCase() != target &&
      e.nodeName.toLowerCase() != 'html')
        e = e.parentNode;

    return (e.nodeName.toLowerCase() == 'html') ? null : e;
}

// turn on highlighting
function hi_cell(e) {
    var el;
    if (window.event && window.event.srcElement)
        el = window.event.srcElement;
    if (e && e.target)
        el = e.target;
    if (!el) return;

    el = ascendDOM(el, 'td');
    if (el == null) return;


    var parent_row = ascendDOM(el, 'tr');
    if (parent_row == null) return;

    var parent_table = ascendDOM(parent_row, 'table');
    if (parent_table == null) return;

    // row styling
    parent_row.className += ' hi';

}

// turn on highlighting definitive on click
function hi_cell_def(e) {
    var el;
    if (window.event && window.event.srcElement)
        el = window.event.srcElement;
    if (e && e.target)
        el = e.target;
    if (!el) return;

    el = ascendDOM(el, 'td');
    if (el == null) return;

    var parent_row = ascendDOM(el, 'tr');
    if (parent_row == null) return;

    var parent_table = ascendDOM(parent_row, 'table');
    if (parent_table == null) return;

    // row styling
    // check for hi_def: if not set hi_def class else remove hi_def class
    var occur = parent_row.className.indexOf('hi_def');
    //alert(occur);
    if (occur > -1) {
        parent_row.className = parent_row.className.replace(/\b ?hi_def\b/, '');
    } else {
        parent_row.className += ' hi_def';
    }

}

// turn off highlighting
function lo_cell(e) {
    var el;
    if (window.event && window.event.srcElement)
        el = window.event.srcElement;
    if (e && e.target)
        el = e.target;
    if (!el) return;

    el = ascendDOM(el, 'td');
    if (el == null) return;

    var parent_row = ascendDOM(el, 'tr');
    if (el == null) return;

    var parent_table = ascendDOM(parent_row, 'table');
    if (el == null) return;

    // row de-styling
    parent_row.className = parent_row.className.replace(/\b ?hi\b/, '');
}


function addListeners() {
    if (!document.getElementsByTagName) return;
    var all_cells = document.getElementsByTagName('td');
    for (var i = 0; i < all_cells.length; i++) {
        addEvent(all_cells[i], 'mouseover', hi_cell, false);
        addEvent(all_cells[i], 'mouseout', lo_cell, false);
        addEvent(all_cells[i], 'click', hi_cell_def, false);
    }
}

jQuery(addListeners)

/**********************************************************************
/**********************************************************************
/ MYREPORT.JS
/**********************************************************************
/**********************************************************************/

function fnMy_CheckboxSelected() {
    var oneOrMoreChecked = false;
    var checkBoxTable = document.getElementById('checkboxTable');


    var inputs = checkBoxTable.getElementsByTagName('input');
    for (var i = 0; i < inputs.length; i++) {
        if (inputs.item(i).checked) {
            oneOrMoreChecked = true;
        }

    }
    if (!oneOrMoreChecked) { alert('Selecteer een of meer artikel(en) voor download.') };
    return oneOrMoreChecked;
}

/**********************************************************************
/**********************************************************************
/ AC_FLASH.JS
/**********************************************************************
/**********************************************************************/

var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion() {
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version) {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 

            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)		
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version) {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }

    return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer() {
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;

    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
            //alert("flashVer="+flashVer);
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if (isIE && isWin && !isOpera) {
        flashVer = ControlVersion();
    }
    return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
    versionStr = GetSwfVer();
    if (versionStr == -1) {
        return false;
    } else if (versionStr != 0) {
        if (isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
            tempString = tempArray[1]; 		// "2,0,0,11"
            versionArray = tempString.split(","); // ['2', '0', '0', '11']
        } else {
            versionArray = versionStr.split(".");
        }
        var versionMajor = versionArray[0];
        var versionMinor = versionArray[1];
        var versionRevision = versionArray[2];

        // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}

function AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext + '?');
    else
        return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = '';
    if (isIE && isWin && !isOpera) {
        str += '<object ';
        for (var i in objAttrs)
            str += i + '="' + objAttrs[i] + '" ';
        for (var i in params)
            str += '><param name="' + i + '" value="' + params[i] + '" /> ';
        str += '></object>';
    } else {
        str += '<embed ';
        for (var i in embedAttrs)
            str += i + '="' + embedAttrs[i] + '" ';
        str += '> </embed>';
    }

    document.write(str);
}

function AC_FL_RunContent() {
    var ret =
    AC_GetArgs
    (arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();

        switch (currArg) {
            case "classid":
                break;
            case "pluginspage":
                ret.embedAttrs[args[i]] = args[i + 1];
                break;
            case "src":
            case "movie":
                args[i + 1] = AC_AddExtension(args[i + 1], ext);
                ret.embedAttrs["src"] = args[i + 1];
                ret.params[srcParamName] = args[i + 1];
                break;
            case "onafterupdate":
            case "onbeforeupdate":
            case "onblur":
            case "oncellchange":
            case "onclick":
            case "ondblClick":
            case "ondrag":
            case "ondragend":
            case "ondragenter":
            case "ondragleave":
            case "ondragover":
            case "ondrop":
            case "onfinish":
            case "onfocus":
            case "onhelp":
            case "onmousedown":
            case "onmouseup":
            case "onmouseover":
            case "onmousemove":
            case "onmouseout":
            case "onkeypress":
            case "onkeydown":
            case "onkeyup":
            case "onload":
            case "onlosecapture":
            case "onpropertychange":
            case "onreadystatechange":
            case "onrowsdelete":
            case "onrowenter":
            case "onrowexit":
            case "onrowsinserted":
            case "onstart":
            case "onscroll":
            case "onbeforeeditfocus":
            case "onactivate":
            case "onbeforedeactivate":
            case "ondeactivate":
            case "type":
            case "codebase":
                ret.objAttrs[args[i]] = args[i + 1];
                break;
            case "id":
            case "width":
            case "height":
            case "align":
            case "vspace":
            case "hspace":
            case "class":
            case "title":
            case "accesskey":
            case "name":
            case "tabindex":
                ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
                break;
            default:
                ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1];
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret;
}

// From menu.js

startList = function() {

if (document.all && document.getElementById && document.getElementById("nav_main")) {
        navRoot = document.getElementById("nav_main");

        for (i = 0; i < navRoot.childNodes.length; i++) {
            node = navRoot.childNodes[i];
            if (node.nodeName == "LI") {

                node.onmouseover = function() {
                    this.className += " over";
                }
                node.onmouseout = function() {
                    this.className = this.className.replace(" over", "");
                }
            }
        }
    }

}


function addListeners(e) {
    startList();
}

addEvent(window, 'load', addListeners, false);

function addEvent(elm, evType, fn, useCapture)
// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko
// By Scott Andrew
{
    if (elm.addEventListener) {
        elm.addEventListener(evType, fn, useCapture);
        return true;
    } else if (elm.attachEvent) {
        var r = elm.attachEvent('on' + evType, fn);
        return r;
    } else {
        elm['on' + evType] = fn;
    }
}


