﻿(function() {
    Event = YAHOO.util.Event;
    Select = YAHOO.util.Selector;
    Event.onDOMReady(function() {
        var regions, regionHead, regionBody, regionClearBtn, i;

        //Gets array of the page's forms
        regions = Select.query("div.contactRegion", "Contact", false);

        for (i = 0; i < regions.length; i++) {
            regionHead = Select.query("div.hd", regions[i], true);
            regionBody = Select.query("div.bd", regions[i], true);
            regionClearBtn = Select.query("a.btnClear", regions[i], true);

            //Add click listener for the form's header
            //--Sends the form's body for toggling display 
            YAHOO.util.Event.addListener(regionHead, "click",
                        function(e, elem) {
                            toggleRegions(elem);
                        }, regionBody);

            //Add click listener for the form's clear button
            //--Sends the form's body to be traversed and fields cleared.           
            YAHOO.util.Event.addListener(regionClearBtn, "click",
                        function(e, elem) {
                            clearForm(elem);
                        }, regionBody);
        }
        
        //--- Methods ---//
        // Toggles selected element, hides the rest
        function toggleRegions(elem) {
            var regions, i;
            regions = Select.query("div.bd div.contactRegion div.bd", "Contact", false);

            for (i = 0; i < regions.length; i++) {
                //toggle passed in element
                if (regions[i] === elem) {
                    toggleRegion(elem);
                }
                //hide the rest
                else {
                    hideRegion(regions[i]);
                }
            }
        }
        // Toggle (Show/Hide) Element
        function toggleRegion(elem) {
            var style = elem.style;

            if (style.display === '' && elem.offsetWidth !== undefined && elem.offsetHeight !== undefined) {
                style.display = (elem.offsetWidth !== 0 && elem.offsetHeight !== 0) ? 'block' : 'none';
            }
            style.display = (style.display === '' || style.display === 'block') ? 'none' : 'block';
        }
        // Hide Element 
        function hideRegion(elem) {
            var style = elem.style;

            if (style.display === '' && elem.offsetWidth !== undefined && elem.offsetHeight !== undefined) {
                style.display = (elem.offsetWidth !== 0 && elem.offsetHeight !== 0) ? 'block' : 'none';
            }
            style.display = 'none';
        }
        // Reset form 
        function clearForm(region) {
            var elements, i, element;
            if (document.getElementsByTagName) {
                //clear textboxes 
                elements = region.getElementsByTagName('input');
                for (i = 0; i < elements.length; i++) {
                    element = elements[i];
                    if (element.getAttribute('type') == "text") {
                        element.value = '';
                    }
                }
                //clear textareas
                elements = region.getElementsByTagName('textarea');
                for (i = 0; i < elements.length; i++) {
                    elements[i].value = '';
                }
                //change dropdown indexes to 0
                elements = region.getElementsByTagName('select');
                for (i = 0; i < elements.length; i++) {
                    elements[i].selectedIndex = 0;
                }
            }
        }
    });
})();

