
/*########################################################*/
/*-------------- expandable content widget --------------------*/
/*
 * generic handler for widget that allows user to toggle between N content blocks (e.g., Shop and Dine module on home page)
 */
(function ($) {
    $.fn.initExpandos = function () {
        $('a.ui-expando-group-control').click(toggleExpandoGroup);
        $('ul.ui-expando-group a.ui-expando-title').click(toggleExpando);
        $('div[class*="expando-mgr"] a.ui-btn-expando').click(toggleStandaloneExpando);

        function toggleExpandoGroup() {
            var $elem = $(this);

            //determine section for the clicked item (e.g., one, two, three, etc.) - defaults to "none"
            var regex = /sec-(\S+)/;
            var mySec = regex.exec(this.className)[1] || "none";

            $expandoSections = $('li.ui-expando-section');
            if ($elem.hasClass("isOpen")) {
                $elem.removeClass("isOpen");
                $expandoSections.each(
					function () {
					    $(this).addClass("sec-" + mySec + "-closed");
					    $(this).removeClass("sec-" + mySec + "-open");
					}
				);
            } else {
                $elem.addClass("isOpen");
                $expandoSections.each(
					function () {
					    $(this).addClass("sec-" + mySec + "-open");
					    $(this).removeClass("sec-" + mySec + "-closed");
					}
				);
            }

            return false;
        }

        function toggleStandaloneExpando() {
            var $elem = $(this);
            var $root = $elem.parents('div.tabs-container');
            var $selWrapper = $root.find('div.selected-wrapper');

            //determine target content section for the clicked item
            var regex = /expando-mgr-(\S+)/;
            var wrapperClass = $root[0].className;
            var targetContent = regex.exec(wrapperClass)[1] || "none";
            if (targetContent != "none") {
                var targetClassName = ".expando-target-" + targetContent;
                var expandoTarget = $(targetClassName);
                expandoTarget.toggleClass('ektron-ui-hidden');

                if ($elem.hasClass('ui-corner-all')) {
                    $elem.removeClass('ui-corner-all ektron-ui-floatLeft');
                    $selWrapper.append($elem).removeClass('ektron-ui-hidden');
                } else {
                    $elem.addClass('ui-corner-all ektron-ui-floatLeft');
                    $root.append($elem);
                    $selWrapper.addClass('ektron-ui-hidden');
                }
            }

            return false;
        }

        function toggleExpando() {
            var $elem = $(this);
            var group = $($elem.parents("ul.ui-expando-group")[0]);
            var item = $elem.parent();

            //determine section for the clicked item (e.g., one, two, three, etc.) - defaults to "none"
            var regex = /sec-(\S+)-/;
            var mySec = regex.exec(this.className)[1] || "none";

            if (item.hasClass("sec-" + mySec + "-closed")) {
                //close other items?
                if (group.hasClass("ui-expando-single")) {
                    group.find("li.ui-expando-section").each(
						function () {
						    $(this).addClass("sec-" + mySec + "-closed");
						    $(this).removeClass("sec-" + mySec + "-open");
						}
					);
                }

                item.removeClass("sec-" + mySec + "-closed");
                item.addClass("sec-" + mySec + "-open");
            } else {
                item.addClass("sec-" + mySec + "-closed");
                item.removeClass("sec-" + mySec + "-open");
            }

            return false;
        }
    }
})(jQuery);

$(document).ready(function () {
	$.fn.initExpandos();
});
