﻿$(function() {
    // Menu pointer
    var base = 0;
    var $active = $('#active');
    var mouseInItem;
    var locked = false;
    var resetCounter = null;
    
    getPosition = function(element) {
        var result = $(element).position().top - 4;
        return (result < 0 ? 0 : result);
    }
    
    moveActiveTo = function(top) {
        if (typeof top === 'object') top = getPosition(top);
        $active.stop(true);
        if (!locked) $active.animate({marginTop: top}, 500);
    }
    
    startResetCounter = function() {
        if (resetCounter !== null) window.clearTimeout(resetCounter); 
        resetCounter = window.setTimeout(function() {
            if (!mouseInItem) {
                moveActiveTo(base);
            }
        }, 500);
    }

    // Set menu pointer
    var a = $('#marginContent .MenuItemActive');
    if (a.length) {
        base = getPosition(a.get(0));
        $active.css({marginTop: base});
    }

    // Update menu pointer on mouse movement
    $('#margin a').hover(function() {
        window.setTimeout(function() {
            mouseInItem = true;
        }, 1);
        moveActiveTo(this);
    }, function() {
        mouseInItem = false;
        startResetCounter();
    }).click(function() {
        locked = true;
    });
    
    // Submenu paging
    var thisPage = $('#contentMenu .MenuItemActive');
    var nextPage = thisPage.next();
    var prevPage = thisPage.prev();
    var pager = $('<div class="pager"></div>');
    if (prevPage.length) pager.append($('<a class="prev">&lt;</a>'));
    if (nextPage.length) pager.append($('<a class="next">&gt;</a>'));
    pager.find('.prev').attr('href', prevPage.find('a').attr('href'))
    pager.find('.next').attr('href', nextPage.find('a').attr('href'))
    $('#contentMenu').prepend(pager);

    // Calendar
    $('.AppointmentHeader').live('click', function() {
        if ($(document.body).hasClass('home')) {
            window.location.href = '/Slotkapel-Egmond/nl-NL/culturele+agenda.aspx#open';
        } else {
            var isActive = $(this).closest('.ContentItem').hasClass('active');
            $('.ContentItemDetailAppointment').removeClass('active');
            if (!isActive) $(this).closest('.ContentItem').addClass('active');
        }
    });
    if (window.location.href.indexOf('#open') > 0) $('.AppointmentHeader:first').click();
});
