$(document).ready(function() {
    confSidebar = eval(mapPlayerSidebar);

    // prefetch objects via jQuery direct access
    function prefetch(tar) {
        linksSidebar = $(tar + ' ul.player_list li');
        linksSidebarActive = $(tar + ' ul.player_list li.active');
    }
    prefetch('#mapPlayerSidebar');
    // define rollover funtion on singles
    var lastOver = '';
    function overIt(i) {
        if (lastOver) {
            clearIt(lastOver)
        }
        lastOver = i + '';
        linksSidebar.eq(i).addClass('over');
        stadtteilOnMap[i].addClass('over');
        immoOnMap[i].addClass('over');
        playerPositionSidebar = i + '';
    }
    // define clear function for singles
    function clearIt(i) {
        linksSidebar.eq(i).removeClass('over');
        stadtteilOnMap[i].removeClass('over');
        immoOnMap[i].removeClass('over');
    }
    // prefetch additional objects via traverse
    function prefetchAdd(tar) {
        immoOnMap = new Array;
        stadtteilOnMap = new Array;
        sel = '';
        indexOfTheLastImageSidebar = '';
        indexOfActive = '';
        linksSidebar.each(function(i) {
            href = $(this).children('a').attr('href');
            sel = $(tar + " ul.player_map a[href='" + href + "']");
            immoOnMap[i] = $(sel).parent();
            // attach over function on immos on map during this traverse
            $(sel).parent().mouseover(function() {
                overIt(i);
            })
            stadtteilOnMap[i] = $(sel).parent().parent().parent();
            indexOfTheLastImageSidebar = i;
            // remember active if active
            if ($(this).hasClass('active')) {
                indexOfActive = i + '';
            }
        })
    }
    prefetchAdd('#mapPlayerSidebar');
    /**
	 * adjust margin of immogruppe
	 */
    function marginAdj() {
        var wmap = $('#mapPlayerSidebar ul.player_map').width();
        var wmap_l = $('#mapPlayerSidebar ul.player_map').offset();
        wmap_l = wmap_l.left;
        var w = '';
        var l = '';
        var delta = '';
        $('#mapPlayerSidebar .immobilienGruppe').each(function(i) {
            w = $(this).width();
            l = $(this).parent().offset();
            // ('left');
            l = l.left - wmap_l;
            delta = wmap - (l + w);
            if (delta < 0) {
                $(this).css('margin-left', delta);
                $(this).prev().css('margin-left', delta);
            }

        });
    }
    marginAdj();

    /**
	 * attach rollover function on restliche singles
	 */

    linksSidebar.each(function(i) {
        $(this).mouseover(function() {
            overIt(i);
        }).mouseout(function() {
            if (indexOfActive) {
                overIt(indexOfActive);
            }
        });
    });


    /**
	 * attach over on stadtteil
	 */
    $('#mapPlayerSidebar ul.player_map li.stadtteil').mouseenter(function() {
        if (lastOver)
        stadtteilOnMap[lastOver].removeClass('over');
        // store
        $(this).addClass('open');
    }).mouseleave(function() {
        if (lastOver)
        stadtteilOnMap[lastOver].addClass('over');
        // restore
        $(this).removeClass('open');
        if (indexOfActive) {
            overIt(indexOfActive);
        }
    });
    /**
	 * attach over and off on map
	 */







    if (confSidebar['selectFirst'] == 'true') {
        overIt(playerPositionSidebar);

    }
});
