
var Lib={};Lib.Core={setProperties:function(o){if($chk(o)){for(var option in o){this[option]=o[option];}}
this.initCustomEvents();return this;},invokeEvent:function(str,args){var method='invoke'+str.capitalize();if($chk(this[method])){this[method](args);}},initCustomEvents:function(events){var me=this,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){me.initCustomEvent(event);});return this;},initCustomEvent:function(e){var me=this,cap=e.capitalize();this['invoke'+cap]=function(args){if($chk(me['do'+cap])){me['do'+cap](args);}};this['do'+cap]=function(args){args=($chk(args))?args:null;me.fireEvent(e,args);};}};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];}}}};Lib.HtmlTemplates=new Hash({layer:'<div class="layer hidden T:25 R:0 B:20 L:0"><h3><span><span><span><span class="lib_title"></span><a class="layer_close close_primary" href="javascript:void(0)">Close</a></span></span></span></h3><div class="rule"></div><div class="lib_content"></div><div class="bl"><div class="br"><div class="bm"></div></div></div></div>',layerNoBottom:'<div class="layer hidden T:25 R:0 B:20 L:0 contentBGMarginBottom:20"><h3><span><span><span><span class="lib_title"></span><a class="layer_close close_primary" href="javascript:void(0)">Close</a></span></span></span></h3><div class="rule"></div><div class="lib_content"></div></div>',tooltip:'<div class="tip_holder tip_holder_left hidden T:15 R:19 B:15 L:19 Carat:37 Extra:11"><div class="tip_top"><div class="tip_tl"></div><div class="tip_tr"></div></div><div class="tip_left"><div class="tip_right"><div class="lib_content"></div></div></div><div class="tip_bottom"><div class="tip_bl"></div><div class="tip_br"></div></div><div class="tip_carat"></div></div>'});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);});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 len=this.style.length,s=(len===0)?null:{};for(var i=0;i<len;i++){s[this.style[i]]=this.style[this.style[i]];}
return s;},cacheStyles:function(s){this.store('cachedStyles',s);return this;},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={};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;}}});Lib.IFillable={loader:null,content:null,contentSize:{width:0,height:0},contentHolder:null,contentWrapper:null,padding:{top:0,right:0,bottom:0,left:0},initFillable:function(){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','position':'relative'}});this.contentWrapper.wraps(this.contentHolder);this._initLoader()._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;},_initLoader:function(){this.loader=new Lib.Loader(this.contentWrapper);return this;},showLoader:function(indicator){this.loader.show(indicator);return this;},hideLoader:function(){this.loader.hide();return this;},showLoaderIndicator:function(){this.loader.showIndicator();return this;},hideLoaderIndicator:function(){this.loader.hideIndicator();return this;},hideContent:function(){this.content.setStyle('visibility','hidden');return this;},showContent:function(){this.content.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);return this;},emptyContent:function(){this.contentHolder.empty();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($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{this.content=content.clone();}
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;},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={},clearDiv=null,elWidth=0,elHeight=0,cWidth=0,cHeight=0;original=this.el.applyTempStyles({'width':'','height':'','visibility':'hidden','display':''});holderOriginal=this.contentHolder.applyTempStyles({'float':'right','width':contentWidth,'height':contentHeight,'border':'1px solid black'});clearDiv=new Element('div',{styles:{'clear':'both','height':0,'line-height':0,'overflow':'hidden'}});this.el.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);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,startCoords:'windowCenter',endCoords:'elementCenter',initToggleable:function(){this.initCustomEvents(Lib.CustomEvents.ShowHide).initTransitions().initShim().initTogglers();return this;},initTogglers:function(){var me=this;this.toggler=new Lib.Toggler(this.el,{transition:this.transition});this.toggler.addEvents({beforeShow:function(){var coords={top:me.toggler.transitionShow.top[1],left:me.toggler.transitionShow.left[1],width:me.toggler.transitionShow.width[1],height:me.toggler.transitionShow.height[1]};me.showShim(coords);},afterShow:function(){me.visible=true;me.invokeEvent('afterShow');},afterHide:function(){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.transition=Lib.Fx.morph(this.el,150);this.loaderTransition=Lib.Fx.morph(this.loader,'long');return this;},show:function(args){this.toggler.show();return this;},hide:function(){this.toggler.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.updateShowTransition(show);this.updateHideTransition(hide);return this;},setStartCoords:function(coords){var me=this;coords=coords||this.startCoords;var c=$type(coords)==='string'?(function(){return me.coordsFromString(coords);})():coords;this.startCoords=c;return this;},setEndCoords:function(coords){var me=this;coords=coords||this.endCoords;var c=$type(coords)==='string'?(function(){return me.coordsFromString(coords);})():coords;this.endCoords=c;return this;},coordsFromString:function(which){var coords={};switch(which){case"elementCenter":coords=Lib.Measure.getCenterCoords(this.getSize().width,this.getSize().height);break;case"windowCenter":coords=Lib.Measure.getWindowCenter();break;default:coords={x:0,y:0};break;}
return coords;},isVisible:function(){return this.visible;},updateShowTransition:function(obj){this.toggler.transitionShow=obj;return this;},updateHideTransition:function(obj){this.toggler.transitionHide=obj;return this;}};Lib.IResizable={initResizable:function(){this.initCustomEvents(Lib.CustomEvents.Resize);},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;},resizeToCenter:function(width,height){var me=this,startSize=this.getSize(),startCoords=this.el.getCoordinates(),coords=Lib.Measure.getCenterCoords(width,height),animation=Lib.Fx.morph(this.el);this.invokeEvent('beforeResize',[width,height]);this.setSize(width,height);animation.start({width:[startSize.width,width],height:[startSize.height,height],left:[startCoords.left,coords.x],top:[startCoords.top,coords.y]}).chain(function(){me.invokeEvent('afterResize',[width,height]);});}};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){var me=this;extra=extraPadding||0;offsets=$merge(this.offsets,offsets);var positions=this.getPositions(offsets,targetSize.width,targetSize.height,fenceCoords,extra);return this.calculate(attemptedDir,positions,targetSize,extra);},calculate:function(attemptedDir,pos,targetSize,extra){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]);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){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;},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,stopCurrentEvent:$lambda,initialize:function(triggers,o){var me=this;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);}},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);}});});},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){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:'/content/commontemplates/includes/javasscript/blank.htm',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:'/content/commontemplates/includes/javascript/blank.htm',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;}}});Lib.Loader=new Class({Implements:[Lib.Core],transition:null,indicatorVisible:false,initialize:function(parent,o){this.setProperties(o);this.parent=parent;this.indicator=this.indicator||'../i/loader.gif';this.el=this.loader||new Element('div',{'class':'lib_loader',styles:{'width':'100%','height':'100%','background-color':'#fff','left':0,'top':0,'z-index':1000,'display':'none','position':'absolute','background-image':'url('+this.indicator+')','background-repeat':'no-repeat','background-position':'center center'}});this.mask=new Element('div',{'class':'lib_loader_mask',styles:{'background-color':'#fff','width':'100%','height':'100%','left':0,'top':0,'z-index':1001,'position':'absolute'}});this.parent.setStyle('position','relative');this.el.adopt(this.mask);this.parent.adopt(this.el);this.initTransitions().initToggler();},initTransitions:function(){this.transition=Lib.Fx.morph(this.el);this.maskTransition=Lib.Fx.morph(this.mask,null,{duration:1000});return this;},initToggler:function(){this.toggler=new Lib.Toggler(this.el,{transition:this.transition,transitionShow:{'opacity':[1,1]},transitionHide:{'opacity':[1,0]}});this.maskToggler=new Lib.Toggler(this.mask,{transition:this.maskTransition,transitionShow:{'opacity':[1,1]},transitionHide:{'opacity':[1,0]}});return this;},show:function(showIndicator){var si=showIndicator===true?true:false;this.toggler.show();if(si){this.showIndicator();}else{this.indicatorVisible=false;}
return this;},hide:function(){this.hideIndicator();this.toggler.hide();return this;},showIndicator:function(){this.maskToggler.hide();this.indicatorVisible=true;return this;},hideIndicator:function(){if(this.indicatorVisible){this.maskToggler.show();}
this.indicatorVisible=false;return this;},setSize:function(width,height){this.el.setStyles({width:width,height:height});}});Lib.Overlay=new Class({Implements:[Lib.Core,Chain,Events],CustomEvents:[Lib.CustomEvents.ShowHide,Lib.CustomEvents.Click],opacity:0.75,color:'#000',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(){var me=this;this.el=new Element('DIV',{'class':'lib_overlay',styles:{position:'absolute',top:0,left:0,'background-color':me.color,cursor:'pointer',opacity:me.opacity,'filter':"alpha(opacity="+(me.opacity*100)+")",'z-index':1000,display:'none',width:'100%',height:'100%',overflow:'hidden'}});Lib.Utils.body.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':[0,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 height=Lib.Utils.body.getScrollSize().y,width=Lib.Utils.body.getScrollSize().x;if(Browser.Engine.trident4){width=width-2;}else if(Browser.Engine.webkit){if(height>Lib.Utils.body.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;return this;}}
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(){me.switchTabs(t,index);});});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(){this.activeTab.removeClass('active');this.activeTab=null;},setActiveContent:function(content){this.activeContent=content;this.activeContent.show();},removeActiveContent:function(){this.activeContent.hide();this.activeContent=null;},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:true,useOverlay:true,_visible:false,_currentlyShowing:false,_currentlyHiding:false,initialize:function(o){this.setProperties(o)._initOverlay()._initEvents();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;me.overlay.addEvent('click',me._delegateOverlayClick);me.hideLoader();me.fireEvent('afterShow');}};this.doAfterHide=function(){if(me._isFinishedHiding()){me._currentlyHiding=false;me._visible=false;if(me.hideScroll){Lib.Utils.restoreScroll();}
me.hideLoader();me.chrome.reset();me.fireEvent('afterHide');}};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._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.removeEvent('click',this._delegateOverlayClick);this.invokeEvent('beforeHide');this.chrome.contentHolder.setStyle('overflow','hidden');this.showLoader(false);if(hideOverlay!==false&&$chk(this.overlay)){this.overlay.hide();}
this.chrome.hide();}
return this;},showLoader:function(indicator){if(this.useLoader){this.chrome.showLoader(indicator);}
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.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 me=this;this.doAfterShow=function(){if(me._isFinishedShowing()){me.visible=true;me.chrome.showLoaderIndicator();me.overlay.addEvent('click',me._delegateOverlayClick);me.fireEvent('afterShow');me._currentlyShowing=false;}};var chromeAfterPreprocess=function(){setTimeout(function(){me.chrome.fill();},500);me.chrome.removeEvent('afterShow',chromeAfterPreprocess);};if($chk(args.isXHR)&&args.isXHR===true){chromeAfterPreprocess=function(title,content){me.chrome.fillTitle(title);me.iframe=Lib.IFrameManager.create({path:content,load:function(doc,win){me.iframeLoad(this,doc,win);}});setTimeout(function(){me.chrome.fillContent(me.iframe);},500);me.chrome.removeEvent('afterShow',chromeAfterPreprocess);};this.resume=chromeAfterPreprocess;}else{this.iframe=Lib.IFrameManager.create({path:args.content,load:function(doc,win){me.iframeLoad(this,doc,win);}});this.chrome.setContent(this.iframe);}
this.chrome.addEvent('afterShow',chromeAfterPreprocess);this.showLoader();args.contentSize={width:400,height:300};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){var me=this,holder=null,thebody=null,back=null,isMooDoc=false;this.invokeEvent('afterContentLoad');(function(){me.chrome.hideLoaderIndicator();}).delay(900);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.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);me.chrome.hideContent();(function(){me.chrome.resizeContentHolder(x,y);var correctedSize=Lib.Measure.correctDimensions(cSize.width,cSize.height,me.chrome.endCoords,me.chrome.margin);if(correctedSize.correction){correctedSize.width=correctedSize.width+16;me.chrome.contentWrapper.setStyles({'overflow-y':'auto','width':x+16});me.chrome.contentHolder.setStyles({'margin-right':16});}
me.chrome.resizeToCenter(correctedSize.width,correctedSize.height);setTimeout(function(){frame.setStyles({width:x,height:y});me.chrome.showContent();},800);}).delay(1000);}else{var defaultWidth=600,defaultHeight=400;(function(){var cSize=me.chrome.getSizeWithContentCoords(defaultWidth,defaultHeight);me.chrome.resizeContentHolder(defaultWidth,defaultHeight);me.chrome.resizeToCenter(cSize.width,cSize.height);me.chrome.resizeContentToElement();me.chrome.contentHolder.setStyle('overflow','auto');frame.setStyles({width:defaultWidth,height:defaultHeight});}).delay(1000);}}});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:[],layerHtml:null,layerImage:null,layerIFrame:null,layerSWF:null,init:function(){var chrome=new Lib.LayerChrome(Lib.HtmlTemplates.layer);var chromeNoBottom=new Lib.LayerChrome(Lib.HtmlTemplates.layerNoBottom);this.layerHtml=Lib.LayerFactory.create('html',{chrome:chrome});this.layerImage=Lib.LayerFactory.create('image',{chrome:chrome});this.layerIFrame=Lib.LayerFactory.create('iframe',{chrome:chrome});this.layerSWF=Lib.LayerFactory.create('swf',{chrome:chrome});this.layerHtmlNoBottom=Lib.LayerFactory.create('html',{chrome:chromeNoBottom});this.layers=[this.layerHtml,this.layerImage,this.layerIFrame,this.layerSWF,this.layerHtmlNoBottom];},show:function(type,args){switch(type){case"html":return this.layerHtml.show(args);break;case"image":return this.layerImage.show(args);break;case"iframe":return this.layerIFrame.show(args);break;case"swf":return this.layerSWF.show(args);break;case"noBottom":return this.layerHtmlNoBottom.show(args);break;default:return this.layerHtml.show(args);break;}},hide:function(type,args){switch(type){case"html":return this.layerHtml.hide(args);break;case"image":return this.layerImage.hide(args);break;case"iframe":return this.layerIFrame.hide(args);break;case"swf":return this.layerSWF.hide(args);break;case"noBottom":return this.layerHtmlNoBottom.hide(args);break;default:return this.layerHtml.hide(args);break;}},camelizeType:function(type){switch(type){case"html":return"layerHtml";break;case"image":return"layerImage";break;case"iframe":return"layerIFrame";break;case"swf":return"layerSWF";break;case"noBottom":return"layerHtmlNoBottom";break;default:break;}},addEvent:function(e,fn,type){var me=this;window.addEvent('domready',function(){if($chk(type)){me[me.camelizeType(type)].addEvent(e,fn);}else{me.layers.each(function(l){l.addEvent(e,fn);});}});},removeEvent:function(e,type,fn){if($chk(type)){this[me.camelizeType(type)].removeEvent(e,fn);}else{this.layers.each(function(l){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){var me=this;args.contentSize=$merge({width:null,height:null},args.contentSize);var doShow=function(){$clear(me.hideTimeout);$clear(me.showTimeout);me.showTimeout=function(){me.curBase=args.base;me.invokeEvent('beforeShow',args.base);me.chrome.fillContent(args.content).refresh(args);var pos=me.findEndPosition(args.base,args.direction,me.chrome.getSize());args.endCoords={x:pos.left,y:pos.top};me.chrome.changeDirection(Lib.Utils.dirComplements[pos.dir]);me.chrome.refresh(args);me.chrome.show();}.delay(700);};this.hide();doShow();},hide:function(){var me=this;$clear(this.hideTimeout);$clear(this.showTimeout);this.hideTimeout=function(){me.invokeEvent('beforeHide');me.chrome.hide();}.delay(150);},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:[],init:function(){this.tooltip=new Lib.Tooltip({chrome:new Lib.TooltipChrome(Lib.HtmlTemplates.tooltip)});},show:function(type,args){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);},addEventToQueue:function(e){}};Lib.Slideshow=new Class({Implements:[Lib.Core,Chain,Events],_currentIndex:0,_speed:2000,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(){this._items=this.chrome.el.getElement('.lib_slideshow_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'],correctDimensions:true,margin:50,initialize:function(el){this.parent(el);this.initCustomEvents().initCloseEvent().initFillable().initToggleable().initResizable();},initCloseEvent:function(el){var me=this;this.el.getElements('.layer_close').addEvent('click',function(){me.invokeEvent('closeClick');});return this;},refresh:function(args){Lib.Chrome.RefreshStrategy.fillableToggleable.apply(this,['layer',args]);},reset:function(){this.contentWrapper.setStyles({overflow:'hidden',position:'relative',height:'',width:''});this.contentHolder.setStyles({overflow:'',width:'',height:''});this.el.setStyles({width:'',height:''});}});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();},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_holder_"+dir;var re=new RegExp(old);if(re.test(klass)){me.el.removeClass(old);}});this.el.addClass('tip_holder_'+dir);return this;},refresh:function(args){Lib.Chrome.RefreshStrategy.fillableToggleable.apply(this,['tooltip',args]);return this;},fixWidth:function(w){if(Browser.Engine.trident4&&!w.isEven()){return w+1;}
return w;}});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={},measurements={},correctedSize={};measurements=this.measure(args.contentSize.width,args.contentSize.height);this.setSize(measurements.element.width,measurements.element.height);if(type==='tooltip'){measurements.element.width=this.fixWidth(measurements.element.width);}
this.resizeContentHolder(measurements.content.width,measurements.content.height);this.loader.setSize(measurements.content.width,measurements.content.height);this.setStartCoords(args.startCoords);this.setEndCoords(args.endCoords);if(type=='layer'){correctedSize=Lib.Measure.correctDimensions(measurements.element.width,measurements.element.height,this.endCoords,this.margin);if(correctedSize.correction){correctedSize.width=correctedSize.width+16;this.resizeContentHolder(measurements.content.width,measurements.content.height);var newH=(measurements.content.height-(measurements.element.height-correctedSize.height));this.contentWrapper.setStyles({height:newH,width:measurements.content.width+16,'overflow-y':'auto'});this.contentHolder.setStyles({'margin-right':16});}}else{correctedSize.width=measurements.element.width;correctedSize.height=measurements.element.height;correctedSize.x=this.endCoords.x;correctedSize.y=this.endCoords.y;}
show={'width':[correctedSize.width,correctedSize.width],'height':[correctedSize.height,correctedSize.height],'left':[correctedSize.x,correctedSize.x],'top':[correctedSize.y,correctedSize.y],'opacity':[1,1]};hide={'width':[1,1],'height':[1,1],'left':-999,'opacity':[0,0]};this.updateTransitions(show,hide);return this;}};Lib.Bootstrapper={init:function(){window.addEvent('domready',function(){Lib.Bootstrapper.Overlay.init();Lib.Bootstrapper.HtmlTemplates.init();Lib.Bootstrapper.BackgroundCache.init();Lib.LayerManager.init();Lib.TooltipManager.init();Lib.Bootstrapper.Tooltips.init();Lib.Bootstrapper.Layers.init();Lib.Bootstrapper.Tabs.init();Lib.Bootstrapper.Slideshow.init();});},parseParams:function(str){},Tooltips:{init:function(){var me=this,tooltips=$$('.tip'),tip_triggers=$$('.tooltip');var tt_chrome_trigger=new Lib.Trigger([Lib.HtmlTemplates.tooltip],{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);(function(){Lib.TooltipManager.show('html',info);}).delay(40);}};tip_triggers.each(function(tt,index){var friends=[tt,Lib.HtmlTemplates.tooltip],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};}},Layers:{init:function(){var me=this,layer_triggers=new Lib.Trigger($$('.launcher'),{click:function(){var stuff=me.parse(this);Lib.LayerManager.show(stuff.type,{content:stuff.content,title:stuff.title,startCoords:'windowCenter',endCoords:'elementCenter',contentSize:{width:stuff.contentWidth,height:stuff.contentHeight},base:stuff.base});}});},parse:function(trigger){var type='html',href=trigger.get('href'),rel=trigger.get('rel'),titleProp=trigger.get('title'),content=null,contentWidth=null,contentHeight='auto',title='';if(href){if(href.match('#')){var el=$(href.replace('#',''));content=el.getFirst().clone();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().clone();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(trigger.get('class').match('chrome')){var re=/chrome:(.[^\s]+)/;type=re.exec(trigger.get('class'))[1];}
if(titleProp){title=titleProp;}
return{title:title,content:content,contentWidth:contentWidth,contentHeight:contentHeight,type:type,base:trigger};}},Tabs:{init:function(){if($('togglers')){var tab_tabs=new Lib.Tabs({tabs:$('togglers').getElements('a'),contents:$$('.toggled')});}
if($('togglers_local')){var local_tabs=new Lib.Tabs({tabs:$('togglers_local').getElements('a'),contents:$$('.toggled_local')});}
var tabs=$$('.lib_tabs');if(tabs){tabs.each(function(t){var p=Lib.Bootstrapper.Tabs.parse(t);var tab_tabs=new Lib.Tabs({tabs:t.getElements('a'),contents:$$('.'+p)});});}},parse:function(tab){var re=/tabset:(.[^\s]+)/;return re.exec(tab.get('class'))[1];}},Slideshow:{init:function(slideshow){var ss=($chk(slideshow))?[slideshow]:$$('.lib_ss'),objs=[];if(ss){ss.each(function(el){var chrome=new Lib.SlideshowChrome(el);var slideshow=new Lib.Slideshow({chrome:chrome});objs.push(slideshow);});}
return objs.length===1?objs[0]:objs;}},HtmlTemplates:{init:function(){Lib.HtmlTemplates.each(function(val,key,hash){var dom=val.makeDom(),pl_wrapper=new Element('div',{'class':'pl'});hash[key]=dom.getFirst();Lib.Utils.body.adopt(pl_wrapper);pl_wrapper.adopt(hash[key]);dom.destroy();});}},Overlay:{init:function(){Lib.Utils.overlay=new Lib.Overlay({fade:true});}},BackgroundCache:{init:function(){if(Browser.Engine.trident4){try{document.execCommand("BackgroundImageCache",false,true);}catch(err){}}}}};Lib.Bootstrapper.init();