nspace("kidsCount.search"),function(n){function t(){var n=Backbone.sync;Backbone.sync=function(t,i,r){return i.sync?i.sync(t,i,r):n(t,i,r)}}kidsCount.search.SearchApp=function(){this.router=new kidsCount.search.SearchRouter,t()},function(t){t.initialize=function(){Backbone.history.start()},t.search=function(t,i){(typeof i=="undefined"&&(i=!1),n.trim(t)!=="")&&(i?this.router.query(t):(this.router.navigate("q/"+kidsCount.util.urlEncode(t),!0),n(this).trigger("executing-search",{query:n.trim(t)})))},t.moreResults=function(n,t){this.router.navigate("more/"+n+"/"+kidsCount.util.urlEncode(t),!0)},t.hideResults=function(){this.router.hideResults()}}(kidsCount.search.SearchApp.prototype)}(jQuery),nspace("kidsCount.search"),function(n){kidsCount.search.SearchRouter=Backbone.Router.extend({_searchResults:null,_resultsView:null,initialize:function(){},routes:{"q/:query":"query","more/:type/:query":"moreResults"},query:function(t){var i=this;t=kidsCount.util.urlDecode(t),n(this).trigger("query-start",[t]),this._searchResults||(this._searchResults=new kidsCount.search.models.SearchResults),this._searchResults.set({query:t,resultLimit:kidsCount.search.config.mainResultLimit,types:null,isMore:!1}),this._searchResults.fetch({success:function(){i._resultsView=new kidsCount.search.views.ResultsView({model:i._searchResults}),i._resultsView.render(),n(i).trigger("query-end",[t])},error:function(r,u){u.statusText!=="abort"&&n(i).trigger("query-end",[t])}})},moreResults:function(t,i){var r=this;i=kidsCount.util.urlDecode(i),n(this).trigger("query-start",[i]),this._searchResults||(this._searchResults=new kidsCount.search.models.SearchResults),this._searchResults.set({query:i,resultLimit:0,types:[t],isMore:!0}),this._searchResults.fetch({success:bind(this,function(){r._resultsView=new kidsCount.search.views.ResultsView({model:r._searchResults}),r._resultsView.render(),n(this).trigger("query-end",[i])}),error:function(t,u){u.statusText!=="abort"&&n(r).trigger("query-end",[i])}})},hideResults:function(){this._resultsView&&n(this._resultsView.el).hide()}})}(jQuery),nspace("kidsCount.search.config"),function(){kidsCount.search.config={defaultAjaxParams:{type:"POST",dataType:"json",contentType:"application/json; charset=utf-8"},mainResultLimit:6,quickSearchIconSize:16,quickSearchPlaceholderText:"Enter any location, topic and/or keywords here"}}(jQuery),nspace("kidsCount.search.models"),function(n){kidsCount.search.models.SearchResults=Backbone.Model.extend({pendingRequest:null,initialize:function(){_.bindAll(this)},defaults:{query:"",searchResultGroups:[],resultLimit:kidsCount.search.config.mainResultLimit,types:null},sync:function(t,i,r){var u,o,f,e;if(t!=="read")throw"Only the method 'read' is currently supported by SearchResults";return u=_.extend({},kidsCount.search.config.defaultAjaxParams,r),this.attributes.query=n.trim(this.attributes.query),o=JSON.stringify({resultLimit:this.attributes.resultLimit,query:this.attributes.query,types:this.attributes.types}),u.data=o,u.url="/SearchService/SearchService.asmx/Query",f=this,e=r.success,u.success=function(n){f.set({searchResultGroups:n.d.resultGroups}),f.pendingRequest=null,e&&e(f,n)},this.pendingRequest&&this.pendingRequest.abort(),this.pendingRequest=n.ajax(u)}})}(jQuery),function(n){n(document).ready(function(){function e(){var u=t.offset(),f=u.top+t.outerHeight()+3,r=u.left;r+i.outerWidth()>n(window).width()&&(r-=r+i.outerWidth()-n(window).width()),i.css("top",f+"px").css("left",r+"px")}function o(){var u=n.trim(t.val()),f;u.length<2||(t.trigger("busy"),f=JSON.stringify({resultLimit:2,query:u,types:a}),n.ajax({type:"POST",url:"/SearchService/SearchService.asmx/Query",contentType:"application/json; charset=utf-8",dataType:"json",data:f,success:function(u){var f="/js/search/html/quick-search-results-template.html";n.get(f,function(n){var f=_.template(n,u);i.hide().html(f).fadeIn(200),e(),r=-1,t.trigger("idle")})},error:function(n){console.log(n),t.trigger("idle")}}))}function h(i){i&&n.trim(i).length>0&&i!==t.attr("placeholder")?(c(i),document.location.href="/search/#q/"+escape(i)):t.focus()}function f(){n(".selected",i).removeClass("selected");var t=n(".result",i);r<-1?r=t.length-1:r>=t.length&&(r=-1),n(t[r]).addClass("selected")}function y(n,i){var r={query:n,destination:i};t.trigger("to-search-result",r)}function c(n){var i={query:n};t.trigger("to-main-search",i)}function p(n,i){var r={query:n,destination:i};t.trigger("to-more-results",r)}function l(i){var r=n.trim(t.val());i.hasClass("all-results")?c(r):i.hasClass("more")?p(r,i.attr("href")):y(r,{url:i.attr("href"),text:n.trim(i.text())})}var r=-1,a=["indicators","locations","topics","publications"],t,i;if(n("#quick-search-box").length!==0){t=n("#quick-search-box").searchbox({iconSize:kidsCount.search.config.quickSearchIconSize,placeholderText:kidsCount.search.config.quickSearchPlaceholderText,iconSize:n("#quick-search-box").attr("data-icon-size")||"default",disableAutocomplete:!0}),i=n("<div/>").addClass("quick-search-results").css("width",t.outerWidth()).hide().appendTo("body");var u=null,v=300,s=null;t.bind("keyup change",function(){var r=n.trim(t.val());r!==s&&((r.length===0&&i.hide(),r.length<2)||(u&&clearTimeout(u),u=setTimeout(function(){s=t.val(),o()},v)))}),t.keydown(function(u){var e,o,s;if(u.keyCode===13)return r>-1?(e=n(".result",i),o=e[r].href,l(n(e[r])),document.location.href=o):h(t.val()),i.hide(),u.preventDefault(),!1;u.keyCode===40||u.keyCode===38?(u.keyCode===40?r++:r--,f(),u.preventDefault(),u.stopPropagation(),e=n(".result",i),s=e[r],velir.util.DomUtil.scrollElementIntoView(s,n("body")[0],30)):u.keyCode===27&&i.hide()}),t.focusin(function(){n.trim(t.val()).length>0&&t.val()!==t.attr("placeholder")&&(i.html().length>0?i.fadeIn(200):o())}),n("body").live("focus click",function(r){!i.is(":visible")||r.target===t[0]||n(r.target).closest("#quick-search").length>0||n(r.target).closest(".quick-search-results").length===0&&i.hide()}),i.delegate(".result","mouseenter",function(t){r=n(".result",i).index(t.target),f()}),i.delegate(".result","mouseleave",function(){r=-1,f()}),i.delegate(".result","click",function(){i.hide()}),n(window).resize(function(){e()}),n("#quick-search-button").click(function(n){i.hide(),h(t.val()),n.preventDefault()}),i.delegate(".result","click",function(){l(n(this))})}})}(jQuery),function(n){n(document).ready(function(){var i=new kidsCount.search.SearchApp,t;if(n("#search-box").length!==0){t=n("#search-box"),t.searchbox({iconSize:24}),n(i.router).bind("query-start",function(i,r){n.trim(t.val())!==r&&t.val(r),t.trigger("busy")}),n(i.router).bind("query-end",function(){t.trigger("idle")}),t.keypress(function(n){if(n.keyCode===13)return i.search(t.val()),n.preventDefault(),!1});var r=null,f=300,u=null;t.bind("keyup change",function(){var e=n.trim(t.val());if(e.length===0){i.hideResults(),r&&clearTimeout(r);return}if(e!==u){if(e.length<2){r&&clearTimeout(r);return}r&&clearTimeout(r),r=setTimeout(function(){u=n.trim(t.val()),i.search(u,!0)},f)}}),n("#search-button").click(function(n){try{if(t.val()===t.attr("placeholder"))return;i.search(t.val())}finally{n.preventDefault()}}),n("#results").delegate(".more-results-button","click",function(r){try{i.moreResults(n(this).data("type"),t.val())}finally{r.preventDefault()}}),n("#results").delegate(".less-results-button","click",function(n){try{i.search(t.val())}finally{n.preventDefault()}}),n("#results").delegate(".result","click",function(){var i={query:n.trim(t.val()),destination:{url:this.href,text:n.trim(n(this).text())}};t.trigger("to-search-result",i)}),n(i).bind("executing-search",function(n,i){t.trigger("executing-search",i)}),i.initialize()}})}(jQuery),nspace("kidsCount.search.views"),function(n){kidsCount.search.views.ResultsView=Backbone.View.extend({el:"#results",templateFile:"/js/search/html/search-results-template.html",initialize:function(){_.bindAll(this)},render:function(){function i(i){t.empty(),n("<div/>").addClass("message").text(i).appendTo(t)}var r=this,t=n(this.el);if(this.model){if(this.model.attributes.searchResultGroups.length===0)return i('No results were found for "'+this.model.attributes.query+'"'),this}else return i("No results"),this;return n.get(this.templateFile,function(n){var i=_.template(n,r.model);t.hide().html(i).fadeIn(200)}),this}})}(jQuery)