$(document).ready(function() {
    var dialog = $('<div id="dialog-content"></div>');
    $('a.dialog').click(function(event) {
        event.preventDefault();
        var url = this.href;
        dialog.load(
            url + ' .content',
            {},
            function() {
                $('#dialog-content').find('.content').addClass('in-dialog');
                dialog.dialog({
                    //autoOpen: false,
                    modal: true,
                    width: 600,
                    closeText: 'Sluiten',
                    close: closeDialogEventHandler
                });
                $('body').addClass('dialog-open');
            }
        );
    });

    var prev_url = $.cookie('prev_url');
    var current_url = window.location.pathname;
    $.cookie('prev_url', current_url, {path: '/'});

    if ($('#' + getPageFromUrl(prev_url)).length > 0 && $('#' + getPageFromUrl(current_url)).length > 0) {
        setStartState(getPageFromUrl(prev_url), prev_url != '/');
        if (prev_url != current_url) {
            animateNewToTop(getPageFromUrl(current_url));
        }
    }
});

function closeDialogEventHandler() {
    $('body').removeClass('dialog-open');
}

function getPageFromUrl(url) {
    var urlParts = url.split('/');
    if (urlParts[1] == '') {
        return 'ict-concept';
    }
    return urlParts[1];
}

function animateNewToTop(newPage) {
    $('#' + newPage).animate({top: 0}, 500, 'swing', function() {
        if (isToHome()) {
            switchToLeft(newPage);
        } else {
            switchLeftRight(newPage);
        }
    });
}

function switchLeftRight(newPage) {
    $('#' + newPage).switchClass('slided-right', 'selected', 1500);
    $('#nav-main li:not(#' + newPage + ')').switchClass('', 'slided-right', 1500, 'swing', function() {
        animateReorder(newPage);
    });
}

function switchToLeft(newPage) {
    $('#nav-main li').switchClass('slided-right', '', 1500, 'swing', function() {
        animateReorder(newPage);
        $('#' + newPage).addClass('selected');
    });
}

function animateReorder(newPage) {
    var i = 0;
    $('#nav-main li:not(#' + newPage + ')').each(function(index, element) {
        $(element).animate({top: (i + 1) * 26}, 500, 'swing', function() {
            $(this).removeClass('selected');
        });
        i++;
    });
}

function setStartState(page, startRight) {
    $('#nav-main li').removeClass();
    $('#' + page).addClass('selected');
    if (startRight) {
        $('#nav-main li:not(.selected)').addClass('slided-right');
    }
    reorder($('#nav-main li:not(.selected)'));
}

function reorder(elements) {
    var i = 0;
    elements.each(function(index, element) {
        $(element).css('top', (i + 1) * 26);
        i++;
    });
}

function isToHome() {
    return window.location.pathname == '/';
}
