// JavaScript Document


(function($) {

    $.fn.pagewidthWidget = function(selectors, activecss, toggles, cssvalue, options) {

        var opts = $.extend($.fn.pagewidthWidget.defaults, options);

        if ($.cookie(opts.cookieName) && !opts.cookieLoaded) {
            var $cookProperties = $.fn.pagewidthWidget.readcookies(opts.cookieName);

            var $cookselectors = $($cookProperties.selectors);
            var $cookcontrols = $($cookProperties.controls);
            var $cooktoggles = $($cookProperties.toggles);
            var $cookcssvalue = $cookProperties.cssvalue;
            var $activecss = $cookProperties.activecss;

            $cookselectors.css("width", $cookcssvalue);
            //alert("read");
            $cookcontrols.addClass($activecss);
            /*if ($cooktoggles.hasClass(opts.ToggleCss))
            $cooktoggles.removeClass(opts.ToggleCss);*/

            $cooktoggles.each(function() {
                var tOrgClass = $(this).attr("class").split(" ", 1);
                $(this).attr("class", tOrgClass + opts.ToggleCss);
            });

            //alert($cookcssvalue);
            opts.cookieLoaded = true;
        }

        return this.each(function() {
            var $controls = $(this),
			$selectors = $(selectors),
			$toggles = $(toggles);

            var $controlClass = $controls.attr("class").split(" ", 1);

            $controls.bind("click", function(e) {

                if (opts.useAnimate)
                    $selectors.animate({ width: cssvalue, 'min-width': opts.minwidth }, 300);
                else
                    $selectors.css("width", cssvalue).css('min-width', opts.minwidth);

                $controls.addClass(activecss);

                $toggles.each(function() {
                    var tOrgClass = $(this).attr("class").split(" ", 1);
                    $(this).attr("class", tOrgClass + opts.ToggleCss);
                });
                /*if ($toggles.hasClass(opts.ToggleCss))
                $toggles.removeClass(opts.ToggleCss);*/

                $.fn.pagewidthWidget.savecookies(selectors, "." + $controlClass, activecss, toggles, cssvalue, opts);
                e.preventDefault();
            });
        });

    }


    $.fn.pagewidthWidget.savecookies = function(selectors, controls, activecss, toggles, cssvalue, myoptions) {
        // save to cookies
        $.cookie(myoptions.cookieName, "selectors=" + selectors + "&controls=" + controls + "&activecss=" + activecss + "&toggles=" + toggles + "&cssvalue=" + cssvalue, myoptions.cookieParams);
        return true;
    };

    $.fn.pagewidthWidget.readcookies = function(the_cookie) {
        val_string = $.cookie(the_cookie);
        var objResult = {};
        $.each(val_string.split("&"), function() {
            var prm = this.split("=");
            objResult[prm[0]] = prm[1];
        });
        return objResult;
    };

    $.fn.pagewidthWidget.defaults = {
        cookieName: "pagewidthWidget",
        cookieParams: {
            expires: 30,
            path: "/"
        },
        cookieLoaded: false,
        useAnimate: true,
        ToggleCss: " skin_controls overcooked",
        minwidth: "760px"
    };

})(jQuery);


