var Search={};
Search.Model=(function(){var A=null;
var H=null;
var G=0;
var B=null;
var I=null;
var E=null;
var M=null;
var D=1;
var N=null;
var J=null;
var C="search_term";
var L=[];
function K(O){$.get(encodeURI(DataSwitch.addLmParam(N)),function(P,Q){H=P;
L.push({search_value:A,search_doc_id:B,search_sort:E,search_type:M,results_page:D,search_url:N})
});
if(typeof O=="function"){O.call(this)
}}function F(){var O=jQuery.url.param(C);
if(typeof O!="undefined"){Search.View.isDefaultValue=false;
var P=setInterval(function(){if(Drawer.View.firstTabLoaded==true){clearInterval(P);
setTimeout(function(){Search.Controller.search(O)
},100)
}},300)
}}return{searchContainer:"#searchResults",drawerSearch:"#drawer_search",searchForms:"form.search_form",searchBoxes:"input[name='search_box']",searchTermSpan:"span.search_term",searchSubmits:"div.search_submit",searchResultsContainer:"#search_results_container",searchResultCount:".search_result_count",advancedOptions:"#advanced_options",advancedOptionsLink:"#advanced_options_link a",paginationLinks:"a.pagination_link",submitButtonNavbar:"#navbar_search_submit",init:function(){setTimeout(function(){F()
},500)
},getSearchValue:function(){return A
},setSearchValue:function(O){if(Search.View.isDefaultValue===false){A=O
}},setSearchUrl:function(){value=this.getSearchValue();
if(value){N=location.pathname+"/Search.action?search="+value;
B=$("#doc_id").val();
if(B){N=N+"&doc_id="+B
}I=parseInt($("#per_page").val());
if(!isNaN(I)){N=N+"&per_page="+parseInt(I)
}searchSort=$("#search_sort").val();
if(searchSort){N=N+"&search_sort="+searchSort
}searchType=$("#search_type").val();
if(searchType){N=N+"&search_type="+searchType
}N=((I*this.getResultsPage())<(G+I))?N+"&results_page="+D:N+"&results_page=1";
searchCollectionRef=$("input[name=collection_ref]").val();
if(searchCollectionRef){N=N+"&collection_ref="+searchCollectionRef
}if(L.length==0||N!=L[L.length-1]["search_url"]){A=value;
return true
}}return false
},sendSearchRequest:function(O){H=K(O)
},getResultsPage:function(){return D
},setResultsPage:function(O){advanced_option_change=true;
D=new Number(O)
},getSearchResults:function(){return H
},getSearchResultCount:function(){return G
},setSearchResultCount:function(O){G=parseInt(O)
},getSearchResultsContainer:function(){return $(this.searchResultsContainer,this.searchContainer)
}}
})();
Search.View=(function(){var A=Search.Model;
var D=Drawer.Model;
function C(){$(A.searchBoxes).unbind("focus").bind("focus",function(){if(A.getSearchValue()==""||Search.View.isDefaultValue===true){$(this).val("")
}}).unbind("blur").bind("blur",function(){val=$(this).val();
if(Search.View.isDefaultValue===false&&val!=""){A.setSearchValue(val)
}else{var H=A.getSearchValue();
if(H){$(this).val(H)
}else{$(this).val("search")
}Search.View.isDefaultValue=true
}}).unbind("keydown").bind("keydown",function(){if(Search.View.isDefaultValue===true){Search.View.isDefaultValue=false
}});
$(A.searchForms).unbind("submit").submit(function(H){H.preventDefault();
H.stopPropagation();
Search.View.submitBehavior($(this))
});
$(A.searchSubmits).unbind("click").bind("click",function(){var H=$(this).parents("form.search_form",A.searchContainer);
Search.View.submitBehavior(H)
});
$(A.submitButtonNavbar).hover(function(){var H=$(this).attr("src");
if(H.lastIndexOf("_on")==-1){$(this).attr("src",H.replace("_off.gif","_on.gif"))
}},function(){var H=$(this).attr("src");
if(H.lastIndexOf("_on")!=-1){$(this).attr("src",H.replace("_on.gif","_off.gif"))
}})
}function B(){$(A.paginationLinks,A.searchContainer).unbind("click").click(function(H){H.preventDefault();
Search.Model.setResultsPage($(this).attr("id").replace("resultsPage",""));
Search.Controller.search(A.getSearchValue())
})
}function F(){if($("#toggle_thumbnails",A.searchContainer).attr("checked")){$(A.searchResultsContainer).addClass("hidden_thumbnails")
}$("#toggle_thumbnails",A.searchContainer).unbind("click").click(function(H){$("#toggle_thumbnails",A.searchContainer).attr("disabled","true");
$(A.searchResultsContainer).toggleClass("hidden_thumbnails");
$("#toggle_thumbnails",A.searchContainer).removeAttr("disabled")
})
}function E(){$(A.advancedOptionsLink,A.searchContainer).unbind("click").bind("click",function(H){H.preventDefault();
$(this).toggleClass("selected");
$(A.advancedOptions,A.searchContainer).slideToggle(function(){Search.View.removeScrolling();
Search.View.initScrolling()
})
})
}function G(){$("a",$("#search_data_scroll")).unbind("click").click(function(){var H=$(this).attr("href");
if(typeof H!="undefined"&&H!=""){if(H.lastIndexOf(location.pathname)!=-1){PageController.addChangePageCallback("Drawer.View.adjustWidth(Constants.closedDrawer);");
var I;
var J="pg=";
if(Offline.isOffline()){J="#pg"
}I=H.substr(H.lastIndexOf(J)+3);
PageController.handleGoToPage(I)
}else{if(Offline.isOffline()){return true
}else{document.location.href=H+"&search_term="+A.getSearchValue()
}}}return false
})
}return{isDefaultValue:true,init:function(){$("div.scrollable").scrollable();
C();
F();
B();
E();
G()
},populateSearchResults:function(){var H=setInterval(function(){if(typeof A.getSearchResults()!="undefined"){clearInterval(H);
A.getSearchResultsContainer().html(A.getSearchResults());
A.getSearchResultsContainer().removeClass("has_scroller");
Search.View.updateSearchMeta();
var I=setInterval(function(){if($("ol",$("#searchResults")).length){clearInterval(I);
Search.View.initScrolling();
Search.View.init()
}},49);
if(PageModel.documentContainerDiv.is(".zoomed")){PageModel.getSearchHighlights(Search.Model.getSearchValue(),PageModel.getZoomInLevel())
}else{PageModel.getSearchHighlights(Search.Model.getSearchValue(),PageModel.getZoomLevel())
}}},100)
},activateSearchPanel:function(){PageElements.tabs[0].tabs("select","searchResults")
},updateSearchMeta:function(){$(A.searchBoxes).val(A.getSearchValue())
},submitBehavior:function(H){Search.Controller.search($(A.searchBoxes,H).val());
$("#jqContextMenu").next().hide().end().hide();
return false
},startSearch:function(){$(A.getSearchResultsContainer()).html("").removeClass("has_scroller");
$("#busy").show()
},endSearch:function(){$("#busy").hide();
Tracker.trackPage({pageName:document.location.protocol+"//"+document.location.host+location.pathname+"?t=Search&search="+Search.Model.getSearchValue()})
},removeScrolling:function(){if(typeof Scroller.scrollers.search_data_scroll!="undefined"){Scroller.scrollers.search_data_scroll.destroy()
}else{if(typeof Scroller.scrollers.searchResults!="undefined"){Scroller.scrollers.searchResults.destroy()
}}},getHighlightHtml:function(J,I){var H='<div class="highlights" pg="'+J+'">';
$.each(I,function(){H+='<div align="left" class="pageHighlight" style="width: '+this.w+"px;";
H+="height:"+this.h+"px;";
H+="left:"+this.x+"px;";
H+="top:"+this.y+'px;"></div>'
});
H+="</div>";
return H
},initScrolling:function(){if(Drawer.View.resize_in_progress==true){var H=setInterval(function(){if(Drawer.View.resize_in_progress==false){clearInterval(H);
this.removeScrolling();
setTimeout(function(){ViewHelper.makeScrollable($("#search_data_scroll"))
},0)
}},50)
}else{this.removeScrolling();
setTimeout(function(){ViewHelper.makeScrollable($("#search_data_scroll"))
},0)
}}}
})();
Search.Controller=(function(){var A=Search.Model;
var B=Search.View;
function D(G,E){var F=Offline.getSearchResults(G,E);
C(F)
}function C(F){$("#search_pagination").remove();
Search.Model.setSearchResultCount(F.length);
if(F.length==0){$("#search_result_count").text("");
$("#search_data_scroll").html("");
var G=document.createElement("p");
G.setAttribute("id","default_search_text");
G.appendChild(document.createTextNode(DocumentProperties.getLanguageText().search.results.no_results));
$("#search_data_scroll").append(G)
}else{var H;
if(F.length==1){H="1 "+DocumentProperties.getLanguageText().search.results.total_singular
}else{H=""+F.length+DocumentProperties.getLanguageText().search.results.total_plural
}$("#search_result_count").text(H);
$("#search_data_scroll").html("");
var E=document.createElement("ol");
$("#search_data_scroll").append(E);
$.each(F,function(K,I){var L=document.createElement("li");
var J='<a href="'+Offline.getDocumentPageUrl(I.documentUrl,I.pageNumber,I.pageMode,I.zoomLevel,I.u1)+'">';
if(Offline.isOffline()){$("#toggle_thumbnails").hide()
}else{J+='<img border="0" src="'+DocumentProperties.getStaticDomain()+I.thumbnail+'"/>'
}J+='<span class="search_result_number">'+(K+1)+")</span>";
J+=I.title;
J+="</a><br/>";
J+="Terms Matched: "+I.termMatch+" Matches: "+I.matchCount+"<br/>";
J+=I.snippet;
L.innerHTML=J;
E.appendChild(L)
})
}Search.View.initScrolling();
Search.View.init();
Search.View.updateSearchMeta()
}return{init:function(){A.init();
B.init()
},search:function(E){A.setSearchValue(E);
if(Offline.isOffline()){D(E,true);
if($("#searchresults_tab a").hasClass("ui-tabs-selected")===false){B.activateSearchPanel()
}if(PageModel.documentContainerDiv.is(".zoomed")){PageModel.getSearchHighlights(Search.Model.getSearchValue(),PageModel.getZoomInLevel())
}else{PageModel.getSearchHighlights(Search.Model.getSearchValue(),PageModel.getZoomLevel())
}}else{if(A.setSearchUrl()){B.startSearch();
A.sendSearchRequest(Search.Controller.updateView)
}else{if($("#searchresults_tab a").hasClass("ui-tabs-selected")===false){B.activateSearchPanel()
}}}},updateView:function(){if(Drawer.View.open_tab&&"#"+$(Drawer.View.open_tab.panel).attr("id")==A.searchContainer&&Drawer.View.getCurrentSize()==Constants.fullDrawer){B.endSearch();
B.populateSearchResults()
}else{B.activateSearchPanel();
var E=setInterval(function(){if(Drawer.View.resize_in_progress==false&&$(Drawer.View.open_tab.panel).is(":visible")){clearInterval(E);
B.endSearch();
B.populateSearchResults()
}},100)
}}}
})();
function SearchResult(B){this.documentUrl=B.field(0);
this.zoomLevel=B.field(1);
this.pageMode=B.field(2);
this.u1=B.field(8);
this.pageNumber=B.field(3);
this.title=B.field(4);
this.thumbnail=B.field(5);
this.snippet=B.field(6);
var D=B.field(7).split(" ");
var C=[];
for(var A=1;
A<D.length;
A+=4){if(jQuery.inArray(D[A],C)==-1){C.push(D[A])
}}this.termMatch=C.length;
this.matchCount=D.length/4;
this.toString=function(){return this.documentUrl+" | "+this.zoomLevel+" | "+this.pageMode+" | "+this.pageNumber+" | "+this.title+" | "+this.snippet+" | "+this.termMatch+" | "+this.matchCount
}
};