﻿var watchlist = null;
var wlCookieName = null;
var wlCookieSep = null;

AppendLoadedHandler(InitWatchlistDiv);

function InitWatchlistDiv() {
    RedrawLink();
}

function RedrawLink() {
    var link1 = " Item in watchlist";
    var links = " Items in watchlist";
    var linkempty = "No items in watchlist";
    if (clang == "de") {
        link1 = " Element in der Merkliste";
        links = " Elemente in der Merkliste";
        linkempty = "Keine Elemente in der Merkliste";
    }

    if (WatchlistGetSize() == 0) {
        $("watchlistLink").innerHTML = linkempty;
    } else {
        var link = "";
        if (WatchlistGetSize() == 1) {
            link = "<a href=\"/Watchlist.aspx\">1" + link1 + "</a>";
        } else {
            link = "<a href=\"/Watchlist.aspx\">" + WatchlistGetSize() + links + "</a>";
        }
        $("watchlistLink").innerHTML = link;
    }
}

function PrepareLink(link) {
    var tmp = link;
    if (tmp.substring(0, 1) == "/") {
        tmp = link.substring(1, tmp.length);
    }

    return tmp;
}

function WatchlistContainsItem(link) {
    link = PrepareLink(link);
    LoadWatchlistArray();
    var contains = false;
    for (var x = 0; x < watchlist.length; x++) {
        var tmp = PrepareLink(watchlist[x]);
        if (tmp == link) {
            contains = true;
            break;
        }
    }

    return contains;
}

function WatchlistGetSize(){
    LoadWatchlistArray();
    
    return watchlist.length;
}

function WatchlistAddItem(link) {
    link = PrepareLink(link);
    if (WatchlistContainsItem(link))
        return;

    watchlist[watchlist.length] = link;

    SaveWlCookie();
    RedrawLink();
}

function WatchlistRemoveItem(link) {
    var tmplink = PrepareLink(link);
    if (!WatchlistContainsItem(tmplink))
        return;
    
    var tmp = Array();
    for (var x = 0; x < watchlist.length; x++) {
        if (PrepareLink(watchlist[x]) != tmplink) {
            tmp[tmp.length] = watchlist[x];
        }
    }
    watchlist = tmp;
    SaveWlCookie();

    RedrawLink();

    if ($("WatchlistContainer") && $("wl_" + link)) {
        $("WatchlistContainer").removeChild($("wl_" + link));

        if (WatchlistGetSize() == 0) {
            var empty = "No elements in watchlist.";
            if (clang == "de") {
                empty = "Keine Elemente in der Merkliste.";
            }

            $("WatchlistContainer").innerHTML = empty;
        }
    }
}

function LoadWatchlistArray() {
    if (watchlist != null)
        return;

    watchlist = Array();

    var cookie = ReadCookie(wlCookieName);
    if (cookie != null) {
        var split = cookie.split(wlCookieSep);
        for (var x = 0; x < split.size(); x++) {
            watchlist[watchlist.length] = split[x];
        }
    }
}

function SaveWlCookie() {
    EraseCookie(wlCookieName);
    var newcookie = "";
    for (var x = 0; x < watchlist.size(); x++) {
        newcookie += watchlist[x] + wlCookieSep;
    }
    newcookie = newcookie.substring(0, newcookie.length - wlCookieSep.length);

    CreateCookie(wlCookieName, newcookie, 9999);
}