﻿/// <reference path='~/js/jquery-1.3.2.min-vsdoc.js' />

// cookies: http://code.google.com/p/cookies/wiki/Documentation

// OBS! För att snabbt dölja alla cookies vid load för just IE7 och lägre så bör man köra en "hide"
// på elementen i slutet av sidans html-kod. Körs den här så blinkar kontrollerna till vid visning av sidan

$(document).ready(function() {
    var toggleBoxClass = ".ToggleBox";
    var toggleHandleClass = ".ToggleHandle";
    var toggleableClass = ".Toggleable";
    var expandedClass = "Expanded";
    var cookieExtension = "_togglestatus";



    $('.DefaultClosedToggleBox .Toggleable').hide();
    $('.DefaultClosedToggleBox').find(toggleHandleClass).each(function() {
        var toggleHandle = $(this);
        toggleHandle.click(function(event) {
            event.preventDefault();
            $(this).parents('.DefaultClosedToggleBox').find(toggleableClass).each(function() {
                var toggleable = $(this);
                toggleable.toggle();
                if (toggleable.is(':visible')) {
                    toggleHandle.addClass(expandedClass);
                }
                else {
                    toggleHandle.removeClass(expandedClass);
                }
            });


        });
    });

    $(toggleBoxClass).find(toggleableClass).each(function() {
        var toggleable = $(this);
        var status = $.cookies.get(toggleable.attr('id') + cookieExtension);

        switch (status) {
            case 'visible':
                toggleable.show();
                toggleable.parents(toggleBoxClass).find(toggleHandleClass).addClass(expandedClass)
                break;
            case 'hidden':
                toggleable.hide();
                toggleable.parents(toggleBoxClass).find(toggleHandleClass).removeClass(expandedClass)
                break;
            default:
                if (!toggleable.parents(toggleBoxClass).find(toggleHandleClass).hasClass(expandedClass)) {
                    toggleable.hide();
                }
        }
    });

    $(toggleBoxClass).find(toggleHandleClass).each(function() {
        var toggleHandle = $(this);
        toggleHandle.click(function(event) {
            event.preventDefault();
            $(this).parents(toggleBoxClass).find(toggleableClass).each(function() {
                var toggleable = $(this);
                toggleable.toggle();
                if (toggleable.is(':visible')) {
                    $.cookies.set(toggleable.attr('id') + cookieExtension, 'visible');
                    toggleHandle.addClass(expandedClass);
                }
                else {
                    $.cookies.set(toggleable.attr('id') + cookieExtension, 'hidden');
                    toggleHandle.removeClass(expandedClass);
                }
            });
        });
    });
});