/// <reference path="PopupLayerBehavior.js" />

Type.registerNamespace('SitrainControlToolkit');


var currentHeaderVisual = null;
var currentHeaderText = null;
var currentHeaderVisualAnimation = null;

function clearCurrentHeaderSettings( )
{
    if ( currentHeaderText )
    {
        Sys.UI.DomElement.removeCssClass(currentHeaderText, "active"); 
        currentHeaderText = null;
    }
    
    if (currentHeaderVisual)
    {    
        currentHeaderVisual.style.display = "none";
        currentHeaderVisual = null;
    }
    
    if (currentHeaderVisualAnimation)
    {
        currentHeaderVisualAnimation.stop();
        currentHeaderVisualAnimation = null;
    }
}

function clearCurrentHeaderSettingsBody( )
{
    if (currentHeaderVisualAnimation)
    {
        currentHeaderVisualAnimation.stop();
        currentHeaderVisualAnimation = null;
    }
    
    if ( currentHeaderText )
    {
        Sys.UI.DomElement.removeCssClass(currentHeaderText, "active");       
        currentHeaderText = null;         
    }
    
    $get("headertextcontent").style.display = "block";
    
    if (currentHeaderVisual)
    {    
        currentHeaderVisual.style.display = "none";
        currentHeaderVisual = null;        
//        var fadeInAnimation = new AjaxControlToolkit.Animation.FadeInAnimation(headervisualZone, 0.5, 16, 0, 1, true);
//        fadeInAnimation.play();
    }  
}

SitrainControlToolkit.HeaderVisual = function(element)
{
    SitrainControlToolkit.HeaderVisual.initializeBase(this, [element]);
    
    //Variables
    this._onShowHandler = null;
    this._onShowPopupHandler = null;
    this._onHideHandler = null; 
    this._headerVisualImageUrl = null;  
    this._headerVisualImage = null; 
    this._headerVisualImageContent = null;    
    this._headerVisualAnimation = null;
    this._popupContent = null;
    this._popupControlBehavior = null;  
    this._headertextZone = $get("headertext-zone");    
    this._headerVisual = $get("headervisual-zone");
    this._afterOpenScriptCode = null; 
    
}

SitrainControlToolkit.HeaderVisual.prototype =
{
    initialize : function SitrainControlToolkit$HeaderVisual$initialize()
    { 
        /// <summary>
        /// Initialize the behavior
        /// </summary> 
        SitrainControlToolkit.HeaderVisual.callBaseMethod(this, 'initialize');
        
        this._onShowHandler = Function.createDelegate(this, this._onShow);
        this._onHideHandler = Function.createDelegate(this, this._onHide);
        
        var e = this.get_element();
        
        if ( e )
        {        
            $addHandler(e, "mouseover", this._onShowHandler);
            $addHandler(e, "mouseout", this._onHideHandler);
       }
    },
    
    dispose : function SitrainControlToolkit$HeaderVisual$dispose()
    {
        var element = this.get_element();
        
        if ( element )
        {
            if (this._onShowHandler)
            {
                $removeHandler(element, "mouseover", this._onShowHandler);
                this._onShowHandler = null;
            }
                
            if (this._onHideHandler)
            {
                $removeHandler(element, "mouseout", this._onHideHandler);
                this._onHideHandler = null;   
            }      
        }
    
        SitrainControlToolkit.HeaderVisual.callBaseMethod(this, 'dispose');
    },
    
    _onShowPopup: function SitrainControlToolkit$HeaderVisual$_onShowPopup( )
    {
        Sys.UI.DomElement.addCssClass(this._popupContent, "active-layer");
    },
    
    _onShow : function SitrainControlToolkit$HeaderVisual$_onShow()
    {
        if ( this._headerVisualImage == null )
        {
            this._createHeaderVisualImage();
        }
          
        clearCurrentHeaderSettings();          
        $get("headertextcontent").style.display = "none";   
        
        if ( this._headerTextSwapContent) 
        {
            Sys.UI.DomElement.addCssClass(this._headerTextSwapContent, "active");
            currentHeaderText = this._headerTextSwapContent;
        }
        
        if ( this._headerVisualImage != null )
        {
            this._headerVisualImageContent.style.display = "block";
            this._headerVisualImage.style.display = "block";             
            currentHeaderVisual = this._headerVisualImageContent;
            this._startAnimation(this._getAnimationIn());       
        }  
    },
    
    _onHide : function SitrainControlToolkit$HeaderVisual$_onHide()
    {
//        if(this._headerVisualImage) this._headerVisual.style.backgroundImage = this._headerVisualImage.style.backgroundImage;
//        if(this._headerTextSwapContent) Sys.UI.DomElement.removeCssClass(this._headerTextSwapContent, "active");  
//        $get("headertextcontent").style.display = "block"; 
//        this._headerVisualImage.style.display = "none"; 
//        //this._startAnimation(this._getAnimationOut());       
    },
    
    _createHeaderVisualImage: function SitrainControlToolkit$HeaderVisual$_createHeaderVisualImage()
    {
        if ( this._headerVisualImageUrl )
        {   
            var visual = document.createElement("div");
		    visual.className = "swap-image-container-content";
		    var visual2 = document.createElement("div");
		    visual2.className = "swap-image-container";
		    visual2.style.backgroundImage = "url('" + this._headerVisualImageUrl + "')";
		    visual.appendChild(visual2);
		    this._headerVisualImageContent = visual;
            this._headerVisualImage = visual2;		    
		    this._headerVisual.appendChild(this._headerVisualImageContent); 
		}
    },
    
    get_HeaderTextSwapContent: function SitrainControlToolkit$HeaderVisual$get_headerTextSwapContent()
    {
        return this._headerTextSwapContent;
    },
    
    set_HeaderTextSwapContent: function SitrainControlToolkit$HeaderVisual$set_headerTextSwapContent(element)
    {
        this._headerTextSwapContent = element;
    },
    
    get_HeaderVisualImageUrl: function SitrainControlToolkit$HeaderVisual$get_headerVisualImageUrl()
    {
        return this._headerVisualImageUrl;
    },
    
    set_HeaderVisualImageUrl: function SitrainControlToolkit$HeaderVisual$get_headerVisualImageUrl(url)
    {
        this._headerVisualImageUrl = url;
    },
    
    get_AfterOpenScriptCode: function SitrainControlToolkit$HeaderVisual$get_AfterOpenScriptCode()
    {
        return this._afterOpenScriptCode;
    },
    
    set_AfterOpenScriptCode: function SitrainControlToolkit$HeaderVisual$set_AfterOpenScriptCode(script)    
    {
        this._afterOpenScriptCode = script;
    },
    
    get_PopupContentID: function SitrainControlToolkit$HeaderVisual$get_PopupContentID()
    {
        if ( this._popupContent )
            return this._popupContent.PopupContentID;
        else
            return "";
    },
    
    set_PopupContentID: function SitrainControlToolkit$HeaderVisual$set_PopupContentID(content)
    {
        if ( content )
        {
            this._popupContent = $create(SitrainControlToolkit.PopupContentLayer, {'id': this.get_element().id + "_" + content ,'PopupContentID': content, 'AfterOpenScriptCode': this._afterOpenScriptCode}, null, null, this.get_element());                
            //this._popupContent = $create(SitrainControlToolkit.PopupLayer, null, null, null, this.get_element());                
        }        
    },
    
    get_PopupControl : function()
    {
        return this._popupContent;
    },
    
    set_PopupControl : function(control)
    {
        this._popupContent = control;
    },
    
    _startAnimation: function SitrainControlToolkit$HeaderVisual$_startAnimation(animation)
    {
       if ( currentHeaderVisualAnimation !== null )
       {
            currentHeaderVisualAnimation.stop()
       }
       
       if ( animation )
       {
            currentHeaderVisualAnimation = animation;
            currentHeaderVisualAnimation.play();
       }    
    },
    
    _getAnimationIn: function SitrainControlToolkit$HeaderVisual$_getAnimationIn()
    {   
        var subAnimations = [];
        var fadeInAnimation = new AjaxControlToolkit.Animation.FadeInAnimation(this._headerVisualImage, 2, 24, 0, 1, true)
        var fadeInAnimation2 = new AjaxControlToolkit.Animation.FadeInAnimation(this._headerTextSwapContent, 1, 24, 0, 1, true)
        //var fadeOutAnimation = new AjaxControlToolkit.Animation.FadeOutAnimation(this.get_element(), 1, 20, 0, 1, true);
        Array.add(subAnimations, fadeInAnimation);
        //Array.add(subAnimations, fadeInAnimation2);
        var sequenceAnimation = new AjaxControlToolkit.Animation.ParallelAnimation(this._headerVisualImage, 2, 24, subAnimations);
                                           
        return sequenceAnimation;
    },
    
    _getAnimationOut: function SitrainControlToolkit$HeaderVisual$_getAnimationOut()
    {   
        var subAnimations = [];
        var fadeInAnimation = new AjaxControlToolkit.Animation.FadeOutAnimation(this._headerVisualImage, 0.8, 24, 0, 1, true)
        var fadeInAnimation2 = new AjaxControlToolkit.Animation.FadeOutAnimation(this._headerTextSwapContent, 0.8, 24, 0, 1, true)
        //var fadeOutAnimation = new AjaxControlToolkit.Animation.FadeOutAnimation(this.get_element(), 1, 20, 0, 1, true);
        Array.add(subAnimations, fadeInAnimation);
        //Array.add(subAnimations, fadeInAnimation2);
        var sequenceAnimation = new AjaxControlToolkit.Animation.ParallelAnimation(this._headerVisualImage, 0.8, 24, subAnimations);
                                           
        return sequenceAnimation;
    }
}

SitrainControlToolkit.HeaderVisual.registerClass('HeaderVisual', Sys.UI.Behavior );


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

SitrainControlToolkit.HeaderVisualTrainingTopic = function(element)
{
     SitrainControlToolkit.HeaderVisualTrainingTopic.initializeBase(this, [element]);
     
      this._trainingTopicID = null;
}

SitrainControlToolkit.HeaderVisualTrainingTopic.prototype =
{
    initialize : function SitrainControlToolkit$HeaderVisualTrainingTopic$initialize()
    { 
        /// <summary>
        /// Initialize the behavior
        /// </summary> 
        SitrainControlToolkit.HeaderVisualTrainingTopic.callBaseMethod(this, 'initialize');
        
        // TODO:
    },
  
    dispose : function SitrainControlToolkit$HeaderVisualTrainingTopic$dispose()
    {
        /// <summary>
        /// Dispose the behavior
        /// </summary> 
        
        // TODO:
        
       SitrainControlToolkit.HeaderVisualTrainingTopic.callBaseMethod(this, 'dispose');
    },
    
    set_PopupContentID: function SitrainControlToolkit$HeaderVisual$set_PopupContentID(content)
    {
        if ( content )
        {
            this._popupContent = $create(SitrainControlToolkit.PopupTrainingTopicLayer, {'id': this.get_element().id + "_" + content, 'TrainingTopicID': this._trainingTopicID ,'PopupContentID': content, 'AfterOpenScriptCode': this._afterOpenScriptCode}, null, null, this.get_element());                
            //this._popupContent = $create(SitrainControlToolkit.PopupLayer, null, null, null, this.get_element());                
        }        
    },
    
    get_TrainingTopicID: function()
	{
	    return this._trainingTopicID;
	},
	
	set_TrainingTopicID: function(id)
	{
	    this._trainingTopicID = id;
	}
}


SitrainControlToolkit.HeaderVisualTrainingTopic.registerClass('SitrainControlToolkit.HeaderVisualTrainingTopic', SitrainControlToolkit.HeaderVisual );


