function load_kimi_bag_string()              {var ret=Cookie.get("kimi_bag",{path:"/"});if (!ret) ret=""; return ret;};
function save_kimi_bag_string(bag_string)
    {
    Cookie.set("kimi_bag", bag_string, {duration:30,path:"/"});
    console_log("save_kimi_bag_string: "+bag_string);
    };

function load_kimi_bag_array()
    {
    var bagCookie = load_kimi_bag_string();
    if (!bagCookie || bagCookie=="") return [];
    var list=bagCookie.split(",");
    var new_list=[];
    for (i=0;i<list.length;i++) if (list[i]!=null) new_list.push(list[i]);
    return new_list;
    };

function save_kimi_bag_array(bag)  {save_kimi_bag_string(bag.join(","));};

function in_bag(kimi_msid) {return load_kimi_bag_string().indexOf(kimi_msid)>=0};

function kimi_bag_add(kimi_msid)
    {
    if (!in_bag(kimi_msid))
        {
        var bag=load_kimi_bag_array();
        bag.push(kimi_msid);
        save_kimi_bag_array(bag);
        }
    show_kimi_bag_bag_kimis();
    };

function kimi_bag_remove(kimi_msid)
    {
    if (in_bag(kimi_msid))
        {
        var bag=load_kimi_bag_array();
        var new_bag=[];
        for (i=0;i<bag.length;i++)
            if (bag[i]!=kimi_msid) new_bag.push(bag[i]);
        save_kimi_bag_array(new_bag);
        update_kimi_bag();
        }
    };

function clear_kimi_bag()
    {
    if (!confirm("Remove all Kimis from your Kimi-Bag?")) return;
    Cookie.remove("kimi_bag",{path:"/"});
    update_kimi_bag();
    };

var kimi_bag_watcher=null;
var last_kimi_bag_string=null;
var kimi_bag_mode="normal";
var kimi_bag_page=null;

function set_kimi_bag_page(page)
    {
    kimi_bag_page=page;
    show_kimi_bag();
    };

function kimi_bag_watcher_func()
    {
//    console_log("kimi_bag_watcher")
//    alert("watcher")
//    if (last_kimi_bag_string!="loading" && load_kimi_bag_string()!=last_kimi_bag_string && kimi_bag_showing()) console_log("kimi_bag_watcher update: "+load_kimi_bag_string())
    update_kimi_bag();
    };

function start_kimi_bag_watcher()
    {
    console_log("start_kimi_bag_watcher");
    last_kimi_bag_string=load_kimi_bag_string();
    if (!kimi_bag_watcher) kimi_bag_watcher=setInterval(function(){kimi_bag_watcher_func()},100);
    window.addEvent('domready', function(){console_log("call initKimiStrip");if (is_defined("KimiStrip")) KimiStrip.init()})
    };

function stop_kimi_bag_watcher()
    {
    if (kimi_bag_watcher) {clearInterval(kimi_bag_watcher);kimi_bag_watcher=null};
    };

function show_kimi_bag()
    {
    if (!$('kimi_bag')) return;
    last_kimi_bag_string="loading";
    url='/kimi_bag/kimi_bag?kimi_bag_mode='+kimi_bag_mode;
    if (kimi_bag_page) url+="&kimi_bag_page="+kimi_bag_page;
    ajaxExecFunction(url,function(URL,response)
        {
        last_kimi_bag_string=load_kimi_bag_string();
        $('kimi_bag').innerHTML=response;
        $('kimi_bag').style.display="block";
        Cookie.set("kimi_bag_shown", "true", {path:"/"});
        console_log("show_kimi_bag() "+load_kimi_bag_string());
        if (is_defined("KimiPage") && KimiPage) KimiPage.newKimisAddedToBag();
        if (is_defined("KimiStrip")) KimiStrip.init();
        window.fireEvent('resize'); // fire a handlResize to reposition things (like the bgkimi) that need to be repositioned

        //auto scroll-up
        if (window.getScrollTop() > $('kimi_bag').getPosition().y) new Fx.Scroll(window).toElement($('kimi_bag'));
        });
    };

function show_kimi_bag_bag_kimis()
    {
    Cookie.remove("users_kimis", {path:"/"});
    show_kimi_bag();
    };

function show_kimi_bag_users_kimis()
    {
    Cookie.set("users_kimis","true",{path:"/"});
    show_kimi_bag();
    };

function kimi_bag_showing()     {return $('kimi_bag') && $('kimi_bag').style.display=="block";}

function toggle_kimi_bag()
    {
    if (kimi_bag_showing()) hide_kimi_bag();
    else                    show_kimi_bag();
    };

function hide_kimi_bag()
    {
    $('kimi_bag').style.display="none";
    Cookie.remove("kimi_bag_shown", {path:"/"});
    window.fireEvent('resize'); // fire a handlResize to reposition things (like the bgkimi) that need to be repositioned
    };

function update_kimi_bag()  {if (last_kimi_bag_string!="loading" && load_kimi_bag_string()!=last_kimi_bag_string && kimi_bag_showing()) show_kimi_bag()};

start_kimi_bag_watcher();
