/**
 * Fonts with Cufon
 */
$(document).ready(function() {
    Cufon.replace('h1');
    Cufon.replace('h2.currentweeknumber');
});

/**
 * Ajax navigation for calendar
 */
months = new Array('','Jan','Feb','M&auml;r','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dec');
prevmonth = month;
prevyear = year;
nextmonth = month;
nextyear = year;

/**
 * Handle bookmarks
 */
$(document).ready(function() {
    url = document.location.href;
    if (url.indexOf("#") > 0) {
        url = url.substr(url.indexOf("#")+2);
        if (url.indexOf("/") > 0) {
            y = url.substr(0,url.indexOf("/"));
            m = url.substr(url.indexOf("/")+1);
            if (y.match(/^[0-9]{1,4}$/) && m.match(/^[0-9]{1,2}$/) && m <= 12) {
                _gaq.push(['_trackEvent', 'Calendar', 'Bookmark', y + '-' + m]);
                navigateTo(y,m);
            }
        }
    }
});

/**
 * Add listeners
 */
$(document).ready(function() {
    updateprevmonth();
    updatenextmonth();
    $("a.nextmonth").click(function() {
        navMonth(1);
    });
    $("a.prevmonth").click(function() {
        navMonth(-1);
    });
});

function updatenextmonth() {
    nextmonth = (month % 12) + 1;
    nextyear = parseInt(year) + Math.floor(month / 12);
    $("a.nextmonth").attr("href", baseurl + "#/" + nextyear + "/" + nextmonth);
}

function updateprevmonth() {
    prevyear = year;
    prevmonth = month - 1;
    if (prevmonth <= 0) {
        prevyear--;
        prevmonth = 12;
    }
    $("a.prevmonth").attr("href", baseurl + "#/" + prevyear + "/" + prevmonth);
}

function navMonth(incr) {
    y = parseInt(year);
    m = parseInt(month) + incr;
    while (m <= 0) {
        y--;
        m += 12;
    }
    while (m > 12) {
        y++;
        m -= 12;
    }
    action = "Next";
    if (incr < 0) {
        action = "Previous"
    }
    _gaq.push(['_trackEvent', 'Calendar', action, y + '-' + m]);
    navigateTo(y,m);
}

function navigateTo(y,m) {
    $("table.browser tbody").fadeOut("fast");
    $.ajax({ url: baseurl + "calendar/" + y + "/" + m, context: document.body, success: function(html){
        year = y;
        month = m;
        updatenextmonth();
        updateprevmonth();
        $("table.browser th.viewmonth").html(months[m] + " " + y);
        $("table.browser tbody").html(html);
        $("table.browser tbody").fadeIn("fast");
    }});
}
