﻿if ( typeof( CoreSharp ) != "function" ) var CoreSharp = function() {}
if ( typeof( CoreSharp.ContentRoller ) != "function" )
{
    CoreSharp.ContentRoller =
    
    function() {
    
        var ContainerStatus = new Array();
        var timeoutHandle = new Array();
        
        return {
        
            Start : function( container )
            {
                this.SwitchContent( container, 0 );
            },
        
            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;
                var timeout = 5000;
                
                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;     
                    timeout = 30000; // User click to change - give him 30 sec to read  
                }
              
                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();
                }
                
                if ( timeoutHandle[container] != null ) window.clearTimeout( timeoutHandle[container] );
                timeoutHandle[container] = window.setTimeout( 'CoreSharp.ContentRoller.SwitchContent( "' + container + '", null )', timeout);
            
            } //end switch content function
            
        }; //end return
    }();

}
