String.prototype.trim = function() { return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, "")) }
String.prototype.startsWith = function(str) { return (this.match("^" + str) == str) }
String.prototype.endsWith = function(str) { return (this.match(str + "$") == str) }
Number.prototype.formatMoney = function(c, d, t) {
    var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}; 

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(obj, fromIndex) {
        if (fromIndex == null) {
            fromIndex = 0;
        } else if (fromIndex < 0) {
            fromIndex = Math.max(0, this.length + fromIndex);
        }
        for (var i = fromIndex, j = this.length; i < j; i++) {
            if (this[i] === obj)
                return i;
        }
        return -1;
    };
}

// ############# Begin firefox ################### 

// allow firefox to handle a click - code possibly by Jason Karl Davis
if (window.addEventListener) // random Mozilla only function; the fastest method to check if inside Mozilla compliant browser
{
    var hrefSet;
    if (typeof HTMLElement != 'undefined' && !HTMLElement.prototype.click)
        HTMLElement.prototype.click = function() {
            hrefSet = false;
            var evt = this.ownerDocument.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
            this.dispatchEvent(evt);
        }

    var Position = (function() {
        // Resolve a string identifier to an object
        // ========================================
        function resolveObject(s) {
            if (document.getElementById && document.getElementById(s) != null) {
                return document.getElementById(s);
            }
            else if (document.all && document.all[s] != null) {
                return document.all[s];
            }
            else if (document.anchors && document.anchors.length && document.anchors.length > 0 && document.anchors[0].x) {
                var rObject
                for (var i = 0; i < document.anchors.length; i++) {
                    if (document.anchors[i].name == s) {
                        rObject = document.anchors[i];
                        break;
                    }
                }
                return rObject
            }
            else {
                return null;
            }
        }

        var pos = {};
        pos.$VERSION = 1.0;

        // Set the position of an object
        // =============================
        pos.set = function(o, left, top) {
            if (typeof (o) == "string") {
                o = resolveObject(o);
            }
            if (o == null || !o.style) {
                return false;
            }

            // If the second parameter is an object, it is assumed to be the result of getPosition()
            if (typeof (left) == "object") {
                var pos = left;
                left = pos.left;
                top = pos.top;
            }

            o.style.left = left + "px";
            o.style.top = top + "px";
            return true;
        };

        // Retrieve the position and size of an object
        // ===========================================
        pos.get = function(o) {
            var fixBrowserQuirks = true;
            // If a string is passed in instead of an object ref, resolve it
            if (typeof (o) == "string") {
                o = resolveObject(o);
            }

            if (o == null) {
                return null;
            }

            var left = 0;
            var top = 0;
            var width = 0;
            var height = 0;
            var parentNode = null;
            var offsetParent = null;


            offsetParent = o.offsetParent;
            var originalObject = o;
            var el = o; // "el" will be nodes as we walk up, "o" will be saved for offsetParent references
            //var counter = 0;
            while (el.parentNode != null) {
                //counter = counter + 1;
                el = el.parentNode;
                if (el.offsetParent == null) {
                }
                else {
                    var considerScroll = true;
                    /*
                    In Opera, if parentNode of the first object is scrollable, then offsetLeft/offsetTop already 
                    take its scroll position into account. If elements further up the chain are scrollable, their 
                    scroll offsets still need to be added in. And for some reason, TR nodes have a scrolltop value
                    which must be ignored.
                    */
                    if (fixBrowserQuirks && window.opera) {
                        if (el == originalObject.parentNode || el.nodeName == "TR") {
                            considerScroll = false;
                        }
                    }
                    if (considerScroll) {
                        if (el.scrollTop && el.scrollTop > 0) {
                            top -= el.scrollTop;
                        }
                        if (el.scrollLeft && el.scrollLeft > 0) {
                            left -= el.scrollLeft;
                        }
                    }
                }
                // If this node is also the offsetParent, add on the offsets and reset to the new offsetParent
                if (el == offsetParent) {
                    left += o.offsetLeft;
                    if (el.clientLeft && el.nodeName != "TABLE") {
                        left += el.clientLeft;
                    }
                    top += o.offsetTop;
                    if (el.clientTop && el.nodeName != "TABLE") {
                        top += el.clientTop;
                    }
                    o = el;
                    if (o.offsetParent == null) {
                        if (o.offsetLeft) {
                            left += o.offsetLeft;
                        }
                        if (o.offsetTop) {
                            top += o.offsetTop;
                        }
                    }
                    offsetParent = o.offsetParent;
                }
            }

            //alert(counter);
            if (originalObject.offsetWidth) {
                width = originalObject.offsetWidth;
            }
            if (originalObject.offsetHeight) {
                height = originalObject.offsetHeight;
            }

            return { 'left': left, 'top': top, 'width': width, 'height': height
            };
        };

        // Retrieve the position of an object's center point
        // =================================================
        pos.getCenter = function(o) {
            var c = this.get(o);
            if (c == null) { return null; }
            c.left = c.left + (c.width / 2);
            c.top = c.top + (c.height / 2);
            return c;
        };

        return pos;
    })();

    var MouseClick = {

        Click: function(obj) {
            hrefSet = false;
            var posTop;
            var tooManyScrolls = 0;
            posTop = this.GetObjPostion(obj);

            var pos = posTop;
            this.AddRandSize(obj, pos);

            var pos2 = posTop;
            this.AddRandSize(obj, pos2);
            window.setTimeout(function() {
                var evt = document.createEvent("MouseEvents");
                evt.initMouseEvent("click", true, true, window,
		            0, pos.screenX, pos.screenY, pos.left, pos.top, false, false, false, false, 0, null);
                if (obj.dispatchEvent(evt)) {
                    if (obj.href) {
                        location.href = obj.href;
                        hrefSet = true
                    }
                }
            }, 10);
        },

        AddRandSize: function(obj, pos) {
            var randX = Math.floor(Math.random() * obj.offsetWidth);
            var randY = Math.floor(Math.random() * obj.offsetHeight);

            pos.screenX += randX;
            pos.screenY += randY;
            pos.left += randX;
            pos.top += randY;
        },
        GetObjPostion: function(obj) {
            var pos = Position.get(obj);
            return {
                'screenX': (window.screenX + pos.left) - window.scrollX,
                'screenY': (window.screenY + (window.outerHeight - window.innerHeight) + pos.top) - window.scrollY,
                'left': pos.left,
                'top': pos.top
            };
        }
    };
}

function mouseClickBrowsers(ElementId) {
    if (window.addEventListener) {
        if (!hrefSet)
            MouseClick.Click(document.getElementById(ElementId));
    }
    else {
        document.getElementById(ElementId).click();
    }

}
// ############# Einde firefox ################### 

var addEvent = function(obj, type, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(type, fn, false); // Gecko
        return true;
    } else if (obj.attachEvent) {
        obj.attachEvent('on' + evType, fn);
        //obj.attachEvent('on' + type, function() { return fn.apply(obj, new Array(window.event));}); // IE
        return true;
    } else {
        obj['on' + type] = fn; // FF, NS, etc. 
        return true;
    }
}

//addEvent(window, 'beforeunload', confirmExit );

function confirmExit() {
    if (event.clientY < 0)
        event.returnValue = 'Are you sure you want to leave the page?';
}

function ValidateCart(txtCart) {
    if (isNaN(txtCart.value))
        txtCart.className = "errorTxtVlak"
    else {
        if (txtCart.value < 1)
            txtCart.className = "errorTxtVlak"
        else
            txtCart.className = "txtVlak"
    }
}

function getParentByTagName(obj, tagName) {
    tagName = tagName.toLowerCase();
    while (obj != null && obj.tagName != null && obj.tagName.toLowerCase() != tagName) {
        obj = obj.parentNode;
    }

    return obj;
}

//function bepaalImageWidth(urlImage, smallSize, link) {
//    startTag = ""
//    endTag = ""

//    if (link != '') {
//        startTag = "<a href='" + link + "'>"
//        endTag = "</a>"
//    }

//    if (document.body.clientWidth > 800)
//        document.write(startTag + "<img border='0' src='imageHolder.aspx?urlImage=" + urlImage + "&Image=ownImage' />" + endTag)
//    else
//        document.write(startTag + "<img border='0' src='imageHolder.aspx?urlImage=" + urlImage + "&Image=ownImage&Size=" + smallSize + "' />" + endTag)

//}

function favorieten(extraPath) {

    //pas de twee variabelen aan met de informatie van je eigen site
    var bookmarkurl = location.href + extraPath /*"http://www.mijnhomepage.nl/"*/
    var bookmarktitel = document.title /*"MijnHomepage.nl"*/

    bookmarksite(bookmarkurl, bookmarktitel);
}

function favorietenUrl(url) {
    var title = document.title /*"MijnHomepage.nl"*/
    bookmarksite(url, title);
}

// All browser bookmark script 
function bookmarksite(url, title) {
    if (window.sidebar.addPanel) { // firefox 
        window.sidebar.addPanel(title, url, ""); //Dont use until it's fixed         
        //alert('Press CTRL+D to Bookmark this page!'); 
    }
    else if (window.opera && window.print) { // opera 
        var elem = document.createElement('a');
        elem.setAttribute('href', url);
        elem.setAttribute('title', title);
        elem.setAttribute('rel', 'sidebar');
        elem.click();
    }
    else if (window.external)// ie 
        window.external.AddFavorite(url, title);
    else {
        alert('Not supported by this browser.');
    }
}

function mailto(subject, extraPath) {
    document.location = "mailto:?subject=" + subject + "&body=" + escape(location.href + extraPath)
}

function popUp(URL) {
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,left = 0,top = 0');");
}

function popUpFullScreen(URL) {
    day = new Date();
    id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,left = 0,top = 0',fullscreen=1);");
}

/* copy protect */
var msg
function setText(message) {
    msg = message;
}

function right(e) {
    if (navigator.appName == 'Netscape' && e.which == 3) {
        alert(msg);
        return false;
    }
    if (navigator.appName == 'Microsoft Internet Explorer' && event.button == 2) {
        alert(msg);
        return false;
    }
    else
        return true;
}

/* einde copy protect */


function bepaalAdres(value1, value2, knop1) {
    if (document.getElementById(value1).value != '' && document.getElementById(value2).value != '') {
        document.getElementById(knop1).click();
    }
}

function vertaalControlText(element, moreChars, moreNumbers, mixedCase, moreSymbols, moreChars1, moreNumbers1, mixedCase1, moreSymbols1) {
    text = document.getElementById(element).innerHTML;
    alert(text);
    text = text.replace(moreChars, moreChars1);
    text = text.replace(moreNumbers, moreNumbers1);
    text = text.replace(mixedCase, mixedCase1);
    text = text.replace(moreSymbols, moreSymbols1);

    document.getElementById(element).innerHTML = text;

}
function loadOutOfIFrame() {
    if (parent.frames.length != 0) {
        top.location.href = self.document.location;
    }
}

function popDHL(PURL) {
    WinDHL = window.open(PURL, "DHL", 'left=0,top=0,resizable=1,scrollbars=1,width=675,height=333');
    WinDHL.focus();
}

function controleerBtwNummer(elementId, errorMelding) {
    var myVATNumber = document.getElementById(elementId).value;
    if (myVATNumber != "") {
        if (checkVATNumber(myVATNumber)) {
            document.getElementById(elementId).value = checkVATNumber(myVATNumber)
        }
        else {
            document.getElementById(elementId).focus();
            alert(errorMelding);
        }
    }


}

function hgsSelected(source, eventArgs) {
    $get(eventArgs.get_value().split(";")[1]).value = eventArgs.get_value().split(";")[0];
}

function quickOrderSelected(source, eventArgs) {
    $get(eventArgs.get_value().split(";")[1]).innerText = eventArgs.get_value().split(";")[0];
}
function setFocusOnControl(controlId) {
    $get($get(controlId).value).focus();
}
function postBackHiddenField(element) {
    document.getElementById(element).click();
}

//function BrowseServer(inputId) {
//    var finder = new CKFinder();
//    finder.BasePath = '../fckeditor/ckfinder/';
//    finder.SelectFunction = SetFileField;
//    finder.SelectFunctionData = inputId;
//    finder.Popup();
//}

function BrowseServer(startupPath, functionData) {
    // You can use the "CKFinder" class to render CKFinder in a page:
    var finder = new CKFinder();

    // The path for the installation of CKFinder (default = "/ckfinder/").
    finder.basePath = '../fckeditor/ckfinder/';

    //Startup path in a form: "Type:/path/to/directory/"
    finder.startupPath = startupPath;

    // Name of a function which is called when a file is selected in CKFinder.
    finder.selectActionFunction = SetFileField;

    // Additional data to be passed to the selectActionFunction in a second argument.
    // We'll use this feature to pass the Id of a field that will be updated.
    finder.selectActionData = functionData;

    // Name of a function which is called when a thumbnail is selected in CKFinder.
    //finder.selectThumbnailActionFunction = ShowThumbnails;

    // Launch CKFinder
    finder.popup();
}

function BrowseServerRoot(inputId) {
    var finder = new CKFinder();
    finder.BasePath = 'fckeditor/ckfinder/';
    finder.SelectFunction = SetFileField;
    finder.SelectFunctionData = inputId;
    finder.Popup();
}

// This is a sample function which is called when a file is selected in CKFinder.
function SetFileField(fileUrl, data) {
    document.getElementById(data["selectActionData"]).value = fileUrl;
}
//function SetFileField(fileUrl, data) {
//    document.getElementById(data["selectFunctionData"]).value = fileUrl;
//}

// start row selecorcolumn 

function RowSelectorColumn_SelectAll(parentCheckBox) {
    if (typeof (document.getElementById) == "undefined") return;
    
    if (parentCheckBox == null || typeof (parentCheckBox.participants) == "undefined") {
        return;
    }

    var participants = parentCheckBox.participants;

    for (var i = 0; i < participants.length; i++) {
        var participant = participants[i];
        if (participant != null) {
            participant.checked = parentCheckBox.checked;
        }
    }
}
function RowSelectorColumn_Register(parentName, childName) {
    if (typeof (document.getElementById) == "undefined") return;

    var parent = document.getElementById(parentName);
    var child = document.getElementById(childName);

    if (parent == null || child == null) {
        return;
    }

    if (typeof (parent.participants) == "undefined") {
        parent.participants = new Array();
    }

    parent.participants[parent.participants.length] = child;
}

function RowSelectorColumn_CheckChildren(parentName) {
    if (typeof (document.getElementById) == "undefined") return;

    var parent = document.getElementById(parentName);
    if (parent == null || typeof (parent.participants) == "undefined") return;

    var participants = parent.participants;
    for (var i = 0; i < participants.length; i++) {
        var participant = participants[i];
        if (participant != null && !participant.checked) {
            parent.checked = false;
            return;
        }
    }
    parent.checked = true;
}

// eind row selecorcolumn 

// start treeviewCollapse
var tempNodeVal = ''; //global var

function toggleAll(treeViewId, toggleAction, selectedPath) {
    var treeView = document.getElementById(treeViewId);
    var treeLinks = treeView.getElementsByTagName("a");
    var displayStyle;

    var j = true;
    if (toggleAction == "collapse") { displayStyle = "block"; } else { displayStyle = "none"; }

    var samePath;
    var selectedPathArray;
    var pathNameArray;
    var pathNameArray;
    var collapseNode;

    for (i = 0; i < treeLinks.length; i++) {
        //if(treeLinks[i].firstChild.tagName == "IMG")
        //{
        var node = treeLinks[i];
        var level = parseInt(treeLinks[i].id.substr(treeLinks[i].id.length - 1), 10);
        var childContainer = document.getElementById(treeLinks[i].id + "Nodes");
        if (childContainer == null)
            childContainer = document.getElementById(treeLinks[i].id);

        collapseNode = true;
        if (selectedPath != null) {
            pathNameArray = node.title.split(",");
            selectedPathArray = selectedPath.split(",");
            if (pathNameArray[0] == "") pathNameArray[0] = selectedPathArray[0] // kan leeg zijn om de tooltip te verbergen, in dit geval is het altijd de node die gesloten wordt

            samePath = null;
            for (var e = 0; e < pathNameArray.length; e++) {
                if (selectedPathArray[e] == pathNameArray[e]) {
                    if (samePath == null || e == pathNameArray.length - 1)
                        samePath = true;

                    if (e == pathNameArray.length - 1 && samePath == true)
                        collapseNode = false;
                } else {
                    break;
                }
            }
        }

        if (collapseNode) {
            if (j) {
                if (childContainer.style.display == displayStyle)
                    TreeView_ToggleNode(eval(treeViewId + "_Data"), level, node, 'r', childContainer);
                j = false;
            }
            else {
                if (childContainer.style.display == displayStyle)
                    TreeView_ToggleNode(eval(treeViewId + "_Data"), level, node, 'l', childContainer);
            }
        }
        //}
    }
}

function toggleNode(treeViewId, evt, collapseTree) {
    //CallServer('navigatedByMenu','true');

    var src = (evt.target) ? evt.target : window.event.srcElement;
    //var src = window.event != window.undefined ? window.event.srcElement : evt.target;
    var nodeClick
    var tdClicked = false;
    if (src.tagName.toLowerCase() == "a") {
        nodeClick = src.tagName.toLowerCase() == "a";
    } else if (src.tagName.toLowerCase() == "td") {
        src = src.childNodes[0]
        nodeClick = src.tagName.toLowerCase() == "a";
        tdClicked = true;
    }

    if (nodeClick) {
        var treeView = document.getElementById(treeViewId);
        //var treeLinks = document.getElementById(src.id);
        var treeLinks = src
        var j = true;

        var pathname = src.pathname;
        if (pathname == "") pathname = src.href.replace("javascript:", "");

        if (collapseTree == 'True' && tdClicked == false && (pathname.startsWith("TreeView_PopulateNode") || pathname.startsWith("TreeView_ToggleNode"))) {
            toggleAll(treeViewId, 'collapse', tempNodeVal);
        }

        //if(treeLinks.firstChild.tagName == "IMG")
        if ((pathname.startsWith("TreeView_PopulateNode") || pathname.startsWith("TreeView_ToggleNode") || pathname.startsWith("__doPostBack")) && tdClicked == true) {

            //if (src.pathname != "") src.click();
            if (window.addEventListener)
                MouseClick.Click(src);
            else
                src.click();
        }

        if (!pathname.startsWith("TreeView_PopulateNode") && !pathname.startsWith("TreeView_ToggleNode") && !pathname.startsWith("__doPostBack")) {
            var node = treeLinks;
            var level = parseInt(treeLinks.id.substr(treeLinks.id.length - 1), 10);
            var childContainer = document.getElementById(treeLinks.id + "Nodes");

            if (childContainer.style.display == "block") { displayStyle = "block"; } else { displayStyle = "none"; }

            if (childContainer.style.display == displayStyle) {
                TreeView_ToggleNode(eval(treeViewId + "_Data"), level, node, 'l', childContainer);
            }
        }
    }
}

function OnTreeMouseOver(evt) {
    var src = (evt.target) ? evt.target : window.event.srcElement;
    //var src = window.event != window.undefined ? window.event.srcElement : evt.target;
    var isNodeOver

    if (src.tagName.toLowerCase() == "a") {
        isNodeOver = src.tagName.toLowerCase() == "a";
    } else if (src.tagName.toLowerCase() == "td") {
        src = src.childNodes[0]
        isNodeOver = src.tagName.toLowerCase() == "a";
    }

    if (isNodeOver) {
        tempNodeVal = src.title; //temporarily store node val before blanking it
        src.title = '';
    }
}

function OnTreeMouseOut(evt) {
    var src = (evt.target) ? evt.target : window.event.srcElement;
    //var src = window.event != window.undefined ? window.event.srcElement : evt.target;
    var isNodeOver

    if (src.tagName.toLowerCase() == "a") {
        isNodeOver = src.tagName.toLowerCase() == "a";
    } else if (src.tagName.toLowerCase() == "td") {
        src = src.childNodes[0]
        isNodeOver = src.tagName.toLowerCase() == "a";
    }

    if (isNodeOver)
        src.title = tempNodeVal; //reassign the node val to title, will need it
}

// eind treeviewCollapse

//function jscss(action,object,class1,class2)
//{
//  if (!object)
//      object = docuement.getElementById(object);
//    
//  switch (action){
//    case 'swap':
//      object.className=!jscss('check',object,class1)?object.className.replace(class2,class1): object.className.replace(class1,class2);
//    break;
//    case 'add':
//      if(!jscss('check',object,class1)){object.className+=object.className?' '+class1:class1;}
//    break;
//    case 'remove':
//      var rep=object.className.match(' '+class1)?' '+class1:class1;
//      object.className=object.className.replace(rep,'');
//    break;
//    case 'check':
//      return new RegExp('\\b'+class1+'\\b').test(object.className)
//    break;
//  }
//}
function jscss(action, object, class1, class2) {
    if (!object.tagName)
        object = document.getElementById(object);
    if (!object)
        return false; //alert('object not found');

    switch (action) {
        case 'swap':
            object.className = !jscss('check', object, class1) ? object.className.replace(class2, class1) : object.className.replace(class1, class2);
            break;
        case 'add':
            if (!object.className) { object.className = class1; }
            if ((object.className) && !jscss('check', object, class1)) { object.className += object.className ? ' ' + class1 : class1; }
            break;
        case 'remove':
            var rep = object.className.match(' ' + class1) ? ' ' + class1 : class1;
            object.className = object.className.replace(rep, '');
            break;
        case 'check':
            return new RegExp('\\b' + class1 + '\\b').test(object.className)
            break;
    }
}

//function ReceiveServerData(rValue) {
//    alert(rValue);
//}

// SEO MENU

function navClick(collapseId, object, classname) {

    if ((jscss('check', object, 'spanHasChilds_collapsed')) || (jscss('check', object, 'spanHasChilds_expanded'))) {
        jscss('swap', object, 'spanHasChilds_collapsed', 'spanHasChilds_expanded');
    }

    if (collapseId) {
        jscss('swap', collapseId, 'collapsed', 'expanded');
    }

    if (!jscss('check', object, classname)) {
        jscss('add', object, classname);
    }
    else {
        jscss('remove', object, classname);
        jscss('add', object, 'spanIn');
    }
    closeItems(object);
}

function navOver(oject, classname, action) {

    switch (action) {
        case 'add':
            if (!jscss('check', oject, classname)) {
                jscss('add', oject, 'spanIn');
            }
            break;
        case 'remove':
            if (!jscss('check', oject, classname)) {
                jscss('remove', oject, 'spanIn');
            }
            break;
    }

}

function closeItems(object) {

    var clickedObject = object.parentNode.parentNode;
    var clickedType = jscss('check', clickedObject, 'hoofdgroep') ? 1 : jscss('check', clickedObject, 'subgroep') ? 3 : 2;
    var clickedClassName = clickedObject.className;

    var myGroups = new Array();

    switch (clickedType) {
        case 1:
            myGroups[0] = clickedObject; // selecteren
            if (clickedObject.childNodes.length > 1) {
                myGroups[1] = clickedObject.childNodes.item(1); // uitvouwen 
            }

            break;
        case 2:
            myGroups[0] = clickedObject.parentNode.parentNode; // selecteren
            myGroups[1] = clickedObject.parentNode; // uitvouwen
            myGroups[2] = clickedObject; // selecteren
            if (clickedObject.childNodes.length > 1) {
                myGroups[3] = clickedObject.childNodes.item(1); // uitvouwen
            }
            break;
        case 3:
            myGroups[0] = clickedObject.parentNode.parentNode.parentNode.parentNode; // selecteren
            myGroups[1] = clickedObject.parentNode.parentNode.parentNode; // uitvouwen
            myGroups[2] = clickedObject.parentNode.parentNode; // selecteren
            myGroups[3] = clickedObject.parentNode; // uitvouwen
            myGroups[4] = clickedObject; // selecteren
            break;
    }

    var ulMenu = myGroups[0].parentNode;

    closeMenuElement(ulMenu, myGroups, clickedObject);


}

function closeMenuElement(ulMenu, myGroups, clickedObject) {

    var items = ulMenu.getElementsByTagName("li");
    for (var i = 0; i < items.length; ++i) {
        if ((myGroups.indexOf(items[i]) == -1)) {
            if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanIn')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanIn');

            if (items[i].childNodes.length == 2) {
                // element heeft een onderliggende groep 
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanHasChilds_expanded')) {
                    jscss('swap', items[i].childNodes.item(0).childNodes.item(0), 'spanHasChilds_expanded', 'spanHasChilds_collapsed'); // pijl weergave aanpassen
                }
                if (jscss('check', items[i].childNodes.item(1), 'expanded')) {
                    jscss('swap', items[i].childNodes.item(1), 'expanded', 'collapsed'); // onderliggende UL verbergen 
                }
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanSelHoofd')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanSelHoofd');
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanSelGroep')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanSelGroep');
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanSelSub')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanSelSub');
            }
            else {
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanSelHoofd')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanSelHoofd');
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanSelGroep')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanSelGroep');
                if (jscss('check', items[i].childNodes.item(0).childNodes.item(0), 'spanSelSub')) jscss('remove', items[i].childNodes.item(0).childNodes.item(0), 'spanSelSub');
            }
        }

    }
}

// eind SEO MENU

var currenncySummary;
function footer_Register(parentName, totalElementName, totalElementInclExclName, currency) {
    if (typeof (document.getElementById) == "undefined") return;

    var parent = document.getElementById(parentName);
    if (parent == null || typeof (parent.participants) == "undefined") return;

    currenncySummary = currency;
    var totalElement = document.getElementById(totalElementName);
    var totalElementInclExcl = document.getElementById(totalElementInclExclName);

    if (totalElement != null || totalElementInclExcl == null) {
        if (typeof (parent.totalElement) == "undefined") {
            parent.totalElements = new Array();
        }
        parent.totalElements[parent.totalElements.length] = totalElement;
    }

    if (totalElementInclExcl != null) {
        if (typeof (parent.totalElementInclExcl) == "undefined") {
            parent.totalElementsInclExcl = new Array();
        }
        parent.totalElementsInclExcl[parent.totalElementsInclExcl.length] = totalElementInclExcl;
    }

}

function CalcSummary(parentName) {

    if (typeof (document.getElementById) == "undefined") return;

    var parent = document.getElementById(parentName);
    if (parent != null && typeof (parent.totalElements) != "undefined") {
        var totalElements = parent.totalElements;

        for (var i = 0; i < totalElements.length; i++) {
            var totalElement = totalElements[i];
            if (totalElement == null) return;
        }
    }

    if (parent != null && typeof (parent.totalElementsInclExcl) != "undefined") {
        var totalElementsInclExcl = parent.totalElementsInclExcl;

        for (var i = 0; i < totalElementsInclExcl.length; i++) {
            var totalElementInclExcl = totalElementsInclExcl[i];
            if (totalElementInclExcl == null) return;
        }
    } 
    

    var errorMessages = 0;
    var objectsSelected = 0;
    var totalPrice = 0.0;
    var totalPriceInclExcl = 0.0;

    //if (totalElement != null) totalPrice = parseFloat(totalElement.innerHTML.replace(",", "."));
    //if (totalElementInclExcl != null) totalPriceInclExcl = parseFloat(totalElementInclExcl.innerHTML.replace(",", "."));
   
    for (i = 0; i < grd_Cb.length; i++) {

        var Obj1 = document.getElementById(grd_Cb[i]);
        
        if (Obj1 && Obj1.checked == true) {
            objectsSelected += 1;
        
            var objPrijs = document.getElementById(grd_prijs[i]);
            var objPrijsInclExcl = document.getElementById(grd_prijsInclExcl[i]);
            var objAantal = document.getElementById(grd_Aantal[i]);

            if (isNaN(objAantal.value) || objAantal.value == "") {
                if (totalElement != null) {
                    totalElement.innerHTML = '-';
                }
                if (totalElementInclExcl != null) {
                    totalElementInclExcl.innerHTML = '-';
                }
                return;
            }
            
            if (objPrijs != null) {
                if (!isNaN(objPrijs.innerHTML.replace(",", "."))) {
                    if (Obj1.checked == true) {
                        totalPrice += parseFloat(objPrijs.innerHTML.replace(",", ".")) * parseFloat(objAantal.value);
                    //} else {
                    //    totalPrice -= parseFloat(objPrijs.innerHTML.replace(",", "."));
                    }
                }
            }
            
            if (objPrijsInclExcl != null) {
                if (!isNaN(objPrijsInclExcl.innerHTML.replace(",", "."))) {
                    if (Obj1.checked == true) {
                        totalPriceInclExcl += parseFloat(objPrijsInclExcl.innerHTML.replace(",", ".")) * parseFloat(objAantal.value);
                    //} else {
                    //    totalPriceInclExcl -= parseFloat(objPrijsInclExcl.innerHTML.replace(",", "."));
                    }
                }
            }
        }
        

    }

    if (totalElement != null) {
        totalElement.innerHTML = currenncySummary + " " + totalPrice.formatMoney(2, ',', '.'); //+  Math.round(totalPrice*100)/100;
    }
    if (totalElementInclExcl != null) {
        totalElementInclExcl.innerHTML = currenncySummary + " " + totalPriceInclExcl.formatMoney(2, ',', '.'); // + Math.round(totalPriceInclExcl * 100) / 100;
    }
    
}
function handleBegin() {
    grd_Cb = [];
    grd_prijs = [];
    grd_prijsInclExcl = [];
    grd_Aantal = [];
}

function handleEnd() {
    //alert(t);
} 
