/* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.2
 * 
 * Requires: 1.2.2+
 */
(function(b){function d(a){var f=[].slice.call(arguments,1),e=0;a=b.event.fix(a||window.event);a.type="mousewheel";if(a.wheelDelta)e=a.wheelDelta/120;if(a.detail)e=-a.detail/3;f.unshift(a,e);return b.event.handle.apply(this,f)}var c=["DOMMouseScroll","mousewheel"];b.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],d,false);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],d,false);else this.onmousewheel=null}};b.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);;if(!window.Mage)var Mage={};Mage.Cookies={};Mage.Cookies.expires=null;Mage.Cookies.path='/';Mage.Cookies.domain=null;Mage.Cookies.secure=false;Mage.Cookies.set=function(name,value){var argv=arguments;var argc=arguments.length;var expires=(argc>2)?argv[2]:Mage.Cookies.expires;var path=(argc>3)?argv[3]:Mage.Cookies.path;var domain=(argc>4)?argv[4]:Mage.Cookies.domain;var secure=(argc>5)?argv[5]:Mage.Cookies.secure;document.cookie=name+"="+escape(value)+
((expires==null)?"":("; expires="+expires.toGMTString()))+
((path==null)?"":("; path="+path))+
((domain==null)?"":("; domain="+domain))+
((secure==true)?"; secure":"");};Mage.Cookies.get=function(name){var arg=name+"=";var alen=arg.length;var clen=document.cookie.length;var i=0;var j=0;while(i<clen){j=i+alen;if(document.cookie.substring(i,j)==arg)
return Mage.Cookies.getCookieVal(j);i=document.cookie.indexOf(" ",i)+1;if(i==0)
break;}
return null;};Mage.Cookies.clear=function(name){if(Mage.Cookies.get(name)){document.cookie=name+"="+"; expires=Thu, 01-Jan-70 00:00:01 GMT";}};Mage.Cookies.getCookieVal=function(offset){var endstr=document.cookie.indexOf(";",offset);if(endstr==-1){endstr=document.cookie.length;}
return unescape(document.cookie.substring(offset,endstr));};;Glider=Class.create();Object.extend(Object.extend(Glider.prototype,Abstract.prototype),{initialize:function(wrapper,options){this.handStopped=false;this.scrolling=false;this.wrapper=$(wrapper);this.scroller=this.wrapper.down('div.scroller');this.sections=this.wrapper.getElementsBySelector('div.sectionslide');this.options=Object.extend({duration:1.0,frequency:3},options||{});this.sections.each(function(section,index){section._index=index;});this.events={click:this.click.bind(this),mouseover:this.pause.bind(this),mouseout:this.resume.bind(this)};this.addObservers();if(this.options.initialSection)
this.moveTo(this.options.initialSection,this.scroller,{duration:this.options.duration});if(this.options.autoGlide)
this.start();},addObservers:function(){this.wrapper.observe('mouseover',this.events.mouseover);this.wrapper.observe('mouseout',this.events.mouseout);var descriptions=this.wrapper.getElementsBySelector('div.sliderdescription');descriptions.invoke('observe','mouseover',this.makeActive);descriptions.invoke('observe','mouseout',this.makeInactive);var controls=this.wrapper.getElementsBySelector('div.slidercontrol a');controls.invoke('observe','click',this.events.click);},click:function(event){var element=Event.findElement(event,'a');if(this.scrolling)this.scrolling.cancel();this.moveTo(element.href.split("#")[1],this.scroller,{duration:this.options.duration});Event.stop(event);},moveTo:function(element,container,options){this.current=$(element);Position.prepare();var containerOffset=Position.cumulativeOffset(container);var elementOffset=Position.cumulativeOffset(this.current);this.scrolling=new Effect.SmoothScroll(container,{duration:options.duration,x:(elementOffset[0]-containerOffset[0]),y:(elementOffset[1]-containerOffset[1])});if(typeof element=='object')
element=element.id;this.toggleControl($$('a[href="#'+element+'"]')[0]);return false;},next:function(){if(this.current){var currentIndex=this.current._index;var nextIndex=(this.sections.length-1==currentIndex)?0:currentIndex+1;}else var nextIndex=1;this.moveTo(this.sections[nextIndex],this.scroller,{duration:this.options.duration});},previous:function(){if(this.current){var currentIndex=this.current._index;var prevIndex=(currentIndex==0)?this.sections.length-1:currentIndex-1;}else var prevIndex=this.sections.length-1;this.moveTo(this.sections[prevIndex],this.scroller,{duration:this.options.duration});},makeActive:function(event)
{var element=Event.findElement(event,'div');element.addClassName('active');},makeInactive:function(event)
{var element=Event.findElement(event,'div');element.removeClassName('active');},toggleControl:function(el)
{$$('.slidercontrol a').invoke('removeClassName','active');el.addClassName('active');},stop:function()
{this.handStopped=true;clearTimeout(this.timer);},start:function()
{this.handStopped=false;this.periodicallyUpdate();},pause:function()
{if(!this.handStopped){clearTimeout(this.timer);this.timer=null;}},resume:function()
{if(!this.handStopped)
this.periodicallyUpdate();},periodicallyUpdate:function()
{if(this.timer!=null){clearTimeout(this.timer);this.next();}
this.timer=setTimeout(this.periodicallyUpdate.bind(this),this.options.frequency*1000);}});Effect.SmoothScroll=Class.create();Object.extend(Object.extend(Effect.SmoothScroll.prototype,Effect.Base.prototype),{initialize:function(element){this.element=$(element);var options=Object.extend({x:0,y:0,mode:'absolute'},arguments[1]||{});this.start(options);},setup:function(){if(this.options.continuous&&!this.element._ext){this.element.cleanWhitespace();this.element._ext=true;this.element.appendChild(this.element.firstChild);}
this.originalLeft=this.element.scrollLeft;this.originalTop=this.element.scrollTop;if(this.options.mode=='absolute'){this.options.x-=this.originalLeft;this.options.y-=this.originalTop;}},update:function(position){this.element.scrollLeft=this.options.x*position+this.originalLeft;this.element.scrollTop=this.options.y*position+this.originalTop;}});;var Slider=Class.create();Slider.prototype={options:{shift:900},initialize:function(container,controlLeft,controlRight){this.animating=false;this.containerSize={width:$(container).offsetWidth,height:$(container).offsetHeight},this.content=$(container).down();this.controlLeft=$(controlLeft);this.controlRight=$(controlRight);this.initControls();},initControls:function(){this.controlLeft.href=this.controlRight.href='javascript:void(0)';Event.observe(this.controlLeft,'click',this.shiftLeft.bind(this));Event.observe(this.controlRight,'click',this.shiftRight.bind(this));this.updateControls(1,0);},shiftRight:function(){if(this.animating)
return;var left=isNaN(parseInt(this.content.style.left))?0:parseInt(this.content.style.left);if((left+this.options.shift)<0){var shift=this.options.shift;this.updateControls(1,1);}else{var shift=Math.abs(left);this.updateControls(1,0);}
this.moveTo(shift);},shiftLeft:function(){if(this.animating)
return;var left=isNaN(parseInt(this.content.style.left))?0:parseInt(this.content.style.left);var lastItemLeft=this.content.childElements().last().positionedOffset()[0];var lastItemWidth=this.content.childElements().last().getWidth();var contentWidth=lastItemLeft+lastItemWidth+8;if((contentWidth+left-this.options.shift)>this.containerSize.width){var shift=this.options.shift;this.updateControls(1,1);}else{var shift=contentWidth+left-this.containerSize.width;this.updateControls(0,1);}
this.moveTo(-shift);},moveTo:function(shift){var scope=this;this.animating=true;new Effect.Move(this.content,{x:shift,duration:0.4,delay:0,afterFinish:function(){scope.animating=false;}});},updateControls:function(left,right){if(!left)
this.controlLeft.addClassName('disabled');else
this.controlLeft.removeClassName('disabled');if(!right)
this.controlRight.addClassName('disabled');else
this.controlRight.removeClassName('disabled');}};var ProductInfo=Class.create();ProductInfo.prototype={settings:{'loadingMessage':'Please wait ...'},initialize:function(selector,x_image,settings)
{Object.extend(this.settings,settings);this.createWindow();var that=this;$$(selector).each(function(el,index){el.observe('click',that.loadInfo.bind(that));})
$$(x_image).each(function(el,index){el.observe('mouseover',that.showButton);el.observe('mouseout',that.hideButton);})},createLoader:function()
{var loader=new Element('div',{id:'ajax-preloader'});loader.innerHTML="<p class='loading'><img src="+this.settings.loader+" /><br/>"+this.settings.loadingMessage+"</p>";document.body.appendChild(loader);$('ajax-preloader').setStyle({position:'absolute',top:document.viewport.getScrollOffsets().top+200+'px',left:document.body.clientWidth/2-75+'px'});},destroyLoader:function()
{$('ajax-preloader').remove();},showButton:function(e)
{el=this;while(el.tagName!='P'){el=el.up();}
$(el).getElementsBySelector('.ajax')[0].setStyle({display:'block'})},hideButton:function(e)
{el=this;while(el.tagName!='P'){el=el.up();}
$(el).getElementsBySelector('.ajax')[0].setStyle({display:'none'})},createWindow:function()
{var qWindow=new Element('div',{id:'quick-window'});qWindow.innerHTML='<div id="quickview-header"><a href="javascript:void(0)" id="quickview-close"></a></div><div class="quick-view-content"></div>';document.body.appendChild(qWindow);$('quickview-close').observe('click',this.hideWindow.bind(this));},showWindow:function()
{$('quick-window').setStyle({top:document.viewport.getScrollOffsets().top+100+'px',left:document.body.clientWidth/2-$('quick-window').getWidth()/2+'px',display:'block'});},setContent:function(content)
{$$('.quick-view-content')[0].insert(content);},clearContent:function()
{$$('.quick-view-content')[0].replace('<div class="quick-view-content"></div>');},hideWindow:function()
{this.clearContent();$('quick-window').hide();},loadInfo:function(e)
{e.stop();var that=this;this.createLoader();new Ajax.Request(e.element().href,{onSuccess:function(response){that.clearContent();that.setContent(response.responseText);that.destroyLoader();that.showWindow();}});}}
