function DetailViewModel(n,t,i){dtl={CaseInfo:Case(t.CaseInfo),CourtInfo:i.observableArray(Court(t.CourtInfo)),Inmate:n,inmateDetail:i.observable(n.BookingNo),showInmateDetail:i.observable(!0),headers:[{title:"Case #",sortKey:"CaseNo",dir:""},{title:"Court Date",sortKey:"CourtDate",dir:""},{title:"Court Location",sortKey:"CourtLocation",dir:""},{title:"Court Room",sortKey:"CourtRoom",dir:""},{title:"Court Time",sortKey:"CourtTime",dir:""},{title:"Court Status",sortKey:"CourtStatus",dir:""},{title:"Bond",sortKey:"BondAmount",dir:""},{title:"Holding Agency",sortKey:"HoldingAgency",dir:""}],Sort:function(n,t){SortColumn(dtl.CourtInfo,n,t)},VineRegistration:function(n){var i="http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=6000&agency=60&offenderID="+n.Inmate.BookingNo.replace("-","");window.open(i)}},i.applyBindings(dtl,document.getElementById("DetailsPage"))}function LaunchDetailPage(n,t){lst.loadingMsg("Loading Booking: "+n.BookingNo),lst.showList(!1),lst.loading(!0),$.ajax({url:window.location+"/Case/Detail",success:function(i){$.ajax({url:window.location+"/api/CaseAPI",data:{BookingNo:n.BookingNo},contentType:"application/json; charset=utf-8",dataType:"json",cache:!1,success:function(r){$("#Content").html(i),$(".breadcrumb li").last().removeClass("active").html('<a id="SearchCrumb">Search</a>'),$(".breadcrumb").append('<li class="active">Booking#: '+n.BookingNo+"</li>"),DetailViewModel(n,r,t),lst.loading(!1)},error:function(n){alert(n.responseText)}})}})}function Case(n){var t=[];return $(n).each(function(n,i){t.push({OffenseCode:i.OFFENSE_CODE,OffenseType:i.OFFENSE_DESCRIPTION,CaseNo:i.CASE_NUMBER})}),t}function Court(n){var t=[];return $(n).each(function(n,i){t.push({CaseNo:i.CASE_NUMBER,CourtDate:i.LAST_NEXT_COURT_DATE,CourtLocation:i.COURT,CourtRoom:i.LAST_NEXT_COURT_ROOM,CourtTime:i.COURT_TIME,CourtStatus:i.CASE_STATUS,BondAmount:i.BOND,HoldingAgency:i.HOLDING_AGENCY})}),t}function SetBreadCrumbInfo(){var n=$(".breadcrumb li").last().text();n!="Search"&&(dtl.showInmateDetail(!1),$(".breadcrumb li").last().remove(),$(".breadcrumb li").last().addClass("active").html("Search"))}function Search(n){function t(){var n=[],t;$.each($("#SearchBox").val().split(","),function(t,i){n.push($.trim(i))}),t={SearchStr:n,Facility:$("#SelectFacility").val()},$.ajax({url:window.location+"/api/InmateAPI",data:t,contentType:"application/json; charset=utf-8",dataType:"json",cache:!1,success:function(n){$("#Content").show(),lst.SearchResults.removeAll(),PopulateTable(n)},error:function(n){alert(n.responseText)}})}lst.showList(!1),$("#DetailsPage").hide();var i=$("#SearchBox").val().trim();$("#SearchBox").blur(),i.length==0?(lst.hasErrors(!0),lst.errorMsg("Search must contain at least one character"),SetBreadCrumbInfo()):(SetBreadCrumbInfo(),lst.loadingMsg("Retrieving data containing: "+$("#SearchBox").val()+" ......."),lst.loading(!0),$("#Content").hide(),$("#InmateSearchTable").length==0?$.ajax({url:window.location+"/Inmate/List",data:"{}",cache:!1,success:function(i){$("#Content").html(i),n.cleanNode($("#Content")[0]),n.applyBindings(lst,$("#Content")[0]),t()}}):t())}function ListViewModel(n){lst={ShowRange:10,start:0,end:10,selectedPage:n.observable(1),activePage:n.observable(1),Pages:n.observableArray(),SearchResults:n.observableArray(),Showing:n.observableArray(),json:[],PagerSize:n.observable(8),loading:n.observable(!1),showList:n.observable(!1),loadingMsg:n.observable(),active:n.observable(1),hasErrors:n.observable(!1),errorMsg:n.observable(),headers:[{title:"Last Name",sortKey:"LastName",dir:"",hCls:"col-sm-1"},{title:"First Name",sortKey:"FirstName",dir:"",hCls:"col-sm-1"},{title:"Middle Name",sortKey:"MiddleName",dir:"",hCls:"col-sm-1"},{title:"Age",sortKey:"Age",dir:"",hCls:"col-sm-1"},{title:"Gender",sortKey:"Gender",dir:"",hCls:"col-sm-1"},{title:"Ethnicity",sortKey:"Ethnicity",dir:"",hCls:"col-sm-1"},{title:"Facility",sortKey:"Facility",dir:"",hCls:"col-sm-2"},{title:"BookingStatus",sortKey:"BookingStatus",dir:"",hCls:"col-sm-2"},{title:"CDNumber",sortKey:"CDNumber",dir:"",hCls:"col-sm-1"},{title:"BookingNo",sortKey:"BookingNo",dir:"",hCls:"col-sm-1"}],showingLbl:n.observable(),LaunchDetail:function(t){LaunchDetailPage(t,n)},Sort:function(n,t){sortPagedTable(n,t.target.id,lst)}},n.applyBindings(lst)}function Inmate(n){return{OffenderID:n.OFFENDER_ID,CDNumber:n.CD_NUMBER,LastName:n.LAST_NAME,FirstName:n.FIRST_NAME,MiddleName:n.MIDDLE_NAME,Age:n.AGE,Gender:n.GENDER,Ethnicity:n.ETHNICITY,Hair:n.HAIR,Eye:n.EYE,Weight:n.WEIGHT,Height:n.HEIGHT,BookingStatus:n.BOOKING_STATUS,BookingNo:n.BOOKING_NO,BookDate:n.BOOK_DATE,Facility:n.FACILITY}}function PopulateTable(n){lst.json=n,lst.SearchResults.removeAll(),lst.Showing.removeAll(),ResetPaging(),ResetSortDirections(lst.headers),$(lst.json).each(function(n,t){lst.SearchResults.push(Inmate(t)),n>lst.start&&n%lst.end==0&&lst.Pages.push(n/lst.end+1),n<lst.end&&lst.Showing.push(Inmate(t))}),lst.hasErrors(!1),lst.showList(!0),lst.loading(!1),sortPagedTable({dir:"asc",sortKey:"FirstName"},"hd_FirstName",lst)}function UpdateTable(){lst.Showing.removeAll(),$(lst.SearchResults()).each(function(n,t){n>=lst.start&&n<lst.end&&lst.Showing.push(t)})}function SortTable(){}function sortPagedTable(n,t,i){i.Showing.removeAll(),ResetPaging(),SortColumn(i.SearchResults,n,t),i.Showing!=undefined&&$(i.SearchResults()).each(function(n,t){n>i.start&&n%i.end==0&&i.Pages.push(n/i.end+1),n<i.end&&i.Showing.push(t)})}function ResetSortDirections(n){$("th span").removeClass(),$(n).each(function(n,t){t.dir="asc"})}function SortColumn(n,t){n.sort(function(n,i){var r=n[t.sortKey],u=i[t.sortKey],f;return f=t.dir=="asc"?r===null?-1:u===null?1:r<u?-1:r>u?1:r==u?0:0:r===null?1:u===null?-1:r<u?1:r>u?-1:r==u?0:0}),$("th span").removeClass(),t.dir=="asc"?$("#hd_"+t.sortKey).closest("th").find("span").addClass("SortIcon glyphicon glyphicon-chevron-up").removeClass("glyphicon-chevron-down"):$("#hd_"+t.sortKey).closest("th").find("span").addClass("SortIcon glyphicon glyphicon-chevron-down").removeClass("glyphicon-chevron-up"),t.dir=t.dir=="asc"?"desc":"asc"}function ResetPaging(){lst.Pages.removeAll(),lst.Pages.push(1),lst.selectedPage(1),lst.start=0,lst.end=lst.start+lst.ShowRange,lst.active(1),lst.activePage(1),UpdateDisplay()}function UpdateDisplay(){var n=lst.end>lst.json.length?lst.json.length:lst.end;lst.showingLbl("Showing "+lst.start+" to "+n+" of "+lst.json.length),$($(".pagination li")[lst.active()]).addClass("active")}function goNuts(){for(var h=8,c=document.getElementById("TopNav"),o=c.getElementsByTagName("div"),i=0,r,t,i=0;i<o.length;i++)if(r=o[i],r.id.indexOf("Flyout")>=0){var n="<div class='col' ><ul >",e=r.getElementsByTagName("span"),u=0;for(t=0;t<e.length;t++){var s=e[t],l=e[t].getElementsByTagName("a"),a=l[0].innerHTML,f="";s.innerHTML.indexOf("void(")>=0?f="<h3>"+a+"</h3>":(n=n+f,n=n+"<li>"+s.innerHTML+"</li>"),u=u+1,(u>=h||f!="")&&(u=0,n=n+'</ul></div><div class="col"><ul>'+f)}n=n+"</ul></div>",r.innerHTML=n}}$(document).off("change","#Showing");$(document).on("change","#Showing",function(){lst.ShowRange=parseInt($("#Showing").val()),PopulateTable(lst.json)});$(document).off("click",".pagination li");$(document).on("click",".pagination li",function(n){var i,r;$($(".pagination li")[lst.active()]).removeClass("active"),$(n.target).text()=="«"&&(i=lst.selectedPage()-1,i>=1&&(lst.active()==11&&lst.active(9),lst.active(lst.active()-1),i%lst.PagerSize()==0&&(lst.active(lst.PagerSize()),lst.activePage(lst.selectedPage()-lst.PagerSize())),lst.selectedPage(i))),$(n.target).text()=="»"&&(i=lst.selectedPage()+1,i<=lst.Pages().length&&(lst.active(lst.active()+1),lst.selectedPage()%lst.PagerSize()==0&&(lst.active(1),lst.activePage(i),lst.selectedPage()+lst.PagerSize()>=lst.Pages().length&&(lst.activePage(lst.Pages().length-lst.PagerSize()),lst.active(i+lst.PagerSize()-lst.Pages().length+1))),lst.selectedPage(i),lst.selectedPage()==lst.Pages().length&&lst.Pages().length>lst.PagerSize()&&lst.active(11))),$(n.target).text()!="»"&&$(n.target).text()!="«"&&(r=parseInt($(n.target).text()),lst.selectedPage(r),r==lst.Pages().length&&lst.Pages().length>lst.PagerSize()?(lst.activePage(lst.Pages().length-lst.PagerSize()),lst.active(11)):lst.active(r%lst.PagerSize()==0||r+1==lst.Pages().length&&lst.Pages().length>lst.PagerSize()?lst.PagerSize():r%lst.PagerSize())),lst.start=(lst.selectedPage()-1)*lst.ShowRange,lst.end=lst.start+lst.ShowRange,UpdateDisplay(),UpdateTable()})