﻿jQuery(function ($) {
    $(".panel-trigger").click(function () {
        var parent = $(this).parent();
        var target = $(".panel-target", parent);

        if (target) {
            target.animate({ "height": "toggle" }, 500, null, function () {
                var visible = target.is(":visible");
                var openClass = $("input[class='hidden-open-class']", target).val();
                var closeClass = $("input[class='hidden-close-class']", target).val();

                AddPanelToCookie("CollapsiblePanels", target.attr("id"), visible == true ? "1" : "0");

                if (visible != true) {
                    $(".panel-trigger", parent).each(function () {
                        if ($(this).hasClass(closeClass)) {
                            $(this).removeClass(closeClass);
                            $(this).addClass(openClass);
                        }
                    });

                    $(".panel-trigger", parent).children().each(function () {
                        if ($(this).hasClass(closeClass)) {
                            $(this).removeClass(closeClass);
                            $(this).addClass(openClass);
                        }
                    });
                }
                else {
                    $(".panel-trigger", parent).each(function () {
                        if ($(this).hasClass(openClass)) {
                            $(this).removeClass(openClass);
                            $(this).addClass(closeClass);
                        }
                    });

                    $(".panel-trigger", parent).children().each(function () {
                        if ($(this).hasClass(openClass)) {
                            $(this).removeClass(openClass);
                            $(this).addClass(closeClass);
                        }
                    });
                }
            });
        }
    });
});

function AddPanelToCookie(cookieKey, panelId, value)
{
    var cookieVal = $.cookie(cookieKey);
    var changed = false;

    if (cookieVal) {
        var newCookieVal = "";
        var cookiePairs = cookieVal.split(",");
        $.cookie(cookieKey, "");

        for (var i = 0; i < cookiePairs.length; i++) {
            var keyValPairs = cookiePairs[i].split("|");

            if (keyValPairs.length >= 2) {
                if (keyValPairs[0] == panelId) {
                    keyValPairs[1] = value;
                    changed = true;
                }

                if (newCookieVal != "") {
                    newCookieVal += ",";
                }

                newCookieVal += keyValPairs[0] + "|" + keyValPairs[1];
            }
        }

        if (!changed) {
            if (newCookieVal != "") {
                newCookieVal += ",";
            }

            newCookieVal += panelId + "|" + value;
        }

        $.cookie(cookieKey, newCookieVal);
    }
    else {
        $.cookie(cookieKey, panelId + "|" + value);
    }
}

