ui = {};

ui.scroller = function(scrollerBoxId, images) {
    this.FADER_BOX_ID			= scrollerBoxId;
    this.FADER_IMAGE_URL		= images?images.IMAGE_URL:""; 
    this.FADER_HOVER_URL		= images?images.HOVER_URL:""; 
    this.FADER_LINK_URL		= images?images.LINK_URL:"";
    this.NUM_OF_FADER_IMAGES	= this.FADER_IMAGE_URL?this.FADER_IMAGE_URL.length:0;
    this.IMAGE_IN_FOCUS			= 1;	//first image/slide displayed is defaulted to 1
    this.TIMER					= null;
    this.TIMER_LENGTH			= 6000;
    
    this.init();
};

ui.scroller.prototype = 
{
    init: function() {
        if(this.NUM_OF_FADER_IMAGES > 0){
            this.createScrollerBox();			
            this.loadImages();
            this.startTimer();
        }
    },				
    
    createScrollerBox: function() {
        var html = "";
	
        for(var idx=1; idx<=this.NUM_OF_FADER_IMAGES; idx++) {			
            var zind = 100-(idx*2)+2;
            html = html+"<div id=\"scrollerImgBox"+idx+"\" class=\"col950 trHomeScrollImg\" style=\"z-index:"+zind+";\" ><a href=\""+this.FADER_LINK_URL[idx-1]+"\" class=\"trBtn\"><img id=\"scrollerImg"+idx+"\" src=\"/static/images/spacer.gif'\" width=\"950\" height=\"353\" border=\"0\" class=\"original\"  />";
            if (this.FADER_HOVER_URL[idx-1]){
                html = html +"<img id=\"scrollerHover"+idx+"\" src=\"/static/images/spacer.gif'\" width=\"950\" height=\"353\" border=\"0\" class=\"hover\"  />";
            }
            html = html + "</a></div>";
        }			
			
        document.getElementById(this.FADER_BOX_ID).innerHTML = html;
    },

    loadImages:	function() {
        for(var i = 1; i<=this.NUM_OF_FADER_IMAGES; i++) {
            eval("document.getElementById('scrollerImg"+i+"').src=\""+this.FADER_IMAGE_URL[i-1]+"\";");
            if (this.FADER_HOVER_URL[i-1]) {
                eval("document.getElementById('scrollerHover"+i+"').src=\""+this.FADER_HOVER_URL[i-1]+"\";");
            }
        }
    },		
		
    startTimer:	function() {
        var thisRef = this;
        this.TIMER = setTimeout("homeScroller.processTimer()", thisRef.TIMER_LENGTH); 
    },
		
    resetTimer:	function() {
        var thisRef = this;
        clearTimeout(thisRef.TIMER);
    },
		
    processTimer: function() {
        this.go("next");
    },
		
    go:	function(destination) {
        var check = parseFloat($("#scrollerImgBox"+this.IMAGE_IN_FOCUS).css("opacity"));
        if(this.__isNotAnimating(check)) {
            switch(destination) {
            case "next": {
                if(this.__isNotLastSlide()) {
                    this.resetTimer();
                    $("#scrollerImgBox"+this.IMAGE_IN_FOCUS).animate({opacity: 0}, 1000, function(){$(this).css("zIndex",0)});
                    for(var i = parseInt(this.IMAGE_IN_FOCUS)+1; i<=this.NUM_OF_FADER_IMAGES; i++) {
                        var z = parseInt($("#scrollerImgBox"+i).css("zIndex"));
                        z++;
                        $("#scrollerImgBox"+i).css("zIndex",z);
                    }
                    for(var i = 1; i<this.IMAGE_IN_FOCUS; i++) {
                        var z = parseInt($("#scrollerImgBox"+i).css("zIndex"));
                        z++;
                        $("#scrollerImgBox"+i).css("zIndex",z);
                    }
                    this.IMAGE_IN_FOCUS++;
                    this.startTimer();
                } else {
                    this.resetTimer();
                    for(var i = 1; i<this.NUM_OF_FADER_IMAGES; i++) {
                        $("#scrollerImgBox"+i).css("opacity",0);
                    }
                    var z = 100;
                    $("#scrollerImgBox1").css("zIndex",z);
                    $("#scrollerImgBox1").animate({opacity: 1}, 1000);
                    z-=2;
                    for(var i = 2; i<=this.NUM_OF_FADER_IMAGES; i++) {
                        $("#scrollerImgBox"+i).css("zIndex",z);
                        $("#scrollerImgBox"+i).animate({opacity: 1}, 1000);
                        z-=2;
                    }
                    this.IMAGE_IN_FOCUS = 1;
                    this.startTimer();
                }
            } break;
            case "prev": {
                if(this.__isNotFirstSlide()) {
                    this.resetTimer();
                    
                    for(var i = 1; i<this.IMAGE_IN_FOCUS; i++) {
                        $("#scrollerImgBox"+i).css("opacity",0);
                    }
                    
                    var prev = this.IMAGE_IN_FOCUS-1;
                    var z = 100;
                    $("#scrollerImgBox"+prev).css("zIndex",z);
                    $("#scrollerImgBox"+prev).animate({opacity: 1}, 1000);
                    z-=2;

                    for(var i = prev+1; i<=this.NUM_OF_FADER_IMAGES; i++) {
                        $("#scrollerImgBox"+i).css("zIndex",z);
                        $("#scrollerImgBox"+i).animate({opacity: 1}, 1000);
                        z-=2;
                    }

                    this.IMAGE_IN_FOCUS = prev;
                    this.startTimer();
                } else {
                    this.resetTimer();
                                        
                    for(var i = 2; i<=this.NUM_OF_FADER_IMAGES; i++) {
                        $("#scrollerImgBox"+i).css("opacity",0);
                    }
								
                    var prev = parseInt(this.NUM_OF_FADER_IMAGES);
                    var z = 100;
                    $("#scrollerImgBox"+prev).css("zIndex",z);
                    $("#scrollerImgBox"+prev).animate({opacity: 1}, 1000);
                    z-=2;
                    
                    for(var i = 1; i<this.NUM_OF_FADER_IMAGES; i++) {
                        $("#scrollerImgBox"+i).css("zIndex",z);
                        $("#scrollerImgBox"+i).animate({opacity: 1}, 1000);
                        z-=2;
                    }
                    
                    this.IMAGE_IN_FOCUS = prev;
                    this.startTimer();
                }
		
            } break;
            }
        }
    },
    
    __isNotAnimating: function(check) {
        if(check % 1 == 0)
            {return true;}
        else
            {return false;}
    },
		
    __isNotLastSlide: function() {
        if(this.IMAGE_IN_FOCUS < this.NUM_OF_FADER_IMAGES)
            {return true;}
        else{
            return false;}
    },

    __isNotFirstSlide: function() {
        if(this.IMAGE_IN_FOCUS > 1)
            {return true;}
        else{
            return false;}
    }
    
}
