﻿if ( typeof( CoreSharp ) != "function" ) var CoreSharp = function() {}
if ( typeof( CoreSharp.ContentSwitcher ) != "function" )
{
    CoreSharp.ContentSwitcher =
    
    function() {
    
        var ContainerStatus = new Array();

        return {

            SwitchContent : function ( container, index )
            {
                var object = document.getElementById( container );
                var changed = true;
                
                if ( object == null )
                {
                    alert( "invalid container name:" + container );
                    return;
                }

                var hasFilter = typeof(object.filters) == "object";
                if ( hasFilter ) hasFilter = hasFilter & object.filters.length > 0;

                var i = 0;
                if ( typeof(ContainerStatus[container]) == "undefined" )
                {
                    ContainerStatus[container] = -1;
                }
                
                if ( index == null )
                {
                    ContainerStatus[container]++;
                    if ( ContainerStatus[container] >= object.childNodes.length )
                    {
                        ContainerStatus[container] = 0;
                    }                      
                }
                else
                {
                    changed = ContainerStatus[container] != index;
                    
                    if ( index >= object.childNodes.length )
                    {
                        index = object.childNodes.length - 1;
                        changed = false;
                    }
                    
                    ContainerStatus[container] = index;     
                }
              
                if ( changed )
                {
                    if ( hasFilter ) object.filters[0].Apply();

                    for( i = 0; i < object.childNodes.length; i++ )
                    {
                        var item = object.childNodes.item(i);
                        
                        if ( i == ContainerStatus[container] )
                        {
                            item.style.display = "block";
                        } else {
                            item.style.display = "none"
                        }
                    }

                    if ( hasFilter ) object.filters[0].Play();
                }

            } //end switch content function
            
        }; //end return
    }();

}
