/**
 * RCPC spry initialization...
 */
var spryPanels = new Array();
var spryGroups = new Array();
var spryAccordians = new Array();
var spryTabbedPanels = new Array();

    function InitSpryDivs()
    {
        var divs = document.getElementsByTagName("div");
        
        for (var i=0; i < divs.length; i++)
        {
            switch(divs[i].className)
            {
                case "Accordion":
                    spryAccordians[divs[i].id] = new Spry.Widget.Accordion(divs[i].id, {useFixedPanelHeights: false });
                break;
                
                case "TabbedPanels":
                break;

                case "CollapsiblePanel":
                break;

                case "CollapsiblePanelGroup":
                break;
            }
        }
    }
    
    function InitAccordians()
    {
        var divs = document.getElementsByTagName("div");
        
        for (var i=0; i < divs.length; i++)
        {
            if (divs[i].className == "Accordion")
            {
                spryAccordians[divs[i].id] = new Spry.Widget.Accordion(divs[i].id, {useFixedPanelHeights: false });
            }
        }
    }
    
    function InitTabbedPanels()
    {
        var divs = document.getElementsByTagName("div");
        
        for (var i=0; i < divs.length; i++)
        {
            if (divs[i].className == "TabbedPanels")
            {
                spryTabbedPanels[divs[i].id] = new Spry.Widget.TabbedPanels(divs[i].id);
            }
        }
    }
    
    var ignorePanelList = new Array();
    function InitCollapsiblePanels()
    {
		CreateCollapsibleBySelector(".CollapsiblePanel");
    }
    
    function InitCollapsiblePanelGroups()
    {
		
		Spry.$$(".CollapsiblePanelGroup .CollapsiblePanel").forEach(function(panel) {
            ignorePanelList[panel.id] = panel.id;
		});

		Spry.$$(".CollapsiblePanelGroup").forEach(function(group) {
            spryGroups[group.id] = new Spry.Widget.CollapsiblePanelGroup(group.id, { contentIsOpen: false });
		});
    }
    
    function CreateCollapsibleBySelector(selector)
    {
        Spry.$$(selector).forEach
        (function(panel)
            {
                if (ignorePanelList[panel.id] != panel.id) {
	                var oContentDiv = Spry.Widget.CollapsiblePanel.prototype.getElementChildren(panel)[1];
	                var contentDisplay = (oContentDiv.style.display != "none") && (oContentDiv.style.visibility != "hidden");
					spryPanels[panel.id] = new Spry.Widget.CollapsiblePanel(panel.id, { contentIsOpen: contentDisplay } );
				}
            }
        );
    }

    function CreateTabbedBySelector(selector)
    {
        Spry.$$(selector).forEach
        (function(n)
            {
                spryTabbedPanels[n.id] = new Spry.Widget.TabbedPanels(n.id);
            }
        );
    }

    function CreateTextValidationBySelector(selector, validationType, validationOptions)
    {
        Spry.$$(selector).forEach
        (function(n)
            {
                window["tv" + n.id] = new Spry.Widget.ValidationTextField(n.id, validationType, validationOptions );
            }
        );
    }


    function RCPC_InitSpry()
    {
        InitAccordians();
        InitCollapsiblePanelGroups();
		InitCollapsiblePanels();
		InitTabbedPanels();
        return true;
    }

Spry.Utils.addLoadListener(RCPC_InitSpry);
