jQuery(document).ready(function() {
    var slideIds = [];
    var slideIdx = [];
    /* This code is executed after the DOM has been completely loaded */
    var totWidth = 0;
    var positions = new Array();
    jQuery('#slides .slide').each(function (i) {
        slideIds[i] = jQuery(this).attr("id");
        slideIdx[slideIds[i]] = i;
        /* Traverse through all the slides and store their accumulative widths in totWidth */
        positions[i] = totWidth;
        totWidth += jQuery(this).width();
        /* The positions array contains each slide's commulutative offset from the left part of the container */
        if (!jQuery(this).width()) {
            alert("Please, fill in width & height for all your images!");
            return false;
        }
    });
    jQuery('#slides').width(totWidth);
    /* Change the container div's width to the exact width of all the slides combined */
    jQuery('#menu ul li a').click(function (e, keepScroll) {
        /* On a thumbnail click */
        jQuery('li.menuItem').removeClass('act').addClass('inact');
        jQuery(this).parent().addClass('act');
        var pos = jQuery(this).parent().prevAll('.menuItem').length;
        jQuery('#slides').stop().animate({ marginLeft: -positions[pos] + 'px' }, 450);
        /* Start the sliding animation */
        e.preventDefault();
        /* Prevent the default action of the link */
        // Stopping the auto-advance if an icon has been clicked:
        if (!keepScroll) clearInterval(itvl);
    });

    // The number of seconds that the slider will auto-advance in:

    var changeEvery = 5;
    var itvl;
    var hash = location.hash;
    var idx = hash ? slideIdx[hash.substring(1)] : null; // this may not be correct if jQuery sees the first current as 1 
    var current = (idx != null) ? idx : 1; // set idx to 1

    //	jQuery('#menu ul li.menuItem:first').addClass('act').siblings().addClass('inact');
    /* On page load, mark the first thumbnail as active */

    jQuery('#menu ul li a').eq(current % jQuery('#menu ul li a').length).addClass('act').siblings().addClass('inact');
    if (hash) jQuery('#menu ul li a').eq(current % jQuery('#menu ul li a').length).trigger('click', [false]);

    /*****
    *
    *	Enabling auto-advance.
    *
    ****/

    else itvl = setInterval(function () { autoAdvance() }, changeEvery * 1000); // only start if nothing passed


    function autoAdvance() {
        if (current == -1) return false;

        jQuery('#menu ul li a').eq(current % jQuery('#menu ul li a').length).trigger('click', [true]); // [true] will be passed as the keepScroll parameter of the click function on line 28
        current++;
    }


    /* End of customizations */

    jQuery(".backup-dropdown img.flag").addClass("flagvisibility");
    jQuery(".backup-dropdown dt a").click(function () {
        jQuery(".backup-dropdown dd ul").toggle();
    });
    jQuery(".backup-dropdown dd ul li a").click(function () {
        var text = jQuery(this).html();
        jQuery(".backup-dropdown dt a span").html(text);
        jQuery(".backup-dropdown dd ul").hide();
    });
    jQuery(document).bind('click', function (e) {
        var jQueryclicked = jQuery(e.target);
        if (!jQueryclicked.parents().hasClass("backup-dropdown"))
            jQuery(".backup-dropdown dd ul").hide();
    });
});
