﻿
Type.registerNamespace('FarmboyFineArts');

FarmboyFineArts.ImageRotator = function(element){
	FarmboyFineArts.ImageRotator.initializeBase(this, [element]);
	this._myRotator = element;
	this._canStart = true;	
	this._delay = 100;
}

FarmboyFineArts.ImageRotator.prototype = 
{	
	initialize: function() {
        //FarmboyFineArts.ImageRotator.callBaseMethod(this, 'initialize'); 
        this._moveLeftHandler = Function.createDelegate(this, this._moveLeft);
        this._moveRightHandler = Function.createDelegate(this, this._moveRight);
        this._stopHandler = Function.createDelegate(this, this._stop);
    },    
	ChangeDirection: function (dir)
    {
		
		Sys.Debug.trace("ChangeDirection "+dir);
        if (!this._canStart)
            return;
        else
            this._canStart = false;
        var rotator = this._myRotator;
        rotator.ScrollDirection=dir;
        rotator.StartRotator();
        if (dir == "left")
            rotator.ScrollLeftNextFrame();
        else
            rotator.ScrollRightNextFrame();
    },
    FreezeRotator : function ()
    {
		Sys.Debug.trace("FreezeRotator");
    
        var rotator = this._myRotator;
        rotator.Freeze();
        rotator.StopRotator();
        this._canStart = false;
        window.setTimeout(this._stopHandler, this._delay);
    },
    SpeedUp : function (dir)
    {
		Sys.Debug.trace("SpeedUp "+dir);
        var rotator = this._myRotator;
        rotator.Freeze();
        rotator.StopRotator();
        rotator.StartRotator();
        for (i=10;i>0;i--)
            if (dir == "left")
                rotator.ScrollLeftNextFrame();
            else
                rotator.ScrollRightNextFrame();
    },
    SlowDown : function (dir)
    {		
		Sys.Debug.trace("SlowDown "+dir);
        var rotator = this._myRotator;
        rotator.Freeze();
        rotator.StopRotator();
        this._canStart = true;
        if (dir == "left")
			window.setTimeout(this._moveLeftHandler, this._delay);
        else
			window.setTimeout(this._moveRightHandler, this._delay);
    }
    ,
    _moveLeft : function() 	{
		this.ChangeDirection("left");
	}
	,    
	_moveRight : function() 
	{
		this.ChangeDirection("right");
	}        	
	,    
	_stop : function() 
	{
		this._canStart = true;
	}  
}

FarmboyFineArts.ImageRotator.registerClass('FarmboyFineArts.ImageRotator');

