var iTunesGeoMap={caen:"CA",cafr:"CA",uk:"GB",chde:"CH",chfr:"CH",befr:"BE",benl:"BE"};
var domTriggers={sidebar:function(c){h3s=c.select("h3");for(var b=0;b<h3s.length;
b++){h3=h3s[b];var d=h3.identify();if(d.match(/-header$/)){var a=$(d.replace(/-header$/,""));
if(a){h3.onclick=function(){var e=$(this.identify().replace(/-header$/,""));Element.hasClassName(this,"collapsed")?Effect.BlindDown(e,{duration:0.2}):Effect.BlindUp(e,{duration:0.2});
Element.hasClassName(this,"collapsed")?Element.removeClassName(this,"collapsed"):Element.addClassName(this,"collapsed")
}}}}},"clear-searches":function(a){a.onclick=function(){SavedSearch.clear();return false
}}};var CategoryTrigger=Class.create();Object.extend(CategoryTrigger.prototype,Event.Listener);
Object.extend(CategoryTrigger.prototype,{initialize:function(a,c,b){this.trigger=$(a);
if(!this.trigger){return}this.category=c;this.env=b;Event.observe(a,"click",function(d){Event.stop(d);
this.select()}.bindAsEventListener(this));if(this.category){this.listenForEvent(this.category,"showmore",false,this.indicateSelected)
}else{this.listenForEvent(this.env._searchApp,"showall",false,this.indicateSelected)
}},select:function(){if(this.env.currentTrigger==this){return}if(this.category){this.env._searchApp.isolateCategory(this.category)
}else{this.env._searchApp.showAllCategories()}this.indicateSelected()},indicateSelected:function(){if(this.env.currentTrigger!=this){Element.addClassName(this.trigger,"selected");
this.env.currentTrigger.deselect();this.env.currentTrigger=this}},deselect:function(){Element.removeClassName(this.trigger,"selected")
}});var SearchEnvironment=Class.create();Object.extend(SearchEnvironment.prototype,{_term:null,triggers:null,currentTrigger:null,_searchApp:null,_geo:null,_country:null,initialize:function(a){this._categoryIds=a;
this.triggers=[];(new SavedSearch()).render("previous-searches");this._localize();
var b=window.location.search.toQueryParams()["q"];if(b){Element.removeClassName($("loadingPanel"),"ACHidden");
this.run(b)}else{Element.removeClassName($("enterSearchTerm"),"ACHidden");Element.addClassName($("loadingPanel"),"ACHidden")
}this._searchButton=$("barsearchappleButton");if(this._searchButton){Event.observe(this._searchButton,"click",function(c){var d=$("barsearchapple");
window.location=window.location.protocol+"//"+window.location.host+window.location.pathname+"?q="+d.value;
Event.stop(c)})}},_localize:function(){this._geo="us";var a=document.getElementsByTagName("html")[0],d=a.getAttribute("lang"),b,e,c;
if(d){b=d.split("-");e=b[0];this.setLanguage(e);if(b.length>1){c=b[1];this.setGeo(c)
}}else{if(typeof(searchCountry)!="undefined"&&searchCountry){this.setGeo(searchCountry)
}}},setLanguage:function(a){this._language=a},language:function(){return this._language
},country:function(){return this._country},geo:function(){return this._geo},setGeo:function(a){a=a.toLowerCase();
if(a==="gb"){a="uk"}a=a.replace(/_/,"");this._geo=a;if(iTunesGeoMap[this._geo]){this._country=iTunesGeoMap[this._geo]
}else{this._country=this._geo.toUpperCase()}},categories:function(b){var a={},c;
if(this._categoryIds.indexOf("www")>-1){a.www=new Search.WWWCategory("www","www",{scope:"products",requestUrl:b,language:this._language,country:this._country,viewMoreLinkId:"moresearchtools-www",noResultElementId:"www-no-results"});
c=$("www-trigger");if(c){this._addTrigger("products-trigger",a.products)}}if(this._categoryIds.indexOf("featuredWWW")>-1){a.featuredWWW=new Search.FeaturedWWWCategory("featuredWWW","featuredWWW",{requestUrl:b,language:this._language,country:this._country,viewMoreLinkId:"more-FeaturedWWW"});
c=$("www-trigger");if(c){this._addTrigger("products-trigger",a.products)}}if(this._categoryIds.indexOf("support")>-1){a.support=new Search.SupportCategory("Support","support",{scope:"support",requestUrl:b,language:this._language,country:this._country,viewMoreLinkId:"moresearchtools-support",noResultElementId:"support-no-results"});
a.support.term=this._term;c=$("support-trigger");if(c){this._addTrigger("support-trigger",a.support)
}}if(this._categoryIds.indexOf("store")>-1){a.store=new Search.StoreCategory("The Apple Store","store",{language:this._language,country:this._country,viewMoreLinkId:"moresearchtools-store",noResultElementId:"store-no-results"});
a.store.term=this._term;c=$("store-trigger");if(c){this._addTrigger("store-trigger",a.store)
}}if(this._categoryIds.indexOf("itunes")>-1){a.itunes=new Search.iTunesCategory("iTunes","itunes",{language:this._language,country:this._country,viewMoreLinkId:"moresearchtools-itunes",noResultElementId:"itunes-no-results"});
a.itunes.term=this._term;c=$("itunes-trigger");if(c){this._addTrigger("itunes-trigger",a.itunes)
}}return a},run:function(c){this._term=Search.sanitize(c);var d="?site="+this.geo()+"_www&filter=1&snum=50&q="+this._term;
var b=null;b=this.categories(d);this._searchApp=new Search.Application(b,this);
this._scheduleFullRequest(d);this._scheduleFeaturedFullRequest();this._scheduleiTunesRequest();
this._scheduleStoreRequest();domHandlers(domTriggers);this._addTrigger("all-categories-trigger",null);
this.currentTrigger=this.triggers[0];this._searchApp.search(this._term);if(this._term){var a=$("barsearchapple");
a.value=this._searchApp.getTerm(true).replace(/&lt;/g,"<").replace(/&gt;/g,">");
a.focus();a.blur()}},_addTrigger:function(b,a){this.triggers.push(new CategoryTrigger(b,a,this))
},_scheduleFullRequest:function(a){var b=new Search.FullSearchRequest(a,{onSuccess:this._searchApp.acknowledgeResponse.bind(this._searchApp),onFailure:this._searchApp.error.bind(this._searchApp)});
this._addRequiredRequest(b)},_scheduleFeaturedFullRequest:function(a){var b=new Search.FeaturedSearchRequest(a,{country:this.country(),term:this._term,onSuccess:this._searchApp.acknowledgeResponse.bind(this._searchApp),onFailure:this._searchApp.error.bind(this._searchApp)});
this._addRequiredRequest(b)},_scheduleiTunesRequest:function(){var a=new Search.iTunesSearchRequest("?media=all&country="+this.country()+"&limit=100&term="+this._term,{onSuccess:this._searchApp.acknowledgeResponse.bind(this._searchApp)});
this._addOptionalRequest(a)},_scheduleStoreRequest:function(){var a=new Search.aosSearchRequest("?limit=10&term="+this._term,this.country(),{onSuccess:this._searchApp.acknowledgeResponse.bind(this._searchApp)});
this._addOptionalRequest(a)},_addOptionalRequest:function(a){this._searchApp.optionalRequests.push(a)
},_addRequiredRequest:function(a){this._searchApp.requiredRequests.push(a)}});Event.onDOMReady(function(){var a=new SearchEnvironment(["www","featuredWWW","support","store","itunes"]);
domHandlers(domTriggers)});function domHandlers(a){for(property in a){if($(property)){a[property]($(property))
}}};
