$(document).ready(function() {
    // sitemap
    var menuWidth = 0;
    $(".sitemap > li > ul").css('position', 'absolute')
                           .css('top', '0pt')
                           .css('background-color', 'white')
                           .hide()
    .parent("li").siblings().children().each(function() {
        var width = $(this).width();
        if (width > menuWidth) {
            menuWidth = width;
        }
    }).end().end().end()
    .css('left', menuWidth + 'px');
    $(".sitemap > li").css('position', 'relative').hover(function(event) {
        var parentItem     = $(this);
        var menuOffset     = parentItem.offset();
        var subsectionMenu = parentItem.children("ul");
        if (subsectionMenu.is(":hidden")) {
            subsectionMenu.css('left', (menuWidth + 10) + "px")
                          .css('z-index', '50')
                          .fadeIn(360);
        }
    }, function(event) {
        var subsectionMenu = $(this).children("ul");
        if (subsectionMenu.length <= 0) {
            return;
        }
        if (subsectionMenu.is(":visible")) {
            subsectionMenu.fadeOut(360);
        }
    });
    
    // subsection menu
    $(".menu.subsection").hide()
    .children(".selected").each(function() {
        $(this).parent(".menu.subsection").show(180).addClass("show");
    });
    $(".menu.section li").hover(function(event) {
        var subsectionMenu = $(this).children(".menu.subsection");
        if (subsectionMenu.is(":hidden")) {
            subsectionMenu.show(360);
        }
    }, function(event) {
        var subsectionMenu = $(this).children(".menu.subsection");
        if (subsectionMenu.is(":visible") && !subsectionMenu.hasClass("show")) {
            subsectionMenu.hide(360);
        }
    });

    $(".cycle").cycle({
        fx: "fade",
        speed: 1500
    });
});

function rotateBanner(image, i) {
    function shiftZeros(str, len) {
        str = "" + str;
        while (len > str.length) {
            str = "0" + str;
        }
        return str;
    }

    var regexp = /(\d+)(\.\w{3,4})$/;
    var pos = image.attr("src").match(regexp);
    var len, src;
    if (pos) {
        len  = pos[1].length;
        pos  = 1 * pos[1];
        pos += 1;
        pos  = shiftZeros(pos, len);
        src  = image.attr("src").replace(regexp, pos + "$2");
    } else {
        window.clearInterval(rotateBanner.intervals[i]);
        return;
    }
    $(window).ajaxError(function() {
        pos = 1;
        pos = shiftZeros(pos, len);
        src = image.attr("src").replace(regexp, pos + "$2");
        image.attr("src", src);
    });
    $.get(src, function() {
        image.attr("src", src);
    });
}
