var SliderPromo = {
	currElement : null,
	fx : null,
	Rfx : null,
	settings : {
		arrowLeft : 'secondary-arrow-left',
		arrowRight : 'secondary-arrow-right',
		slideClass : 'secondary-promo',
		sliderWidth : 474,
		slideSettings:{
			wheelStops:false,
			duration:1000,
			transition: Fx.Transitions.Back.easeInOut,
			'link':'cancel',
			onComplete:function(){
				SliderPromo.rotate();
			}
		}
	},
	size : null,
	initialize : function(){
		$$('div.form-button').each(function(el,index){
			el.addEvent('mouseover',function(){
				this.addClass('over');
			});
			el.addEvent('mouseout',function(){
				this.removeClass('over');
			});
		});

		this.showLoader(1);
		$(this.settings.arrowLeft).addEvent('click', function(){
			SliderPromo.left();
		});
		
		$(this.settings.arrowLeft).addEvent('mouseover', function(){
			$('secondary-arrow-left').scrollTo(0,45);
		});
		
		$(this.settings.arrowLeft).addEvent('mouseout', function(){
			$('secondary-arrow-left').scrollTo(0,0);
		});
		
		
		
		$(this.settings.arrowRight).addEvent('click', function(){
			SliderPromo.right();
		});
		
		$(this.settings.arrowRight).addEvent('mouseover', function(){
			$('secondary-arrow-right').scrollTo(0,45);
		});
		
		$(this.settings.arrowRight).addEvent('mouseout', function(){
			$('secondary-arrow-right').scrollTo(0,0);
		});
		
		
		this.currElement = $$('.'+this.settings.slideClass)[0];
		var myzLink = this.currElement.get('id');
		//dcsMultiTrack('DCS.dcsuri','/ed','WT.z_section','BrowseStamps','WT.z_link',myzLink,'WT.z_event','DisplayDefault');

		this.size = $$('.'+this.settings.slideClass).length;
		
		$('secondary-promo-container').getElements('.control').each(function(el,i){
			el.addEvent('mouseover',function(){
				this.addClass('hover');
			});
			el.addEvent('mouseout',function(){
				this.removeClass('hover');
			});
		});
		//this.disableButton('left');

		$('secondary-promos').adopt(new Element('div',{'class':'promo-spacer right'}));
		(new Element('div',{'class':'promo-spacer left'})).inject($('secondary-promos'),'top');
		this.fx = new Fx.Scroll($('secondary-promos-wrapper'),this.settings.slideSettings);
		this.loadImage(1);
		//this.fx.toElement(this.currElement);
	},
	right : function(){
		var realNextSlide = this.currElement.getNext();
	  if (realNextSlide != null){
	    realNextSlide = ( realNextSlide.hasClass('secondary-promo') ? realNextSlide : $$('.'+this.settings.slideClass)[0]);
			var myzLink = realNextSlide.get('id');
			//dcsMultiTrack('DCS.dcsuri','/ed','WT.z_section','BrowseStamps','WT.z_link',myzLink,'WT.z_event','DisplaySelect');
		}
		this.currElement = this.currElement.getNext()?this.currElement.getNext():$$('.'+this.settings.slideClass)[0];
		this.loadImage();
		//this.fx.toElement(this.currElement);
	},
	left: function(){
		var realPreviousSlide = this.currElement.getPrevious();
	  if (realPreviousSlide != null){
	    realPreviousSlide = ( realPreviousSlide.hasClass('secondary-promo') ? realPreviousSlide : $$('.'+this.settings.slideClass).getLast() );
			var myzLink = realPreviousSlide.get('id');
			//dcsMultiTrack('DCS.dcsuri','/ed','WT.z_section','BrowseStamps','WT.z_link',myzLink,'WT.z_event','DisplaySelect');
		}
		this.currElement = this.currElement.getPrevious()?this.currElement.getPrevious():$$('.'+this.settings.slideClass).getLast();
		this.loadImage();
		//this.fx.toElement(this.currElement);
	},
	disableButton: function(path){
		$('arrow-'+path+'-img').addClass('disabled');
	},
	enableButton: function(path){
		$('arrow-'+path+'-img').removeClass('disabled');
	},
	loadImage : function(value){
		var obj = this.currElement;
		if (obj.hasClass('promo-spacer')) {this.fx.toElement(this.currElement);return;}
		var img = obj.getElement('div.promo-background img');
		var path = img.get('path');
		if (path!='_'){
			if (value==1) {this.showLoader();}
			
			var myImage = new Asset.image(path, {id: 'myImage', title: 'myImage', onload: 
				(function(el){
					this.fx.toElement(this.currElement)
					this.hideLoader();
				}).bind(this)
			});
			
			img.set('src',path);
			img.set('path','_');
		} else {
			this.fx.toElement(this.currElement);
		}
	},
	showLoader : function(value){
		if (value==1){
			$('secondary-promos-loader').setStyles({
				'z-index':3,
				'opacity':'1'
			});
			return;
		}
		$('secondary-promos-loader').morph({
			'z-index':3,
			'opacity':'1'
		});
	},
	hideLoader : function(){
		$('secondary-promos-loader').morph({
			'z-index':1,
			'opacity':'0'
		});
	},
	rotate : function(){
		if (!this.currElement.hasClass('promo-spacer')) return;
		var k = new SliderPromoChain(this.currElement.hasClass('right'));
		k.animate();
	},
	scrollToEl : function(el){
		this.currElement = el;
		this.loadImage();
		this.fx.toElement(this.currElement);
	},
	submitForm : function(formElement){
		var mySelectedIdx = formElement.productId.selectedIndex;
		var mySelectedText = formElement.productId.options[mySelectedIdx].text;
		var mySelectedValue = formElement.productId.options[mySelectedIdx].value;
		var myzLink = formElement.name;
		var myzEvent = "Buy[" + mySelectedText + "," + mySelectedValue + "]";
		
		//dcsMultiTrack('DCS.dcsuri','/ed','WT.z_section','BrowseStamps','WT.z_link',myzLink,'WT.z_event',myzEvent);
		Add2ShopCart(formElement, formElement.productId.value)
	}
}

SliderPromoChain = new Class({
	Implements : [Chain],
	fx : null,
	initialize : function(isRight){
		this.chain(
			function(){
				$$('.secondary-promo').each(function(el){
					el.setStyle('visibility','hidden');
				});
				
				this.fx = new Fx.Scroll($('secondary-promos-wrapper'),{
					duration:0,
					onComplete:(function(){this.callChain();}).bind(this),
					wheelStops:false,
					transition:Fx.Transitions.Back.easeInOut,
					'link':'cancel'
				});
				
				this.fx.toElement($$('.promo-spacer')[isRight?0:1]);
			},
			function(){
				$$('.secondary-promo').each(function(el){
					el.setStyle('visibility','visible');
				});
				this.callChain();
			},
			function(){
				SliderPromo.scrollToEl($$('.'+SliderPromo.settings.slideClass)[isRight?0:SliderPromo.size-1]);
			}
		);
	},
	animate:function(){
		this.callChain();
	}
});

var busy = false;
function Add2ShopCart(form, productId)
{
	if (!busy) 
	{
		busy = true;
		form.action.value="OrderItemAdd";
		form.URL.value="OrderCalculate?URL=OrderItemDisplay";
		form.catEntryId.value = productId;
		form.submit();
	}
}

window.addEvent('domready',function(){
	SliderPromo.initialize();
});
