(function(n){var t=nspace("velir.forms");n.fn.searchbox=function(i){var f=this,r,u,h;typeof i.iconSize=="undefined"&&(i.iconSize=16),r={iconsClass:"search-box-icons",iconsSizeClass:"search-box-icons-"+i.iconSize,xClass:"search-box-x-"+i.iconSize,magnifierClass:"search-box-magnifier-"+i.iconSize,spinnerClass:"search-box-spinner-"+i.iconSize,placeholderText:"",disableAutocomplete:!1},typeof i!="undefined"&&n.extend(r,i),u=n("<span/>").addClass(r.xClass).click(function(){f.val("").focus(),f.trigger("change"),n(this).hide()}),n.trim(this.val()).length===0&&u.hide();var c=n("<span/>").addClass(r.magnifierClass).click(function(){n(this).prevAll("input").focus()}),e=n("<span/>").addClass(r.spinnerClass).hide(),o=!1,s=this.outerWidth();return this.data("width",s),h=n("<span/>").addClass(r.iconsSizeClass).addClass(r.iconsClass),r.placeholderText.length>0&&(this.attr("placeholder",r.placeholderText),this.placeholder&&this.placeholder()),r.disableAutocomplete&&this.attr("autocomplete","off"),navigator.appName=="Microsoft Internet Explorer"&&t.GhostText.apply(f,f.val()),this.bind("busy",function(){u.hide(),e.show(),o=!0}).bind("idle",function(){e.hide(),u.show(),o=!1}).bind("keyup change",function(){o||(n(this).val().length>0?u.show():u.hide())}).wrap(h).css("padding-left",i.iconSize+Math.round(i.iconSize/4)+"px").css("padding-right",i.iconSize+Math.round(i.iconSize/4)+"px").outerWidth(s).after(e).after(u).after(c),h.outerWidth(s),this}})(jQuery),nspace("kd.searchUtil"),function(){kd.searchUtil.urlEncode=function(n){return escape(n).replace(/%20/g,"+")},kd.searchUtil.urlDecode=function(n){return n=n.replace(/\+/g,"%20"),unescape(n)}}(jQuery),nspace("kd.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)}}kd.search.SearchApp=function(){this.router=new kd.search.SearchRouter,t()},function(t){t.initialize=function(){n("#search-box").length>0&&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/"+kd.searchUtil.urlEncode(t),!0),n(this).trigger("executing-search",{query:n.trim(t)})))},t.moreResults=function(n,t){this.router.navigate("/more/"+n+"/"+kd.searchUtil.urlEncode(t),!0)},t.hideResults=function(){this.router.hideResults()}}(kd.search.SearchApp.prototype)}(jQuery),nspace("kd.search"),function(n){kd.search.SearchRouter=Backbone.Router.extend({_searchResultsModel:null,_resultsView:null,routes:{"q/:query":"query","more/:type/:query":"moreResults"},initialize:function(){this._searchResultsModel=new kd.search.models.SearchResults,this._resultsView=new kd.search.views.ResultsView({model:this._searchResultsModel})},query:function(t){var i=this;t=kd.searchUtil.urlDecode(t),n(this).trigger("query-start",[t]),this._searchResultsModel.set({query:t,resultLimit:kd.search.config.mainResultLimit,types:null,isMore:!1}),this._searchResultsModel.fetch({success:function(){i._resultsView.render(),n(i).trigger("query-end",[t])},error:function(r,u){u!=="abort"&&n(i).trigger("query-end",[t])}})},moreResults:function(t,i){var r=this;i=kd.searchUtil.urlDecode(i),n(this).trigger("query-start",[i]),this._searchResultsModel.set({query:i,resultLimit:0,types:[t],isMore:!0}),this._searchResultsModel.fetch({success:function(){r._resultsView.render(),n(r).trigger("query-end",[i])},error:function(t,u){u!=="abort"&&n(r).trigger("query-end",[i])}})},hideResults:function(){this._resultsView&&n(this._resultsView.el).hide()}})}(jQuery),nspace("kd.search.config"),function(){kd.search.config={defaultAjaxParams:{type:"POST",dataType:"json",contentType:"application/json; charset=utf-8"},mainResultLimit:6,quickSearchIconSize:16,quickSearchPlaceholderText:"Enter a location and/or a topic",quickSearchPlaceholderTextLong:"Enter a location and/or a topic, e.g. “Los Angeles foster care”"}}(jQuery),nspace("kd.search.models"),function(n){kd.search.models.SearchResults=Backbone.Model.extend({pendingRequest:null,initialize:function(){_.bindAll(this)},defaults:{query:"",resultGroups:[],resultLimit:kd.search.config.mainResultLimit,types:null},sync:function(t,i,r){var u,f,e;if(t!=="read")throw"Only the method 'read' is currently supported by SearchResults";return u=_.extend({},kd.search.config.defaultAjaxParams,r),this.attributes.query=n.trim(this.attributes.query),u.url="/api/searchdata/query?query="+kd.searchUtil.urlEncode(this.attributes.query)+"&resultLimit="+this.attributes.resultLimit+"&types="+this.attributes.types,f=this,e=r.success,u.success=function(n){f.set({resultGroups:n.resultGroups}),f.pendingRequest=null,e&&e(f,n)},this.pendingRequest&&this.pendingRequest.abort(),this.pendingRequest=n.ajax(u),this.pendingRequest}})}(jQuery),function(n){n(document).ready(function(){function h(){var u=t.offset(),f=u.top+t.outerHeight()+5,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 c(){var f=n.trim(t.val()),e,s;f.length<2||(u&&u.state()==="pending"&&u.abort(),t.trigger("busy"),e=2,s="/api/searchdata/query?query="+kd.searchUtil.urlEncode(f)+"&resultLimit="+e+"&types="+w,u=n.ajax({type:"POST",url:s,contentType:"application/json; charset=utf-8",dataType:"json",success:function(n){p.done(function(){var u=_.template(o,n);i.hide().html(u).fadeIn(200),h(),r=-1,t.trigger("idle")})},error:function(n){n.statusText!=="abort"&&console.log(n),t.trigger("idle")}}))}function a(i){i&&n.trim(i).length>0&&i!==t.attr("placeholder")?(v(i),document.location.href="/search/#/q/"+kd.searchUtil.urlEncode(i)):t.focus()}function e(){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 b(n,i){var r={query:n,destination:i};t.trigger("to-search-result",r)}function v(n){var i={query:n};t.trigger("to-main-search",i)}function k(n,i){var r={query:n,destination:i};t.trigger("to-more-results",r)}function y(i){var r=n.trim(t.val());i.hasClass("all-results")?v(r):i.hasClass("more")?k(r,i.attr("href")):b(r,{url:i.attr("href"),text:n.trim(i.text())})}var o,p=n.get("/js/kidsdata/search/html/quick-search-results-template.html",function(n){o=n}),u,r=-1,w=["atoz","demographics","indicators","regions","best","research","topics"],t=n("#quick-search-box"),s,i,l,f;if(t.length!==0){s=t.hasClass("home-search")?kd.search.config.quickSearchPlaceholderTextLong:kd.search.config.quickSearchPlaceholderText,t.searchbox({iconSize:kd.search.config.quickSearchIconSize,placeholderText:s,iconSize:n("#quick-search-box").attr("data-icon-size")||"default",disableAutocomplete:!0}),i=n("<div/>").addClass("quick-search-results").css("width",t.data("width")).hide().appendTo("body"),l=300,f=null,t.bind("keyup change",_.debounce(function(){var r=n.trim(t.val());r!==f&&((r.length===0&&i.hide(),r.length<2)||(f=t.val(),c()))},l)),t.keydown(function(u){var f,o,s;if(u.keyCode===13)return r>-1?(f=n(".result",i),o=f[r].href,y(n(f[r])),document.location.href=o):a(t.val()),i.hide(),u.preventDefault(),!1;u.keyCode===40||u.keyCode===38?(u.keyCode===40?r++:r--,e(),u.preventDefault(),u.stopPropagation(),f=n(".result",i),s=f[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):c())});n("body").on("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),e()}),i.delegate(".result","mouseleave",function(){r=-1,e()}),i.delegate(".result","click",function(){i.hide()}),n(window).resize(function(){h()}),n(".button-search").click(function(n){i.hide(),a(t.val()),n.preventDefault()}),i.delegate(".result","click",function(){y(n(this))})}})}(jQuery),function(n){n(document).ready(function(){var i=new kd.search.SearchApp,t=n("#search-box"),u,r;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}),u=300,r=null,t.bind("keyup change",_.debounce(function(){var u=n.trim(t.val());if(u.length===0){i.hideResults();return}u!==r&&(u.length<2||(r=n.trim(t.val()),i.search(r)))},u)),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),function(n){n(document).ready(function(){function e(){var u=t.offset(),f=u.top+t.outerHeight()+5,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,o;u.length<2||(t.trigger("busy"),f=parseInt(t.data("limit"))||"6",o="/api/searchdata/query?query="+kd.searchUtil.urlEncode(u)+"&resultLimit="+f+"&types="+a,n.ajax({type:"POST",url:o,contentType:"application/json; charset=utf-8",dataType:"json",success:function(u){n.get("/js/kidsdata/search/html/quick-search-results-template.html",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/"+kd.searchUtil.urlEncode(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,t=n("#single-search-box"),a=t.data("types"),i;if(t.length!==0){t.searchbox({iconSize:kd.search.config.quickSearchIconSize,placeholderText:kd.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.data("width")).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").on("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),nspace("kd.search.views"),function(n){function t(n,t,i){while(n.indexOf(t)>-1)n=n.replace(t,i);return n}kd.search.views.ResultsView=Backbone.View.extend({el:"#results",templateFile:"/js/kidsdata/search/html/search-results-template.html",initialize:function(){var t=this;this.$templateDeferred=n.get(this.templateFile,function(n){t.templateHtml=n}),_.bindAll(this)},render:function(){function f(t){r.empty(),n("<div/>").addClass("message").text(t).appendTo(r)}var u=this,r=n(this.el),i;if(this.model){if(this.model.attributes.resultGroups.length===0)return i=t(this.model.attributes.query,"\\\\","//"),i=t(t(i,"\\",""),"//","\\"),f('No results were found for "'+i+'"'),this}else return f("No results"),this;return this.$templateDeferred.done(function(){var n=_.template(u.templateHtml,u.model);r.hide().html(n).fadeIn(200)}),this}})}(jQuery)