
if(typeof MooTools!="undefined"){var Scrollbar=new Class({Extends:Slider,Implements:[Events,Options],options:{mode:'vertical',wheel:true,snap:false,onSnap:$empty,buttons:false,onScrollClick:function(){},onScroll:$empty,offSet:{top:10,bottom:10},onChange:function(step){var myFx=new Fx.Morph(this.content,{duration:'short',transition:Fx.Transitions.Sine.easeOut});this.fireEvent('onScroll',step);this.options.snap=(this.options.mode=='horizontal')?this.options.snap:false;(this.options.snap)?this.snap():null;if(this.options.mode=='vertical'){if(this.tweenFlag){myFx.start({'margin-top':step*-1});}
else{this.content.setStyle('margin-top',step*-1);}}
else{if(this.tweenFlag){myFx.start({'margin-left':step*-1});}
else{this.content.setStyle('margin-left',step*-1);}}}},initialize:function(container,content_div,scrollbar_div,scroll_handle_div,options){this.container=$(container);this.tweenFlag=false;this.scrollbar=this.container.getElement(scrollbar_div);this.content=this.container.getElement(content_div);this.options.mode=($type(options.mode))?options.mode:'vertical';if(!this.getDifference()){return 0;}
else{this.knob=this.container.getElement(scroll_handle_div);if(!this.element){this.element=new Element('div',{'class':'track'});this.knob.inject(this.element);this.element.inject(this.scrollbar);}
this.setOptions(options);if(!this.contentWrapper){this.contentWrapper=new Element('div');this.contentWrapper.adopt(this.content);this.contentWrapper.inject(this.container,'top');}
var styles=this.content.getStyles();this.contentWrapper.setStyles(styles);this.contentWrapper.setStyle('position','static');this.calculateSteps(this.options.mode);if(this.options.mode=='vertical'){this.element.setStyles({'height':this.container.getSize().y,'position':'static','float':'right'});this.content.setStyle('float','left');}else{var topTarget=this.container.getSize().y-25
this.scrollbar.setStyles({'width':this.container.getSize().x,'position':'absolute','margin-top':topTarget});if(!this.options.buttons){this.element.setStyle('width',this.container.getSize().x);this.element.setStyle('float','none');}
this.scrollbar.inject(this.container,'top');}
if(this.options.buttons)this.createButtons();this.scrollbar.addClass(this.options.mode);if(this.options.wheel){this.wheelEvent=$('portfolio').addEvent('mousewheel',this.scrolledElement.bindWithEvent(this));this.wheelEvent=$('portfolio').addEvent('DOMMouseScroll',this.scrolledElement.bindWithEvent(this));}
if(this.options.buttons){this.sizeElement();}
this.parent(this.element,this.knob,options);}},clickedElement:function(event){var mouseDown=new Event(event);mouseDown.stopPropagation();if(mouseDown.target.getParent()===this.knob){this.tweenFlag=false;mouseDown.stop();}else{this.fireEvent('onScrollClick');this.tweenFlag=true;this.parent(mouseDown);}},calculateSteps:function(mode){if(mode=='vertical'){if(this.container.getScrollSize().y-this.container.getSize().y>0){this.options.steps=this.container.getScrollSize().y-this.container.getSize().y;var ch=this.container.getScrollSize().y;var mh=this.container.getSize().y;var th=this.container.getSize().y;var diff=((th*mh)/ch);this.createKnob(diff.toInt());}
else{this.knob.setStyle('display','none');this.element.setStyle('display','none');}}
else{if(this.container.getScrollSize().x-this.container.getSize().x>0){this.options.steps=this.container.getScrollSize().x-this.container.getSize().x;var ch=this.container.getScrollSize().x;var mh=this.container.getSize().x;var th=this.container.getSize().x;var diff=(th*mh)/ch;this.createKnob(diff.toInt());}
else{this.knob.setStyle('display','none');this.element.setStyle('display','none');}}},scrolledElement:function(event){var mode=(this.options.mode=='horizontal')?(event.wheel>0):(event.wheel>0);this.set(mode?this.step-150:this.step+150);if(event.type!='mousedown'){this.tweenFlag=false;new Event(event).stop();}
else{}},createKnob:function(totalSize){var style='';var endSize;this.knob.addClass(this.options.mode);if(this.options.mode=='vertical'){this.knob.setStyle('height',totalSize);style='height';endSize=11;}
else{style='width';this.knob.setStyle('width',totalSize);endSize=21;}
if(this.knob.getChildren().length>=3){this.knob.getElement('.knobMiddle').setStyle(style,totalSize-(2*endSize));}else{var knobMiddle=new Element('div',{'class':'knobMiddle'});knobMiddle.setStyle(style,totalSize-(2*endSize));this.knobTop=new Element('div',{'class':'knobTop','id':'knobTop'});this.knobBottom=new Element('div',{'class':'knobBottom','id':'knobBottom'});knobMiddle.inject(this.knob,'top');this.knobTop.inject(this.knob,'top');this.knobBottom.inject(knobMiddle,'after');}},createButtons:function(){var clickValueDown=-1;var clickValueUp=1;if(this.options.mode=='vertical'){var downStyles={'position':'static','clear':'both'}}
else{this.element.setStyle('width',this.element.getSize().x);var downStyles={'position':'static'}}
if(!this.upButton){this.upButton=new Element('a',{'class':'scrollbarUp','events':{'mousedown':this.startScroll.bind([this,clickValueUp]),'mouseup':this.stopScroll.bind(this),'mouseout':this.stopScroll.bind(this),'mouseover':function(){this.setStyle('background-position','center left');}}});this.upButton.inject(this.scrollbar,'top');}
if(!this.downButton){this.downButton=new Element('a',{'class':'scrollbarDown','events':{'mousedown':this.startScroll.bind([this,clickValueDown]),'mouseup':this.stopScroll.bind(this),'mouseout':this.stopScroll.bind(this),'mouseover':function(){this.setStyle('background-position','center left');}}});this.downButton.setStyles(downStyles);this.downButton.inject(this.scrollbar,'bottom');}},sizeElement:function(){if(this.options.mode=='vertical'){var sum=this.upButton.getStyle('height').toInt();sum+=this.downButton.getStyle('height').toInt();var diff=this.element.getSize().y-(sum);this.element.setStyle('height',diff);}
else{var sum=this.upButton.getStyle('width').toInt();sum+=this.downButton.getStyle('width').toInt();var diff=this.element.getSize().x-(sum);this.element.setStyle('width',diff);}},startScroll:function(e){new Event(e).stop();var direction=this[1];e.wheel=direction;e.target.setStyle('background-position','bottom left');this.tweenFlag=false;this[0].interval=(function(event){this.tweenFlag=false;this.wheelEvent.fireEvent('mousewheel',e);}).bind(this[0]).periodical(40);},stopScroll:function(e){new Event(e).stop();e.target.setStyle('background-position','top left');$clear(this.interval);},scrollToElement:function(id){this.tweenFlag=true;if(this.content.getElement('#'+id)){if(this.options.mode=='vertical')this.set(this.content.getElement('#'+id).getPosition(this.content).y);if(this.options.mode=='horizontal')this.set(this.content.getElement('#'+id).getPosition(this.content).x);}},snap:function(){this.fireEvent('onSnap',this);},getDifference:function(){if(this.options.mode=='vertical'){var diff=this.content.getCoordinates().height-this.container.getCoordinates().height;}
else{var diff=this.content.getCoordinates().width-this.container.getCoordinates().width;}
if(diff<=0){return false;}
else{return diff;}},refresh:function(){if(!this.element&&this.getDifference()){this.initialize($('portfolio_wrapper'),'#portfolio_scroll_content','#portfolio_scrollbar','#portfolio_scroll_handle',{mode:'horizontal'});}
else if(this.element&&!this.getDifference()){if(this.options.mode=="vertical"){this.content.setStyle('margin-top',0);}
else{this.content.setStyle('margin-left',0);}
this.container.removeEvents();this.scrollbar.setStyle('visibility','hidden');}
else if(this.element&&this.getDifference()){if(this.options.mode=="vertical"){this.content.setStyle('margin-top',0);}
else{this.content.setStyle('margin-left',0);}
this.initialize($('portfolio_wrapper'),'#portfolio_scroll_content','#portfolio_scrollbar','#portfolio_scroll_handle',{mode:'horizontal'});this.scrollbar.setStyle('visibility','visible');}}});}