﻿function akScrollInit(container, max, wid, columns) {
    var obj = jQuery(container);

    if (obj == null)
        return;

    var scrollable = obj.children('div.scrollable').children('div.items')

    max = scrollable.children().size() - (columns+1);

    var quicknav = obj.children('div.goto');

    for (var i = 0; i <= max; i += columns) {
        if (i == 0)
            quicknav.append('<a href="#" class="goto' + (i / columns) + ' active" onclick="return akScrollGoto(this, ' + i + ')">&nbsp;</a>');
        else
            quicknav.append('<a href="#" class="goto' + (i / columns) + '" onclick="return akScrollGoto(this, ' + i + ')">&nbsp;</a>');
    }

    if (max % columns != 0) {
        quicknav.append('<a href="#" class="goto' + (i / columns) + '" onclick="return akScrollGoto(this, ' + max + ')">&nbsp;</a>');
    }

    data = { max: max, pos: 0, scrollable: scrollable, wid: wid }

    jQuery.data(obj.get(0), 'akScroll', data);
}

function akScrollGoto(elem, pos) {
    var data = jQuery.data(jQuery(elem).parent().parent().get(0), 'akScroll');

    if (data == null)
        return false;

    if (pos <= data.max && pos >= 0) {
        data.scrollable.animate({ left: '-' + (pos * data.wid) + 'px' }, 'normal', 'swing');
        data.pos = pos;
    }

    jQuery(elem).parent().children().removeClass('active');

    jQuery(elem).addClass('active');

    return false;
}

function akScrollPrev(elem, columns) {
    var data = jQuery.data(jQuery(elem).parent().get(0), 'akScroll');

    if (data == null)
        return false;

    if (--data.pos >= 0)
        data.scrollable.animate({ left: '-' + (data.pos * data.wid) + 'px' }, 300, 'swing');
    else
        data.pos = 0;

    jQuery(elem).parent().children('div.goto').children().removeClass('active');

    var marker = data.pos / columns;

    if (parseInt(marker, 10) < marker)
        marker = parseInt(marker, 10) + 1;

    jQuery(elem).parent().children('div.goto').children('a.goto' + marker).addClass('active');

    return false;
}

function akScrollNext(elem,columns) {
    var data = jQuery.data(jQuery(elem).parent().get(0), 'akScroll');

    if (data == null)
        return false;

    if (++data.pos <= data.max)
        data.scrollable.animate({ left: '-' + (data.pos * data.wid) + 'px' }, 300, 'swing');
    else
        data.pos = data.max;

    jQuery(elem).parent().children('div.goto').children().removeClass('active');

    var marker = data.pos / columns;

    if (parseInt(marker, 10) < marker)
        marker = parseInt(marker, 10) + 1;

    jQuery(elem).parent().children('div.goto').children('a.goto' + marker).addClass('active');

    return false;
}

