LibOptions={ToggleStrategies:{toggleTray:function(base,args){var coords=Lib.Measure.getCenterCoords(args.width,args.height);return{startTop:30,startLeft:10,startWidth:10,startHeight:10,startWrapperHeight:4,endTop:5,endLeft:500,endWidth:args.width,endHeight:args.height,endWrapperHeight:args.wrapperHeight}}}};var mouseY=0;var Lib={};Lib.Core={setProperties:function(o){this._setGlobalProperties();if($chk(o)){for(var option in o){if(o.hasOwnProperty(option)){this[option]=o[option]}}}this.initCustomEvents();return this},_setGlobalProperties:function(){if(typeof this._name!=='undefined'&&typeof LibOptions!=='undefined'){if(typeof LibOptions[this._name]!=='undefined'){for(var option in LibOptions[this._name]){if(LibOptions[this._name].hasOwnProperty(option)){this[option]=LibOptions[this._name][option]}}}}return this},invokeEvent:function(str,args){var method='invoke'+str.capitalize();if($chk(this[method])){this[method](args)}},initCustomEvents:function(events){var e=[];if($chk(events)){e=events}else if($chk(this.CustomEvents)&&!$chk(this._customEventsInitialized)){e=this.CustomEvents.flatten();this._customEventsInitialized=true}e.each(function(event){this.initCustomEvent(event)}.bind(this));return this},initCustomEvent:function(e){var cap=e.capitalize();this['invoke'+cap]=function(args){if($chk(this['do'+cap])){this['do'+cap](args)}}.bind(this);this['do'+cap]=function(args){args=($chk(args))?args:null;this.fireEvent(e,args)}.bind(this)}};Lib.CustomEvents={ShowHide:['beforeShow','afterShow','beforeHide','afterHide'],Click:['onClick'],Resize:['beforeResize','afterResize']};Lib.Fx={defaults:{duration:'normal',transition:Fx.Transitions.Sine.easeInOut,wait:true,fps:24},morph:function(el,duration,args){var d=duration||'normal';var a=$merge(this.defaults,args,{duration:d});return new Fx.Morph(el,a)},tween:function(el,duration,args){var d=duration||'normal';var a=$merge(this.defaults,args,{duration:d});return new Fx.Tween(el,a)}};Lib.Utils={body:null,html:null,ishim:null,offscreenHolder:null,removeScroll:function(){if(!Browser.Engine.gecko18){this.curScrollTop=window.getScroll().y;this.html.setStyle('overflow','hidden')}},restoreScroll:function(){if(!Browser.Engine.gecko18){if($chk(this.curScrollTop)){window.scrollTo(0,this.curScrollTop)}this.html.setStyle('overflow','')}},isChrome:function(){return navigator.userAgent.toLowerCase().indexOf('chrome')>-1},getQueryStringVal:function(val){var lc=location.search.substring(1);var qs=lc.split("&");for(var i=0;i<qs.length;i++){var cur=qs[i].split("=");if(cur[0]==val){return cur[1]}}return false},getQueryStringVals:function(defaults){var lc=location.search.substring(1),qs=lc.split("&"),len=qs.length,result={},i;for(i=0;i<len;i++){var cur=qs[i].split("=");if(typeof cur[1]!=='undefined'){result[cur[0]]=cur[1]}}if(defaults){for(var key in defaults){if(typeof result[key]==='undefined'){result[key]=defaults[key]}}}return result},getWindowCenter:function(){var winCoords=window.getCoordinates(),scroll=window.getScroll(),left=(winCoords.width/2)+scroll.x,top=(winCoords.height/2)+scroll.y;return{x:left,y:top}},getCenterCoords:function(width,height){var winCenter=this.getWindowCenter(),left=winCenter.x-(width/2),top=winCenter.y-(height/2);return{x:left,y:top}},dimsFromCoords:function(coords){var w=coords.right-coords.left;var h=coords.bottom-coords.top;return{width:w,height:h}},compassPoints:['N','S','E','W'],directions:['top','bottom','left','right'],dirComplements:{'top':'bottom','bottom':'top','left':'right','right':'left'},compassComplements:{'N':'S','S':'N','E':'W','W':'E'},dirToCompass:{'top':'N','bottom':'S','right':'E','left':'W'},compassToDir:{'N':'top','S':'bottom','E':'right','W':'left'}};Lib.Cookies={getCookie:function(c_name){if(document.cookie.length>0){c_start=document.cookie.indexOf(c_name+"=");if(c_start!=-1){c_start=c_start+c_name.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1){c_end=document.cookie.length}return unescape(document.cookie.substring(c_start,c_end))}}return""},setCookie:function(name,value,days){var exdate=new Date();exdate.setDate(exdate.getDate()+days);document.cookie=name+"="+value+((days==null)?"":";expires="+exdate.toGMTString())+";path=/;"},getParam:function(name,subname){var aSplit=new Array();aSplit=name.split("&");for(t=0;t<aSplit.length;t++){var aSplit2=new Array();aSplit2=aSplit[t].split("=");if(aSplit2[0]==subname){return aSplit2[1]}}}};window.addEvent('domready',function(){Lib.Utils.body=$$('body')[0];Lib.Utils.html=$$('html')[0];Lib.Utils.offscreenHolder=new Element('div',{'class':'lib_offscreen_holder','styles':{'left':-9999,'display':'none'}});Lib.Utils.body.adopt(Lib.Utils.offscreenHolder);Lib.Utils.elementMeasurer=new Element('div',{'class':'lib_element_measurer','styles':{'left':-9999,'top':0,'visibility':'hidden','float':'left'}});Lib.Utils.body.adopt(Lib.Utils.elementMeasurer)});Lib.Console={log:function(value){var el=$('console');if(el){if(!$chk(value)){value='empty string'}el.adopt((new Element('br')));el.appendText(value)}}};Array.implement({adjust:function(startValue){var len=this.length,idx=null,ar=[];for(var i=0;i<len;i++){if(this[i]===startValue){idx=i;break}}if($chk(idx)){ar[0]=startValue;var old=idx;if(old===len-1){old=0}else{old=old+1}var knew=1;do{ar[knew]=this[old];knew=knew+1;if(old===len-1){old=0}else{old=old+1}}while(old!==idx);return ar}else{throw new Error('value does not exist in array');}}});Element.implement({getInlineStyles:function(){var styles={};for(var s in this.style){styles[s]=this.style[s]}return styles},cacheStyles:function(s){this.store('cachedStyles',s);return s},getCachedStyles:function(){return this.retrieve('cachedStyles')},hiddenStyles:{width:1,height:1,left:'-1000em',top:'-1000em',overflow:'hidden',position:'absolute'},makeHidden:function(){if(!this.hasClass('hidden')){this.cacheStyles(this.getInlineStyles());this.setStyles(this.hiddenStyles);this.addClass('hidden')}return this},removeHidden:function(){var me=this;if(this.hasClass('hidden')){var cs=this.getCachedStyles(),styles={};if(!$chk(cs)){cs=this.getInlineStyles()}for(var hs in this.hiddenStyles){styles[hs]=($chk(cs)&&$chk(cs[hs]))?cs[hs]:null;if(styles[hs]===null&&(hs==='top')){styles[hs]=0}}this.setStyles(styles);this.removeClass('hidden')}return this},applyTempStyles:function(styles){var original={};for(var s in styles){original[s]=this.style[s]}this.setStyles(styles);return original},show:function(){this.removeHidden();return this},hide:function(){this.makeHidden();return this},getAllDimensions:function(){var dims={};dims.scrollSize=this.getScrollSize();dims.scroll=this.getScroll();dims.position=this.getPosition();dims.coordinates=this.getCoordinates();var centerx=dims.coordinates.left+(dims.coordinates.width/2);var centery=dims.coordinates.top+(dims.coordinates.height/2);var N={x:centerx,y:dims.coordinates.top};var NE={x:dims.coordinates.right,y:dims.coordinates.top};var E={x:dims.coordinates.right,y:centery};var SE={x:dims.coordinates.right,y:dims.coordinates.bottom};var S={x:centerx,y:dims.coordinates.bottom};var SW={x:dims.coordinates.left,y:dims.coordinates.bottom};var W={x:dims.coordinates.left,y:centery};var NW={x:dims.coordinates.left,y:dims.coordinates.top};var boxW=dims.coordinates.width-(dims.coordinates.width-this.getStyle('width').toInt());var boxH=dims.coordinates.height-(dims.coordinates.height-this.getStyle('height').toInt());dims.centerPoint={x:centerx,y:centery};dims.compass={N:N,NE:NE,E:E,SE:SE,S:S,SW:SW,W:W,NW:NW};dims.boxSize={width:boxW,height:boxH};return dims},measure:function(width){var me=this;var m=Lib.Utils.elementMeasurer;try{m.empty();if($chk(width)){m.setStyle('width',width)}var temp=me.clone();m.adopt(temp);var dims=temp.getAllDimensions();m.empty();m.setStyle('width','');return dims}catch(e){throw new Error('The element measurer does not exist. '+e);}},highlightSpecial:function(color,hold){var hold=hold||0,color=color||'#cc6666',initialColor=this.getStyle('background-color'),transition=Lib.Fx.tween(this,'normal',{property:'background-color'});initialColor=initialColor=='transparent'?'#ffffff':initialColor;transition.start(initialColor,color).chain(function(){var me=this;setTimeout(function(){me.start(color,initialColor)},hold)});return this}});String.implement({makeDom:function(){var wrapper=new Element('div',{'class':'lib_elements_wrapper'});wrapper.set('html',this);Lib.Utils.offscreenHolder.adopt(wrapper);return wrapper}});Number.implement({isEven:function(){if(this%2==0){return true}else{return false}},maxDecimals:function(decimals){var multiplier=Math.pow(10,decimals);return parseInt(this*multiplier,10)/multiplier}});Lib.IFillable={loader:null,content:null,contentSize:{width:0,height:0},contentHolder:null,contentWrapper:null,padding:{top:0,right:0,bottom:0,left:0},cloneContent:true,contentNextSibling:null,contentPreviousSibling:null,contentParent:null,contentIsHidden:false,useLoader:true,initFillable:function(cloneContent){this.cloneContent=cloneContent||true;this.initCustomEvent('onContentLoad');this.titleHolder=this.el.getElement('.lib_title');this.contentHolder=this.el.getElement('.lib_content');this.contentWrapper=new Element('div',{'class':'lib_content_wrapper',styles:{'overflow':'hidden','zoom':1,'width':'auto'}});this.contentWrapper.wraps(this.contentHolder);this._initPadding();return this},_initPadding:function(){var klass=this.el.getProperty('class'),reT=/T:(\d*)/,reR=/R:(\d*)/,reB=/B:(\d*)/,reL=/L:(\d*)/,resT=reT.exec(klass),resR=reR.exec(klass),resB=reB.exec(klass),resL=reL.exec(klass);this.padding.top=$chk(resT)?resT[1].toInt():0;this.padding.right=$chk(resR)?resR[1].toInt():0;this.padding.bottom=$chk(resB)?resB[1].toInt():0;this.padding.left=$chk(resL)?resL[1].toInt():0;return this},showLoader:function(){if(this.useLoader){this.contentWrapper.addClass('lib_loading')}return this},hideLoader:function(){this.contentWrapper.removeClass('lib_loading');return this},hideContent:function(){this.contentHolder.setStyles({'visibility':'','display':'none','height':0,'width':0});return this},showContent:function(){if(this.useLoader){this.contentHolder.setStyle('opacity',0);this.contentHolder.tween('opacity',1)}this.contentHolder.setStyles({'visibility':'','display':'block','height':this.contentSize.height,'width':this.contentSize.width});return this},hideTitle:function(){if(this.titleHolder){this.titleHolder.setStyle('visibility','hidden')}return this},showTitle:function(){if(this.titleHolder){this.titleHolder.setStyle('visibility','')}return this},fill:function(){this.fillContent().fillTitle();return this},empty:function(){this.emptyTitle().emptyContent();return this},fillContent:function(content){this.emptyContent();if($chk(content)){this.setContent(content)}this.contentHolder.adopt(this.content);if($type(content)==='element'&&this.contentIsHidden){this.content.removeClass('hidden')}return this},emptyContent:function(){if(this.content!==null){if(!this.cloneContent){this.putContentBack()}else{this.contentHolder.empty()}this.content=null}return this},putContentBack:function(){if(this.contentIsHidden){this.content.addClass('hidden')}if(this.contentPreviousSibling!==null){this.content.inject(this.contentPreviousSibling,'after')}else if(this.contentNextSibling!==null){this.content.inject(this.contentNextSibling,'before')}else if(this.contentParent!==null){this.content.inject(this.contentParent)}return this},fillTitle:function(title){if($chk(title)){this.setTitle(title)}if($chk(this.titleHolder)){this.emptyTitle();this.titleHolder.set('html',this.title)}return this},emptyTitle:function(){if($chk(this.titleHolder)){this.titleHolder.empty()}return this},setContent:function(content){if(content!==null){if($type(content)==='string'){var re=/^#(.*)/;if(content.match(re)){var res=re.exec(content)[1];this.content=$(res).get('html').makeDom()}else{this.content=content.makeDom()}}else if(content.get('tag')==='iframe'||content.get('tag')==='img'){this.content=content}else{if(this.cloneContent){this.content=content.clone().cloneEvents(content)}else{this.content=content;this.contentNextSibling=this.content.getNext();this.contentPreviousSibling=this.content.getPrevious();this.contentParent=this.content.getParent();if(this.content.hasClass('hidden')){this.contentIsHidden=true}}}}return this},getContent:function(){return this.content},setTitle:function(title){this.title=title;return this},setContentSize:function(width,height){this.contentSize={width:width,height:height};return this},getContentSize:function(){return this.contentSize},getContentDimensions:function(){return this.content.getAllDimensions()},resizeContentHolder:function(width,height){this.contentHolder.setStyles({width:width,height:height});this.setContentSize(width,height);return this},resizeContentWrapper:function(width,height){this.contentWrapper.setStyles({width:width,height:height});return this},resizeContentToElement:function(){var h=this.size.height-this.padding.top-this.padding.bottom,w=this.size.width-this.padding.left-this.padding.right;this.content.setStyles({width:w,height:h});return this},getSizeWithContentCoords:function(width,height){var h=this.padding.top+this.padding.bottom+height,w=this.padding.left+this.padding.right+width;return{width:w,height:h}},measure:function(contentWidth,contentHeight){var validWidth=this.isValidDimension(contentWidth),validHeight=this.isValidDimension(contentHeight),content={width:contentWidth,height:contentHeight};if(!validWidth){content.width=''}if(!validHeight){content.height=''}return this.measureElementAndContent(content.width,content.height)},measureElementAndContent:function(contentWidth,contentHeight){var original={},holderOriginal={},cOriginal={},wrapperOriginal={},clearDiv=null,elWidth=0,elHeight=0,cWidth=0,cHeight=0;original=this.el.applyTempStyles({'width':'','height':'','visibility':'hidden','display':''});wrapperOriginal=this.contentWrapper.applyTempStyles({'width':'','height':''});holderOriginal=this.contentHolder.applyTempStyles({'float':'right','width':contentWidth,'height':contentHeight,'border':'1px solid black','display':''});clearDiv=new Element('div',{styles:{'clear':'both','height':0,'line-height':0,'overflow':'hidden'}});this.el.removeClass('hidden');if(this.content&&this.content.hasClass('hidden')){this.content.removeClass('hidden')}clearDiv.inject(this.contentHolder,'after');cWidth=this.contentHolder.offsetWidth;cHeight=this.contentHolder.offsetHeight;elHeight=(this.el.offsetHeight-this.el.getStyle('padding-top').toInt()-this.el.getStyle('padding-bottom').toInt());elWidth=cWidth+this.padding.right+this.padding.left;this.el.addClass('hidden');clearDiv.destroy();this.el.setStyles(original);this.contentHolder.setStyles(holderOriginal);this.contentWrapper.setStyles(wrapperOriginal);return{element:{width:elWidth-2,height:elHeight-2},content:{width:cWidth-2,height:cHeight-2}}},isValidDimension:function(d){return $chk(d)&&$type(d)==='number'&&d>1}};Lib.IToggleable={shim:null,dimensionsEl:null,coordinatesEl:null,isShowing:false,isHiding:false,speed:10,initToggleable:function(){this.initCustomEvents(Lib.CustomEvents.ShowHide).initTransitions().initShim().initTogglers();return this},initTogglers:function(){var me=this;this.wrapperToggler=new Lib.Toggler(this.contentWrapper,{transition:this.wrapperTransition,type:'none'});this.elToggler=new Lib.Toggler(this.el,{transition:this.elTransition,type:'none'});this.elToggler.addEvents({beforeShow:function(){me.isShowing=true;var coords={top:me.elToggler.transitionShow.top[1],left:me.elToggler.transitionShow.left[1],width:me.elToggler.transitionShow.width[1],height:me.wrapperToggler.transitionShow.height[1]};me.showShim(coords)},afterShow:function(){me.isShowing=false;me.visible=true;me.invokeEvent('afterShow')},beforeHide:function(){me.isHiding=true},afterHide:function(){me.isHiding=false;me.visible=false;me.hideShim();me.invokeEvent('afterHide')}});return this},initShim:function(){if(Browser.Engine.trident4){this.shim=new Lib.Ishim(this.el);this.shim.el.setStyle('z-index',999)}return this},initTransitions:function(){this.wrapperTransition=Lib.Fx.morph(this.contentWrapper,this.speed);this.elTransition=Lib.Fx.morph(this.el,this.speed);return this},show:function(args){this.elToggler.show();this.wrapperToggler.show();return this},hide:function(){this.elToggler.hide();this.wrapperToggler.hide();return this},showShim:function(coords){var coords=coords||null;if($chk(this.shim)){this.shim.show(coords)}return this},hideShim:function(){if($chk(this.shim)){this.shim.hide()}return this},updateTransitions:function(show,hide){this.updateWrapperShowTransition({height:show.height});this.updateWrapperHideTransition({height:hide.height});this.updateElShowTransition({top:show.top,left:show.left,width:show.width,opacity:show.opacity});this.updateElHideTransition({top:hide.top,left:hide.left,width:hide.width,opacity:hide.opacity});return this},isVisible:function(){return this.visible},updateWrapperShowTransition:function(obj){this.wrapperToggler.transitionShow=obj;return this},updateWrapperHideTransition:function(obj){this.wrapperToggler.transitionHide=obj;return this},updateElShowTransition:function(obj){this.elToggler.transitionShow=obj;return this},updateElHideTransition:function(obj){this.elToggler.transitionHide=obj;return this}};Lib.IResizable={initResizable:function(){this.initCustomEvents(Lib.CustomEvents.Resize);return this},setSize:function(width,height){this.size={width:width,height:height};return this},getSize:function(){return this.size},resize:function(width,height){var curHeight=height;this.invokeEvent('beforeResize',[width,height]);this.el.setStyles({width:width,height:height});if($type(curHeight)==='string'){curHeight=this.el.getSize().y}this.setSize(width,curHeight);this.invokeEvent('afterResize',[width,height]);return this}};Lib.Measure={getWindowCenter:function(){var winCoords=window.getCoordinates(),scroll=window.getScroll(),left=(winCoords.width/2)+scroll.x,top=(winCoords.height/2)+scroll.y;return{x:left,y:top}},getCenterCoords:function(width,height){var winCenter=this.getWindowCenter(),left=winCenter.x-(width/2),top=winCenter.y-(height/2);return{x:left,y:top}},dimsFromCoords:function(coords){var w=coords.right-coords.left;var h=coords.bottom-coords.top;return{width:w,height:h}},correctDimensions:function(width,height,coords,margin){var dims={width:width,height:height,x:coords.x,y:coords.y,correction:false},winCoords=window.getCoordinates(),scroll=window.getScroll(),bottom=dims.y+height.round(),margin=margin||0;if(Browser.Engine.gecko18){scroll={x:0,y:0}}var barrierBottom=(winCoords.height-margin)+scroll.y,barrierTop=margin+scroll.y,tDiff=barrierTop-dims.y,bDiff=bottom-barrierBottom,diff=tDiff+bDiff;if(diff>0){dims.height=height-diff;if(dims.y<barrierTop){dims.y=barrierTop}dims.correction=true}return dims},getPixelsInView:function(coords){var win=window.getCoordinates();var scroll=window.getScroll();var shownWidth=win.width-Math.max((coords.left-scroll.x),0)-Math.max((win.right-(coords.right-scroll.x)),0);var shownHeight=win.height-Math.max((coords.top-scroll.y),0)-Math.max((win.bottom-(coords.bottom-scroll.y)),0);var pix=shownWidth*shownHeight;return pix>0?pix:0}};Lib.SpaceNegotiator={offsets:{top:[0,0],right:[0,0],bottom:[0,0],left:[0,0]},results:{top:{top:0,left:0},right:{top:0,left:0},bottom:{top:0,left:0},left:{top:0,left:0}},extraPadding:0,negotiate:function(attemptedDir,targetSize,fenceCoords,offsets,extraPadding,relativeTo){var me=this;extra=extraPadding||0;relativeTo=relativeTo||window;offsets=$merge(this.offsets,offsets);var positions=this.getPositions(offsets,targetSize.width,targetSize.height,fenceCoords,extra);return this.calculate(attemptedDir,positions,targetSize,extra,relativeTo)},calculate:function(attemptedDir,pos,targetSize,extra,relativeTo){var pixels=0;var winner=null;var fallbacks=[];var dirs=Lib.Utils.directions.adjust(attemptedDir);var makeWinner=function(dir){var dims=Lib.Utils.dimsFromCoords(pos[dir]);var width=dims.width;var height=dims.height;var fallbacks=[];if(dir==='top'||dir==='bottom'){height=dims.height-extra}else{width=dims.width-extra}winner={dir:dir,top:pos[dir].top,left:pos[dir].left,bottom:pos[dir].bottom,right:pos[dir].right,width:width,height:height}};for(var i=0,len=dirs.length;i<len;i++){var dir=dirs[i];if(dir==='top'||dir==='bottom'){pixels=(targetSize.width*targetSize.height)+(extra*targetSize.width)}else{pixels=(targetSize.width*targetSize.height)+(extra*targetSize.height)}var pixelsInView=this.getPixelsInView(pos[dir],relativeTo);var allVisible=true;if(pixelsInView<pixels){allVisible=false}if(attemptedDir===dir&&allVisible){makeWinner(attemptedDir);break}else if(allVisible&&dir==Lib.Utils.dirComplements[attemptedDir]){makeWinner(dir);break}else if(pos[dir].top>0&&pos[dir].left>0){fallbacks.push({dir:dir,pixels:pixelsInView})}}if(!$chk(winner)){var px=0;var wn=attemptedDir;fallbacks.each(function(fb){if(fb.pixels>px){px=fb.pixels;wn=fb.dir}});makeWinner(wn)}return winner},getPixelsInView:function(coords,relativeTo){var win=relativeTo.getCoordinates();var scroll=relativeTo.getScroll();var shownWidth=win.width-Math.max((coords.left-scroll.x),0)-Math.max((win.right-(coords.right-scroll.x)),0);var shownHeight=win.height-Math.max((coords.top-scroll.y),0)-Math.max((win.bottom-(coords.bottom-scroll.y)),0);var pix=shownWidth*shownHeight;return pix>0?pix:0},getPositions:function(offsets,w,h,fence,extra){var pos=$merge(this.results,{});pos.top.top=fence.top-(h+extra)-offsets.top[1];pos.top.left=fence.left+offsets.top[0];pos.top.right=pos.top.left+w;pos.top.bottom=pos.top.top+h+extra;pos.right.top=fence.top+offsets.right[1];pos.right.left=fence.right+offsets.right[0];pos.right.right=pos.right.left+w+extra;pos.right.bottom=pos.right.top+h;pos.bottom.top=fence.bottom+offsets.bottom[1];pos.bottom.left=fence.left+offsets.bottom[0];pos.bottom.right=pos.bottom.left+w;pos.bottom.bottom=pos.bottom.top+h+extra;pos.left.top=fence.top+offsets.left[1];pos.left.left=fence.left-(w+extra)-offsets.left[0];pos.left.right=pos.left.left+w+extra;pos.left.bottom=pos.left.top+h;return pos}};Lib.Trigger=new Class({Implements:[Lib.Core,Chain,Events],triggers:null,friends:[],over:null,out:null,click:null,blurTimeout:null,mouseup:null,stopCurrentEvent:$lambda,initialize:function(triggers,o){var me=this;if($type(triggers)==='array'){this.triggers=triggers}else{this.triggers=[triggers]}this.setProperties(o).bindEvents()},bindEvents:function(){if($chk(this.over)){this.bindOver(this.over)}if($chk(this.out)){this.bindOut(this.out)}if($chk(this.click)){this.bindClick(this.click)}if($chk(this.focus)){this.bindFocus(this.focus)}if($chk(this.blur)){this.bindBlur(this.blur)}if($chk(this.mouseup)){this.bindMouseup(this.mouseup)}},bindEvent:function(which,fn){var me=this;this.triggers.each(function(trig,index){trig.addEvent(which,function(event){me.friends.include(this);me.currentEvent=event;if(me.isFriend(event,this,which)){return me.stopCurrentEvent()}if(which==='blur'||which==='focus'){var self=this,timeoutFunc=function(){fn.attempt(index,self)};clearTimeout(me.blurTimeout);me.blurTimeout=setTimeout(timeoutFunc,10)}else{fn.attempt(index,this)}})})},bindMouseup:function(fn){this.bindEvent('mouseup',fn)},bindOver:function(fn){this.bindEvent('mouseover',fn);this.bindEvent('focus',fn)},bindOut:function(fn){this.bindEvent('mouseout',fn);this.bindEvent('blur',fn)},bindFocus:function(fn){this.bindEvent('focus',fn)},bindBlur:function(fn){this.bindEvent('blur',fn)},bindClick:function(fn){this.triggers.each(function(trig,index){trig.addEvents({'click':function(event){fn.attempt(index,this);event.stop()},'keydown':function(event){if(event.key=='enter'){window.location=this.href;event.stop()}}})})},isFriend:function(event,trigger,eventType){var bool=false;this.friends.each(function(f){if(f==event.target&&f!==trigger){bool=true}if(f==event.relatedTarget){bool=true}if(f.hasChild(event.relatedTarget)){bool=true}if(f.hasChild(event.target)&&eventType!=='mouseout'&&f!==trigger){bool=true}});return bool},makeFriends:function(friends){if($type(friends)==='array'){this.friends=friends}else{this.friends=[friends]}},removeFriends:function(){this.friends=[]},stopCurrentEvent:function(){this.currentEvent.stop();return},invoke:function(which){}});Lib.IFrameManager={count:1,curFrameId:'lib_iframe_1',iframes:{},holder:null,create:function(args){var me=this;var frameId='lib_iframe_'+me.count;var iframe=new IFrame({'id':frameId,'name':frameId,'src':args.path,'frameborder':'0','scrolling':'no','marginheight':'0','marginwidth':'0',styles:args.styles,onload:function(doc){me.doOnload(doc,this,frameId,args)}});this.count=this.count+1;this.iframes[frameId]={};this.iframes[frameId]['frame']=iframe;return iframe},doOnload:function(doc,win,frameId,args){var frame=this.iframes[frameId]['frame'];if($type(args.load)==='function'){args.load.call(frame,doc,win)}}};$extend(Lib.IFrameManager,Lib.Core);Lib.Ishim=new Class({Implements:[Lib.Core,Events,Chain],path:'',parent:null,el:null,coords:{top:0,left:0,width:'auto',height:'auto'},zIndex:100000,initialize:function(parent){this.parent=parent||null;this.initShim().initToggler().initCoords()},initShim:function(){this.el=Lib.IFrameManager.create({path:this.path,styles:{'position':'absolute','top':0,'left':0,'cursor':'pointer','opacity':.01,'filter':'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=1)','z-index':this.zIndex,'display':'none','overflow':'hidden'}});Lib.Utils.body.adopt(this.el);return this},initToggler:function(){this.toggler=new Lib.Toggler(this.el);return this},initCoords:function(){if($chk(this.parent)){this.coords=this.getParentDims()}},getParentDims:function(){var c={};if($chk(this.parent)){c=this.parent.getCoordinates()}else{c=this.coords}return{top:c.top,left:c.left,width:c.width,height:c.height}},reposition:function(coords){var c=$merge(this.getParentDims(),coords);this.el.setStyles({top:c.top,left:c.left,width:c.width,height:c.height})},show:function(coords){if($chk(coords)){this.reposition(coords)}else{this.reposition()}this.toggler.show()},hide:function(){this.reposition({top:0,left:0,width:0,height:0});this.toggler.hide()}});Lib.Toggler=new Class({Implements:[Lib.Core,Lib.ShowHideable,Chain,Events],el:null,visible:false,transition:null,transitionShow:{},transitionHide:{},CustomEvents:[Lib.CustomEvents.ShowHide,Lib.CustomEvents.Click],initialize:function(el,o){this.setElement(el).setProperties(o).initType()},initType:function(){var hidden=false;var displaynone=false;var type=$chk(this.type)?this.type:'displaynone';if(this.el.hasClass('hidden')){hidden=true}if(this.el.getStyle('display')=='none'){displaynone=true}if(hidden&&!displaynone){type='hidden'}if(hidden&&displaynone){type='both'}this.type=type;return this},getTransitionKeys:function(){var show=[];var hide=[];for(var key in this.transitionShow){show.push(key)}for(var key2 in this.transitionHide){hide.push(key2)}return{show:show,hide:hide}},toggle:function(which){var me=this;var state=$type(which)=="string"?(which.capitalize()):(this.isVisible()?"Hide":"Show");var visible=state=="Show"?true:false;this.invokeEvent('before'+state);if(this.transition==null){this.toggleStates(visible);this.visible=visible;this.invokeEvent('after'+state)}else{this.transition.cancel();this.transition.removeEvents('complete');this.transition.addEvent('complete',function(){if(!visible){me.toggleStates(visible)}me.visible=visible;me.invokeEvent('after'+state)});this.el.setStyle('overflow','hidden');this.transition.start(this['transition'+state]);if(visible){if($chk(this.transitionShow.opacity)){this.el.setStyle('visibility','hidden')}me.toggleStates(visible)}}return this},show:function(){this.toggle('show');return this},hide:function(){this.toggle('hide');return this},isVisible:function(){return this.visible===true?true:false},setElement:function(el){this.el=el;return this},makeHidden:function(){this.el.makeHidden()},removeHidden:function(){this.el.removeHidden()},makeDisplaynone:function(){this.el.setStyle('display',null)},removeDisplaynone:function(){this.el.setStyle('display','none')},toggleStates:function(visible){switch(this.type){case"displaynone":this[(visible?'make':'remove')+'Displaynone']();break;case"hidden":this[(visible?'remove':'make')+'Hidden']();break;case"both":this[(visible?'make':'remove')+'Displaynone']();this[(visible?'remove':'make')+'Hidden']();break;default:break}}});Lib.Loader=new Class({Implements:[Lib.Core],transition:null,initialize:function(parent,o){this.setProperties(o);this.parent=parent;this.el=this.loader||new Element('div',{'class':'lib_loading'});this.parent.setStyle('position','relative');this.parent.adopt(this.el);this.initToggler()},initToggler:function(){this.toggler=new Lib.Toggler(this.el,{transition:Lib.Fx.morph(this.el),transitionShow:{'opacity':[1,1]},transitionHide:{'opacity':[1,0]}});return this},show:function(){this.toggler.show();return this},hide:function(){this.toggler.hide();return this}});Lib.Overlay=new Class({Implements:[Lib.Core,Chain,Events],CustomEvents:[Lib.CustomEvents.ShowHide,Lib.CustomEvents.Click],opacity:0.75,color:'#000',zIndex:1000,cursor:'pointer',parent:null,hideOnClick:false,el:null,shim:null,click:$lambda(true),visible:false,fade:false,initialize:function(o){this.setProperties(o).initElement().initShim().initToggler().bindResizeEvent().bindClickEvent().bindShowHideEvents()},initElement:function(){this.el=new Element('DIV',{'class':'lib_overlay',styles:{position:'absolute',top:0,left:0,'background-color':this.color,cursor:this.cursor,opacity:this.opacity,'filter':"alpha(opacity="+(this.opacity*100)+")",'z-index':this.zIndex,display:'none',width:'100%',height:'100%',overflow:'hidden'}});if(this.parent!==null){this.parent.adopt(this.el)}else{this.parent=Lib.Utils.body;this.parent.adopt(this.el)}return this},initShim:function(){if(Browser.Engine.trident4){this.shim=new Lib.Ishim(this.el)}return this},initToggler:function(){var me=this;this.toggler=new Lib.Toggler(this.el);if(this.fade===true){this.toggler.transition=Lib.Fx.morph(me.el);this.toggler.transitionShow={'opacity':[0,me.opacity]};this.toggler.transitionHide={'opacity':[me.opacity,0]}}return this},bindResizeEvent:function(){var me=this;window.addEvent('resize',function(){me.refresh()});return this},bindClickEvent:function(){var me=this;this.el.addEvent('click',function(){if(me.hideOnClick===true){me.hide()}me.invokeEvent('onClick')});return this},bindShowHideEvents:function(){var me=this;this.toggler.addEvent('afterShow',function(){me.visible=true;me.invokeEvent('afterShow')});this.toggler.addEvent('afterHide',function(){me.visible=false;me.invokeEvent('afterHide')});return this},show:function(){var me=this;this.fireEvent('beforeShow');this.refresh();this.toggler.show();if($chk(this.shim)){this.shim.show()}return this},hide:function(){var me=this;this.fireEvent('beforeHide');this.toggler.hide();if($chk(this.shim)){this.shim.hide()}return this},refresh:function(){var dims=this.parent.getAllDimensions(),height=dims.scrollSize.y,width=dims.boxSize.width;if(this.parent===Lib.Utils.body){if(Browser.Engine.trident4){width=width-2}else if(Browser.Engine.webkit){if(height>this.parent.getSize().y){width=width-17}}}this.el.setStyles({'height':height,'width':width});if($chk(this.shim)){this.shim.reposition()}return this},isVisible:function(){return this.visible},setColor:function(color){this.color=color;this.el.setStyle('background-color',color)}});Lib.Tabs=new Class({Implements:[Lib.Core,Events,Chain],tabs:[],contents:[],activeTab:null,activeTabIndex:0,activeContent:null,initialize:function(o){this.setProperties(o).initActiveTab().initActiveContent().initTriggers()},initActiveTab:function(){for(var i=0,len=this.tabs.length;i<len;i++){if(this.tabs[i].hasClass('active')){this.activeTab=this.tabs[i];this.activeTabIndex=i}else{this.contents[i].addClass('hidden')}}return this},initActiveContent:function(){this.activeContent=this.contents[this.activeTabIndex];return this},initTriggers:function(){var me=this;this.tabs.each(function(t,index){t.addEvent('click',function(e){me.switchTabs(t,index);e.preventDefault()})});return this},switchTabs:function(newTab,index){if(newTab!==this.activeTab){this.removeActiveTab();this.setActiveTab(newTab);this.removeActiveContent();this.activeTabIndex=index;this.setActiveContent(this.contents[index])}return this},setActiveTab:function(tab){tab.addClass('active');this.activeTab=tab},removeActiveTab:function(){if(this.activeTab!==null){this.activeTab.removeClass('active')}this.activeTab=null},removeActiveDisplay:function(){this.activeTab.removeClass('active');return this},restoreActiveDisplay:function(){this.activeTab.addClass('active');return this},setActiveContent:function(content){this.activeContent=content;this.activeContent.show()},removeActiveContent:function(){this.activeContent.hide();this.activeContent=null},getWrapper:function(){return this.activeTab.getParent().getParent().getParent()},parseTabId:function(tab){var re=/#(.+)/;return re.exec(this.activeTab)[1]},getContentById:function(id){var content=null;this.contents.each(function(c){if(c.getProperty('id')===id){content=c;return}});return content}});Lib.Layer=new Class({Implements:[Lib.Core,Events,Chain],CustomEvents:[Lib.CustomEvents.ShowHide,'onContentLoad'],chrome:null,overlay:null,hideScroll:false,useLoader:false,useOverlay:true,hideOnOverlayClick:true,_name:"Layer",_visible:false,_currentlyShowing:false,_currentlyHiding:false,initialize:function(o){this.setProperties(o)._initOverlay()._initEvents();if(this.hideScroll){this.chrome.fitToScreen=true}return this},_initOverlay:function(){this.overlay=this.overlay||Lib.Utils.overlay;return this},_initEvents:function(){var me=this;this.doAfterShow=function(){if(me._isFinishedShowing()){me._currentlyShowing=false;me._visible=true;if(me.hideOnOverlayClick){me.overlay.addEvent('click',me._delegateOverlayClick)}me.hideLoader();me.chrome.showContent();me.fireEvent('afterShow')}};this.doAfterHide=function(){if(me._isFinishedHiding()){me._currentlyHiding=false;me._visible=false;if(me.hideScroll){Lib.Utils.restoreScroll()}me.chrome.reset();me.fireEvent('afterHide')}};this.doOnContentLoad=function(content){if(content){if(content.hasClass('hidden')){content.removeClass('hidden')}this.chrome.initCloseEvents(content)}this.fireEvent('onContentLoad',content)}.bind(this);return this},_resetTempEvents:function(){var me=this;this.chrome.removeEvents('afterShow');this.chrome.removeEvents('afterHide');this.chrome.removeEvents('closeClick');this.overlay.removeEvents('afterShow');this.overlay.removeEvents('afterHide');this.overlay.removeEvents('click');this._delegateAfterShow=function(){me.invokeEvent('afterShow')};this._delegateAfterHide=function(){me.invokeEvent('afterHide')};this._delegateCloseClick=function(){me.hide()};this._delegateOverlayClick=function(){if(!me.isHiding()){me.overlay.hide();me.hide(false)}};this.chrome.addEvents({afterShow:me._delegateAfterShow,afterHide:me._delegateAfterHide,closeClick:me._delegateCloseClick});this.overlay.addEvents({afterShow:me._delegateAfterShow,afterHide:me._delegateAfterHide});return this},show:function(args){var me=this;if(!this.isShowing()){this.chrome.cloneContent=args.clone;this.chrome.useLoader=args.useLoader;this._currentlyShowing=true;this._currentlyHiding=false;args.contentSize=$merge({width:'auto',height:'auto'},args.contentSize);this._resetTempEvents();this.chrome.fillTitle(args.title);this.handleShow(args)}return this},handleShow:function(args){var me=this;this.chrome.fillContent(args.content).refresh(args);this.invokeEvent('beforeShow',args.base);this.invokeEvent('onContentLoad',this.chrome.getContent());this.showLoader();if(this.hideScroll){Lib.Utils.removeScroll()}if(this.useOverlay){this.overlay.show()}this.chrome.show();return this},hide:function(hideOverlay){if(!this.isHiding()){this._currentlyHiding=true;this._currentlyShowing=false;this.overlay.removeEvents('click');this.invokeEvent('beforeHide');if(hideOverlay!==false&&$chk(this.overlay)){this.overlay.hide()}this.chrome.hide()}return this},showLoader:function(){if(this.useLoader){this.chrome.showLoader()}return this},hideLoader:function(){if(this.useLoader){this.chrome.hideLoader()}return this},isVisible:function(){return this._visible},isShowing:function(){return this._currentlyShowing},isHiding:function(){return this._currentlyHiding},_isFinishedShowing:function(){return((this.useOverlay&&this.overlay.isVisible())||!this.useOverlay)&&this.chrome.isVisible()},_isFinishedHiding:function(){return((this.useOverlay&&!this.overlay.isVisible())||!this.useOverlay)&&!this.chrome.isVisible()},resume:function(){}});Lib.LayerImage=new Class({Extends:Lib.Layer,initialize:function(o){this.parent(o)},handleShow:function(args){var me=this;this.chrome.cloneContent=true;this.invokeEvent('beforeShow',args.base);args.content=new Asset.image(args.content,{onload:function(){me.invokeEvent('onContentLoad');var dims=this.getProperties('width','height');args.contentWidth=dims.width.toInt();args.contentHeight=dims.height.toInt();me._postLoad(args)}});this.showLoader(false);return this},_postLoad:function(args){this.chrome.fillContent(args.content).refresh(args);if(this.hideScroll){Lib.Utils.removeScroll()}if(this.useOverlay){this.overlay.show()}this.chrome.show(args)}});Lib.LayerHtml=new Class({Extends:Lib.Layer,initialize:function(o){this.parent(o)},handleShow:function(args){var chromeSize,contentSize;this.chrome.setContent(args.content).fill();if($chk(args.contentSize)){contentSize=args.contentSize}else{var m=this.chrome.getContentSize();contentSize={width:m.width,height:m.height}}this.chrome.resizeContentHolder(contentSize.width,contentSize.height);if($chk(args.chromeSize)){chromeSize=args.chromeSize}else{chromeSize=this.chrome.getSizeWithContentCoords(contentSize.width,contentSize.height)}this.invokeEvent('afterContentLoad');this.chrome.resize(chromeSize.width,chromeSize.height);this.showLoader(false);this.setStartCoords(this.startCoords);this.setEndCoords(this.endCoords);this.updateTransitions();this.invokeEvent('beforeShow');if(this.hideScroll){Lib.Utils.removeScroll()}if(this.useOverlay){this.overlay.show()}this.chrome.show()}});Lib.LayerIFrame=new Class({Extends:Lib.Layer,initialize:function(o){this.parent(o)},handleShow:function(args){var useWidth=true,useHeight=true;this.chrome.cloneContent=true;if($type(args.contentSize.width)!=='number'){useWidth=false;args.contentSize.width=400}if($type(args.contentSize.height)!=='number'){useHeight=false;args.contentSize.height=300}this.doAfterShow=function(){if(this._isFinishedShowing()){this.visible=true;if(this.hideOnOverlayClick){this.overlay.addEvent('click',this._delegateOverlayClick)}this.fireEvent('afterShow');this._currentlyShowing=false}}.bind(this);var chromeAfterPreprocess=function(){this.chrome.removeEvent('afterShow',chromeAfterPreprocess)}.bind(this);var me=this;this.iframe=Lib.IFrameManager.create({path:args.content,load:function(doc,win){me.iframeLoad(this,doc,win,args,useWidth,useHeight)}});this.chrome.fillContent(this.iframe);this.chrome.addEvent('afterShow',chromeAfterPreprocess);this.chrome.refresh(args);this.invokeEvent('beforeShow',args.base);if(this.hideScroll){Lib.Utils.removeScroll()}if(this.useOverlay){this.overlay.show()}this.chrome.show()},iframeLoad:function(frame,doc,win,args,useWidth,useHeight){var me=this,holder=null,thebody=null,back=null,isMooDoc=false;this.invokeEvent('onContentLoad');try{if(doc.getElement('body')){isMooDoc=true}}catch(e){}if(isMooDoc){thebody=doc.getElement('body');holder=doc.getElement('#layer_holder');back=doc.getElement('#layer_back');if(back){back.setStyle('display','none')}}(function(){me.chrome.hideLoader()}).delay(2000);if(holder){var iCoords=holder.getStyles('width','height'),x=iCoords.width.toInt(),y=iCoords.height.toInt(),cSize=me.chrome.getSizeWithContentCoords(x,y);this.chrome.resizeContentHolder(x,y);(function(){var vals=Lib.ToggleStrategies[args.toggleStrategy](args.base,{width:cSize.width,height:cSize.height,wrapperHeight:y});me.resizeToCenter(vals.endWidth,vals.endHeight,x,y);setTimeout(function(){frame.setStyles({width:x,height:y});me.chrome.showContent()},800)}).delay(800)}else{var defaultWidth=useWidth?args.contentSize.width:600,defaultHeight=useHeight?args.contentSize.height:400;(function(){var cSize=me.chrome.getSizeWithContentCoords(defaultWidth,defaultHeight);me.chrome.resizeContentHolder(defaultWidth,defaultHeight);me.resizeToCenter(cSize.width,cSize.height,defaultWidth,defaultHeight);frame.setStyles({width:defaultWidth,height:defaultHeight})}).delay(1000)}},resizeToCenter:function(width,height,contentWidth,contentHeight){var startSize=this.chrome.getSize(),startCoords=this.chrome.el.getCoordinates(),coords=Lib.Measure.getCenterCoords(width,height),animation=new Fx.Elements([this.chrome.el,this.chrome.contentWrapper]);this.chrome.setSize(width,height);if(coords.y<this.chrome.margin){coords.y=this.chrome.margin}if(coords.x<this.chrome.margin){coords.x=this.chrome.margin}this.chrome.elToggler.transitionHide.top[0]=coords.y;this.chrome.elToggler.transitionHide.left[0]=coords.x;this.chrome.wrapperToggler.transitionHide.height[0]=contentHeight;animation.start({'0':{width:[startSize.width,width],left:[startCoords.left,coords.x],top:[startCoords.top,coords.y]},'1':{height:contentHeight}})}});Lib.LayerSWF=new Class({Extends:Lib.Layer,initialize:function(o){this.parent(o)},handleShow:function(args){var me=this;this.invokeEvent('beforeShow',args.base);this.doAfterShow=function(){if(me._isFinishedShowing()){me.visible=true;me.overlay.addEvent('click',me._delegateOverlayClick);me.fireEvent('afterShow');me._currentlyShowing=false}};var chromeAfterPreprocess=function(){setTimeout(function(){var tempHolder=new Element('div',{id:'lib_temporary_flash_holder'});me.chrome.contentHolder.adopt(tempHolder);var flashvars1={xmlSrc:'xml/videos.xml',stopFixingURL:'true'};var params1={allowScriptAccess:'always',scale:'noscale',base:'../assets/layers/samples/flash/',wmode:'transparent'};swfobject.embedSWF.apply(null,["../assets/layers/samples/flash/swf/guidedTour.swf",'lib_temporary_flash_holder',"742","366","9.0.0","expressInstall.swf",flashvars1,params1]);var flashContent=me.chrome.contentHolder.getFirst();me.chrome.setContent(flashContent);setTimeout(function(){me.hideLoader()},500)},500);me.chrome.removeEvent('afterShow',chromeAfterPreprocess)};this.chrome.addEvent('afterShow',chromeAfterPreprocess);this.showLoader(true);this.chrome.refreshMeasurements(args.contentSize.width,args.contentSize.height);this.chrome.setStartCoords(args.startCoords);this.chrome.setEndCoords(args.endCoords);this.chrome.updateTransitions();this.invokeEvent('beforeShow',args.base);if(this.hideScroll){Lib.Utils.removeScroll()}if(this.useOverlay){this.overlay.show()}this.chrome.show()}});Lib.LayerFactory={create:function(type,args){switch(type){case"html":return new Lib.Layer(args);case"iframe":return new Lib.LayerIFrame(args);case"image":return new Lib.LayerImage(args);case"swf":return new Lib.LayerSWF(args);break;default:return new Lib.Layer(args)}}};Lib.LayerManager={layers:{},chromes:{},types:['html','image','iframe','swf'],current:null,init:function(){this.initChromes()},initChromes:function(){for(var layer in Lib.Templates.Html.Layers){this.chromes[layer]=new Lib.LayerChrome(Lib.Templates.Html.Layers[layer]);this.initLayer(this.chromes[layer],layer)}},initLayer:function(chrome,name){for(var i=0,len=this.types.length;i<len;i++){var type=this.types[i];this.layers[type+name.capitalize()]=Lib.LayerFactory.create(type,{chrome:chrome})}},show:function(type,args){var chrome="DEFAULT";if($chk(args.chrome)){chrome=args.chrome.toUpperCase()}for(var i=0,len=this.types.length;i<len;i++){if(type===this.types[i]){this.current=this.layers[type+chrome];return this.layers[type+chrome].show(args)}}},hide:function(args){if(this.current!==null){this.current=null;return this.current.hide(args)}},resume:function(title,content){if(this.current!==null){this.current.resume(title,content)}return this},addEvent:function(e,fn,type,style){var me=this,style=$chk(style)?style.capitalize():'DEFAULT';window.addEvent('domready',function(){if($chk(type)){me.layers[type+style].addEvent(e,fn)}else{for(var l in me.layers){me.layers[l].addEvent(e,fn)}}})},removeEvent:function(e,type,fn,style){var style=$chk(style)?style.capitalize():'DEFAULT';if($chk(type)){this.layers[type+style].removeEvent(e,fn)}else{for(var l in me.layers){me.layers[l].removeEvent(e,fn)}}}};Lib.Tooltip=new Class({Implements:[Lib.Core,Events,Chain],CustomEvents:[Lib.CustomEvents.ShowHide],chrome:null,initialize:function(o){this.setProperties(o)},show:function(type,args){args.contentSize=$merge({width:null,height:null},args.contentSize);this.showTimeout=function(){this.curBase=args.base;this.invokeEvent('beforeShow',args.base);this.chrome.fillContent(args.content).refresh(args);var pos=this.findEndPosition(args.base,args.direction,this.chrome.getSize());if(Browser.Engine.trident)args.endCoords={x:pos.left,y:mouseY+57};else args.endCoords={x:pos.left,y:pos.top};this.chrome.changeDirection(Lib.Utils.dirComplements[pos.dir]);this.chrome.refresh(args);this.chrome.show()}.bind(this);var me=this;var doShow=function(){me.showTimeout()}.delay(500)},hide:function(){this.showTimeout=$lambda;this.invokeEvent('beforeHide');this.chrome.hide()},findEndPosition:function(base,direction,chromeSize){var baseDims=base.getAllDimensions(),offsets=this.getOffsets(baseDims,chromeSize),position=Lib.SpaceNegotiator.negotiate(direction,{width:chromeSize.width,height:chromeSize.height},baseDims.coordinates,offsets,this.chrome.extraPadding);return position},getOffsets:function(baseDims,chromeSize){var me=this,offsets={};Lib.Utils.directions.each(function(dir){var baseCenter=baseDims.compass[Lib.Utils.dirToCompass[dir]],center=baseCenter.x,edge=baseDims.coordinates.left,centerToEdge=center-edge,whichOffset='left';offsets[dir]=[(me.chrome.caratPos-centerToEdge)*-1,0];if(dir=='left'||dir=='right'){center=baseCenter.y;edge=baseDims.coordinates.top;centerToEdge=center-edge;offsets[dir]=[0,(me.chrome.caratPos-centerToEdge)*-1]}if(me.chrome.caratPos<centerToEdge){offsets[dir]=[0,0]}});return offsets}});Lib.TooltipManager={tooltip:null,eventQueue:[],_paused:false,init:function(){this.tooltip=new Lib.Tooltip({chrome:new Lib.TooltipChrome(Lib.Templates.Html.Tooltips.DEFAULT)})},show:function(type,args){if(!this._paused){this.tooltip.show(type,args)}},hide:function(type,args){this.tooltip.hide(type,args)},addEvent:function(e,fn){var me=this;window.addEvent('domready',function(){me.tooltip.addEvent(e,fn)})},removeEvent:function(e,fn){this.tooltip.removeEvent(e,fn)},removeEvents:function(e){this.tooltip.removeEvents(e)},pause:function(){this._paused=true},resume:function(){this._paused=false}};Lib.Slideshow=new Class({Implements:[Lib.Core,Chain,Events],_currentIndex:0,_speed:10,initialize:function(o){this.setProperties(o)._initEvents()._initItems()._initCurrentIndex();return this},_initEvents:function(){var me=this;this.chrome.addEvents({back:function(){me.back();me.pause()},next:function(){me.next();me.pause()},goTo:function(index){me.goTo(index);me.pause()}});return this},_initItems:function(){var items=this.chrome.el.getElement('.lib_ss_items');if(items){this._items=items.getElements('*')}return this},_initCurrentIndex:function(){var i,trackers=this.chrome.trackers;for(var i=0,len=trackers.length;i<len;i++){if(trackers[i].hasClass('active')){this.goTo(i);break}}return this},back:function(){if(this.atBeginning()){this.goTo(this.getUpperBound())}else{this.goTo(this._currentIndex-1)}return this},next:function(){if(this.atEnd()){this.goTo(0)}else{this.goTo(this._currentIndex+1)}return this},goTo:function(index){var me=this;if(this.withinBounds(index)){this._currentIndex=index;var item=new Asset.image(this._items[index].src,{onload:function(){me.chrome.canvas.empty().adopt(item);me.chrome.switchTracker(index)}})}else{throw new Error('Out of bounds.');}},play:function(continuous){var me=this,continuous=continuous||false;this._player=setInterval(function(){if(!me.atEnd()){me.next()}else if(me.atEnd()&&continuous){me.goTo(0)}else{me.pause()}},this._speed)},pause:function(){clearInterval(this._player)},atEnd:function(){return this._currentIndex===this.getUpperBound()},atBeginning:function(){return this._currentIndex===0},getUpperBound:function(){return this._items.length-1},withinBounds:function(index){return index<this._items.length&&index>=0},refreshNavigation:function(){if(this.atEnd()){this.chrome.deactivateNext()}if(!this.atEnd()){this.chrome.activateNext()}if(this.atBeginning()){this.chrome.deactivateBack()}if(!this.atBeginning()){this.chrome.activateBack()}}});Lib.Chrome=new Class({Implements:[Lib.Core,Chain,Events],el:null,initialize:function(el){this.initEl(el)},initEl:function(el){var me=this;this.el=$$(el)[0];return this},getSize:function(){return this.size},getScrollSize:function(){return{width:this.el.getScrollSize().x,height:this.el.getScrollSize().y}},getCoordinates:function(){return this.el.getCoordinates()},getAllDimensions:function(){return this.el.getAllDimensions()}});Lib.LayerChrome=new Class({Extends:Lib.Chrome,Implements:[Lib.IFillable,Lib.IToggleable,Lib.IResizable],CustomEvents:['closeClick'],fitToScreen:true,margin:50,closers:null,initialize:function(el){this.parent(el);this.initCustomEvents().initCloseEvents().initFillable().initToggleable().initResizable().initShowHideEvents()},initCloseEvents:function(el){if(el){var c=el.getElements('.layer_close');c.removeEvents('click');c.addEvent('click',function(){this.invokeEvent('closeClick')}.bind(this))}else{this.closers=this.el.getElements('.layer_close');this.closers.addEvent('click',function(){this.invokeEvent('closeClick')}.bind(this))}return this},initShowHideEvents:function(){var me=this;this.elToggler.addEvents({beforeShow:function(){this.hideTitle();if(this.useLoader){this.hideContent().showLoader()}this.closers.each(function(c){c.setStyle('visibility','hidden')})}.bind(this),afterShow:function(){this.showTitle();this.closers.each(function(c){c.setStyle('visibility','visible')})}.bind(this),beforeHide:function(){this.hideTitle();if(this.useLoader){this.showLoader().hideContent()}this.closers.each(function(c){c.setStyle('visibility','hidden')})}.bind(this),afterHide:function(){this.emptyContent();this.hideLoader()}.bind(this)});return this},refresh:function(args){Lib.Chrome.RefreshStrategy.fillableToggleable.apply(this,['layer',args])},reset:function(){this.contentWrapper.setStyles({overflow:'hidden',height:''});this.contentHolder.setStyles({overflow:'',width:'',height:''});if(this.useLoader){this.contentHolder.setStyle('display','none')}this.el.setStyles({width:'',left:'',top:''})}});Lib.TooltipChrome=new Class({Extends:Lib.Chrome,Implements:[Lib.IFillable,Lib.IResizable,Lib.IToggleable],carat:null,caratPos:0,extraPadding:0,contentWidth:200,contentHeight:40,contentMinWidth:40,contentMinHeight:0,correctDimensions:false,initialize:function(el){this.parent(el);this.initExtraEls();this.initExtraPadding();this.initCaratPos();this.initFillable();this.initResizable();this.initToggleable();this.speed=10;this.el.setStyle('width',0)},initExtraEls:function(el){this.carat=this.el.getElement('.tip_carat');return this},initExtraPadding:function(){var klass=this.el.getProperty('class'),re=/Extra:(\d*)/,res=re.exec(klass);if($chk(res)&&$chk(res[1])){this.extraPadding=res[1].toInt()}return this},initCaratPos:function(){var klass=this.el.getProperty('class'),re=/Carat:(\d*)/,res=re.exec(klass);if($chk(res)&&$chk(res[1])){this.caratPos=res[1]}return this},changeDirection:function(dir){var me=this,klass=this.el.getProperty('class');Lib.Utils.directions.each(function(dir){var old="tip_pad_"+dir;var re=new RegExp(old);if(re.test(klass)){me.el.removeClass(old)}});this.el.addClass('tip_pad_'+dir);return this},refresh:function(args){Lib.Chrome.RefreshStrategy.fillableToggleable.apply(this,['tooltip',args]);return this},reset:function(){this.contentWrapper.setStyles({overflow:'hidden',height:''});this.contentHolder.setStyles({overflow:'',width:'',height:'',display:'none'});this.el.setStyles({width:'',left:'',top:''});this.contentHolder.empty()}});Lib.SlideshowChrome=new Class({Extends:Lib.Chrome,CustomEvents:['next','back','goTo'],_currentTracker:null,initialize:function(el){this.parent(el);this.initCustomEvents()},initEl:function(el){var me=this;this.el=$$(el)[0];this.trackers=this.el.getElements('.lib_ss_track');this.setTracker(0);this.trackers.each(function(t,index){t.addEvent('click',function(){me.invokeEvent('goTo',index)})});this.canvas=this.el.getElement('.lib_ss_canvas');this.backEls=this.el.getElements('.lib_ss_back');this.nextEls=this.el.getElements('.lib_ss_next');this.nextEls.each(function(ne){me.bindClickEvent('next',ne)});this.backEls.each(function(be){me.bindClickEvent('back',be)});return this},bindClickEvent:function(which,el){var me=this;el.addEvent('click',function(){me.invokeEvent(which)})},switchTracker:function(index){if(index>=0&&index<this.trackers.length){this._currentTracker.removeClass('active');this.setTracker(index);this._currentTracker.addClass('active')}},deactivateBack:function(){this.backEls.each(function(be){be.removeEvents('click').removeClass('active')})},activateBack:function(){var me=this;this.deactivateBack();this.backEls.each(function(be){me.bindClickEvent('back',be);be.addClass('active')})},deactivateNext:function(){this.nextEls.each(function(ne){ne.removeEvents('click').removeClass('active')})},activateNext:function(){var me=this;this.deactivateNext();this.nextEls.each(function(ne){me.bindClickEvent('next',ne);ne.addClass('active')})},setTracker:function(index){this._currentTracker=this.trackers[index]}});Lib.Chrome.RefreshStrategy={fillableToggleable:function(type,args){var show={},hide={},m={};m=this.measure(args.contentSize.width,args.contentSize.height);if(type==='tooltip'&&(Browser.Engine.trident)){m.element.height=m.element.height-4}this.setSize(m.element.width,m.element.height);this.setContentSize(m.content.width,m.content.height);this.resizeContentWrapper('auto',m.content.height);var vals={};if(type==='layer'){if(typeof args.toggleStrategy==='undefined'){args.toggleStrategy='growBaseToCenter'}vals=Lib.ToggleStrategies[args.toggleStrategy](args.base,{width:m.element.width,height:m.element.height,wrapperHeight:m.content.height});if(vals.endTop<this.margin){vals.endTop=this.margin}if(vals.endLeft<this.margin){vals.endLeft=this.margin}}else{var endX=(typeof args.endCoords==='undefined')?args.startCoords.x:args.endCoords.x;var endY=(typeof args.endCoords==='undefined')?args.startCoords.x:args.endCoords.y;vals={startWidth:m.element.width,endWidth:m.element.width,startHeight:m.element.height,endHeight:m.element.height,startWrapperHeight:m.content.height,endWrapperHeight:m.content.height,startLeft:endX,startTop:endY,endLeft:endX,endTop:endY}}show={'opacity':[0,1],'width':[vals.startWidth,vals.endWidth],'height':[vals.startWrapperHeight,vals.endWrapperHeight],'left':[vals.startLeft,vals.endLeft],'top':[vals.startTop,vals.endTop]};if(type==='layer'){hide={'opacity':[1,0],'width':[vals.endWidth,vals.startWidth],'height':[vals.endWrapperHeight,vals.startWrapperHeight],'left':[vals.endLeft,vals.startLeft],'top':[vals.endTop,vals.startTop]}}else{hide={'opacity':[0,0],'width':[0,0],'height':[0,0],'left':[-999,-999],'top':[-999,-999]}}this.updateTransitions(show,hide);return this}};Lib.ToggleStrategies={growBaseToCenter:function(base,args){var baseCenter=base.getAllDimensions().centerPoint,endCoords=Lib.Measure.getCenterCoords(args.width,args.height);return{startTop:baseCenter.y,startLeft:baseCenter.x,startWidth:0,startHeight:0,startWrapperHeight:0,endTop:endCoords.y,endLeft:endCoords.x,endWidth:args.width,endHeight:args.height,endWrapperHeight:args.wrapperHeight}},growCenterToCenter:function(base,args){var startCoords=Lib.Measure.getWindowCenter();endCoords=Lib.Measure.getCenterCoords(args.width,args.height);return{startTop:startCoords.y,startLeft:startCoords.x,startWidth:0,startHeight:0,startWrapperHeight:0,endTop:endCoords.y,endLeft:endCoords.x,endWidth:args.width,endHeight:args.height,endWrapperHeight:args.wrapperHeight}},centerToCenter:function(base,args){var coords=Lib.Measure.getCenterCoords(args.width,args.height);return{startTop:coords.y,startLeft:coords.x,startWidth:args.width,startHeight:args.height,startWrapperHeight:args.wrapperHeight,endTop:coords.y,endLeft:coords.x,endWidth:args.width,endHeight:args.height,endWrapperHeight:args.wrapperHeight}}};if(typeof LibOptions!=='undefined'&&typeof LibOptions.ToggleStrategies!=='undefined'){Lib.ToggleStrategies=$merge(LibOptions.ToggleStrategies,Lib.ToggleStrategies)}Lib.SliderManager={sliders:[],add:function(slider){this.sliders.push(slider);return this},get:function(id){for(var i=0,len=this.sliders.length;i<len;i++){if(this.sliders[i].el.get('id')===id){return this.sliders[i]}}return null}};Lib.SliderMarker=new Class({tickEl:null,valueEl:null,value:0,width:0,align:'normal',Implements:[Lib.Core,Events],initialize:function(el,args){this.el=el;this.setProperties(args);this.initTickEl();this.initValueEl();this.initValue();this.initWidth();return this},initTickEl:function(){this.tickEl=this.el.getElement('[class*=sliderMarkerTick::]');return this},initValueEl:function(){this.valueEl=this.el.getElement('[class*=sliderMarkerValue::]');return this},initValue:function(){if(this.valueEl){this.valueEl.set('html',this.value)}return this},initWidth:function(){var size=1;if(this.valueEl){this.valueEl.setStyle('float','right');size=this.valueEl.getSize().x;this.valueEl.setStyle('float','')}else{this.tickEl.setStyle('float','right');size=this.tickEl.getSize().x;this.tickEl.setStyle('float','')}this.width=size;this.el.setStyle('width',this.width)},getValue:function(){return this.value},getPosition:function(){return this.el.getCoordinates().x},getCenterOffset:function(){return this.width/2},getWidth:function(){return this.width},moveTo:function(value,center){center=typeof center==='undefined'?true:false;if(!center){this.el.setStyle('left',value)}else{this.el.setStyle('left',value-this.getCenterOffset())}return this},render:function(){this.el.setStyle('visibility','visible');return this}});Lib.SliderHandleMove=new Class({Implements:[Lib.Core],value:0,offset:0,handle:null,maxTick:0,tick:0,sliderWidth:0,numValues:0,sliderRange:{min:0,max:0},initialize:function(o){this.setProperties(o);this.initTicks()},initTicks:function(){this._intTick=(this.sliderWidth/this.numValues).maxDecimals(4);this._maxIntTick=this._intTick*this.numValues;return this},move:function(handle,value,force){this.handle=handle;this.value=value;force=force||false;var valid=true,moveBy=value-handle.getValue(),direction=(moveBy<0)?'down':'up',finalValue=value,ehs=[],eh=this.handle.getElderHandle(),yhs=[],yh=this.handle.getYoungerHandle();if(force){this._doMove(this.handle,value);return}while(eh){ehs.push(eh);eh=eh.getElderHandle()}while(yh){yhs.push(yh);yh=yh.getYoungerHandle()}if(direction==='up'){if(ehs.length>0){var last=ehs[ehs.length-1];if((last.getValue()+moveBy)<=this.sliderRange.max){ehs.each(function(h){this._doMove(h,h.getValue()+moveBy)}.bind(this));this._doMove(this.handle,value)}else{moveBy=this.sliderRange.max-last.getValue();ehs.each(function(h){this._doMove(h,h.getValue()+moveBy)}.bind(this));this._doMove(this.handle,this.handle.getValue()+moveBy)}}else{if(value>this.sliderRange.max){this._doMove(this.handle,this.sliderRange.max)}else{this._doMove(this.handle,value)}}}else{if(yhs.length>0){var toMove=[];yhs.each(function(h){if(value<h.getValue()){toMove.push(h)}});if(value<this.sliderRange.min){value=this.sliderRange.min}toMove.each(function(h){this._doMove(h,value)}.bind(this))}else{if(value<this.sliderRange.min){value=this.sliderRange.min}}ehs.each(function(h){var val=h.getValue()-(this.handle.getValue()-value);this._doMove(h,val)}.bind(this));this._doMove(this.handle,value)}},_doMove:function(handle,value){handle._forceGoTo(value,this.valueToIntTick(value));return},nearestIntTick:function(num){return(Math.round(num.toInt()/this._intTick)*this._intTick).maxDecimals(4)},intTickToValue:function(intTick){return Math.round((intTick*this.numValues)/this._maxIntTick)+this.sliderRange.min},valueToIntTick:function(value){return(((value-this.sliderRange.min)*this._maxIntTick)/this.numValues).maxDecimals(4)}});Lib.SliderBar=new Class({Implements:[Lib.Core,Events],CustomEvents:['change'],maxHandle:null,minHandle:null,lastUsedHandle:null,offset:0,offsetStyle:'left',values:{max:0,min:0,size:0},valueStyle:'width',range:{min:0,max:0},size:{min:null,max:null},updateClass:null,updateItems:[],updateItemsSize:[],initialize:function(el,args){this.el=el;this.setProperties(args);this.initMinMaxSize();this.initUpdateItems();this.minHandle.setUpperBar(this);this.maxHandle.setLowerBar(this);this.maxHandle.addEvent('change',function(){this.refresh()}.bind(this));this.minHandle.addEvent('change',function(){this.refresh()}.bind(this))},initMinMaxSize:function(){if(this.size.min===null){this.size.min=0}if(this.size.max===null){this.size.max=this.getMax()}return this},initUpdateItems:function(){if($type(this.updateClass)==='string'){this.updateItems=$$('[class*='+this.updateClass+'::]');this.updateItems.each(function(item){var els=item.getElements('[class*=barSize::]');els.each(function(el){this.updateItemsSize.push(el)}.bind(this))}.bind(this))}return this},setMaxHandle:function(handle){this.maxHandle=handle},setMinHandle:function(handle){this.minHandle=handle},refresh:function(){var max=this.getHighValue(),min=this.getLowValue(),maxOrMin='min',unlimited=unlimited||false,size,internalSize;internalSize=(this.maxHandle.getOffset()-this.minHandle.getOffset());if(internalSize<0){internalSize=0}size=(this.getHighValue()-this.getLowValue());this.values={max:max,min:min,size:size};this.el.setStyle(this.offsetStyle,this.minHandle.getOffset()+this.minHandle.getCenterOffset());this.el.setStyle(this.valueStyle,internalSize);this.el.setStyle('visibility','visible');this.maxHandle.show();this.minHandle.show();this.invokeEvent('change',[this,this.values]);this.refreshUpdateItems();return this},refreshUpdateItems:function(){this.updateItemsSize.each(function(item){if(item.get('tag')==='input'){item.set('value',this.values.size)}else{item.set('html',this.values.size)}}.bind(this))},getLowValue:function(){return $chk(this.minHandle)?this.minHandle.getValue():this.range.min},getHighValue:function(){return $chk(this.maxHandle)?this.maxHandle.getValue():this.range.max},getValues:function(){return this.values},getSize:function(){return this.size},hasMaxSize:function(){return this.getSize().max<(this.getMax()-this.getMin())},hasMinSize:function(){return this.getSize().min>0},getMin:function(){return this.range.min},getMax:function(){return this.range.max},getMaxSize:function(){return this.size.max},getMinSize:function(){return this.size.min},makeUnlimited:function(){this.values.size='Unlimited';this.refreshUpdateItems();this.invokeEvent('change',[this,this.values]);return this},removeUnlimited:function(){this.values.size=this.getHighValue()-this.getLowValue();this.refreshUpdateItems();this.invokeEvent('change',[this,this.values])},isValidValue:function(value){return value>=this.getMin()&&value<=this.getMax()},isValidHandleMove:function(handle,value){if(this.isValidValue(value)){if(this.isMinHandle(handle)&&value<=this.getHighValue()&&(this.getHighValue()-value)<=this.getSize().max&&(this.getHighValue()-value)>=this.getSize().min){return true}else if(this.isMaxHandle(handle)&&value>=this.getLowValue()&&(value-this.getLowValue())<=this.getSize().max&&(value-this.getLowValue())>=this.getSize().min){return true}}return false},isValidPosition:function(min,max){return this.isValidValue(min)&&this.isValidValue(max)&&max-min<=this.getSize().max&&max-min>=this.getSize().min},willCausePull:function(value){return(value-this.getLowValue())>this.getSize().max},usesHandle:function(handle){return this.isMaxHandle(handle)||this.isMinHandle(handle)},isMaxHandle:function(handle){return handle===this.maxHandle},isMinHandle:function(handle){return handle===this.minHandle}});Lib.SliderHandle=new Class({Implements:[Lib.Core,Events],CustomEvents:['drag','release','start','change'],drag:null,draggable:true,orientation:'horizontal',visible:true,value:0,offset:0,offsetStyle:'left',draggable:true,centerOffset:0,maxPrimary:0,minPrimary:0,maxSecondary:0,minSecondary:0,snap:1,bars:{upper:null,lower:null},initialize:function(el,args){this.el=el;this.setProperties(args);this.initCenterOffset();if(this.draggable){this.initDrag();this.initDragEvents();this.initKeyEvents()}if(!this.visible){this.el.setStyle('visibility','hidden')}return this},initDrag:function(){var limit={};if(this.orientation==='horizontal'){limit={x:[this.minPrimary,this.maxPrimary],y:[this.minSecondary,this.maxSecondary]}}else{limit={y:[this.minPrimary,this.maxPrimary],x:[this.minSecondary,this.maxSecondary]}}if(this.drag===null){this.drag=new Drag(this.el,{limit:limit,snap:this.snap})}return this},initDragEvents:function(){this.drag.addEvent('start',function(e){this.drag.document.removeEvent('mousemove',this.drag.bound.drag);var doDrag=function(e){Lib.TooltipManager.pause();this.invokeEvent('drag',[this,this.el,this.drag,e])}.bind(this);this.drag.document.addEvents({mousemove:doDrag,mouseup:function(){this.drag.document.removeEvent('mousemove',doDrag);Lib.TooltipManager.resume()}.bind(this)})}.bind(this));return this},initKeyEvents:function(){var func=function(e){if(e.key==='left'){this.down()}else if(e.key==='right'){this.up()}};this.el.addEvent('focus',function(){window.addEvent('keydown',func.bind(this))}.bind(this));this.el.addEvent('blur',function(){window.removeEvent('keydown',func)}.bind(this))},initCenterOffset:function(){var dims=this.el.getAllDimensions();this.centerOffset=(dims.coordinates.right-dims.coordinates.left)/2;this.maxPrimary=this.maxPrimary-this.centerOffset;this.minPrimary=this.minPrimary-this.centerOffset;return this},getValue:function(){return this.value},setValue:function(value){this.value=value;return this},setOffset:function(offset){this.offset=offset-this.getCenterOffset();this.el.setStyle(this.offsetStyle,(this.offset)+'px');return this},getOffset:function(){return this.offset},getCenterOffset:function(){return this.centerOffset},getYoungerHandle:function(){if($chk(this.bars.lower)){return this.bars.lower.minHandle}return null},getElderHandle:function(){if($chk(this.bars.upper)){return this.bars.upper.maxHandle}return null},getYoungerBar:function(){if($chk(this.bars.lower)){return this.bars.lower}return null},getElderBar:function(){if($chk(this.bars.upper)){return this.bars.upper}return null},getNextBar:function(direction){return direction==='up'?this.getElderBar():this.getYoungerBar()},getPreviousBar:function(direction){return direction==='up'?this.getYoungerBar():this.getElderBar()},getNextHandle:function(direction){return direction==='up'?this.getElderHandle():this.getYoungerHandle()},getPreviousHandle:function(direction){return direction==='up'?this.getYoungerHandle():this.getElderHandle()},up:function(){this.goTo(this.getValue()+1);return this},down:function(){this.goTo(this.getValue()-1);return this},increaseBy:function(value,force){force=force||false;this.goTo(this.getValue()+value,force);return this},decreaseBy:function(value){this.goTo(this.getValue()-value);return this},goTo:function(value,force){force=force||false;this.invokeEvent('start',[this,value]);return this},show:function(){if(this.visible){this.el.setStyle('visibility','visible')}},_forceGoTo:function(value,offset){this.setValue(value);this.setOffset(offset);this.invokeEvent('change',[this,this.getValue()])},setLowerBar:function(bar){this.bars.lower=bar;return this},setUpperBar:function(bar){this.bars.upper=bar;return this}});Lib.Slider=new Class({Implements:[Lib.Core,Events],bars:[],handles:[],markers:[],range:{},orientation:'horizontal',value:0,numValues:0,_intTick:0,_curIntTick:0,_maxIntTick:0,_queue:[],_queueing:false,initialize:function(el,args){this.el=el;this.setProperties(args);this.setWidth(this.el.getAllDimensions().boxSize.width);this.mover=new Lib.SliderHandleMove({sliderWidth:this.getWidth(),sliderRange:this.range,numValues:this.getNumValues()})},positionMarkers:function(){this.markers.each(function(m){var val=m.getValue(),moveTo=0;if(m.align==='right'){moveTo=this.getWidth()-m.getWidth();m.moveTo(moveTo,false)}else if($type(val)==='number'){moveTo=this.mover.valueToIntTick(val);m.moveTo(moveTo)}if(m.tickEl){m.tickEl.setStyle('visibility','visible')}if(m.valueEl){m.valueEl.setStyle('visibility','visible')}}.bind(this))},refresh:function(){this.positionMarkers();this.bars.each(function(bar){var maxVal=bar.start.min+bar.start.size,maxOffset=this.mover.valueToIntTick(maxVal),minVal=bar.start.min,minOffset=this.mover.valueToIntTick(minVal);this.mover.move(bar.maxHandle,maxVal,true);this.mover.move(bar.minHandle,minVal,true);bar.refresh()}.bind(this))},bindHandleEvents:function(handle){handle.addEvents({drag:function(handle,handleEl,handleDrag,e){this.onHandleDrag(handle,handleEl,handleDrag,e)}.bind(this),start:function(handle,value){this.mover.move(handle,value)}.bind(this)});return this},onHandleDrag:function(handle,handleEl,handleDrag,e){var offset=e.page.x-this.el.getCoordinates().left,value=this.mover.intTickToValue(offset),unlimited=false;this.mover.move(handle,value);for(var i=0,len=this.bars.length;i<len;i++){if(this.bars[i].getHighValue()>=this.unlimitedWhen){unlimited=true;break}}if(unlimited){for(var i=0,len=this.bars.length;i<len;i++){this.bars[i].makeUnlimited()}}else{for(var i=0,len=this.bars.length;i<len;i++){this.bars[i].removeUnlimited()}}},addBar:function(bar){this.bars.push(bar);return this},addHandle:function(handle){this.handles.push(handle);this.bindHandleEvents(handle);return this},addMarker:function(marker){this.markers.push(marker);return this},setWidth:function(w){this.width=w;return this},getWidth:function(){return this.width},getMin:function(){return this.range.min},getMax:function(){return this.range.max},getSize:function(){return this.range.max-this.range.min},getNumValues:function(){return this.range.max-this.range.min},getBar:function(id){for(var i=0,len=this.bars.length;i<len;i++){if(this.bars[i].el.get('id')===id){return this.bars[i]}}return null}});Lib.Templates={};Lib.Bootstrapper={};Lib.Bootstrapper.Parser={parse:function(str,namespace,defaults){var reGroup=/(?:\w|\d)*\:\:(\w|\d|\:)[^ ]*/g,reValues=/((?:\w|\d)[^:]*):((?:\w|\d)[^:]*)/g,reGetNamespace=/((?:\w|\d)*)\:\:/,reIsInteger=/^\d*$/,tempRe=null,match=null,namespace=namespace||null,tests=[],results={};if(namespace!==null){tempRe=new RegExp(namespace+"\:\:.[^ ]*");tests[0]=tempRe.exec(str)}else{while(match=reGroup.exec(str)){tests.push(match[0])}}if(tests.length==1){var test=tests[0],ns=reGetNamespace.exec(test),res=results;while(match=reValues.exec(test)){if(reIsInteger.test(match[2])){match[2]=match[2].toInt()}else if(match[2]==='true'||match[2]==='false'){match[2]=(match[2]==='true')?true:false}res[match[1]]=match[2]}}else{tests.each(function(test){var ns=reGetNamespace.exec(test),res=results[ns[1]]={};while(match=reValues.exec(test)){if(reIsInteger.test(match[2])){match[2]=match[2].toInt()}else if(match[2]==='true'||match[2]==='false'){match[2]=(match[2]==='true')?true:false}res[match[1]]=match[2]}})}for(var d in defaults){if(defaults.hasOwnProperty(d)){if(typeof results[d]==='undefined'){results[d]=defaults[d]}}}return results}};Lib.Bootstrapper.Layers={init:function(){var layer_triggers=new Lib.Trigger($$('.launcher'),{click:function(){var stuff=Lib.Bootstrapper.Layers.parse(this),contentSize={width:stuff.contentWidth,height:stuff.contentHeight};Lib.LayerManager.show(stuff.type,{content:stuff.content,title:stuff.title,contentSize:contentSize,base:stuff.base,style:stuff.style,toggleStrategy:stuff.toggleStrategy,clone:stuff.clone,useLoader:stuff.useLoader})}}),layer_triggers2=new Lib.Trigger($$('[class*=layerLauncher::]'),{click:function(){var v=Lib.Bootstrapper.Layers.parse2(this);Lib.LayerManager.show(v.type,v)}})},parse:function(trigger){var type='html',chrome='default',href=trigger.get('href'),rel=trigger.get('rel'),klass=trigger.get('class'),titleProp=trigger.get('title'),content=null,contentWidth=null,contentHeight='auto',title='';if(href){if(href.match('#')){var el=$(href.replace('#',''));content=el.getFirst();contentWidth=el.getFirst().style.width.toInt();contentHeight=el.getFirst().style.height.toInt();if($chk(el.style.width)){contentWidth=el.getStyle('width').toInt()}if($chk(el.style.height)){contentHeight=el.getStyle('height').toInt()}}else if(href.match(/(.jpg|.gif|.png)/)){type='image';content=href}else if(href.match(/\.swf/)){type='swf';content=href;contentWidth=742;contentHeight=366}else if(rel&&rel.match('#')){var el=$(rel.replace('#',''));content=el.getFirst();contentWidth=el.getFirst().style.width.toInt();contentHeight=el.getFirst().style.height.toInt();if($chk(el.style.width)){contentWidth=el.getStyle('width').toInt()}if($chk(el.style.height)){contentHeight=el.getStyle('height').toInt()}}else{type='iframe';content=href}}if(klass&&klass.match('layer::')){var reW=/width:(\d+)/.exec(klass);var reH=/height:(\d+)/.exec(klass);if(reW&&reW[1]){contentWidth=reW[1].toInt()}if(reH&&reH[1]){contentHeight=reH[1].toInt()}}else if(rel&&rel.match('layer::')){var reW=/width:(\d+)/.exec(rel);var reH=/height:(\d+)/.exec(rel);if(reW&&reW[1]){contentWidth=reW[1].toInt()}if(reH&&reH[1]){contentHeight=reH[1].toInt()}}if(trigger.get('class').match('chrome')){var re=/chrome:(.[^\s]+)/;chrome=re.exec(trigger.get('class'))[1]}if(titleProp){title=titleProp}return{title:title,content:content,contentWidth:contentWidth,contentHeight:contentHeight,type:type,chrome:chrome,base:trigger,toggleStrategy:'growBaseToCenter',clone:false,useLoader:true}},parse2:function(trigger){var results=Lib.Bootstrapper.Parser.parse(trigger.get('class'),'layerLauncher',{toggleStrategy:'centerToCenter',chrome:'default',clone:false,useLoader:true,base:trigger});$extend(results,Lib.Bootstrapper.Layers.getContent(trigger,results.clone));return results},getContent:function(trigger,clone){var type='html',href=trigger.get('href'),title=$chk(trigger.get('title'))?trigger.get('title'):null,content=href,contentWidth='auto',contentHeight='auto',el=null;if(href){if(href.match('#')){el=$(href.replace('#',''));if(clone){content=el.getFirst().clone()}else{content=el}}else if(href.match(/(.jpg|.gif|.png)/)){type='image'}else{type='iframe'}}if($type(content)==='element'){var cW=content.getStyle('width').toInt(),cH=content.getStyle('height').toInt();contentWidth=$type(cW)==='number'?cW:contentWidth;contentHeight=$type(cH)==='number'?cH:contentHeight}return{title:title,content:content,contentWidth:contentWidth,contentHeight:contentHeight,type:type}}};Lib.Bootstrapper.Tooltips={init:function(wrapper){var me=this,tooltips,tip_triggers;wrapper=wrapper||null;if(wrapper!==null){tooltips=wrapper.getElements('.tip');tip_triggers=wrapper.getElements('.tooltip')}else{tooltips=$$('.tip');tip_triggers=$$('.tooltip')}var tt_chrome_trigger=new Lib.Trigger([Lib.Templates.Html.Tooltips.DEFAULT],{out:function(){Lib.TooltipManager.hide();this.removeFriends()}});var doShow=function(triggerObj,trigger,tip){var t=Lib.TooltipManager.tooltip;if(($chk(t)&&t.chrome.isVisible()&&t.curBase==trigger)){$clear(triggerObj.blurTimeout)}else{var info=me.parse(trigger,tip);Lib.TooltipManager.show('html',info)}};tip_triggers.each(function(tt,index){var friends=[tt,Lib.Templates.Html.Tooltips.DEFAULT],curTip=tooltips[index];var trig=new Lib.Trigger([tt],{friends:friends,over:function(){tt_chrome_trigger.makeFriends([this]);doShow(trig,this,curTip)},out:function(){Lib.TooltipManager.hide();tt_chrome_trigger.removeFriends()}});curTip.getElements('a').each(function(a){a.addEvent('focus',function(){doShow(trig,tt,curTip)})})})},parse:function(trigger,tip){var dims=trigger.getAllDimensions(),contentSize={width:tip.style.width.toInt(),height:tip.style.height.toInt()},content=tip.get('html').makeDom(),direction='top',href=trigger.getProperty('href'),rel=trigger.getProperty('rel'),klass=trigger.getProperty('class');var id='';if(href&&href.match('#.+')){id=href.replace('#','')}else if(rel&&rel.match('#')){id=rel.replace('#','')}else if(klass&&klass.match('#')){var re=/\#(.[^\s]+)/;var res=re.exec(klass);if(res[1]){id=res[1]}}if(isNaN(contentSize.height)){contentSize.height='auto'}if(id.length>0){tip=$(id);content=tip.get('html').makeDom()}for(var i=0,len=Lib.Utils.directions.length;i<len;i++){var dir=Lib.Utils.directions[i];if(trigger.hasClass(dir)){direction=dir;break}else if(tip.hasClass(dir)){direction=dir}}return{content:content,contentSize:contentSize,direction:direction,startCoords:{x:dims.centerPoint.x,y:dims.centerPoint.y},base:trigger}}};Lib.Bootstrapper.Tabs={init:function(){Lib.TabsManager={};Lib.TabsManager.tabs=[];if($('togglers')){var tab_tabs=new Lib.Tabs({tabs:$('togglers').getElements('a'),contents:$$('.toggled')});Lib.TabsManager.tabs.push(tab_tabs)}if($('togglers_local')){var local_tabs=new Lib.Tabs({tabs:$('togglers_local').getElements('a'),contents:$$('.toggled_local')});Lib.TabsManager.tabs.push(local_tabs)}if($('togglers_alt_lg')){Lib.TabsManager.tabs.push(new Lib.Tabs({tabs:$('togglers_alt_lg').getElements('a'),contents:$$('.toggled_alt_lg')}))}if($('togglers_alt_sm')){Lib.TabsManager.tabs.push(new Lib.Tabs({tabs:$('togglers_alt_sm').getElements('a'),contents:$$('.toggled_alt_sm')}))}if($('togglers_alt_lg_1')){Lib.TabsManager.tabs.push(new Lib.Tabs({tabs:$('togglers_alt_lg_1').getElements('a'),contents:$$('.toggled_alt_lg_1')}))}if($('togglers_alt_lg_2')){Lib.TabsManager.tabs.push(new Lib.Tabs({tabs:$('togglers_alt_lg_2').getElements('a'),contents:$$('.toggled_alt_lg_2')}))}if($('togglers_alt_lg_3')){Lib.TabsManager.tabs.push(new Lib.Tabs({tabs:$('togglers_alt_lg_3').getElements('a'),contents:$$('.toggled_alt_lg_3')}))}if($('togglers_alt_lg_4')){Lib.TabsManager.tabs.push(new Lib.Tabs({tabs:$('togglers_alt_lg_4').getElements('a'),contents:$$('.toggled_alt_lg_4')}))}var tabs=$$('[class*=tabs::]');if(tabs){tabs.each(function(t){var p=Lib.Bootstrapper.Tabs.parse(t);if(p){var tab_tabs=new Lib.Tabs({tabs:t.getElements('a'),contents:$$('.'+p)});Lib.TabsManager.tabs.push(tab_tabs)}})}Lib.TabsManager.get=function(id){for(var i=0,len=this.tabs.length;i<len;i++){if(this.tabs[i].getWrapper().get('id')===id){return this.tabs[i]}}}},parse:function(tab){var re1=/tabs\:\:.[^\s]*/,re2=/set\:(.*)/;var res1=re1.exec(tab.get('class'));var res2=re2.exec(res1);if(res2&&typeof res2[1]!=='undefined'){return res2[1]}return false}};Lib.Bootstrapper.Slideshows={init:function(slideshow){var ss=($chk(slideshow))?[slideshow]:$$('.lib_ss'),objs=[];if(ss){ss.each(function(el){var slideshow=new Lib.Slideshow({chrome:(new Lib.SlideshowChrome(el))});objs.push(slideshow)})}return objs.length===1?objs[0]:objs}};Lib.Bootstrapper.Sliders={init:function(){var sliders=$$('[class*=slider::]');sliders.each(function(slider){var v=Lib.Bootstrapper.parseParams(slider.get('class'),'slider'),unlimitedWhen=(typeof v.unlimitedWhen!=='undefined')?v.unlimitedWhen:null;var s=new Lib.Slider(slider,{range:{min:v.min,max:v.max},unlimitedWhen:unlimitedWhen});Lib.SliderManager.add(s);Lib.Bootstrapper.Slider.build(slider,s)})},build:function(el,slider){var values={},bars=[],handles=[];values.bars=[];values.handles=[];bars=el.getElements('[class*=sliderBar::]');markers=el.getElements('[class*=sliderMarker::]');markers.each(function(marker){var klass=marker.get('class'),v=Lib.Bootstrapper.parseParams(klass,'sliderMarker'),value=v.value,align=(typeof v.align!=='undefined')?v.align:'normal';slider.addMarker(new Lib.SliderMarker(marker,{value:value,align:align}))});bars.each(function(bar){var klass=bar.get('class'),v=Lib.Bootstrapper.parseParams(klass,'sliderBar'),sliderSize=slider.getSize(),maxHandle=null,minHandle=null,min=(typeof v.min!=='undefined')?v.min:slider.getMin(),max=(typeof v.max!=='undefined')?v.max:slider.getMax(),maxSize=(typeof v.maxSize!=='undefined')?v.maxSize:sliderSize,minSize=(typeof v.minSize!=='undefined')?v.minSize:0,minStart=(typeof v.minStart!=='undefined')?v.minStart:0,sizeStart=(typeof v.sizeStart!=='undefined')?v.sizeStart:0,updateClass=(typeof v.update!=='undefined')?v.update:null;for(var i=0,len=handles.length;i<len;i++){if(handles[i].el.get('class').match(v.maxHandle)){maxHandle=handles[i]}else if(handles[i].el.get('class').match(v.minHandle)){minHandle=handles[i]}}if(maxHandle===null){var el=slider.el.getElement('[class*='+v.maxHandle+'::]'),props=Lib.Bootstrapper.parseParams(el.get('class'),v.maxHandle),visible=(typeof props.visible!=='undefined')?props.visible:true;draggable=(typeof props.draggable!=='undefined')?props.draggable:true;maxHandle=new Lib.SliderHandle(el,{maxPrimary:slider.getWidth(),minSecondary:-4,maxSecondary:-4,orientation:slider.orientation,visible:visible,draggable:draggable});slider.addHandle(maxHandle);handles.push(maxHandle)}if(minHandle===null){var el=slider.el.getElement('[class*='+v.minHandle+'::]'),props=Lib.Bootstrapper.parseParams(el.get('class'),v.minHandle),visible=(typeof props.visible!=='undefined')?props.visible:true;minHandle=new Lib.SliderHandle(el,{maxPrimary:slider.getWidth(),minSecondary:-4,maxSecondary:-4,orientation:slider.orientation,visible:visible});slider.addHandle(minHandle);handles.push(minHandle)}slider.addBar(new Lib.SliderBar(bar,{maxHandle:maxHandle,minHandle:minHandle,range:{min:min,max:max},size:{min:minSize,max:maxSize},start:{min:minStart,size:sizeStart},updateClass:updateClass}))});slider.refresh();return slider}};Lib.Bootstrapper.Templates={};Lib.Bootstrapper.Templates.Html={init:function(obj){if(obj&&$type(obj)==='object'){Lib.Bootstrapper.Templates.Html.inject(obj)}else if(typeof Lib.Bootstrapper.Templates.Html!=='undefined'){Lib.Bootstrapper.Templates.Html.inject(Lib.Templates.Html)}},inject:function(obj){for(var item in obj){if($type(obj[item])==='string'){var dom=obj[item].makeDom(),pl_wrapper=new Element('div',{'class':'pl'});obj[item]=dom.getFirst();Lib.Utils.body.adopt(pl_wrapper);pl_wrapper.adopt(obj[item]);dom.destroy()}else if($type(obj[item])==='object'){Lib.Bootstrapper.Templates.Html.init(obj[item])}else{throw new Error('the HtmlTemplates are not setup correctly');}}}};Lib.Bootstrapper.Overlay={init:function(args){Lib.Utils.overlay=new Lib.Overlay(args)}};Lib.Bootstrapper.BackgroundCache={init:function(){if(Browser.Engine.trident4){try{document.execCommand("BackgroundImageCache",false,true)}catch(err){}}}};Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(B,A){this.element=this.subject=$(B);this.parent(A);var D=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=$(this.element.getDocument().body)}var C=this.element;if(this.options.wheelStops){this.addEvent("start",function(){C.addEvent("mousewheel",D)},true);this.addEvent("complete",function(){C.removeEvent("mousewheel",D)},true)}},set:function(){var A=Array.flatten(arguments);this.element.scrollTo(A[0],A[1])},compute:function(E,D,C){var B=[];var A=2;A.times(function(F){B.push(Fx.compute(E[F],D[F],C))});return B},start:function(C,H){if(!this.check(arguments.callee,C,H)){return this}var E=this.element.getSize(),F=this.element.getScrollSize();var B=this.element.getScroll(),D={x:C,y:H};for(var G in D){var A=F[G]-E[G];if($chk(D[G])){D[G]=($type(D[G])=="number")?D[G].limit(0,A):A}else{D[G]=B[G]}D[G]+=this.options.offset[G]}return this.parent([B.x,B.y],[D.x,D.y])},toTop:function(){return this.start(false,0)},toLeft:function(){return this.start(0,false)},toRight:function(){return this.start("right",false)},toBottom:function(){return this.start(false,"bottom")},toElement:function(B){var A=$(B).getPosition(this.element);return this.start(A.x,A.y)}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:"px",grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,modifiers:{x:"left",y:"top"}},initialize:function(){var B=Array.link(arguments,{options:Object.type,element:$defined});this.element=$(B.element);this.document=this.element.getDocument();this.setOptions(B.options||{});var A=$type(this.options.handle);this.handles=(A=="array"||A=="collection")?$$(this.options.handle):$(this.options.handle)||this.element;this.mouse={now:{},pos:{}};this.value={start:{},now:{}};this.selection=(Browser.Engine.trident)?"selectstart":"mousedown";this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:$lambda(false)};this.attach()},attach:function(){this.handles.addEvent("mousedown",this.bound.start);return this},detach:function(){this.handles.removeEvent("mousedown",this.bound.start);return this},start:function(C){if(this.options.preventDefault){C.preventDefault()}this.fireEvent("beforeStart",this.element);this.mouse.start=C.page;var A=this.options.limit;this.limit={x:[],y:[]};for(var D in this.options.modifiers){if(!this.options.modifiers[D]){continue}if(this.options.style){this.value.now[D]=this.element.getStyle(this.options.modifiers[D]).toInt()}else{this.value.now[D]=this.element[this.options.modifiers[D]]}if(this.options.invert){this.value.now[D]*=-1}this.mouse.pos[D]=C.page[D]-this.value.now[D];if(A&&A[D]){for(var B=2;B--;B){if($chk(A[D][B])){this.limit[D][B]=$lambda(A[D][B])()}}}}if($type(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}this.document.addEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});this.document.addEvent(this.selection,this.bound.eventStop)},check:function(A){if(this.options.preventDefault){A.preventDefault()}var B=Math.round(Math.sqrt(Math.pow(A.page.x-this.mouse.start.x,2)+Math.pow(A.page.y-this.mouse.start.y,2)));if(B>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",this.element).fireEvent("snap",this.element)}},drag:function(A){if(this.options.preventDefault){A.preventDefault()}this.mouse.now=A.page;for(var B in this.options.modifiers){if(!this.options.modifiers[B]){continue}this.value.now[B]=this.mouse.now[B]-this.mouse.pos[B];if(this.options.invert){this.value.now[B]*=-1}if(this.options.limit&&this.limit[B]){if($chk(this.limit[B][1])&&(this.value.now[B]>this.limit[B][1])){this.value.now[B]=this.limit[B][1]}else{if($chk(this.limit[B][0])&&(this.value.now[B]<this.limit[B][0])){this.value.now[B]=this.limit[B][0]}}}if(this.options.grid[B]){this.value.now[B]-=(this.value.now[B]%this.options.grid[B])}if(this.options.style){this.element.setStyle(this.options.modifiers[B],this.value.now[B]+this.options.unit)}else{this.element[this.options.modifiers[B]]=this.value.now[B]}}this.fireEvent("drag",this.element)},cancel:function(A){this.document.removeEvent("mousemove",this.bound.check);this.document.removeEvent("mouseup",this.bound.cancel);if(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(A){this.document.removeEvent(this.selection,this.bound.eventStop);this.document.removeEvent("mousemove",this.bound.drag);this.document.removeEvent("mouseup",this.bound.stop);if(A){this.fireEvent("complete",this.element)}}});Element.implement({makeResizable:function(A){return new Drag(this,$merge({modifiers:{x:"width",y:"height"}},A))}});var Slider=new Class({Implements:[Events,Options],options:{onTick:function(A){if(this.options.snap){A=this.toPosition(this.step)}this.knob.setStyle(this.property,A)},snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(E,A,D){this.setOptions(D);this.element=$(E);this.knob=$(A);this.previousChange=this.previousEnd=this.step=-1;this.element.addEvent("mousedown",this.clickedElement.bind(this));if(this.options.wheel){this.element.addEvent("mousewheel",this.scrolledElement.bindWithEvent(this))}var F,B={},C={x:false,y:false};switch(this.options.mode){case"vertical":this.axis="y";this.property="top";F="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";F="offsetWidth"}this.half=this.knob[F]/2;this.full=this.element[F]-this.knob[F]+(this.options.offset*2);this.min=$chk(this.options.range[0])?this.options.range[0]:0;this.max=$chk(this.options.range[1])?this.options.range[1]:this.options.steps;this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.knob.setStyle("position","relative").setStyle(this.property,-this.options.offset);C[this.axis]=this.property;B[this.axis]=[-this.options.offset,this.full-this.options.offset];this.drag=new Drag(this.knob,{snap:0,limit:B,modifiers:C,onDrag:this.draggedKnob.bind(this),onStart:this.draggedKnob.bind(this),onComplete:function(){this.draggedKnob();this.end()}.bind(this)});if(this.options.snap){this.drag.options.grid=Math.ceil(this.stepWidth);this.drag.options.limit[this.axis][1]=this.full}},set:function(A){if(!((this.range>0)^(A<this.min))){A=this.min}if(!((this.range>0)^(A>this.max))){A=this.max}this.step=Math.round(A);this.checkStep();this.end();this.fireEvent("tick",this.toPosition(this.step));return this},clickedElement:function(C){var B=this.range<0?-1:1;var A=C.page[this.axis]-this.element.getPosition()[this.axis]-this.half;A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep();this.end();this.fireEvent("tick",A)},scrolledElement:function(A){var B=(this.options.mode=="horizontal")?(A.wheel<0):(A.wheel>0);this.set(B?this.step-this.stepSize:this.step+this.stepSize);A.stop()},draggedKnob:function(){var B=this.range<0?-1:1;var A=this.drag.value.now[this.axis];A=A.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+B*this.toStep(A));this.checkStep()},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent("change",this.step)}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent("complete",this.step+"")}},toStep:function(A){var B=(A+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(B-=B%this.stepSize):B},toPosition:function(A){return(this.full*Math.abs(this.min-A))/(this.steps*this.stepSize)-this.options.offset}});var MooScroll=new Class({Implements:Options,options:{selector:".scroll",increment:30,upBtnClass:"upBtn",downBtnClass:"downBtn",scrollBarClass:"scrollBar",scrollHandleClass:"scrollHandle",scrollHandleBGClass:"scrollHandleBG",scrollHandleTopClass:"scrollHandleTop",scrollHandleMiddleClass:"scrollHandleMiddle",scrollHandleBottomClass:"scrollHandleBottom",scrollControlsYClass:"scrollControlsY",handleOpacity:1,handleActiveOpacity:0.85,disabledOpacity:0.5,fullWindowMode:false,smoothMooScroll:{toAnchor:true,toMooScrollArea:true},restrictedBrowsers:[Browser.Engine.presto925,Browser.Platform.ipod,Browser.Engine.webkit419]},initialize:function(a){if(this.options.restrictedBrowsers.contains(true)){return}this.setOptions(a);this.mooScrollAreas=[];this.windowFxScroll=new Fx.Scroll(document.window,{wait:false});$(document.body).getElements(this.options.selector).each(function(c,b){var d=new MooScrollArea(this.options,c,this.windowFxScroll);this.mooScrollAreas.include(d);if(this.options.smoothMooScroll.toAnchor||this.options.smoothMooScroll.toMooScrollArea){this.smoothMooScroll=new SmoothMooScroll({toAnchor:this.options.smoothMooScroll.toAnchor,toMooScrollArea:this.options.smoothMooScroll.toMooScrollArea},d.contentEl,this.windowFxScroll)}}.bind(this))},loadContent:function(a){this.mooScrollAreas.each(function(c,b){c.loadContent(a)})},refresh:function(){this.mooScrollAreas.each(function(b,a){b.refresh()})},setSlider:function(a){this.mooScrollAreas.each(function(c,b){c.setSlider(a)})}});var MooScrollArea=new Class({Implements:Options,initialize:function(a,b,c){this.windowFxScroll=c;this.setOptions(a);this.parentEl=b.setProperty("rel","MooScrollArea");this.viewPort={x:$(window).getSize().x,y:$(window).getSize().y};this.parentElPadding=this.parentEl.getStyles("padding-top","padding-right","padding-bottom","padding-left");this.paddingHeight=parseFloat(this.parentEl.getStyle("padding-top"))+parseFloat(this.parentEl.getStyle("padding-bottom"));this.paddingWidth=parseFloat(this.parentEl.getStyle("padding-left"))+parseFloat(this.parentEl.getStyle("padding-right"));this.contentEl=new Element("div",{"class":"contentEl"}).adopt(this.parentEl.getChildren()).inject(this.parentEl,"top");this.parentEl.setStyle("overflow","hidden").setStyles({padding:0,width:parseFloat(this.parentEl.getStyle("width"))+this.paddingWidth,height:parseFloat(this.parentEl.getStyle("height"))+this.paddingHeight});this.borderHeight=parseFloat(this.parentEl.getStyle("border-top-width"))+parseFloat(this.parentEl.getStyle("border-bottom-width"));this.contentEl.setStyles({height:this.parentEl.getSize().y-this.borderHeight,overflow:"hidden",padding:0});this.paddingEl=new Element("div",{"class":"paddingEl"}).adopt(this.contentEl.getChildren()).inject(this.contentEl,"top").setStyles(this.parentElPadding);if(this.options.fullWindowMode){$(document).getElement("html").setStyle("overflow","hidden");this.parentEl.setStyles({height:"100%",width:"100%",position:"absolute"});this.contentEl.setStyles({height:"100%",width:"100%",position:"absolute"})}this.scrollControlsYWrapper=new Element("div",{"class":this.options.scrollControlsYClass}).inject(this.parentEl,"bottom");this.upBtn=new Element("div",{"class":this.options.upBtnClass}).inject(this.scrollControlsYWrapper,"bottom");this.downBtn=new Element("div",{"class":this.options.downBtnClass}).inject(this.scrollControlsYWrapper,"bottom");this.scrollBar=new Element("div",{"class":this.options.scrollBarClass}).inject(this.scrollControlsYWrapper,"bottom");this.scrollHandle=new Element("div",{"class":this.options.scrollHandleClass}).inject(this.scrollBar,"inside");this.scrollHandleTop=new Element("div",{"class":this.options.scrollHandleTopClass}).inject(this.scrollHandle,"inside");this.scrollHandleBG=new Element("div",{"class":this.options.scrollHandleBGClass}).inject(this.scrollHandle,"inside");this.scrollHandleMiddle=new Element("div",{"class":this.options.scrollHandleMiddleClass}).inject(this.scrollHandle,"inside");this.scrollHandleBottom=new Element("div",{"class":this.options.scrollHandleBottomClass}).inject(this.scrollHandle,"inside");this.coverUp=new Element("div").inject(this.scrollControlsYWrapper,"bottom");this.fixIE6CSSbugs();this.overHang=this.paddingEl.getSize().y-this.parentEl.getSize().y;this.setHandleHeight();if(this.overHang<=0){this.greyOut();return}this.initSlider();this.parentEl.addEvents({mousewheel:function(d){d=new Event(d).stop();if(d.wheel>0){this.scrollUp(true)}else{if(d.wheel<0){this.scrollDown(true)}}}.bind(this),keydown:function(d){if(d.key==="up"){d=new Event(d).stop();this.scrollUp(true)}else{if(d.key==="down"||d.key==="space"){d=new Event(d).stop();this.scrollDown(true)}}}.bind(this),click:function(d){this.hasFocus=true;this.hasFocusTimeout=(function(){$clear(this.hasFocusTimeout);this.hasFocus=true}.bind(this)).delay(50)}.bind(this)});this.contentEl.addEvents({scroll:function(d){this.slider.set(this.contentEl.getScroll().y)}.bind(this)});this.scrollHandle.addEvents({mousedown:function(d){this.scrollHandle.addClass(this.options.scrollHandleClass+"-Active").setStyle("opacity",this.options.handleActiveOpacity)}.bind(this)});document.addEvents({mouseup:function(d){this.scrollHandle.removeClass(this.options.scrollHandleClass+"-Active").setStyle("opacity",this.options.handleOpacity);this.upBtn.removeClass(this.options.upBtnClass+"-Active");this.downBtn.removeClass(this.options.downBtnClass+"-Active")}.bind(this),keydown:function(d){if((this.hasFocus||this.options.fullWindowMode)&&(d.key==="down"||d.key==="space"||d.key==="up")){this.parentEl.fireEvent("keydown",d)}}.bind(this),click:function(d){this.hasFocus=false}.bind(this)});window.addEvent("resize",function(){$clear(this.refreshTimeout);if(this.options.fullWindowMode){this.refreshTimeout=(function(){$clear(this.refreshTimeout);if(this.viewPort.x!=$(window).getSize().x||this.viewPort.y!=$(window).getSize().y){this.refresh();this.viewPort.x=$(window).getSize().x;this.viewPort.y=$(window).getSize().y}}.bind(this)).delay(250)}}.bind(this));this.upBtn.addEvents({mousedown:function(d){$clear(this.upInterval);$clear(this.downInterval);this.upInterval=this.scrollUp.periodical(10,this);this.upBtn.addClass(this.options.upBtnClass+"-Active")}.bind(this),mouseup:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this),mouseout:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this)});this.downBtn.addEvents({mousedown:function(d){$clear(this.upInterval);$clear(this.downInterval);this.downInterval=this.scrollDown.periodical(10,this);this.downBtn.addClass(this.options.downBtnClass+"-Active")}.bind(this),mouseup:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this),mouseout:function(d){$clear(this.upInterval);$clear(this.downInterval)}.bind(this)})},initSlider:function(){this.slider=new Slider(this.scrollBar,this.scrollHandle,{range:[0,Math.round(this.overHang)],mode:"vertical",onChange:function(a,b){this.contentEl.scrollTo(0,a);this.webKitKludge(a)}.bind(this)}).set(0)},webKitKludge:function(a){if(!Browser.Engine.webkit){return}if(this.step>a){this.step=a;return}$clear(this.sliderTimeout);this.sliderTimeout=(function(){$clear(this.sliderTimeout);var b=(1*this.paddingEl.getSize().y)/100;if((b+a)>=this.overHang){if(this.paddingElTopMargin==null){this.paddingElTopMargin=parseFloat(this.paddingEl.getStyle("margin-top"))}this.paddingEl.setStyle("margin-top",this.paddingElTopMargin-b);if(!this.scrollHandleTopMargin){this.scrollHandleTopMargin=parseFloat(this.scrollHandle.getStyle("margin-top"))}this.scrollHandle.setStyle("margin-top",this.scrollHandleTopMargin+2);this.contentEl.scrollTo(0,this.overHang);this.step=this.overHang}else{this.paddingEl.setStyle("margin-top",this.paddingElTopMargin);this.scrollHandle.setStyle("margin-top",this.scrollHandleTopMargin);this.contentEl.scrollTo(0,a);this.step=a}}.bind(this)).delay(10)},scrollUp:function(a){var b=this.contentEl.getScroll().y-30;this.slider.set(b);if(this.contentEl.getScroll().y<=0&&a){document.window.scrollTo(0,document.window.getScroll().y-this.options.increment)}},scrollDown:function(c){var d=this.contentEl.getScroll().y+this.options.increment;this.slider.set(d);var a=(1*this.paddingEl.getSize().y)/100;var b=(this.paddingEl.getSize().y-this.parentEl.getSize().y)<=(this.contentEl.getScroll().y+a);if(b&&c){document.window.scrollTo(0,document.window.getScroll().y+this.options.increment)}},fixIE6CSSbugs:function(){if(Browser.Engine.trident4){this.parentEl.setStyle("height",this.parentEl.getStyle("height"));this.contentEl.setStyle("height",this.parentEl.getStyle("height"));var c=this.scrollBar.getStyle("top").toInt();var a=this.scrollBar.getStyle("bottom").toInt();var b=this.parentEl.getSize().y-this.borderHeight;this.scrollControlsYWrapper.setStyles({height:b});this.scrollBar.setStyles({height:b-c-a})}},setHandleHeight:function(){var a=(100-((this.overHang*100)/this.paddingEl.getSize().y));this.handleHeight=((a*this.parentEl.getSize().y)/100)-(this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y);if((this.handleHeight+this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y)>=this.scrollBar.getSize().y){this.handleHeight-=(this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y)*2}if(this.scrollHandle.getStyle("min-height")&&this.handleHeight<parseFloat(this.scrollHandle.getStyle("min-height"))){this.handleHeight=parseFloat(this.scrollHandle.getStyle("min-height"))+this.scrollHandleBottom.getSize().y+this.scrollHandleTop.getSize().y}this.scrollHandle.setStyles({height:this.handleHeight})},greyOut:function(){this.scrollHandle.setStyles({display:"none"});this.upBtn.setStyles({opacity:this.options.disabledOpacity});this.scrollControlsYWrapper.setStyles({opacity:this.options.disabledOpacity});this.downBtn.setStyles({opacity:this.options.disabledOpacity});this.scrollBar.setStyles({opacity:this.options.disabledOpacity});this.coverUp.setStyles({display:"block",position:"absolute",background:"white",opacity:0.01,right:"0",top:"0",width:"100%",height:this.scrollControlsYWrapper.getSize().y})},unGrey:function(){this.scrollHandle.setStyles({display:"block",height:"auto"});this.scrollControlsYWrapper.setStyles({opacity:1});this.upBtn.setStyles({opacity:1});this.downBtn.setStyles({opacity:1});this.scrollBar.setStyles({opacity:1});this.coverUp.setStyles({display:"none",width:0,height:0});this.setHandleHeight()},loadContent:function(a){this.slider.set(0);this.paddingEl.empty().set("html",a);this.refresh()},refresh:function(){var a=Math.round(((100*this.step)/this.overHang));if(this.options.fullWindowMode){var b=$(window).getSize();this.parentEl.setStyles({width:"100%",height:"100%"})}this.fixIE6CSSbugs();this.overHang=this.paddingEl.getSize().y-this.parentEl.getSize().y;this.setHandleHeight();if(this.overHang<=0){this.greyOut();return}else{this.unGrey()}this.scrollHandle.removeEvents();var c=Math.round((a*this.overHang)/100);this.initSlider();this.slider.set(c);if(Browser.Engine.trident4){this.scrollHandleBG.setStyle("height","0").setStyle("height","100%")}if(this.options.smoothMooScroll.toAnchor||this.options.smoothMooScroll.toMooScrollArea){this.smoothMooScroll=new SmoothMooScroll({toAnchor:this.options.smoothMooScroll.toAnchor,toMooScrollArea:this.options.smoothMooScroll.toMooScrollArea},this.contentEl,this.windowFxScroll)}},setSlider:function(a){if(a=="top"){this.slider.set(0)}else{if(a=="bottom"){this.slider.set("100%")}else{this.slider.set(a)}}}});var SmoothMooScroll=new Class({Extends:Fx.Scroll,initialize:function(b,c,d){this.setOptions(b);this.windowFxScroll=d;this.context=c;c=c||document;this.context=c;var f=c.getDocument(),e=c.getWindow();this.parent(c,b);this.links=(this.options.links)?$$(this.options.links):$$(f.links);var a=e.location.href.match(/^[^#]*/)[0]+"#";this.links.each(function(h){if(h.href.indexOf(a)!=0){return}var g=h.href.substr(a.length);if(g&&$(g)&&$(g).getParents().contains($(this.context))){this.useLink(h,g,true)}else{if(g&&$(g)&&!this.inMooScrollArea($(g))){this.useLink(h,g,false)}}},this);if(!Browser.Engine.webkit419){this.addEvent("complete",function(){e.location.hash=this.anchor},true)}},inMooScrollArea:function(a){return a.getParents().filter(function(c,b){return c.match("[rel=MooScrollArea]")}).length>0},putAnchorInAddressBar:function(a){window.location.href="#"+a},useLink:function(b,a,c){b.removeEvents("click");b.addEvent("click",function(d){if(!a||!$(a)){return}this.anchor=a;if(c){if(this.options.toMooScrollArea&&this.options.toAnchor){this.windowFxScroll.toElement(this.context.getParent()).chain(function(f,e){this.toElement(a).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}.bind(this))}else{if(this.options.toMooScrollArea){this.windowFxScroll.toElement(this.context.getParent()).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}else{if(this.options.toAnchor){this.toElement(a).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}}}}else{this.windowFxScroll.toElement(a).chain(function(){this.putAnchorInAddressBar(a)}.bind(this))}d.stop()}.bind(this))}});
