﻿var lastScrollPos = 0;

function getCookie(c_name)
{
    var i, x, y, cookies = document.cookie.split(";");
    for (i = 0; i < cookies.length; i++)
    {
        x = cookies[i].substr(0, cookies[i].indexOf("="));
        y = cookies[i].substr(cookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g,"");
        if (x == c_name)
        {
            return unescape(y);
        }
    }
}
 
function setCookie(c_name, value)
{
    var c_value = escape(value);
    document.cookie = c_name + "=" + c_value + "; expires=" + new Date(new Date().getTime()+60000).toGMTString();
}

$(document).ready(function () {
    var tabWidth = $(".scroller").children(".tabbutton").outerWidth() + 4;
    var barWidth = $(".scroller").parent().innerWidth();
    var actualNrTabs = _nrApps;
    var neededWidth = actualNrTabs * tabWidth;
    var sl = $(".scrollleft");
    var sr = $(".scrollright");
    if (neededWidth > barWidth) {
        var scrl = $(".scroller");
        var scrlpos = getCookie("tabscrlpos");
        if (scrlpos) {
            scrl.css("left", scrlpos);
        }
        if (_curTab != -1) {
            var x1 = _curTab * tabWidth;
            var x2 = x1 + tabWidth;
            scrlpos = scrl.css("left").replace("px", "") * 1;
            if (x1 < -scrlpos)
                scrl.animate({ left: -x1 + "px" }, 350);
            else
            if (x2 > -scrlpos + barWidth)
                scrl.animate({ left: -(x2 - barWidth) + "px" }, 350);
        }
        sr.css("left", (barWidth - sr.outerWidth()) + "px");
        var scrollPos = (barWidth - neededWidth) + "px";    // negative value
        sr.hover(
            function () {
                scrl.animate({ left: scrollPos }, 1000);
            },
            function () {
                scrl.stop();
            });
        sl.hover(
            function () {
                scrl.animate({ left: "0px" }, 1000);
            },
            function () {
                scrl.stop();
            });
        var animLeftBusy = false;
        var checkScrollerVis = function () {
            var scrlPos = scrl.css("left");
            var hideleft = scrlPos == "0px";
            var hidden = sl.css("display") == "none";
            if (hidden && !hideleft) {
                sl.show();
            }
            if (!hidden && hideleft) {
                sl.hide();
            }
            var hideright = scrlPos == scrollPos;
            hidden = sr.css("display") == "none";
            if (hidden && !hideright) {
                sr.show();
            }
            if (!hidden && hideright) {
                sr.hide();
            }
            if (scrlPos != lastScrollPos) {
                setCookie("tabscrlpos", scrlPos, 1);
                lastScrollPos = scrlPos;
            }
        };
        window.setInterval(checkScrollerVis, 300);
        checkScrollerVis();
    }
    else {
        sl.hide();
        sr.hide();
    }
});    

