﻿function setUpPaging(control, itemsPerPage, itemWidth) {
    var children = control.find("li");
    page = control.parent().find("div.paging span");
    if (page != null) {
        page.css("width", itemWidth * Math.ceil(children.length / itemsPerPage) + "px");
        return Math.ceil(children.length / itemsPerPage);
    }
    return -1;

}
function paging(control, next, currentP, maxP, itemWidth, circular) {
    //stop if reach the end
    if (!circular && next && currentP == maxP)
        return maxP;
    if (!circular && !next && currentP <= 1) return 1;
    //find paging position	
    var param = "background-position-x";
    if (control == null || control.html() == null) return -1;
    var length = control.css("width");
    var bgX = control.css(param);
    if (bgX == 'undefined' || bgX == null) {
        param = "background-position";
        bgX = control.css(param).split(" ")[0];
    }
    var position = Number(bgX.replace("px", ""));

    var init = (0 - itemWidth * Math.max(maxP - 1, 4));

    //if control circulates, and it reaches the end, circulate!
    if (circular && next && currentP == maxP) {
        control.css(param, init + "px");
        return 1;
    }
    //if control circulates, and it reaches the beginning, circulate!
    if (circular && !next && currentP == 1) {
        control.css(param, (init + (itemWidth * (maxP - 1))) + "px");
        return maxP;
    }
    //regular case paging
    if (next) {
        control.css(param, position + itemWidth + "px");
        return (currentP + 1) % (maxP + 1);
    }
    else {
        control.css(param, position - itemWidth + "px");
        return (currentP - 1) % (maxP + 1);
    }


}




function setUpVote() {

    $("div.vote img.vbtn").bind('click', function() {
        $(this).parent().parent().find("div.question").fadeOut("slow");
        $(this).parent().parent().find("div.result").fadeIn("slow");
    });
    var current = 1;

    var pages = setUpPaging(jQuery("#votePanel"), 1, 10);
    var first = true;
    function myvote_initCallback(carousel) {

        $('#vRt').bind('click', function() {
            carousel.next();
            current = paging($('div.vote div.paging').find("span"), true, current, pages, 10, false);
            return false;
        });

        $('#vLf').bind('click', function() {
            carousel.prev();
            current = paging($(this).parent().find("span"), false, current, pages, 10, false);
            return false;
        });
    };


    $('#votePanel').jcarousel({
        scroll: 1,
        visible: 1,
        initCallback: myvote_initCallback
    });
}



function getLeaf(url) {
    //alert(url);
    var first = url.indexOf("/");
    var last = url.lastIndexOf("/");
    if (first == 0) {
        if (last == url.length - 1) {
            return url;
        }
        else {
            return url.substring(last);
        }
    }
    if (last == url.length - 1) {
        first = url.indexOf("/", 10);
        return url.substring(first);
    }
    else {
        return url.substring(last);
    }
}

function setUPMenu() {
    function mycarousel_initCallback(carousel) {
        var current = getLeaf(location.href);
        $icons = $('#sMenu').find("a");
        for (i = 0; i < $icons.length; i++) {
            if ($icons.eq(i).attr("href") == current) {
                carousel.options.start = i + 1;
            }
        }
        $('#CBrt').bind('click', function() {
            carousel.next();
            return false;
        });

        $('#CBlf').bind('click', function() {
            carousel.prev();
            return false;
        });
    };

    $('#sMenu').jcarousel({
        buttonPrevHTML: '',
        buttonNextHTML: '',
        scroll: 2,
        visible: 6,
        start: 1,
        initCallback: mycarousel_initCallback
    });
}