if(typeof (Search)=="undefined"){Search={};}Search.sanitize=function(K){K=K.replace(/</g,"&lt;").replace(/>/g,"&gt;");K=K.replace(/ /g,"+");K=K.replace(/[\"\'][\s]*javascript:(.*)[\"\']/g,"\"\"");K=K.replace(/&lt;script(.*)/g,"");K=K.replace(/eval\((.*)\)/g,"");return K;};Search.desanitize=function(K){K=K.replace(/&lt;/g,"<").replace(/&gt;/g,">");K=K.replace(/\+/g," ");return K;};Search.ProxyRequest=function(){};Search.ProxyRequest.prototype={started:null,ended:null,s:null,r:null,baseUrl:null,url:null,activeRequest:null,options:null,baseInitialize:function(Q,X,K){this.s=Q;this.r=X;this.options=K;if(!this.options){K=[];}if(typeof (this.options.onSuccess)!="function"){this.options.onSuccess=Prototype.emptyFunction;}if(typeof (this.options.onFailure)!="function"){this.options.onFailure=Prototype.emptyFunction;}var U="/global/scripts/ajax_proxy.php?s="+Q;this.baseUrl=U+"&r="+encodeURIComponent(X);this.url=this.baseUrl;},execute:function(){this.started=new Date();this.activeRequest=new Ajax.Request(this.url,{method:"get",onSuccess:this.options.onSuccess,onFailure:this.options.onFailure,onException:function(X,K){this.options.onFailure();}.bind(this)});return this.activeRequest;},abort:function(){if(this.activeRequest){this.activeRequest.transport.abort();}},parseResponse:function(K){},getDuration:function(){if(this.started&&this.ended){return this.ended.getTime()-this.started.getTime();}else{return 0;}}};Search.DirectRequest=function(){};Search.DirectRequest.prototype={started:null,ended:null,s:null,r:null,url:null,options:null,baseInitialize:function(Q,X,K){this.s=Q;this.r=X;this.options=K;if(!this.options){K=[];}if(typeof (this.options.onSuccess)!="function"){this.options.onSuccess=Prototype.emptyFunction;}if(typeof (this.options.onFailure)!="function"){this.options.onFailure=Prototype.emptyFunction;}this.url=this.s+this.r+"&output=json&z="+Math.floor(Math.random()*10000);},execute:function(){var w=this.parseResponse.bind(this);Search.DirectCallbacks.push(w);var U=Search.DirectCallbacks.length-1;var Q=encodeURIComponent("Search.DirectCallbacks["+U+"]");var K=document.createElement("script");K.setAttribute("charset","utf-8");K.setAttribute("type","text/javascript");K.setAttribute("src",this.url+"&callback="+Q);var X=document.getElementsByTagName("head")[0];this.started=new Date();X.appendChild(K);},abort:Prototype.emptyFunction,parseResponse:function(K){},getDuration:function(){if(this.started&&this.ended){return this.ended.getTime()-this.started.getTime();}else{return 0;}}};Search.DirectCallbacks=[];Search.FullSearchRequest=Class.create();Object.extend(Search.FullSearchRequest.prototype,Search.ProxyRequest.prototype);Object.extend(Search.FullSearchRequest.prototype,{s:8,name:"Full Search",initialize:function(X,K){this.baseInitialize(this.s,X,K);this.afterParsing=this.options.onSuccess;this.options.onSuccess=this.parseResponse.bind(this);},parseResponse:function(w){this.ended=new Date();var V={};var n=w.responseXML.getElementsByTagName("SearchResults")[0];if(!n){throw ("Invalid Response");}var X=n.getElementsByTagName("GSP");var Q=null;for(var G=X.length-1;G>=0;G--){categoryResponse=X[G];Q=categoryResponse.getElementsByTagName("PARAM");for(var t=Q.length-1;t>=0;t--){if(Q[t].getAttribute("name")=="partialfields"){var U=Q[t].getAttribute("value").split(":")[1];V[U]=categoryResponse;}else{if(Q[t].getAttribute("value")=="store_data"){V["store"]=categoryResponse;}}}}var g=function(q,x){try{var J=q.getElementsByTagName(x)[0].firstChild.nodeValue=="\n"?q.getElementsByTagName(x)[0].childNodes[1].nodeValue:q.getElementsByTagName(x)[0].firstChild.nodeValue;return J;}catch(v){return "";}};var a=g(n,"Jump");var K=g(n,"Q");var b=null;if(n.getElementsByTagName("Spelling").length>0){b=n.getElementsByTagName("Spelling")[0].firstChild.getAttribute("q");}this.afterParsing(this,V,a,b);}});Search.iTunesSearchRequest=Class.create();Object.extend(Search.iTunesSearchRequest.prototype,Search.DirectRequest.prototype);Object.extend(Search.iTunesSearchRequest.prototype,{name:"iTunes Search",s:"http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa/itmsSearch",afterParsing:Prototype.emptyFunction,initialize:function(X,K){this.baseInitialize(this.s,X,K);this.afterParsing=this.options.onSuccess;this.options.onSuccess=this.parseResponse.bind(this);},parseResponse:function(K){this.ended=new Date();var X={itunes:K.results};this.afterParsing(this,X);}});Search.Category=function(){};Object.extend(Search.Category.prototype,Event.Publisher);Object.extend(Search.Category.prototype,{title:"",container:null,results:null,totalResultCount:0,availableResultCount:0,topResultCount:5,maxResultCount:10,maxDeepResultCount:25,collapsing:false,showingOnlyTopResults:true,showingAllResults:false,resultList:null,meta:null,metaIndicator:null,metaNextAction:null,metaViewAll:null,headingLocationIndicator:null,baseInitialize:function(X,K){this.title=X;this.container=$(K);this.results=[];},createHeading:function(K){this.headingLocationIndicator=Builder.node("span",{"class":"results"},K);var X=Builder.node("div",{"class":"heading"},[Builder.node("h3",this.title),this.headingLocationIndicator]);return X;},hasResults:function(){return this.availableResultCount>0;},hide:function(){this.container.hide();Element.removeClassName(this.container,"detailedresults");},show:function(){if(this.availableResultCount>0){this.container.show();}},expand:Prototype.emptyFunction,collapse:Prototype.emptyFunction});Search.TextCategory=Class.create();Object.extend(Search.TextCategory.prototype,Search.Category.prototype);Object.extend(Search.TextCategory.prototype,{startIndex:0,endIndex:9,resultsIndex:0,options:null,isLoadingResults:false,initialize:function(Q,K,X){this.baseInitialize(Q,K);this.options=X;if(!this.options){this.options=[];}},populate:function(I){var X=function(Y,s){try{var d=Y.getElementsByTagName(s)[0].firstChild.nodeValue=="\n"?Y.getElementsByTagName(s)[0].childNodes[1].nodeValue:Y.getElementsByTagName(s)[0].firstChild.nodeValue;return d;}catch(y){return "";}};this.totalResultCount=parseInt(X(I,"M"),10);var b=I.getElementsByTagName("RES")[0];if(b){var x=parseInt(b.getAttribute("SN"),10);var Q=parseInt(b.getAttribute("EN"),10);var a=Q-x+1;var U=this.showingAllResults?this.maxDeepResultCount:this.maxResultCount;var G=Math.min(this.totalResultCount-x,U);if(a<G){this.totalResultCount=this.availableResultCount+a;}}if(isNaN(this.totalResultCount)){this.totalResultCount=0;return ;}var P=I.getElementsByTagName("PARAM");for(var k=P.length-1;k>=0;k--){var n=P[k];if(n.getAttribute("name")=="num"){var J=parseInt(n.getAttribute("value"),10);if(J!=10){this.iTopResults=J;this.iMaxResults=J;this.scope=true;this.num=J;}}}var w=1;if(I.getAttribute("SN")){var J=parseInt(I.getAttribute("SN"),10);if(!isNaN(J)){w=J;}}var q=I.getElementsByTagName("R");for(var k=0;k<q.length;k++){var V=q[k];var T=null;var g=null;var m=null;var t=V.getElementsByTagName("MT");for(var v=t.length-1;v>=0;v--){var K=t[v];if(K.getAttribute("N")=="Description"){if(K.getAttribute("V")!==""){m=K.getAttribute("V");}}}T=X(V,"T");g=X(V,"U");m=m||X(V,"S");this.push(T,g,m);}this.isLoadingResults=false;this.container.removeClassName("loading");},push:function(Q,K,X){result={title:Q,url:K,description:X};this.results.push(result);this.availableResultCount++;},render:function(){var X=this.getHeadingLocationLabel();var K=this.createHeading(X);Event.observe(K,"click",function(Q){Event.stop(Q);this.toggleCollapsed();}.bind(this));this.createMetaNode();this.resultList=Builder.node("ul",{id:"results-"+this.title+"-ul"});Element.addClassName(this.resultList,"results");this.renderResults(0,this.maxResultCount);this.container.appendChild(K);this.container.appendChild(this.resultList);this.container.appendChild(this.meta);},renderResults:function(b,w){var X=b+w;if(X>this.availableResultCount){X=this.availableResultCount;}this.startIndex=b;this.endIndex=X;this.resultList.innerHTML="";for(var U=this.startIndex;U<this.endIndex;U++){var K=this.results[U];var Q=this.createResultNode(K,U);this.resultList.appendChild(Q);}this.meta.show();this.updateMetaInformation();},createResultNode:function(X,K){if(AC.Detector.isWebKit()){for(var g in X){if(X[g]&&typeof (X[g])=="string"){X[g]=X[g].replace(/&#38;/g,"&");}}}var w=document.createElement("li");if(K<this.topResultCount){Element.addClassName(w,"top-results");}var U=document.createElement("a");U.setAttribute("href",X.url);U.innerHTML=X.title;var b=document.createElement("h4");b.appendChild(U);w.appendChild(b);var Q=document.createElement("p");Element.addClassName(Q,"desc");Q.innerHTML=X.description;w.appendChild(Q);return w;},getMetaIndicatorLabel:function(){var K="";if(this.showingOnlyTopResults){if(this.availableResultCount>this.topResultCount){K="Top "+this.topResultCount+" Shown |&nbsp;";}else{K=(this.availableResultCount==1)?this.availableResultCount+" Result Shown":this.availableResultCount+" Results Shown";}}else{if(this.availableResultCount<this.maxResultCount){K="Results 1-"+this.availableResultCount+" Shown |&nbsp;";}else{K="Results 1-"+this.maxResultCount+" Shown |&nbsp;";}}return K;},getMetaNextActionLabel:function(){var X="";if(this.showingAllResults&&this.startIndex-this.maxResultCount<=0){X="View all Categories";}else{if(this.showingAllResults){X="View previous Results";}else{if(this.showingOnlyTopResults){var K=(Math.min(this.availableResultCount,this.maxResultCount)-this.topResultCount);X=(K==1)?"View next "+K+" Result":"View next "+K+" Results";}else{var Q=Math.min(this.availableResultCount,this.topResultCount);X="Show Top "+Q+" Results";}}}return X;},getHeadingLocationLabel:function(){var X=Math.min(this.availableResultCount,this.maxResultCount)+" results of about "+this.totalResultCount;if(this.availableResultCount==1){X="1 result of about "+this.totalResultCount;}if(this.showingAllResults){var K=(this.endIndex+1)>=this.totalResultCount?this.totalResultCount:this.endIndex;X=(this.startIndex+1)+"-"+K+" of about "+this.totalResultCount;}return X;},createMetaNode:function(){this.meta=document.createElement("p");Element.addClassName(this.meta,"meta");this.metaViewAll=document.createElement("a");this.metaViewAll.setAttribute("href","#");Element.addClassName(this.metaViewAll,"viewall");this.metaViewAll.innerHTML="View More Results";if(this.totalResultCount>this.maxResultCount||this.scope){this.meta.appendChild(this.metaViewAll);Event.observe(this.metaViewAll,"click",function(K){Event.stop(K);if(!this.showingAllResults){this.showMoreResults();}else{this.showNextResults();}}.bind(this));}this.metaIndicator=document.createElement("span");this.metaIndicator.innerHTML=this.getMetaIndicatorLabel();this.meta.appendChild(this.metaIndicator);this.metaNextAction=document.createElement("a");this.metaNextAction.setAttribute("href","#");this.metaNextAction.innerHTML=this.getMetaNextActionLabel();Event.observe(this.metaNextAction,"click",function(K){Event.stop(K);if(!this.showingAllResults){this.toggleAvailableResults();}else{if(0===this.startIndex){this.showLessResults();}else{this.showPreviousResults();}}}.bind(this));if(this.availableResultCount>this.topResultCount){this.meta.appendChild(this.metaNextAction);}},toggleAvailableResults:function(){if(this.showingOnlyTopResults){this.showAvailableResults();}else{this.showOnlyTopResults();}},showOnlyTopResults:function(){if(this.availableResultCount<=0){return ;}this.container.removeClassName("show-all");this.meta.removeClassName("expandedmeta");this.showingOnlyTopResults=true;this.showLessResults();this.updateMetaInformation();},showAvailableResults:function(){if(this.availableResultCount<=0){return ;}this.container.addClassName("show-all");this.meta.addClassName("expandedmeta");this.showingOnlyTopResults=false;this.updateMetaInformation();},showMoreResults:function(){if(this.showingAllResults||this.availableResultCount<=0){return ;}Element.addClassName(this.container,"detailedresults");this.showingAllResults=true;this.dispatchEvent("showmore",this);this.updateMetaInformation();Element.addClassName(this.metaNextAction,"previous");this.showNextResults();},showLessResults:function(){if(!this.showingAllResults||this.availableResultCount<=0){return ;}this.showingAllResults=false;Element.removeClassName(this.container,"detailedresults");this.dispatchEvent("showless",this);Element.removeClassName(this.metaNextAction,"previous");this.startIndex=0;this.endIndex=this.startIndex+Math.min(this.maxResultCount,this.totalResultCount);this.renderResults(this.startIndex,this.endIndex);this.updateMetaInformation();},showNextResults:function(){if(this.endIndex==this.totalResultCount){return ;}var Q=this.endIndex;var K=((this.endIndex+this.maxDeepResultCount)<=this.totalResultCount)?this.endIndex+this.maxDeepResultCount:this.totalResultCount;if(this.availableResultCount>=K){this.renderResults(Q,this.maxDeepResultCount);}else{this.getResults(Q,this.maxDeepResultCount);}var X=new Effect.ScrollTo(this.container,{duration:0.3});},showPreviousResults:function(){if(this.startIndex===0){return ;}var Q=this.startIndex-this.maxDeepResultCount;if(Q<0){Q=0;}var K=Q+this.maxDeepResultCount+1;if(K>this.totalResultCount){K=this.totalResultCount;}if(Q<=0){this.showLessResults();}else{if(this.availableResultCount>=K){this.renderResults(Q,this.maxDeepResultCount);}else{this.getResults(Q,this.maxDeepResultCount);}}var X=new Effect.ScrollTo(this.container,{duration:0.3});},getResults:function(U,K){if(this.isLoadingResults){return ;}this.isLoadingResults=true;this.container.addClassName("loading");this.resultList.innerHTML="";this.meta.hide();var X=this.options.requestUrl+"&filter=1"+"&start="+U+"&num="+K+"&scope="+this.options.scope;var Q=new Search.FullSearchRequest(X,{onSuccess:function(w,b){this.populate(b[this.options.scope]);this.renderResults(U,K);}.bind(this),onException:function(){this.isLoadingResults=false;this.container.removeClassName("loading");this.showOnlyTopResults();}.bind(this)});Q.execute();},updateMetaInformation:function(){this.metaIndicator.innerHTML=this.getMetaIndicatorLabel();this.metaNextAction.innerHTML=this.getMetaNextActionLabel();this.headingLocationIndicator.innerHTML=this.getHeadingLocationLabel();if(this.showingAllResults&&this.endIndex==this.totalResultCount){this.metaViewAll.hide();}else{this.metaViewAll.show();}},toggleCollapsed:function(){if(this.container.hasClassName("collapsed")){this.expand();}else{this.collapse();}},collapse:function(){if(this.collapsing){return ;}this.collapsing=true;this.container.addClassName("collapsed");this.meta.hide();var K=new Effect.BlindUp(this.resultList,{duration:0.3,queue:{position:"end",scope:"toggleTopResults"},afterFinish:function(){this.collapsing=false;}.bind(this)});},expand:function(){if(this.collapsing){return ;}this.collapsing=true;var K=new Effect.BlindDown(this.resultList,{duration:0.3,queue:{position:"end",scope:"toggleTopResults"},afterFinish:function(){this.container.removeClassName("collapsed");this.meta.show();this.collapsing=false;}.bind(this)});},show:function(){if(this.availableResultCount>0){this.container.show();}}});Search.StoreCategory=Class.create();Object.extend(Search.StoreCategory.prototype,Search.TextCategory.prototype);Object.extend(Search.StoreCategory.prototype,{term:"",populate:function(Y){var X=function(s,W){try{var y=s.getElementsByTagName(W)[0].firstChild.nodeValue=="\n"?s.getElementsByTagName(W)[0].childNodes[1].nodeValue:s.getElementsByTagName(W)[0].firstChild.nodeValue;return y;}catch(N){return "";}};this.totalResultCount=parseInt(X(Y,"M"),10);var b=Y.getElementsByTagName("RES")[0];if(b){var x=parseInt(b.getAttribute("SN"),10);var Q=parseInt(b.getAttribute("EN"),10);var a=Q-x+1;var U=this.showingAllResults?this.maxDeepResultCount:this.maxResultCount;var G=Math.min(this.totalResultCount-x,U);if(a<G){this.totalResultCount=this.availableResultCount+a;}}if(isNaN(this.totalResultCount)){this.totalResultCount=0;return ;}var T=Y.getElementsByTagName("PARAM");for(var k=T.length-1;k>=0;k--){var n=T[k];if(n.getAttribute("name")=="num"){var J=parseInt(n.getAttribute("value"),10);if(J!=10){this.iTopResults=J;this.iMaxResults=J;this.scope=true;this.num=J;}}}var w=1;if(Y.getAttribute("SN")){var J=parseInt(Y.getAttribute("SN"),10);if(!isNaN(J)){w=J;}}var q=Y.getElementsByTagName("R");for(var k=q.length-1;k>=0;k--){var V=q[k];var d=null;var g=null;var m=null;var I=null;var P=0;var t=V.getElementsByTagName("MT");for(var v=t.length-1;v>=0;v--){var K=t[v];if(K.getAttribute("N")=="searchDescription"){if(K.getAttribute("V")!==""){m=K.getAttribute("V");}}else{if(K.getAttribute("N")=="displayName"){if(K.getAttribute("V")!==""){d=K.getAttribute("V");}}else{if(K.getAttribute("N")=="searchImage"){if(K.getAttribute("V")!==""){I=K.getAttribute("V");}}else{if(K.getAttribute("N")=="salesRank"){if(K.getAttribute("V")!==""){P=parseInt(K.getAttribute("V"),10);}}}}}}g=X(V,"U");if(m){this.push(d,g,m,I,P);}}this.sort();this.isLoadingResults=false;this.container.removeClassName("loading");},push:function(w,X,Q,K,U){result={title:w,url:X,description:Q,imageUrl:K,rank:U};this.results.push(result);this.availableResultCount++;},sort:function(){var K=function(w,U){var Q=w.rank;var X=U.rank;if(Q>X){return -1;}else{if(Q<X){return 1;}else{return 0;}}};this.results.sort(K);},createResultNode:function(X,K){if(AC.Detector.isWebKit()){for(var t in X){if(X[t]&&typeof (X[t])=="string"){X[t]=X[t].replace(/&#38;/g,"&");}}}var w=document.createElement("li");if(K<this.topResultCount){Element.addClassName(w,"top-results");}var b=document.createElement("img");b.setAttribute("src",X.imageUrl);Element.addClassName(b,"thumb");w.appendChild(b);var U=document.createElement("a");U.setAttribute("href",X.url);U.innerHTML=X.title;var g=document.createElement("h4");g.appendChild(U);w.appendChild(g);var Q=document.createElement("p");Element.addClassName(Q,"desc");Q.innerHTML=X.description;w.appendChild(Q);return w;},createMetaNode:function(){this.meta=document.createElement("p");Element.addClassName(this.meta,"meta");this.metaViewAll=document.createElement("a");this.metaViewAll.setAttribute("href","http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore?jknr="+encodeURIComponent(Search.desanitize(this.term)));Element.addClassName(this.metaViewAll,"viewall");Element.addClassName(this.metaViewAll,"alwaysshow");this.metaViewAll.innerHTML="See all results in The Apple Store";this.meta.appendChild(this.metaViewAll);this.metaIndicator=document.createElement("span");this.metaIndicator.innerHTML=this.getMetaIndicatorLabel();this.meta.appendChild(this.metaIndicator);this.metaNextAction=document.createElement("a");this.metaNextAction.setAttribute("href","#");this.metaNextAction.innerHTML=this.getMetaNextActionLabel();Event.observe(this.metaNextAction,"click",function(K){Event.stop(K);if(!this.showingAllResults){this.toggleAvailableResults();}else{if(0===this.startIndex){this.showLessResults();}else{this.showPreviousResults();}}}.bind(this));if(this.availableResultCount>this.topResultCount){this.meta.appendChild(this.metaNextAction);}}});Search.iTunesCategory=Class.create();Object.extend(Search.iTunesCategory.prototype,Search.Category.prototype);Object.extend(Search.iTunesCategory.prototype,{term:"",subCategories:null,currentSubCategory:null,subCategoryList:null,contentArea:null,previewMovie:null,previewController:null,initialize:function(X,K){this.baseInitialize(X,K);this.subCategoryList=$(K).getElementsByClassName("subcategories")[0];this.contentArea=document.createElement("div");Element.addClassName(this.contentArea,"sliderArea");this.songCategory=new Search.iTunesSubCategory("Songs",this.contentArea);this.musicVideoCategory=new Search.iTunesSubCategory("Music Videos",this.contentArea);this.movieCategory=new Search.iTunesSubCategory("Movies",this.contentArea,"movies");this.tvCategory=new Search.iTunesSubCategory("TV Shows",this.contentArea,"tvshows");this.podcastCategory=new Search.iTunesSubCategory("Podcasts",this.contentArea);this.audiobookCategory=new Search.iTunesSubCategory("Audiobooks",this.contentArea);this.subCategories=[this.songCategory,this.musicVideoCategory,this.tvCategory,this.movieCategory,this.podcastCategory,this.audiobookCategory];this.mediaTypeMap={song:this.songCategory,"feature-movie":this.movieCategory,podcast:this.podcastCategory,"music-video":this.musicVideoCategory,"tv-episode":this.tvCategory};},populate:function(X){for(var K=0;K<X.length;K++){this.push(X[K]);}},push:function(K){if(K.wrapperType=="track"&&this.mediaTypeMap[K.mediaType]){this.mediaTypeMap[K.mediaType].push(K);}else{if(K.wrapperType=="playlist"){}else{return ;}}this.availableResultCount++;this.totalResultCount++;},render:function(){var X=this.container.getElementsByClassName("subcategories")[0];var w=(this.availableResultCount==1)?this.availableResultCount+" result":this.availableResultCount+" results";var n=this.createHeading(w);Event.observe(n,"click",function(G){Event.stop(G);this.toggleCollapsed();}.bind(this));var g=function(V,G){var J=V.availableResultCount;var q=G.availableResultCount;if(J>q){return -1;}else{if(J<q){return 1;}else{return 0;}}};this.subCategories.sort(g);this.container.appendChild(n);this.container.appendChild(X);this.container.appendChild(this.contentArea);for(var b=0;b<this.subCategories.length;b++){var K=this.subCategories[b];if(K.hasResults()){K.render();if(b>0){K.close();}else{this.openSubCategory(K);}Event.observe(K.heading,"mousedown",this.openSubCategory.bind(this,K));}}this.meta=document.createElement("p");Element.addClassName(this.meta,"meta");var U=document.createElement("a");Element.addClassName(U,"viewall");Element.addClassName(U,"alwaysshow");U.innerHTML="See all results in iTunes";var t=(iTunesCheck())?"itms":"http";var Q=t+"://ax.phobos.apple.com.edgesuite.net/WebObjects/MZSearch.woa/wa/com.apple.jingle.search.DirectAction/search?term="+encodeURIComponent(Search.desanitize(this.term));U.setAttribute("href",Q);this.meta.appendChild(U);this.container.appendChild(this.meta);},openSubCategory:function(K){if(this.currentSubCategory==K){return ;}if(this.currentSubCategory){this.currentSubCategory.close();}K.open();this.currentSubCategory=K;},toggleCollapsed:function(){if(this.container.hasClassName("collapsed")){this.expand();}else{this.collapse();}},collapse:function(){if(this.collapsing){return ;}this.collapsing=true;this.container.addClassName("collapsed");this.meta.hide();var K=new Effect.BlindUp(this.contentArea,{duration:0.3,queue:{position:"end",scope:"toggleTopResults"},afterFinish:function(){this.subCategoryList.hide();this.collapsing=false;}.bind(this)});},expand:function(){if(this.collapsing){return ;}this.collapsing=true;this.subCategoryList.show();var K=new Effect.BlindDown(this.contentArea,{duration:0.3,queue:{position:"end",scope:"toggleTopResults"},afterFinish:function(){this.collapsing=false;this.container.removeClassName("collapsed");this.meta.show();}.bind(this)});}});Search.iTunesSubCategory=Class.create();Object.extend(Search.iTunesSubCategory.prototype,Search.Category.prototype);Object.extend(Search.iTunesSubCategory.prototype,{maxResultCount:16,heading:null,resultList:null,resultsClass:null,initialize:function(Q,K,X){this.baseInitialize(Q,K);this.resultsClass=X;},push:function(K){if(this.availableResultCount==this.maxResultCount){return ;}this.results.push(K);this.availableResultCount++;this.totalResultCount++;},render:function(){var w="subcategory-"+this.title.replace(" ","").toLowerCase();this.heading=$(w);Element.addClassName(this.heading,"available");this.resultList=document.createElement("ul");Element.addClassName(this.resultList,"albumresults");var X=[];for(var Q=0;Q<this.results.length;Q++){var K=this.createResultNode(this.results[Q],Q);this.resultList.appendChild(K);X.push(K);}if(X.length>4){var U=this.resultList;this.resultList=document.createElement("div");Element.addClassName(this.resultList,"ACSliderMaskDiv");this.resultList.appendChild(U);if(this.resultsClass){Element.addClassName(this.resultList,this.resultsClass);}this.container.appendChild(this.resultList);this.slider=new iTunesSlider(this.resultList,X);}else{if(this.resultsClass){Element.addClassName(this.resultList,this.resultsClass);}this.container.appendChild(this.resultList);}},createResultNode:function(V,U){var g=document.createElement("li");Element.addClassName(g,"result-"+U);var w="itms:"+V.itemLinkUrl.substring(V.itemLinkUrl.indexOf("//"),V.itemLinkUrl.length);var b=(iTunesCheck())?w:V.itemLinkUrl;var t=document.createElement("a");t.setAttribute("href",b);var X=document.createElement("a");X.setAttribute("href",b);Element.addClassName(X,"album");var G=document.createElement("img");G.setAttribute("src",V.artworkUrl60);if(V.itemParentCensoredName){G.setAttribute("alt",V.itemParentCensoredName);}X.appendChild(G);g.appendChild(X);var K=V.itemCensoredName;if(V.itemParentCensoredName){K=V.itemParentCensoredName+": "+V.itemCensoredName;}var n=document.createElement("a");n.setAttribute("href",b);n.setAttribute("title",K);if(V.itemCensoredName.length>38){n.innerHTML=V.itemCensoredName.substring(0,38)+"...";}else{n.innerHTML=V.itemCensoredName;}g.appendChild(document.createElement("h4").appendChild(n));var Q=document.createElement("p");Element.addClassName(Q,"artist");if(V.artistName.length>17){if(V.itemCensoredName.length<22){Q.innerHTML=V.artistName;if(V.artistName.length>34){Q.innerHTML=V.artistName.substring(0,34)+"...";}}else{Q.innerHTML=V.artistName.substring(0,17)+"...";}Q.title=V.artistName;}else{Q.innerHTML=V.artistName;}g.appendChild(Q);return g;},open:function(){this.heading.addClassName("active");this.resultList.show();},close:function(){this.heading.removeClassName("active");this.resultList.hide();}});Search.Application=Class.create();Object.extend(Search.Application.prototype,Event.Listener);Object.extend(Search.Application.prototype,Event.Publisher);Object.extend(Search.Application.prototype,{term:null,categories:null,requiredRequests:null,optionalRequests:null,initialize:function(K){this.categories=K;this.requiredRequests=[];this.optionalRequests=[];},getTerm:function(K){if(K){return this.term.replace(/\+/g," ");}else{return this.term;}},isolateCategory:function(X){if(this.requestTimeout){return ;}for(var K in this.categories){if(X!=this.categories[K]){this.categories[K].hide();}else{if(X){if(!X.showingAllResults&&X.showAvailableResults){X.showAvailableResults();}X.show();}}}},hideAllCategories:function(){for(var K in this.categories){this.categories[K].hide();}},showAllCategories:function(){if(this.requestTimeout){return ;}this.dispatchEvent("showall",this);for(var K in this.categories){var X=this.categories[K];if(X.showOnlyTopResults){X.showOnlyTopResults();}X.show();}},search:function(X){if(typeof (X)==="undefined"||!X){return ;}this.term=X;Element.show("loading");document.title+=" for '"+this.getTerm(true)+"'";SavedSearch.save(this.getTerm());this.start_time=(new Date()).getTime();this.requestTimeout=setTimeout(this.presentResults.bind(this),10000);try{for(var K=this.requiredRequests.length-1;K>=0;K--){this.requiredRequests[K].execute();}}catch(Q){this.error();return ;}for(var K=this.optionalRequests.length-1;K>=0;K--){try{this.optionalRequests[K].execute();}catch(Q){continue;}}},stopRequest:function(K){K.abort();this.requiredRequests=this.requiredRequests.without(K);this.optionalRequests=this.optionalRequests.without(K);},stopRequests:function(){for(var K=0;K<this.optionalRequests.length;K++){this.stopRequest(this.optionalRequests[K]);}for(var K=0;K<this.requiredRequests.length;K++){this.stopRequest(this.requiredRequests[K]);}},hasActiveRequests:function(){return (this.requiredRequests.length>0)||(this.optionalRequests.length>0);},acknowledgeResponse:function(w,X,g,K){try{console.log(w.getDuration()+"ms "+w.name);}catch(b){}for(var U in X){if(this.categories[U]){var Q=X[U];this.categories[U].populate(Q);}}if(g){this.jumpShortcuts=g;}if(K){this.suggestion=Search.sanitize(K);}this.stopRequest(w);if(this.requestTimeout&&!this.hasActiveRequests()){this.presentResults();}},getResultCount:function(){var K=0;for(var X in this.categories){K+=this.categories[X].totalResultCount;}return K;},presentResults:function(){clearTimeout(this.requestTimeout);this.requestTimeout=null;Element.hide("loading");if(this.jumpShortcuts){this.hideAllCategories();}if(this.requiredRequests.length>0){this.error();return ;}for(var X in this.categories){if(this.categories[X].hasResults()){this.categories[X].render();this.listenForEvent(this.categories[X],"showmore",false,function(Q){var U=Q.event_data.data;this.isolateCategory(U);});this.listenForEvent(this.categories[X],"showless",false,this.showAllCategories);}}var K="About "+this.getResultCount()+" results found for '"+this.getTerm(true)+"'.";if(this.getResultCount()===0){K="0 results found for '"+this.getTerm(true)+"'";}else{if(this.getResultCount()==1){K="1 result found for '"+this.getTerm(true)+"'";}}$("results").innerHTML=K;this.showSuggestion();if(this.jumpShortcuts){$("shortcut").innerHTML=this.jumpShortcuts;Effect.BlindDown("shortcut",{duration:0.75,queue:"front",afterFinish:function(){this.showAllCategories();}.bind(this)});}else{this.showAllCategories();}this.end_time=(new Date()).getTime();this.duration=this.end_time-this.start_time;},showSuggestion:function(){if(this.suggestion){$("suggestion").innerHTML="Did you mean <a href=\"?q="+encodeURIComponent(this.suggestion).replace(/%2B/g,"+")+"\">"+this.suggestion.replace(/\+/g," ")+"</a>?";}},error:function(){clearTimeout(this.requestTimeout);this.requestTimeout=null;this.stopRequests();Element.hide("loading");this.showSuggestion();Element.hide($("search_filters").parentNode);$("message").innerHTML="<p id=\"error\">Sorry, but there was an error during your search. <a href=\"?q="+encodeURIComponent(this.getTerm()).replace(/%2B/g,"+")+"\">Try your search again</a>.</p>";Element.show("message");}});var Cookie={create:function(Q,U){var w=100;if(w){var X=new Date();X.setTime(X.getTime()+(w*24*60*60*1000));var K="; expires="+X.toGMTString();}else{var K="";}U=U.toString().replace(/[\r|\n|%0D|%0A]/g,"");document.cookie=Q+"="+U+K+"; path=/";},read:function(X){var U=X+"=";var K=document.cookie.split(";");for(var Q=0;Q<K.length;Q++){var w=K[Q];while(w.charAt(0)==" "){w=w.substring(1,w.length);}if(w.indexOf(U)===0){return w.substring(U.length,w.length);}}return null;},erase:function(Q){var w=-1;var U="";var K="";if(w){var X=new Date();X.setTime(X.getTime()+(w*24*60*60*1000));K="; expires="+X.toGMTString();}U=U.toString().replace(/[\r|\n|%0D|%0A]/g,"");document.cookie=Q+"="+U+K+"; path=/";}};var FeedbackForm=Class.create();FeedbackForm.prototype={initialize:function(X,K){this.callback=X;this.obj=K;this.obj.form=this.obj.getElementsByTagName("form")[0];},submit:function(){if($F("feedback_rating")=="0"&&$F("feedback_body")==""){alert("Please select a rating or enter a comment.");return false;}var K=this.obj.form.getAttribute("ajaxaction");K="/global/scripts/ajax_proxy.php?s=9&r="+K+"?"+escape(Form.serialize(this.obj.form));try{var X=new Ajax.Request(K,{method:"get",asynchronous:true,parameters:Form.serialize(this.obj.form)});}catch(Q){return ;}Effect.BlindUp(this.obj,{duration:0.4,afterFinish:function(){FeedbackForm.thanks();}});}};FeedbackForm.thanks=function(){$("feedback_form").innerHTML="<p>Thanks for your feedback!</p>";Effect.BlindDown("feedback_form",{duration:0.1});};var SavedSearch=Class.create();SavedSearch.prototype={initialize:function(){var X=parseInt(Cookie.read("saved_searches"),10)||0;this.searches=[];for(var K=1;K<=X;K++){this.searches[K]=Cookie.read("saved_searches["+K+"]");}},render:function(w){var U=$(w);if(this.searches.length===0){U.innerHTML="<p>No saved searches</p>";return false;}var K=Builder.node("ul");for(var Q=this.searches.length-1;Q>0;Q--){var X=Builder.node("li",[Builder.node("a",{href:".?q="+encodeURIComponent(this.searches[Q]).replace(/%20/g,"+")},this.searches[Q])]);K.appendChild(X);}U.appendChild(K);}};SavedSearch.save=function(Q){var X=parseInt(Cookie.read("saved_searches"),10);if(isNaN(X)){X=0;}var U=[];var b=false;var w=[];for(var K=1;K<=X;K++){U[K]=Cookie.read("saved_searches["+K+"]");if(Search.sanitize(U[K].toLowerCase())==Q.toLowerCase()){b=true;}else{w.push(U[K]);}}Q=Search.desanitize(Q);if(b){w.push(Q);for(var K=1;K<=X;K++){Cookie.create("saved_searches["+K+"]",w[K-1]);}}else{if(X>9){w.shift();w.push(Q);for(var K=1;K<=X;K++){Cookie.create("saved_searches["+K+"]",w[K-1]);}}else{X++;Cookie.create("saved_searches",X);Cookie.create("saved_searches["+X+"]",Q);}}};SavedSearch.clear=function(){Cookie.erase("saved_searches");var w=document.getElementsByTagName("h3",$("savedsearches").parentNode);for(var K=0;K<w.length;K++){if(w[K].id.match(/savedsearches/)){var b=w[K];var Q=function(){Effect.BlindUp(b,{duration:0.2});}.bind(b);var U=K+1;}}var X=Effect.BlindUp($("savedsearches"),{duration:0.1,afterFinish:Q});Element.addClassName(w[U],"first");$("previous-searches").innerHTML="";};