﻿/* 
* MonoX toggle element visibility scripts.
* NOTE: This script requires jQuery to work.  Download jQuery at www.jquery.com
*/

$.extend({
    /* used in scenarios where there can be only one elementToToggle, otherwise all elements with class elementToToggleClass will be toggled */
    registerToggleSingleElementVisibility: function(clickElementClass, elementToToggleClass, elementToFocusClass) {
        $.toggleSingleElementVisibility(clickElementClass, elementToToggleClass, elementToFocusClass);
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if (prm != null) {
            prm.add_endRequest(function(s, e) {
            $.toggleSingleElementVisibility(clickElementClass, elementToToggleClass, elementToFocusClass);
            });
        }
    },

    toggleSingleElementVisibility: function(clickElementClass, elementToToggleClass, elementToFocusClass) {
        $("." + elementToToggleClass).hide();
        $("." + clickElementClass).bind('click', function() {    
            $("." + elementToToggleClass).toggle("normal");
            if (elementToFocusClass != null)
                $("." + elementToToggleClass).children("." + elementToFocusClass).focus();
        });
    },

    /* used in scenarios where there can be multiple elements to toggle, so element with containerElementClass determine which element precisely should be toggled */
    registerToggleMultiElementVisibility: function(clickElementClass, elementToToggleClass, containerElementClass, elementToFocusClass) {
        $.toggleMultiElementVisibility(clickElementClass, elementToToggleClass, containerElementClass, elementToFocusClass);
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if (prm != null) {
            prm.add_endRequest(function(s, e) {            
                $.toggleMultiElementVisibility(clickElementClass, elementToToggleClass, containerElementClass, elementToFocusClass);
            });
        }
    },

    toggleMultiElementVisibility: function(clickElementClass, elementToToggleClass, containerElementClass, elementToFocusClass) {
        $("." + containerElementClass).find("." + elementToToggleClass).hide();
        $("." + clickElementClass).bind('click', function() {    
            $(this).parents("." + containerElementClass).find("." + elementToToggleClass).toggle();
            if (elementToFocusClass != null)
                $(this).parents("." + containerElementClass).find("." + elementToToggleClass).children("." + elementToFocusClass).focus();

        });
    },

    /* registers element for Facebook style resize behavior */
    registerAutoGrow: function(autoGrowElementClass) {
        $("." + autoGrowElementClass).growfield();
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if (prm != null) {
            prm.add_endRequest(function(s, e) {
                $("." + autoGrowElementClass).growfield();
            });
        }
    }




});





