/* code uit advance dom scripting */
function isCompatible(other) {
    // Use capability detection to check requirements
    if( other===false 
        || !Array.prototype.push
        || !Object.hasOwnProperty
        || !document.createElement
        || !document.getElementsByTagName
        ) {
        alert('TR- if you see this message isCompatible is failing incorrectly.');
        return false;
    }
    return true;
}

function addEvent( node, type, listener ) {
    if(!isCompatible()) { return false }
    if(!(node = $(node))) return false;
    
    if (node.addEventListener) { // W3C method
        node.addEventListener( type, listener, false );
        return true;
    } else if(node.attachEvent) { // MSIE method
        node['e'+type+listener] = listener;
        node[type+listener] = function(){node['e'+type+listener]( window.event );}
        node.attachEvent( 'on'+type, node[type+listener] );
        return true;
    }
    return false;
};

function removeEvent(node, type, listener ) {
    if(!(node = $(node))) return false;
    if (node.removeEventListener) {
        node.removeEventListener( type, listener, false );
        return true;
    } else if (node.detachEvent) { // MSIE method
        node.detachEvent( 'on'+type, node[type+listener] );
        node[type+listener] = null;
        return true;
    }
    return false;
};

function getElementsByClassName(className, tag, parent){
    parent = parent || document;
    if(!(parent = $(parent))) return false;

    var allTags = (tag == "*" && parent.all) ? parent.all : parent.getElementsByTagName(tag);
    var matchingElements = new Array();
    
    className = className.replace(/\-/g, "\\-");
    var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
    var element;
    for(var i=0; i<allTags.length; i++){
        element = allTags[i];
        if(regex.test(element.className)){
            matchingElements.push(element);
        }
    }
    return matchingElements;
};

/**
 * document.getElementById(); replacement.
 */
function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string') {
            element = document.getElementById(element);
        }
        if (arguments.length == 1) {
            return element;
        }
        elements.push(element);
    }
    return elements;
};

function registerMOImgListeners(anchor,anchorImage,path,extension) {
    var imageMouseOver = new Image()
    // namen vd rollovers
    imageMouseOver.src = path + '.on' + extension;
    addEvent(anchor, 'mouseover', function (W3CEvent) {
        anchorImage.src = imageMouseOver.src;
    });
    addEvent(anchor, 'mouseout', function (W3CEvent) {
        anchorImage.src = path + extension;
    });
}

function initMOImgs(W3CEvent) {
    var anchors = getElementsByClassName('MOImg','a');
    //$('testbox').innerHTML = anchors;

    for (var i=0; i<anchors.length ; i++) {
        var anchorImage = anchors[i].getElementsByTagName('img')[0];

        if(anchorImage) {
            var extensionIndex = anchorImage.src.lastIndexOf('.');
            var path= anchorImage.src.substr(0, extensionIndex);
            var extension= anchorImage.src.substring(
                extensionIndex,
                anchorImage.src.length
            );
            registerMOImgListeners(
                anchors[i],
                anchorImage,
                path,
                extension
            );
        }
    }
}

// bij mo divje tonen met tekst erin van deze alt
function registerMOAreaListeners(elem, text) {
        addEvent(elem, 'mouseover', function (W3CEvent) {
        $('provincienaam').innerHTML = text;
        $('provincienaam').style.display = 'block';
    });
    addEvent(elem, 'mouseout', function (W3CEvent) {
        $('provincienaam').style.display = 'none';
    });
}

function initMOAreas(W3CEvent) {
    var anchors = getElementsByClassName('MOarea','area');
    for (var i=0; i<anchors.length ; i++) {
        var text = anchors[i].alt;
        registerMOAreaListeners(
            anchors[i],
            text
        );
    }
}
