/*

  Functions for adding hover effects to navigation elements

  Requires:
    jquery.js

  Define elsewhere:
    webroot <- root for images

  v1.0 26/07/2010, Hayo Baan
       Initial version

  v1.1 27/07/2010, Hayo Baan
       jQuery adaptations

  v1.2 28/07/2010, Hayo Baan
       Added hover for language icons

  v1.3 05/01/2012, Hayo Baan
       More generic imagename determination

*/


// Show correct version of a navigation element
function showNavElement(id, active) {
    var suf = "";
    if (!active) {
        suf = "_";
    } else {
        if (document.getElementById(id).className.search(/\bhover\b/) > -1) {
            suf = "__";
        }
    }
    document.getElementById(id).src = document.getElementById(id).src.replace(/_*.gif/, suf + ".gif");;
}


// Show highlighted version of a navigation element
function hoverNavOn() {
    $(this).addClass("hover");
    if (this.src.search(/_/) < 0 || this.src.search(/lang_/) > -1) {
        this.src = this.src.replace(".gif","__.gif");
    }
}


// Show normal version of a navigation element
function hoverNavOff() {
    $(this).removeClass("hover");
    if (this.src.search(/__/) > -1) {
        this.src = this.src.replace("__.gif",".gif");
    }
}


// Initialise webroot if not set
if (!webroot) var webroot = "/";

// Initialise hovering
$(document).ready(function () {
    var idBase=[ "image", "dir" ];
    for (var base in idBase) {
        var idLR=[ "left", "right" ];
        if (idBase[base] == "dir") {
            idLR.push("up", "home");
        }
        for (var LR in idLR) {
            var idSuf=[ "" ];
            if (idBase[base] != "dir") {
                idSuf.push(idLR[LR]);
            }
            for (var suf in idSuf) {
                $("#"+idBase[base]+idLR[LR]+idSuf[suf]).hover(hoverNavOn, hoverNavOff);
            }
        }
    }
    $("img[src*=lang_]").hover(hoverNavOn, hoverNavOff);
});

