﻿$(function() {
    if (document.referrer && document.referrer.indexOf("/recept/") >= 0) {
        $("#sort ul input[type='checkbox']").click(categoryClick);
        var cookie = getCookie();
        if (cookie.length > 0) {
            var savedIds = cookie.split(",");
            for (each in savedIds)
                $("#sort ul input[type='checkbox'][category='" + savedIds[each] + "']").attr("checked", true);
            refreshRecipes();
        }
    }
    else {
        setCookie("");
        $("#sort ul input[type='checkbox']").click(categoryClick).attr("checked", false);
    }
});
function categoryClick() {
    var tagId = $(this).attr("id");
    var id = tagId.substr(tagId.lastIndexOf("_") + 1);
    if (containsCategory(id)) {
        removeCategory(id);
        $(this).attr("checked", false);
    }
    else {
        addCategory(id);
        $(this).attr("checked", true);
    }
    refreshRecipes();
}
function refreshRecipes() {
    if (getCookie() == "")
        Site.WebService.GetRecipes([], refreshRecipesCallBack);
    else
        Site.WebService.GetRecipes(getCookie().split(","), refreshRecipesCallBack);
}
function refreshRecipesCallBack(result) {
    $("#recipeList").html("");
    for (each in result) {
        $("#recipeList")
                    .append("<dl>"
                    + "<dd><a href='" + result[each][2] + "'><img width='89px' height='89px' src='" + result[each][0] + "' alt='" + result[each][1] + "'/></a></dd>"
                    + "<dt><a href='" + result[each][2] + "'>" + result[each][1] + "</a></dt>"
                    + "</dl>");
    }
}
function addCategory(id) {
    if (getCookie() == "") {
        setCookie(id.toString());
    }
    else {
        setCookie(getCookie() + "," + id);
    }
}
function removeCategory(id) {
    var s = getCookie();
    var exp = new RegExp("(^|,)" + id + "(,|$)").exec(s);
    if (exp[1] == "," && exp[2] == ",")
        setCookie(s.substr(0, exp.index + 1) + s.substr(exp.index + exp[0].length))
    else
        setCookie(s.substr(0, exp.index) + s.substr(exp.index + exp[0].length));
}
function containsCategory(id) {
    return ("," + getCookie() + ",").indexOf("," + id + ",") >= 0;
}
function getCookie() {
    if ($.cookie("category"))
        return $.cookie("category");
    else
        return "";
}
function setCookie(value) {
    $.cookie("category", value, { expires: 7 });
}
