var Y={anim:YAHOO.util.Anim,cookie:YAHOO.util.Cookie,customEvent:YAHOO.util.CustomEvent,dom:YAHOO.util.Dom,getByClass:YAHOO.util.Dom.getElementsByClassName,easing:YAHOO.util.Easing,effect:YAHOO.widget.ContainerEffect,event:YAHOO.util.Event,json:YAHOO.lang.JSON,lang:YAHOO.lang,region:YAHOO.util.Region,point:YAHOO.util.Point,ua:YAHOO.env.ua,widget:YAHOO.widget},overlay,videoOverlay,lookInsideOverlay,tabbedOverlays=[],videoOverlays=[],SpecialChars=makeHash("backspace",8,"tab",9,"enter",13,"shift",16,"ctrl",17,"alt",18,"pauseBreak",19,"caps",20,"esc",27,"pageUp",33,"pageDown",34,"end",35,"home",36,"leftArrow",37,"upArrow",38,"rightarrow",39,"downArrow",40,"insert",45,"del",46),SessionCache={},ClassToggle,ShowHide,ShowHideSet,Pages,OverlayMgr,TabDisplay,TabbedOverlay,VideoOverlay,Filter,FilteredElements,Carousel,InfoBubble,SelectNav,AddToCartForm,MultipleAddToCart,ProductGallery,teamPages;Y.event.on(window,"load",function(){var d=[{id:"vidProdAPK",url:"http://content.screencast.com/users/GroveConsultants/folders/Default/media/db2e0249-5620-45fe-99ca-f0be77f09ceb/flvplayer.swf",width:"481",height:"284",flashvars:"thumb=http://content.screencast.com/users/GroveConsultants/folders/Default/media/db2e0249-5620-45fe-99ca-f0be77f09ceb/FirstFrame.jpg&containerwidth=640&containerheight=498&content= http://content.screencast.com/users/GroveConsultants/folders/Default/media/db2e0249-5620-45fe-99ca-f0be77f09ceb/APKAudioGraphicPresentation_web.mp4",base:"http://content.screencast.com/users/GroveConsultants/folders/Default/media/db2e0249-5620-45fe-99ca-f0be77f09ceb/"},{id:"vidProdCompass",url:"http://content.screencast.com/users/GroveConsultants/folders/Default/media/a4ee7d9f-e0e0-434d-8ea9-ce8f9f1e7d97/flvplayer.swf",width:"481",height:"284",flashvars:"thumb= http://content.screencast.com/users/GroveConsultants/folders/Default/media/a4ee7d9f-e0e0-434d-8ea9-ce8f9f1e7d97/FirstFrame.jpg&containerwidth=640&containerheight=378&content=http://content.screencast.com/users/GroveConsultants/folders/Default/media/a4ee7d9f-e0e0-434d-8ea9-ce8f9f1e7d97/Final%20Prod%20HD_YouTube.mp4 ",base:"http://content.screencast.com/users/GroveConsultants/folders/Default/media/a4ee7d9f-e0e0-434d-8ea9-ce8f9f1e7d97/"},{id:"vidProdIntro",url:"http://www.youtube.com/v/HDxGoAQtMHs&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdIntro"},{id:"vidProdMtgStartup",url:"http://www.youtube.com/v/_ROWTBm_4pM&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdMtgStartup"},{id:"vidProdHistory",url:"http://www.youtube.com/v/DKno6lyJH-0&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdHistory"},{id:"vidProdContextMap",url:"http://www.youtube.com/v/2MF5x5X84WM&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdContextMap"},{id:"vidProdSPOTMatrix",url:"http://www.youtube.com/v/X6oLgiw1exA&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdSPOTMatrix"},{id:"vidProdCoverStory",url:"http://www.youtube.com/v/BKyk6ELxxzM&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdCoverStory"},{id:"vidProd5BoldSteps",url:"http://www.youtube.com/v/twVTGc-v1E8&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProd5BoldSteps"},{id:"vidProdGamePlan",url:"http://www.youtube.com/v/i3XtlniRvmY&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidProdGamePlan"},{id:"vidStoryTED2008",url:"http://www.youtube.com/v/MUTTCpzsZpo&hl=en&fs=1&autoplay=1&showsearch=0&enablejsapi=1&playerapiid=viewVidStoryTED2008"}],e={flashvars:"1=1",play:"true",loop:"true",menu:"true",quality:"high",scale:"showall",salign:"",wmode:"window",bgcolor:"#ffffff",devicefont:"false",allowscriptaccess:"always",allowfullscreen:"false"},l={id:"nav",name:"nav",align:"middle"},m=[],c,h,k,o,g,f,j,b,n="",a;if(Y.dom.get("homepage")){a=Y.cookie.get("homeFlag");e.flashvars=(a!=null&&a=="true")?"disableAnim=true":"disableAnim=false";createCookie("homeFlag","true",1);e.flashvars="1=1"}if((/netsuite/i).test(document.domain)||(/fusionbot/i).test(document.domain)){e.flashvars="navXml=http://www.grove.com/site/navigation.xml";n="http://www.grove.com/site/"}if(typeof(pageId)!="undefined"){e.flashvars+="&pageID="+pageId+"&disableOpenAnim=1"}swfobject.embedSWF(n+"flash/nav.swf","noFlashNav","200","480","9.0.0",n+"flash/expressInstall.swf",false,e,l);Y.dom.batch(Y.getByClass("_newwin","a"),function(i){Y.event.on(i,"click",function(p){window.open(this.href,"grovewin");Y.event.preventDefault(p)})});Y.dom.batch(Y.getByClass("calloutLink","span"),function(i){Y.event.on(i,"mouseover",function(p){Y.dom.setStyle(this,"backgroundColor","#f7f7f4")});Y.event.on(i,"mouseout",function(p){Y.dom.setStyle(this,"backgroundColor","transparent")});Y.event.on(i,"click",function(q){var p=this.getElementsByTagName("a");if(p.length>0){window.location=p[0].href}})});Y.dom.batch(Y.getByClass("affiliateLink","span"),function(i){Y.event.on(i,"mouseover",function(p){Y.dom.setStyle(this,"backgroundColor","#f7f7f4")});Y.event.on(i,"mouseout",function(p){Y.dom.setStyle(this,"backgroundColor","transparent")});Y.event.on(i,"click",function(q){var p=this.getElementsByTagName("a");if(p.length>0){window.location=p[0].href}})});Y.dom.batch(Y.getByClass("staffLink","a"),function(i){m[m.length]=new ShowHide(i,Y.getByClass(i.id))});new ShowHideSet(m);teamPages=new Pages(Y.getByClass("page","div"),Y.getByClass("pageLink","span"));Y.dom.batch(Y.getByClass("showHide"),function(i){new ShowHide(i,Y.getByClass(i.id))});c=Y.dom.get("faqFilter");if(c){Y.dom.batch(c.getElementsByTagName("dl"),function(q){if(q.className!=""){var p=[],i;Y.dom.batch(Y.dom.getChildren(q),function(r){switch(r.tagName.toLowerCase()){case"dt":i=r.getElementsByTagName("a")[0];break;case"dd":p[p.length]=new ShowHide(i,[r]);break}});new ShowHideSet(p)}})}Y.dom.batch(Y.getByClass("printLink","a"),function(i){Y.event.on(i,"click",function(p){window.print();Y.event.preventDefault(p)})});Y.dom.batch(Y.getByClass("autotab","input"),function(i){Y.event.on(i,"keyup",function(q){if(isSpecialChar(Y.event.getCharCode(q))){return}if(this.value.length>=this.maxLength){for(var p=0;p<this.form.length;p++){if(this.form[p]==this){this.form[++p%this.form.length].focus();break}}}Y.event.stopEvent(q)})});Y.dom.batch(Y.getByClass("serviceHead","a"),function(i){new ClassToggle(i,Y.getByClass(i.id),"open","open")});Y.dom.batch(Y.getByClass("carousel","div"),function(i){if(i.id!="storeCarousel"){new Carousel(i)}});if(Y.dom.get("storeCategories")&&Y.dom.get("storeCarousel")){new ProductsByCategoryMgr("storeCategories","storeCarousel")}Y.dom.batch(d,function(r){if(Y.dom.get(r.id)){var q=r.width||481,i=r.height||389,s={allowscriptaccess:"always",allowfullscreen:"false"},p={name:r.id};if(r.base){s.base=r.base}if(r.flashvars){s.flashvars=r.flashvars}s.base=r.base;s.flashvars=r.flashvars;swfobject.embedSWF(r.url,r.id,q,i,"9.0.0","flash/expressInstall.swf",false,s,p)}});if(Y.dom.get("overlay")){overlay=new OverlayMgr("overlay")}if(Y.dom.get("videoOverlay")){videoOverlay=new OverlayMgr("videoOverlay")}if(Y.dom.get("lookInsideOverlay")){lookInsideOverlay=new OverlayMgr("lookInsideOverlay");new Gallery("lookInsideOverlay")}Y.dom.batch(Y.getByClass("tabbedOverlayTrigger","a"),function(p){var i=p.getAttribute("rel").split("-")[0];if(typeof(tabbedOverlays[i])=="undefined"){tabbedOverlays[i]=new TabbedOverlay(overlay,i)}Y.event.on(p,"click",function(r){var q=this.getAttribute("rel").split("-");tabbedOverlays[q[0]].show(q[1]);Y.event.stopEvent(r)})});Y.dom.batch(Y.getByClass("videoOverlayTrigger","a"),function(p){var i=p.getAttribute("rel");if(typeof(videoOverlays[i])=="undefined"){videoOverlays[i]=new VideoOverlay(videoOverlay,i)}Y.event.on(p,"click",function(q){videoOverlays[this.getAttribute("rel")].show();Y.event.stopEvent(q)})});Y.dom.batch(Y.getByClass("lookInsideOverlayTrigger","a"),function(i){Y.event.on(i,"click",function(p){lookInsideOverlay.show(this.getAttribute("rel"));Y.event.stopEvent(p)})});Y.dom.batch(Y.getByClass("overlayTrigger","a"),function(i){Y.event.on(i,"click",function(p){overlay.show(this.getAttribute("rel"));Y.event.stopEvent(p)})});Y.dom.batch(Y.getByClass("featureBox","div"),function(i){Y.event.on(i,"mouseover",function(p){Y.dom.addClass(this,"featureBoxHover")});Y.event.on(i,"mouseout",function(p){Y.dom.removeClass(this,"featureBoxHover")})});Y.dom.batch(Y.getByClass("modCatItem","div","modStoreSubCat"),function(i){Y.event.on(i,"mouseover",function(p){Y.dom.addClass(this,"modCatItemHover")});Y.event.on(i,"mouseout",function(p){Y.dom.removeClass(this,"modCatItemHover")})});Y.dom.batch(Y.getByClass("filtered"),function(i){if(i.id!="productCatFilter"){new FilteredElements(i,Y.getByClass(i.id)[0])}});Y.dom.batch(Y.getByClass("fadeFiltered"),function(i){new FadedFilteredElements(i,Y.getByClass(i.id)[0])});Y.dom.batch(Y.getByClass("infoBubble","a"),function(p){var i=Y.dom.get(p.getAttribute("rel"));new InfoBubble(p,i,i.getAttribute("alt"))});h=Y.getByClass("workshop","table");if(h){j=[];k=Y.getByClass("expand","tr");o=Y.getByClass("detail","tr");for(g=0;g<k.length;g++){f=k[g];Y.event.on(f,"mouseover",function(i){Y.dom.batch(this.getElementsByTagName("td"),function(p){Y.dom.addClass(p,"expandHover")})},f,true);Y.event.on(f,"mouseout",function(i){Y.dom.batch(this.getElementsByTagName("td"),function(p){Y.dom.removeClass(p,"expandHover")})},f,true);j[j.length]=new ShowHide(f,[o[g]])}new ShowHideSet(j)}b=Y.dom.get("workshopNav");if(b){new SelectNav(b.getElementsByTagName("select")[0])}new AddToCartForm("addToCart");new AddToCartForm("download");Y.dom.batch(Y.getByClass("gallery","div"),function(i){new Gallery(i)});Y.dom.batch(Y.getByClass("prodGallery","div"),function(i){new ProductGallery(i)})});function createCookie(c,d,a){var b=new Date();b.setTime(b.getTime()+(a*60*60*1000));Y.cookie.set(c,d,{expires:b.toGMTString(),path:"/"})}function getElementWidth(a){var b=Y.dom.getRegion(a);return(b.right-b.left)}function getElementHeight(a){var b=Y.dom.getRegion(a);return(b.bottom-b.top)}function makeHash(){var b=[],a;for(a=0;a<arguments.length;a+=2){if(typeof(arguments[a+1])!="undefined"){b[arguments[a]]=arguments[a+1]}}return b}function isSpecialChar(a){for(var b in SpecialChars){if(a==SpecialChars[b]){return true}}return false}function getDefaultDisplayType(b){var a=Y.dom.get(b);switch(a.tagName.toLowerCase()){case"table":return"";case"tr":return"";case"td":case"th":return"";case"li":return"list-item";case"input":case"select":return"";case"div":case"p":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"form":case"ol":case"ul":case"hr":case"blockquote":case"dd":case"dl":case"dt":case"fieldset":case"center":case"dir":case"menu":case"pre":case"html":case"body":case"address":case"frame":case"frameset":case"noframes":return"block";case"thead":return"table-header-group";case"tbody":return"";case"tfoot":return"table-footer-group";case"col":return"";case"colgroup":return"";case"caption":return"";default:return"block"}}SessionCache.SESSION_TTL=2;SessionCache.get=function(b){var a=Y.cookie.get(b);return(a==null)?{}:Y.json.parse(a)};SessionCache.set=function(c,b){var a=Y.json.stringify(b);createCookie(c,a,SessionCache.SESSION_TTL)};ClassToggle=function(a,c,d,e){this.controlOnClass=d;this.onClass=e;this.control=Y.dom.get(a);if(!this.control){return}this.subjects=[];for(var b=0;b<c.length;b++){this.subjects[b]=Y.dom.get(c[b])}Y.event.on(this.control,"click",this.click,this,true)};ClassToggle.prototype={click:function(a){this.toggleClass();Y.event.stopEvent(a)},isOn:function(){return Y.dom.hasClass(this.control,this.controlOnClass)},turnOn:function(){if(!this.isOn()){this.toggleClass()}},turnOff:function(){if(this.isOn()){this.toggleClass()}},toggleClass:function(){var c=this.isOn(),b,a;if(c){Y.dom.removeClass(this.control,this.controlOnClass)}else{Y.dom.addClass(this.control,this.controlOnClass)}for(b=0;b<this.subjects.length;b++){a=this.subjects[b];if(a){if(c){Y.dom.removeClass(a,this.onClass)}else{Y.dom.addClass(a,this.onClass)}}}}};ShowHide=function(a,c){this.HIDDEN_CLASS="closed";this.CACHE_NAME="showHide";this.control=Y.dom.get(a);if(!this.control){return}this.subjects=[];this.displayType=[];for(var b=0;b<c.length;b++){this.subjects[b]=Y.dom.get(c[b]);if(this.subjects[b]){this.displayType[b]=getDefaultDisplayType(this.subjects[b])}}Y.event.on(this.control,"click",this.click,this,true);this.onshow=new Y.customEvent("show",this);this.onhide=new Y.customEvent("hide",this)};ShowHide.prototype={click:function(a){this.toggleDisplay();Y.event.stopEvent(a)},isHidden:function(){return Y.dom.hasClass(this.control,this.HIDDEN_CLASS)},hide:function(){if(!this.isHidden()){this.toggleDisplay()}},show:function(){if(this.isHidden()){this.toggleDisplay()}},toggleDisplay:function(){var d=this.isHidden(),c={},b,a;if(d){Y.dom.removeClass(this.control,this.HIDDEN_CLASS);this.onshow.fire()}else{Y.dom.addClass(this.control,this.HIDDEN_CLASS);this.onhide.fire()}for(b=0;b<this.subjects.length;b++){a=this.subjects[b];if(a){if(d){Y.dom.setStyle(a,"display",this.displayType[b]);c[a.id]=1}else{Y.dom.setStyle(a,"display","none");c[a.id]=0}}}this.saveShowHideState(c)},saveShowHideState:function(c){var b=SessionCache.get(this.CACHE_NAME),a;for(a in c){b[a]=c[a]}SessionCache.set(this.CACHE_NAME,b)}};ShowHideSet=function(b){this.showHides=b;var a,c;for(a=0;a<this.showHides.length;a++){c=this.showHides[a];c.onshow.subscribe(this.onShow,c,this)}};ShowHideSet.prototype={onShow:function(b,a,c){if(this.currShowHide&&this.currShowHide!=c){this.currShowHide.hide()}this.currShowHide=c}};Pages=function(f,c){this.CLOSE_CLASS="closeLink";var b,d,e,a;this.pages={};for(b=0;b<f.length;b++){d=Y.dom.get(f[b]);if(d){this.pages[d.id]=d;Y.dom.batch(Y.getByClass(this.CLOSE_CLASS,"a",d),function(g){Y.event.on(g,"click",this.clickCloseHandler,d,this)},this,true)}}this.controls=[];for(b=0;b<c.length;b++){e=Y.dom.get(c[b]);if(e){this.controls[this.controls.length]=e;a=e.getAttribute("rel");if(typeof(this.pages[a])!="undefined"){Y.event.on(e,"click",this.clickControlHandler,this.pages[a],this)}}}};Pages.prototype={clickCloseHandler:function(b,a){this.closePage(a);Y.event.stopEvent(b)},clickControlHandler:function(b,a){this.openPage(a);Y.event.stopEvent(b)},closePage:function(a){Y.dom.setStyle(a,"display","none")},openPage:function(a){if(this.currPage){this.closePage(this.currPage)}Y.dom.setStyle(a,"display","block");this.currPage=a}};OverlayMgr=function(a){this.CLOSE_CLASS="overlayClose";this.cont=Y.dom.get(a);this.overlay=new Y.widget.Panel(this.cont,{fixedcenter:false,modal:true,visible:false,close:false,underlay:"none",effect:{effect:Y.effect.FADE,duration:0.5}});this.overlay.hideEvent.subscribe(this.hideCompleteHandler,this,true);this.overlay.render(document.body);this.btnsClose=Y.getByClass(this.CLOSE_CLASS,"a",this.cont);Y.dom.batch(this.btnsClose,function(b){Y.event.on(b,"click",this.clickCloseHandler,this,true)},this,true);Y.event.on(document,"keypress",this.keypressHandler,this,true);this.overlay.buildMask();Y.event.on(this.overlay.mask,"click",this.clickMaskHandler,this,true);this.onshow=new Y.customEvent("show",this);this.onhide=new Y.customEvent("hide",this);this.activeCont=null;this.shown=false};OverlayMgr.prototype={keypressHandler:function(a){if(Y.event.getCharCode(a)==SpecialChars.esc){this.hide()}},clickCloseHandler:function(a){this.hide();Y.event.stopEvent(a)},clickMaskHandler:function(a){this.hide();Y.event.stopEvent(a)},load:function(a){this.clear();a=Y.dom.get(a);Y.dom.setStyle(a,"display","block");this.activeCont=a},clear:function(){if(this.activeCont){Y.dom.setStyle(this.activeCont,"display","none");this.activeCont=false}},show:function(b){this.load(b);var c=Y.dom.getDocumentScrollTop(),e=Y.dom.getDocumentScrollLeft(),a=c+(Y.dom.getViewportHeight()-getElementHeight(this.cont))/2,d=e+(Y.dom.getViewportWidth()-getElementWidth(this.cont))/2;a=(a<c)?c:a;d=(d<e)?e:d;this.overlay.cfg.setProperty("y",a);this.overlay.cfg.setProperty("x",d);this.overlay.show();this.shown=true;this.onshow.fire()},hide:function(){if(Y.ua.gecko&&Y.ua.gecko<1.9&&(/Macintosh/).test(navigator.userAgent)){this.clear()}this.overlay.hide();this.shown=false;this.onhide.fire()},hideCompleteHandler:function(){this.overlay.cfg.setProperty("y",0);this.overlay.cfg.setProperty("x",0)}};TabDisplay=function(a,b){this.SEL_TAB_CLASS="sel";this.TAB_CLASS="tab";this.activeIndex=null;this.tabs=[];this.displays=[];Y.dom.batch(Y.getByClass(this.TAB_CLASS,"a",a),function(d){var c=d.getAttribute("rel");this.tabs[c]=d;this.displays[c]=Y.getByClass(c,"*",b);if(Y.dom.hasClass(d,this.SEL_TAB_CLASS)){this.activeIndex=c}Y.event.on(d,"click",this.clickTabHandler,c,this)},this,true)};TabDisplay.prototype={clickTabHandler:function(b,a){this.displayTab(a);Y.event.stopEvent(b)},displayTab:function(a){if(this.activeIndex){Y.dom.removeClass(this.tabs[this.activeIndex],this.SEL_TAB_CLASS);Y.dom.batch(this.displays[this.activeIndex],function(b){Y.dom.setStyle(b,"display","none")})}Y.dom.addClass(this.tabs[a],this.SEL_TAB_CLASS);Y.dom.batch(this.displays[a],function(b){Y.dom.setStyle(b,"display","block")});this.activeIndex=a}};TabbedOverlay=function(a,b){this.overlayMgr=a;this.tabContent=Y.dom.get(b);this.tabDisplay=new TabDisplay(b,b)};TabbedOverlay.prototype={show:function(a){this.tabDisplay.displayTab(a);this.overlayMgr.show(this.tabContent)},hide:function(){this.overlayMgr.hide()}};VideoOverlay=function(a,b){this.overlayMgr=a;this.videoContent=Y.dom.get(b);this.video=this.videoContent.getElementsByTagName("object")[0]||this.videoContent.getElementsByTagName("embed")[0];this.overlayMgr.onhide.subscribe(this.overlayHiddenHandler,this,true);this.shown=false};VideoOverlay.prototype={playerReadyHandler:function(){if(!this.shown){this.pauseVideo()}},overlayHiddenHandler:function(a){if(this.shown){this.pauseVideo();this.shown=false}},show:function(){this.shown=true;this.overlayMgr.show(this.videoContent);this.playVideo()},hide:function(){this.pauseVideo();this.overlayMgr.hide();this.shown=false},pauseVideo:function(){if(this.video.getPlayerState&&typeof(this.video.getPlayerState())!="undefined"&&this.video.getPlayerState()!=2){this.video.pauseVideo()}Y.dom.setStyle(this.video,"visibility","hidden")},playVideo:function(){Y.dom.setStyle(this.video,"visibility","visible");if(this.video.getPlayerState&&typeof(this.video.getPlayerState())!="undefined"&&this.video.getPlayerState()!=1){this.video.seekTo(0,true);this.video.playVideo()}}};function onYouTubePlayerReady(a){videoOverlays[a].playerReadyHandler()}Filter=function(c){this.SELECTED_CLASS="sel";this.INACTIVE_CLASS="inactive";this.filter=Y.dom.get(c);this.filters=this.filter.getElementsByTagName("a");this.onchangefilter=new Y.customEvent("changeFilter",this);this.selectedIndex=0;var b,a;for(a=0;a<this.filters.length;a++){b=this.filters[a];if(Y.dom.hasClass(b,this.SELECTED_CLASS)){this.selectedIndex=a}Y.event.on(b,"click",this.changeFilter,a,this)}};Filter.prototype={getFilter:function(){return this.filters[this.selectedIndex].getAttribute("rel")},changeFilter:function(c,b){var a=this.filters[b];if(!Y.dom.hasClass(a,this.INACTIVE_CLASS)){this.onchangefilter.fire(a.getAttribute("rel"));this.selectFilter(b)}Y.event.stopEvent(c)},selectFilter:function(a){Y.dom.removeClass(this.filters[this.selectedIndex],this.SELECTED_CLASS);Y.dom.addClass(this.filters[a],this.SELECTED_CLASS);this.selectedIndex=a},activateFilter:function(c,d){var b,a;for(a=0;a<this.filters.length;a++){b=this.filters[a];if(b.innerHTML==c){if(d){Y.dom.removeClass(b,this.INACTIVE_CLASS)}else{Y.dom.addClass(b,this.INACTIVE_CLASS)}return}}}};FilteredElements=function(b,a){this.EL_CLASS="filteredElement";this.ALL_FILTER="all";this.filter=new Filter(a);this.els=Y.getByClass(this.EL_CLASS,"*",b);this.filter.onchangefilter.subscribe(this.filterChangeHandler,this,true);this.onchangefilter=new Y.customEvent("changeFilter",this)};FilteredElements.prototype={filterChangeHandler:function(h,k){var g=k.toString().split(/\s+/),c,b,f,a,d;for(c=0;c<this.els.length;c++){f=this.els[c];a=false;for(b=0;b<g.length;b++){d=g[b];if(d==this.ALL_FILTER||Y.dom.hasClass(f,d)){a=true;break}}Y.dom.setStyle(f,"display",a?"block":"none")}this.onchangefilter.fire(g)}};FadedFilteredElements=function(b,a){this.EL_CLASS="filteredElement";this.ALL_FILTER="all";this.FADED_OPACITY=0.2;this.DURATION=0.4;this.EASE=Y.easing.easeOut;this.filter=new Filter(a);this.els=Y.getByClass(this.EL_CLASS,"*",b);this.filter.onchangefilter.subscribe(this.filterChangeHandler,this,true)};FadedFilteredElements.prototype={filterChangeHandler:function(k,l){var b=l.toString().split(/\s+/),f,d,c,m,a,h=[],g=[];for(f=0;f<this.els.length;f++){c=this.els[f];m=false;for(d=0;d<b.length;d++){a=b[d];if(a==this.ALL_FILTER||Y.dom.hasClass(c,a)){m=true;break}}if(m&&(Y.dom.getStyle(c,"opacity")<1)){h[h.length]=c}else{if(!m&&(Y.dom.getStyle(c,"opacity")>this.FADED_OPACITY)){g[g.length]=c}}}this.fadeElements(h,g)},fadeElements:function(b,a){if(this.anim){this.anim.stop()}this.anim=fadeAnim=new Y.anim(null,null,this.DURATION);fadeAnim.onTween.subscribe(function(c,d){Y.dom.setStyle(b,"opacity",this.EASE(d[0].currentFrame,this.FADED_OPACITY,1-this.FADED_OPACITY,this.DURATION*1000));Y.dom.setStyle(a,"opacity",this.EASE(d[0].currentFrame,1,this.FADED_OPACITY-1,this.DURATION*1000))},this,true);fadeAnim.onComplete.subscribe(function(){this.anim=null},this,true);fadeAnim.animate()}};Carousel=function(a){this.SEL_PAGE_CLASS="sel";this.ITEMS_PER_PAGE=4;this.DURATION=0.7;this.EASE=Y.easing.easeOutStrong;this.DISABLED_CLASS="disabled";this.carousel=Y.dom.get(a);this.itemContainer=Y.getByClass("items","ul",this.carousel)[0];this.items=this.itemContainer.getElementsByTagName("li");this.nav=Y.getByClass("nav","tr",this.carousel)[0];this.prevBtn=Y.getByClass("prev","a",this.carousel)[0];this.nextBtn=Y.getByClass("next","a",this.carousel)[0];this.navItems=[];this.counter=Y.getByClass("counter","span",this.carousel)[0];this.itemWidth=getElementWidth(this.items[0])+parseInt(Y.dom.getStyle(this.items[0],"margin-right"))+parseInt(Y.dom.getStyle(this.items[0],"margin-left"));this.currPage=0;this.loadNav();this.updateNav(this.currPage);this.updateCounter()};Carousel.prototype={loadNav:function(){this.numPages=Math.ceil(this.items.length/this.ITEMS_PER_PAGE);if(this.numPages<2){return}var b,a;for(b=0;b<this.numPages;b++){a=this.createNavItem(b);this.nav.appendChild(a);this.navItems[this.navItems.length]=a}Y.event.on(this.prevBtn,"click",this.clickPrevHandler,this,true);Y.event.on(this.nextBtn,"click",this.clickNextHandler,this,true);Y.dom.setStyle([this.prevBtn,this.nextBtn],"visibility","visible")},clearNav:function(){Y.dom.batch(this.navItems,function(a){a.parentNode.removeChild(a)});this.navItems=[];Y.event.removeListener(this.prevBtn,"click");Y.event.removeListener(this.nextBtn,"click");Y.dom.setStyle([this.prevBtn,this.nextBtn],"visibility","hidden")},createNavItem:function(c){var a=document.createElement("td"),b=document.createElement("a"),d=document.createComment("for IE");b.href="#";b.appendChild(d);Y.event.on(b,"click",this.clickNavHandler,c,this);a.appendChild(b);return a},updateNav:function(a){Y.dom.removeClass(this.navItems[this.currPage],this.SEL_PAGE_CLASS);Y.dom.addClass(this.navItems[a],this.SEL_PAGE_CLASS);if(a<=0){Y.dom.addClass(this.prevBtn,this.DISABLED_CLASS)}else{Y.dom.removeClass(this.prevBtn,this.DISABLED_CLASS)}if(a>=this.numPages-1){Y.dom.addClass(this.nextBtn,this.DISABLED_CLASS)}else{Y.dom.removeClass(this.nextBtn,this.DISABLED_CLASS)}},updateCounter:function(){this.counter.innerHTML=this.items.length},clickNavHandler:function(b,a){this.goToPage(a);Y.event.stopEvent(b)},clickPrevHandler:function(a){if(this.currPage>0){this.goToPage(this.currPage-1)}Y.event.stopEvent(a)},clickNextHandler:function(a){if(this.currPage<this.numPages-1){this.goToPage(this.currPage+1)}Y.event.stopEvent(a)},goToPage:function(c,b){var a=0-(c*this.itemWidth*this.ITEMS_PER_PAGE);if(b){Y.dom.setStyle(this.itemContainer,"left","0px")}else{this.move(a)}this.updateNav(c);this.currPage=c},move:function(a){var b=new Y.anim(this.itemContainer,{left:{to:a}},this.DURATION,this.EASE);b.animate()}};InfoBubble=function(a,b,c){this.OFFSET_X=132;this.OFFSET_Y=-7;this.BUBBLE_CLASS="bubble";this.DUR=0.2;this.trigger=Y.dom.get(a);this.context=Y.dom.get(b);if(!this.trigger||!this.context){return}this.createBubble(c);Y.event.on(this.trigger,"mouseover",this.mouseOverTriggerHandler,this,true);Y.event.on(this.trigger,"mouseout",this.mouseOutTriggerHandler,this,true)};InfoBubble.prototype={mouseOverTriggerHandler:function(a){this.show();Y.event.stopEvent(a)},mouseOutTriggerHandler:function(a){this.hide();Y.event.stopEvent(a)},createBubble:function(a){this.bubble=document.createElement("div");Y.dom.addClass(this.bubble,this.BUBBLE_CLASS);this.bubble.innerHTML=a;document.body.appendChild(this.bubble)},show:function(){Y.dom.setStyle(this.bubble,"opacity",0);Y.dom.setStyle(this.bubble,"display","block");Y.dom.setXY(this.bubble,[Y.dom.getX(this.context)+this.OFFSET_X,Y.dom.getY(this.context)+this.OFFSET_Y]);var a=new Y.anim(this.bubble,{opacity:{from:0,to:1}},this.DUR,Y.easing.EaseOut);a.animate()},hide:function(){var a=new Y.anim(this.bubble,{opacity:{from:1,to:0}},this.DUR,Y.easing.EaseOut);a.onComplete.subscribe(function(){Y.dom.setStyle(this.bubble,"display","none")},this,true);a.animate()}};SelectNav=function(a){this.select=Y.dom.get(a);if(this.select&&this.select.options){Y.event.on(this.select,"change",this.selectChangeHandler,this,true)}};SelectNav.prototype={selectChangeHandler:function(a){Y.event.stopEvent(a);this.go(this.getUrl())},getUrl:function(){return this.select.options[this.select.selectedIndex].value},go:function(a){window.location=a}};AddToCartForm=function(a){this.SUBMIT_CLASS="submit";this.QUANTITY_CLASS="qty";this.CHECK_REQ_CLASS="checkRequired";this.MULTI_ADD_CLASS="multiAddToCart";this.form=Y.dom.get(a);if(!this.form){return}this.submitBtns=Y.getByClass(this.SUBMIT_CLASS,"input",this.form);Y.event.on(this.form,"submit",this.onSubmitForm,this,true);this.updateQuantityFields();this.checkRequiredFields=Y.getByClass(this.CHECK_REQ_CLASS,"input",this.form);Y.event.on(this.checkRequiredFields,"click",this.onClickCheckRequired,this,true);Y.dom.batch(Y.getByClass(this.MULTI_ADD_CLASS,"*",this.form),function(c){var b=new MultipleAddToCart(c);b.onadd.subscribe(this.onChangeMultiAddToCart,this,true);b.ondelete.subscribe(this.onChangeMultiAddToCart,this,true)},this,true)};AddToCartForm.prototype={onSubmitForm:function(a){if(!this.validate()){Y.event.stopEvent(a)}},onChangeQuantity:function(a){this.updateSubmitButtons()},onClickCheckRequired:function(a){this.updateSubmitButtons()},onChangeMultiAddToCart:function(a){this.updateQuantityFields();this.updateSubmitButtons()},updateQuantityFields:function(){this.quantityFields=Y.getByClass(this.QUANTITY_CLASS,"input",this.form);Y.event.removeListener(this.quantityFields,"change");Y.event.on(this.quantityFields,"change",this.onChangeQuantity,this,true)},updateSubmitButtons:function(){if(this.validate()){Y.dom.removeClass(this.submitBtns,"disabled")}else{Y.dom.addClass(this.submitBtns,"disabled")}},validate:function(){return(this.validateCheckRequired()&&(this.getTotal()>0))},validateCheckRequired:function(){for(var a=0;a<this.checkRequiredFields.length;a++){if(!this.checkRequiredFields[a].checked){return false}}return true},getTotal:function(){var a=0;Y.dom.batch(this.quantityFields,function(b){b.value=((/^\s*$/).test(b.value)||isNaN(b.value))?0:parseInt(b.value);if(b.value<0){b.value=0}a+=b.value});return a}};MultipleAddToCart=function(a){this.TEMPLATE_CLASS="template";this.ADD_CLASS="add";this.ITEM_CLASS="item";this.QUANTITY_CLASS="qty";this.DELETE_CLASS="del";this.container=Y.dom.get(a);if(!this.container){return}var e=Y.getByClass(this.TEMPLATE_CLASS,"*",this.container)[0],g,f,d,b=/^(.+)[0-9]+$/,c;this.template=e.cloneNode(true);this.rows=[e];g=this.getItemSelect(this.template);f=this.getQuantityField(this.template);d=this.getDeleteField(this.template);this.maxRows=g.getElementsByTagName("option").length;c=b.exec(g.name);this.itemSelect={namePrefix:c[1]};c=b.exec(g.id);this.itemSelect.idPrefix=c[1];c=b.exec(f.name);this.quantityField={namePrefix:c[1]};c=b.exec(f.id);this.quantityField.idPrefix=c[1];c=b.exec(d.name);this.deleteField={namePrefix:c[1]};c=b.exec(d.id);this.deleteField.idPrefix=c[1];Y.event.on(this.getDeleteField(e),"click",this.onClickDelete,e,this);this.addBtn=Y.getByClass(this.ADD_CLASS,"input",this.container);Y.event.on(this.addBtn,"click",this.onAddClick,this,true);this.onadd=new Y.customEvent("add",this);this.ondelete=new Y.customEvent("remove",this)};MultipleAddToCart.prototype={onAddClick:function(a){if(this.rows.length<this.maxRows){this.addRow()}Y.event.stopEvent(a)},onClickDelete:function(a,b){if(this.rows.length>1){this.deleteRow(b)}Y.event.stopEvent(a)},addRow:function(){var a=this.template.cloneNode(true),b=this.rows[this.rows.length-1];this.initRow(a);Y.dom.insertAfter(a,b);this.rows[this.rows.length]=a;Y.dom.removeClass(Y.getByClass(this.DELETE_CLASS,"input",this.container),"disabled");if(this.rows.length>=this.maxRows){Y.dom.addClass(this.addBtn,"disabled")}this.onadd.fire(a)},deleteRow:function(d){var b=[],a,c;for(a=0;a<this.rows.length;a++){c=this.rows[a];if(c!=d){this.setRowIdAndName(c,b.length+1);b[b.length]=c}}this.rows=b;Y.dom.removeClass(this.addBtn,"disabled");if(this.rows.length<=1){Y.dom.addClass(Y.getByClass(this.DELETE_CLASS,"input",this.container),"disabled")}d.parentNode.removeChild(d);this.ondelete.fire(d)},initRow:function(a){this.setRowIdAndName(a,this.rows.length+1);Y.dom.batch(this.getItemSelect(a).getElementsByTagName("option"),function(b){b.selected=false});this.getQuantityField(a).value=0;Y.event.on(this.getDeleteField(a),"click",this.onClickDelete,a,this)},setRowIdAndName:function(c,a){var e=this.getItemSelect(c),d=this.getQuantityField(c),b=this.getDeleteField(c);e.id=this.itemSelect.idPrefix+a;e.name=this.itemSelect.namePrefix+a;d.id=this.quantityField.idPrefix+a;d.name=this.quantityField.namePrefix+a;b.id=this.deleteField.idPrefix+a;b.name=this.deleteField.namePrefix+a},getItemSelect:function(a){return Y.getByClass(this.ITEM_CLASS,"select",a)[0]},getQuantityField:function(a){return Y.getByClass(this.QUANTITY_CLASS,"input",a)[0]},getDeleteField:function(a){return Y.getByClass(this.DELETE_CLASS,"input",a)[0]}};ProductsByCategoryMgr=function(a,b){this.DURATION=0.7;this.EASE=Y.easing.easeOutStrong;this.CAROUSEL_HEIGHT=189;this.catContainer=Y.dom.get(a);this.carouselEl=Y.dom.get(b);this.carouselCont=this.carouselEl.parentNode;this.carousel=new Carousel(this.carouselEl);this.carousel.ITEMS_PER_PAGE=3;if(YAHOO.env.ua.ie){Y.dom.setStyle(this.carouselEl,"display","none")}this.filter=new FilteredElements(this.carouselEl,this.catContainer);this.filter.onchangefilter.subscribe(this.selectCatHandler,this,true);this.carouselShown=false};ProductsByCategoryMgr.prototype={selectCatHandler:function(a,b){this.updateCarouselCtrls();this.showCarousel()},showCarousel:function(){if(!this.carouselShown){var a=new Y.anim(this.carouselCont,{height:{to:this.CAROUSEL_HEIGHT}},this.DURATION,this.EASE);a.onComplete.subscribe(function(c,b){if(YAHOO.env.ua.ie){Y.dom.setStyle(this.carouselEl,"display","block")}else{var d=new Y.anim(this.carouselEl,{opacity:{to:1}},this.DURATION,this.EASE);d.animate()}},this,true);a.animate();this.carouselShown=true}},updateCarouselCtrls:function(){var b=Y.dom.getElementsByClassName("filteredElement","li",this.carouselEl),a=[];Y.dom.batch(b,function(c){if(Y.dom.getStyle(c,"display")!="none"){a.push(c)}});this.carousel.items=a;this.carousel.clearNav();this.carousel.loadNav();this.carousel.goToPage(0,true)}};Gallery=function(a){this.SHOWN_CLASS="shown";this.CONTROLS_CLASS="control";this.COUNT_CLASS="count";this.PREV_CLASS="prev";this.NEXT_CLASS="next";this.COUNT_DELIM="/";this.DURATION=0.3;this.EASE=Y.easing.easeIn;this.gallery=Y.dom.get(a);if(!this.gallery){return}var c=Y.getByClass(this.COUNT_CLASS,"*",this.gallery),b;if(c.length>0){this.count=c[0]}this.controls=Y.getByClass(this.CONTROLS_CLASS,"div",this.gallery)[0];this.prevBtn=Y.getByClass(this.PREV_CLASS,"a",this.controls)[0];this.nextBtn=Y.getByClass(this.NEXT_CLASS,"a",this.controls)[0];this.images=this.gallery.getElementsByTagName("img");this.currIndex=0;for(b=0;b<this.images.length;b++){if(Y.dom.hasClass(this.images[b],this.SHOWN_CLASS)){this.currIndex=b;break}}this.updateCount();Y.event.on(this.prevBtn,"click",this.onClickPrev,this,true);Y.event.on(this.nextBtn,"click",this.onClickNext,this,true)};Gallery.prototype={onClickPrev:function(a){if(!this.isAnimating){this.showImage((this.currIndex<=0)?(this.images.length-1):(this.currIndex-1))}Y.event.stopEvent(a)},onClickNext:function(a){if(!this.isAnimating){this.showImage((this.currIndex>=(this.images.length-1))?0:(this.currIndex+1))}Y.event.stopEvent(a)},showImage:function(b){if(b==this.currIndex){return}var a=new Y.anim(null,null,this.DURATION);a.onTween.subscribe(function(c,d){Y.dom.setStyle(this.images[this.currIndex],"opacity",this.EASE(d[0].currentFrame,1,-1,this.DURATION*1000));Y.dom.setStyle(this.images[b],"opacity",this.EASE(d[0].currentFrame,0,1,this.DURATION*1000))},this,true);a.onComplete.subscribe(function(){Y.dom.removeClass(this.images[this.currIndex],this.SHOWN_CLASS);this.currIndex=b;this.updateCount();this.isAnimating=false},this,true);Y.dom.setStyle(this.images[b],"opacity",0);Y.dom.addClass(this.images[b],this.SHOWN_CLASS);this.isAnimating=true;a.animate()},updateCount:function(){if(this.count){this.count.innerHTML=(this.currIndex+1)+this.COUNT_DELIM+this.images.length}}};ProductGallery=function(a){this.SHOWN_CLASS="shown";this.PROMPT_CLASS="prompt";this.CONTROLS_CLASS="control";this.CAPTION_CLASS="caption";this.PANEL_CLASS="panel";this.NAME_CLASS="name";this.COUNT_CLASS="count";this.PREV_CLASS="prev";this.NEXT_CLASS="next";this.CAPTION_HEIGHT=21;this.COUNT_DELIM=" of ";this.CONTROL_DURATION=0.4;this.CONTROL_EASE=Y.easing.easeOut;this.IMAGE_DURATION=0.3;this.IMAGE_EASE=Y.easing.easeIn;this.gallery=Y.dom.get(a);if(!this.gallery){return}this.displayPrompt=Y.getByClass(this.PROMPT_CLASS,"div",this.gallery)[0];this.caption=Y.getByClass(this.CAPTION_CLASS,"div",this.gallery)[0];this.captionPanel=Y.getByClass(this.PANEL_CLASS,"div",this.gallery)[0];this.captionName=Y.getByClass(this.NAME_CLASS,"*",this.caption)[0];this.captionCount=Y.getByClass(this.COUNT_CLASS,"*",this.caption)[0];this.controls=Y.getByClass(this.CONTROLS_CLASS,"div",this.gallery)[0];this.prevBtn=Y.getByClass(this.PREV_CLASS,"a",this.controls)[0];this.nextBtn=Y.getByClass(this.NEXT_CLASS,"a",this.controls)[0];this.images=this.gallery.getElementsByTagName("img");this.currIndex=0;for(var b=0;b<this.images.length;b++){if(Y.dom.hasClass(this.images[b],this.SHOWN_CLASS)){this.currIndex=b;break}}this.updateCaption();this.isShown=false;Y.event.on(document,"mousemove",this.onMousemove,this,true);Y.event.on(this.prevBtn,"click",this.onClickPrev,this,true);Y.event.on(this.nextBtn,"click",this.onClickNext,this,true)};ProductGallery.prototype={onMousemove:function(a){var b=new Y.point(Y.event.getPageX(a),Y.event.getPageY(a));if(Y.region.getRegion(this.gallery).contains(b)){if(!this.isShown){if(this.hideAnim){this.hideAnim.stop()}this.showControls()}}else{if(this.isShown){if(this.showAnim){this.showAnim.stop()}this.hideControls()}}},onClickPrev:function(a){if(!this.isAnimating){this.showImage((this.currIndex<=0)?(this.images.length-1):(this.currIndex-1))}Y.event.stopEvent(a)},onClickNext:function(a){if(!this.isAnimating){this.showImage((this.currIndex>=(this.images.length-1))?0:(this.currIndex+1))}Y.event.stopEvent(a)},showControls:function(){this.showAnim=crossFadeAnim=new Y.anim(null,null,this.CONTROL_DURATION);crossFadeAnim.onTween.subscribe(function(a,b){Y.dom.setStyle(this.displayPrompt,"opacity",this.CONTROL_EASE(b[0].currentFrame,1,-1,this.CONTROL_DURATION*1000));Y.dom.setStyle(this.controls,"opacity",this.CONTROL_EASE(b[0].currentFrame,0,1,this.CONTROL_DURATION*1000));Y.dom.setStyle(this.caption,"height",this.CONTROL_EASE(b[0].currentFrame,0,this.CAPTION_HEIGHT,this.CONTROL_DURATION*1000)+"px");Y.dom.setStyle(this.captionPanel,"top",this.CONTROL_EASE(b[0].currentFrame,-1*this.CAPTION_HEIGHT,this.CAPTION_HEIGHT,this.CONTROL_DURATION*1000)+"px")},this,true);crossFadeAnim.onComplete.subscribe(function(){Y.dom.setStyle(this.displayPrompt,"display","none");this.showAnim=null},this,true);Y.dom.setStyle(this.controls,"opacity",0);Y.dom.setStyle(this.controls,"display","block");Y.dom.setStyle(this.caption,"height","0px");Y.dom.setStyle(this.captionPanel,"top","-"+this.CAPTION_HEIGHT+"px");Y.dom.setStyle(this.caption,"display","block");this.isShown=true;crossFadeAnim.animate()},hideControls:function(){this.hideAnim=crossFadeAnim=new Y.anim(null,null,this.CONTROL_DURATION);crossFadeAnim.onTween.subscribe(function(a,b){Y.dom.setStyle(this.displayPrompt,"opacity",this.CONTROL_EASE(b[0].currentFrame,0,1,this.CONTROL_DURATION*1000));Y.dom.setStyle(this.controls,"opacity",this.CONTROL_EASE(b[0].currentFrame,1,-1,this.CONTROL_DURATION*1000));Y.dom.setStyle(this.caption,"height",this.CONTROL_EASE(b[0].currentFrame,this.CAPTION_HEIGHT,-1*this.CAPTION_HEIGHT,this.CONTROL_DURATION*1000)+"px");Y.dom.setStyle(this.captionPanel,"top",this.CONTROL_EASE(b[0].currentFrame,0,-1*this.CAPTION_HEIGHT,this.CONTROL_DURATION*1000)+"px")},this,true);crossFadeAnim.onComplete.subscribe(function(){Y.dom.setStyle(this.controls,"display","none");Y.dom.setStyle(this.caption,"display","none");this.hideAnim=null},this,true);Y.dom.setStyle(this.displayPrompt,"opacity",0);Y.dom.setStyle(this.displayPrompt,"display","block");this.isShown=false;crossFadeAnim.animate()},showImage:function(b){if(b==this.currIndex){return}var a=new Y.anim(null,null,this.IMAGE_DURATION);a.onTween.subscribe(function(c,d){Y.dom.setStyle(this.images[this.currIndex],"opacity",this.IMAGE_EASE(d[0].currentFrame,1,-1,this.IMAGE_DURATION*1000));Y.dom.setStyle(this.images[b],"opacity",this.IMAGE_EASE(d[0].currentFrame,0,1,this.IMAGE_DURATION*1000))},this,true);a.onComplete.subscribe(function(){Y.dom.removeClass(this.images[this.currIndex],this.SHOWN_CLASS);this.currIndex=b;this.updateCaption();this.isAnimating=false},this,true);Y.dom.setStyle(this.images[b],"opacity",0);Y.dom.addClass(this.images[b],this.SHOWN_CLASS);this.isAnimating=true;a.animate()},updateCaption:function(){this.captionCount.innerHTML=(this.currIndex+1)+this.COUNT_DELIM+this.images.length;this.captionName.innerHTML=this.images[this.currIndex].getAttribute("alt")}};