if(typeof(AC)=="undefined"){AC={};}

AC.ProductBrowser={
		productSlider:null,
		sliderVal:0,
		animationId:false,
		viewportWidth:946,
		contentWidth:946,
		categories:[{id:'pb-cat1_1',offset:0},{id:'pb-cat2_1',offset:0.32}],
		/*isIPhone:AC.Detector.isiPhone(),*/
		iPhoneCategories:[{id:'pb-cat1_1',offset:0},{id:'pb-cat2_1',offset:0.32}],
		arrowScrollAmount:0.24,
		iPhoneScrollAmount:0.22,
		iPhoneContainerWidth:834,
		isSliding:false,
		lastX:0.32,
		isMouseDown:false,
		dif:0,
		overlap:0,
		offsetImageWidth:127,
		sliderOffset:291,
		offsetContentWidth:-946,
		clicked:false,
		startIndex:0,
		margenFotos:20, // margen entre fotos de la galerķa
		margenULS:40,
		constanteID:1,
		isIpScroll:false,
		hasIpDragged:false,

		init:function(setupArgs)
		{
			if(typeof(setupArgs.categories)!='undefined')this.categories=setupArgs.categories;
			if(typeof(setupArgs.imageOverlap)!='undefined')this.overlap=setupArgs.imageOverlap;
			if(typeof(setupArgs.sliderCentering)!='undefined')this.sliderOffset=setupArgs.sliderCentering;
			if(typeof(setupArgs.initialCategory)!='undefined')this.startIndex=setupArgs.initialCategory;
			if(typeof(setupArgs.arrowScrollAmount)!='undefined')this.arrowScrollAmount=setupArgs.arrowScrollAmount;
			if(typeof(setupArgs.iPhoneCategories)!='undefined'){this.iPhoneCategories=setupArgs.iPhoneCategories;
			if(typeof(setupArgs.iPhoneScrollAmount)!='undefined')this.iPhoneScrollAmount=setupArgs.iPhoneScrollAmount;
			if(typeof(setupArgs.iPhoneContainerWidth)!='undefined')this.iPhoneContainerWidth=setupArgs.iPhoneContainerWidth;
			if(typeof(setupArgs.margenFotos)!='undefined')this.margenFotos=setupArgs.margenFotos;
			if(typeof(setupArgs.margenULS)!='undefined')this.margenULS=setupArgs.margenULS;
			if(typeof(setupArgs.constanteID)!='undefined')this.constanteID=setupArgs.constanteID;
		}//init

		$('pb-productslidertrack_1').style.visibility="visible";
		$('pb-productbrowsercontainer_1').style.overflow="hidden";
		
		this.viewportWidth=$('pb-productbrowsercontainer_1').getWidth();
		this.offsetImageWidth=$$('#pb-productslider_1 .pb-productimage')[0].getWidth()-this.overlap+this.margenFotos;
		this.contentWidth=this.offsetImageWidth*$$('#pb-productslider_1 .pb-productimage').length+this.margenULS;
		this.offsetContentWidth=-1*(this.contentWidth-this.viewportWidth);
	
		this.productSlider=new Control.Slider('pb-productsliderhandle_1','pb-productslidertrack_1',{axis:'horizontal'});

		if(AC.ProductBrowser.isIPhone)
		{
			this.categories=this.iPhoneCategories;
			this.arrowScrollAmount=this.iPhoneScrollAmount;
			$('pb-productslidertrack_1').style.visibility="none";
			$('pb-leftarrow_1').style.visibility="none";
			$('pb-rightarrow_1').style.visibility="none";
			$('pb-productbrowsercontainer_1').style.width=this.iPhoneContainerWidth+"px";

			var leftArrow=document.createElement('div');
			leftArrow.id="pb-iphone-leftarrow_1";

			var rightArrow=document.createElement('div');
			rightArrow.id="pb-iphone-rightarrow_1";

			$('productbrowser_1').appendChild(leftArrow);
			$('productbrowser_1').appendChild(rightArrow);

			Event.observe($(leftArrow),'click',function(){
				AC.ProductBrowser.left();
			});

			Event.observe($(rightArrow),'click',function(){
				AC.ProductBrowser.right();
			});
		}//if

		AC.ProductBrowser.animateSlide(this.categories[this.startIndex].offset);

		this.productSlider.options.onChange=function(value)
		{
			$('pb-productsliderhandleimage_1').style.left=$('pb-productsliderhandle_1').style.left;

			if(AC.ProductBrowser.isThrow&&!AC.ProductBrowser.isSliding)
			{
				AC.ProductBrowser.isSliding=true;
				AC.ProductBrowser.isThrow=false;

				var mod=value+AC.ProductBrowser.throwMod;
				if(mod<0)mod=0;
				if(mod>1)mod=1;
				AC.ProductBrowser.animateSlide(mod);
			}
			else if(!AC.ProductBrowser.isSliding&&value)
			{
				AC.ProductBrowser.isSliding=true;
				AC.ProductBrowser.animateSlide(value);
			}//if
		};
		
		this.productSlider.options.onSlide=function(value)
		{
			$('pb-productsliderhandleimage_1').style.left=$('pb-productsliderhandle_1').style.left;
			
			if(value&&!AC.ProductBrowser.isSliding)
			{
				AC.ProductBrowser.isSliding=true;
				AC.ProductBrowser.isThrow=false;
				
				if(AC.ProductBrowser.isMouseDown)
				{
					AC.ProductBrowser.dif=value-AC.ProductBrowser.lastX;
					AC.ProductBrowser.lastX=value;

					if(AC.ProductBrowser.dif>0.05)
					{
						AC.ProductBrowser.isThrow=true;
						AC.ProductBrowser.throwMod=0.2;
					}
					else if(AC.ProductBrowser.dif<-0.04)
					{
						AC.ProductBrowser.isThrow=true;
						AC.ProductBrowser.throwMod=-0.2;
					}//if
				}//if
				
				var w=AC.ProductBrowser.offsetContentWidth;
				$('pb-productslider_1').style.left=w*value+"px";

				this.sliderVal=value;
				AC.ProductBrowser.lastX=value;
				AC.ProductBrowser.colorCats();
				AC.ProductBrowser.isSliding=false;
			}//if
			
			Element.setStyle($('pb-productbrowsercontainer_1'),{overflow:"hidden"});
		};

		Event.observe('pb-productslidertrack_1','mousedown',function(e)
		{
			var o=e.offsetX||e.layerX;
			if(Event.element(e).id=='pb-productslidertrack_1' &&o<100)AC.ProductBrowser.animateSlide(0);
		});
		
		Event.observe('pb-leftarrow_1','mousedown',function()
		{
			AC.ProductBrowser.left();
		});
		
		Event.observe('pb-rightarrow_1','mousedown',function()
		{
			AC.ProductBrowser.right();
		});
		
		Event.observe('pb-productsliderhandle_1','mousedown',function()
		{
			AC.ProductBrowser.isMouseDown=true;
			$('pb-productsliderhandle_1').style.zIndex="5";
		});
		
		Event.observe('pb-productsliderhandle_1','mouseup',function()
		{
			AC.ProductBrowser.isMouseDown=false;
		});
		
		AC.ProductBrowser.categories.each(function(c)
		{
			Event.observe($(c.id),'mouseup',function(e)
			{
				AC.ProductBrowser.animateSlide(c.offset);
			});
		});
		
},
		
		animateSlide:function(toX)
		{
			if(toX>1)toX=1;
			if(toX<0)toX=0;
			AC.ProductBrowser.sliderVal=toX;
			window.clearInterval(AC.ProductBrowser.animationId);
			var w=AC.ProductBrowser.offsetContentWidth;
			var stopPoint=w*toX;
			
			var sliderStopPoint=(Math.round(AC.ProductBrowser.viewportWidth-AC.ProductBrowser.sliderOffset)*toX);

			AC.ProductBrowser.isSliding=true;
			
			AC.ProductBrowser.animationId=window.setInterval(function()
			{
				var sliderPos=parseInt($('pb-productslider_1').getStyle('left'))||0;
				var handlePos=parseInt($('pb-productsliderhandle_1').getStyle('left'))||0;
				var x=AC.ProductBrowser.calculateDecel(sliderPos,stopPoint);
				var sx=AC.ProductBrowser.calculateDecel(handlePos,sliderStopPoint);
				$('pb-productslider_1').style.left=x+"px";
				$('pb-productsliderhandle_1').style.left=sx+"px";
				$('pb-productsliderhandleimage_1').style.left=sx+"px";
				AC.ProductBrowser.colorCats();

				if(x==stopPoint)
				{
					window.clearInterval(AC.ProductBrowser.animationId);
					AC.ProductBrowser.isSliding=false;
				}
			},30);
	
		},

		colorCats:function()
		{
			var sliderX=parseInt($('pb-productsliderhandle_1').getStyle('left'))+(($('pb-productsliderhandle_1').getWidth()-20)/2);
			AC.ProductBrowser.categories.each(function(c)
			{
				var left=parseInt($(c.id).getStyle('left'));
				var clr=Math.ceil((Math.min(sliderX,left)/Math.max(sliderX,left))*10);
				$(c.id).className='pb-catclass'+clr;
			});
		},
		
		left:function()
		{
			AC.ProductBrowser.animateSlide(AC.ProductBrowser.sliderVal-AC.ProductBrowser.arrowScrollAmount);
		},
		
		right:function()
		{
			AC.ProductBrowser.animateSlide(AC.ProductBrowser.sliderVal+AC.ProductBrowser.arrowScrollAmount);
		},
		
		calculateDecel:function(from,to)
		{
			var n=from-Math.floor((from-to)*.4);
			if(Math.abs(from-to)<4)return to;
			else return n;
		}
};
