﻿function initSearch(sType) {
    var frm;
    var sGender;
    var mdl = new mdlInmateSearch;
    var mdlIS = new mdlInmateStatus;

    //document.getElementById("btnSearchAgain").style.display = "";
    document.getElementById("spnResults").style.color = "";
    frm = document.getElementById("frmSearch");
    if (sType == "N") {
        if (passedEdits()) {
            document.getElementById("spnResults").innerHTML = "Searching Inmates ...";
            document.getElementById("divStatus").style.display = "none";
            document.getElementById("divSearch").style.display = "none";
            document.getElementById("spnResults").style.display = "";
            if (frm.radGender_0.checked)
                sGender = "M";
            else if (frm.radGender_1.checked)
                sGender = "F";
            else
                sGender = "";
            mdl.LastName = frm.txtLastName.value;
            mdl.FirstName = frm.txtFirstName.value;
            mdl.MidName = frm.txtMiddleName.value;
            mdl.Gender = sGender;
            mdl.DOB = frm.txtDOB.value;
            mdl.Age = frm.txtAge.value;
            PageMethods.CallSearch(mdl, displaySearchResults, displayError, displayTimeout);
        }
    }
    else {
        mdlIS.BookNo = frm.txtBookNo.value;
        document.getElementById("spnResults").innerHTML = "Searching Inmates ...";
        document.getElementById("divStatus").style.display = "none";
        document.getElementById("divSearch").style.display = "none";
        document.getElementById("spnResults").style.display = "";
        document.getElementById("celBooking").innerHTML = frm.txtBookNo.value;
        frm.txtLastName.value = "";
        frm.txtFirstName.value = "";
        frm.txtMiddleName.value = "";
        frm.radGender_0.checked = false;
        frm.radGender_1.checked = false;
        PageMethods.GetInmateStatus(mdlIS, displayBooking, displayError, displayTimeout);
    }
}

function passedEdits() {
    
    var frm = document.getElementById("frmSearch");
    
    if (frm.txtLastName.value.length < 2) {
        alert("You must enter a last name.");
        frm.txtLastName.focus();
        return false;
    }
    if (frm.txtFirstName.value.length < 2) {
        alert("You must enter at least 2 letters of the first name.");
        frm.txtFirstName.focus();
        return false;
    }
    if (!isDate(frm.txtDOB.value)) {
        if (frm.txtAge.value == "") {
            alert("You must enter a valid DOB (MM/DD/YYYY) or an age.");
            frm.txtDOB.focus();
            return false;
        }
    }
    
    return true;
    
}

function displaySearchResults(mdl) {
    
    //var sVals = sReturn.split("|");
    
    document.getElementById("spnSearchAgain").style.display = "";

    if (mdl.ErrorMessage.length == 0) {
        //alert(mdl.Count);
        //alert(mdl.SearchResults.length);
        if (mdl.ReleaseDate == null)
            document.getElementById("spnResults").innerHTML = "Search Results - Click on a name to view more information<br /> " + mdl.SearchResults;
        else
            document.getElementById("spnResults").innerHTML = "Release Log for " + mdl.ReleaseDate + " - Click on a name to view more information<br /> " + mdl.SearchResults;
        //if (sVals[2] == "MORE")
        //    document.getElementById("spnResults").innerHTML += "Additional Results Found - Refine Search to See More";
    }
    else if (mdl.ErrorMessage.length > 0) {
        document.getElementById("spnDisclaimer").style.display = "";
        document.getElementById("btnContinue").style.display = "none";
        document.getElementById("spnResults").innerHTML = mdl.ErrorMessage;
    }
    //else if (sVals[0] == "H" || sVals[0] == "S")
    //    showSingleBooking(sVals[1], sVals[0]);
        
}

function showSingleBooking(sBookNo, sType) {
    var mdl = new mdlInmateStatus;
    mdl.BookNo = sBookNo;
    document.getElementById("spnResults").style.display = "none";
    document.getElementById("divStatus").style.display = "none";
    document.getElementById("divSearch").style.display = "none";
    document.getElementById("spnStatusMessage").innerHTML = "Getting Booking Information ..."
    document.getElementById("spnStatusMessage").style.display = "";
    document.getElementById("celBooking").innerHTML = sBookNo;
    PageMethods.GetInmateStatus(mdl, displayBooking, displayError, displayTimeout);

}

function getBooking(row) {

    var mdl = new mdlInmateStatus;
    mdl.BookNo = row.getAttribute("key0");
    document.getElementById("txtSelectedName").value = row.cells[0].innerHTML;
    document.getElementById("spnResults").style.display = "none";
    document.getElementById("divStatus").style.display = "none";
    document.getElementById("divSearch").style.display = "none";
    document.getElementById("spnStatusMessage").innerHTML = "Getting Booking Information ..."
    document.getElementById("spnStatusMessage").style.display = "";
    document.getElementById("spnSearchAgain").style.display = "none";
    document.getElementById("celBooking").innerHTML = row.getAttribute("key0");
    PageMethods.GetInmateStatus(mdl, displayBooking, displayError, displayTimeout);
    
}

function displayBooking(mdl) {
    //var sVals = sReturn.split("|");
    //var imgMugShot = document.getElementById("imgMug");
    if (mdl.ErrorMessage.length == 0) {
        if (document.getElementById("spnResults").getElementsByTagName("TABLE").length > 0)
            document.getElementById("btnSearchResults").style.display = "";
        document.getElementById("lnkVine").href = "http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=5006&agency=1&offenderID=" + document.getElementById("celBooking").innerHTML;
        document.getElementById("celName").innerHTML = mdl.Name;
        if (mdl.Name != document.getElementById("txtSelectedName").value)
            document.getElementById("celAlias").innerHTML = document.getElementById("txtSelectedName").value;
        else
            document.getElementById("celAlias").innerHTML = "";
        document.getElementById("celSex").innerHTML = mdl.Sex;
        document.getElementById("celDOB").innerHTML = mdl.DOB;
        document.getElementById("celAge").innerHTML = mdl.Age;
        document.getElementById("celHeight").innerHTML = mdl.Height;
        document.getElementById("celWeight").innerHTML = mdl.Weight;
        document.getElementById("celEyes").innerHTML = mdl.EyeColor;
        document.getElementById("celHair").innerHTML = mdl.HairColor;
        document.getElementById("celArrestDate").innerHTML = mdl.ArrestDate + " " + mdl.ArrestTime;
        document.getElementById("celArrestAgency").innerHTML = mdl.ArrestAgency;
        document.getElementById("celFacility").innerHTML = mdl.HousingFacility;
        if (mdl.HousingFacility != "NO LONGER IN CUSTODY") {
            document.getElementById("celFacility").style.color = "";
            if (mdl.FacilityDescription == "") {
                document.getElementById("celFacility").innerHTML += "<br /><span class=BookingDataLink onclick='showFacilityInfo()'>(click here for facility information)</span>";
            }
            else {
                document.getElementById("celFacility").innerHTML += "<br /><span class=BookingDataLink onclick='showFacilityDesc()'>(click here for facility information)</span>";
            }
        }
        else
            document.getElementById("celFacility").style.color = "darkred";
        document.getElementById("celVisiting").innerHTML = mdl.VisitingPhone;
        document.getElementById("celMailing").innerHTML = mdl.MailingAddress;
        document.getElementById("spnFacility").innerHTML = mdl.HousingFacility;
        document.getElementById("spnFacilityAddress").innerHTML = mdl.StreetAddress;
        document.getElementById("spnFacilityPhone").innerHTML = mdl.FacilityPhone;
        document.getElementById("spnFacilityDirections").innerHTML = mdl.FacilityDirections;
        if (mdl.JailType == "II") {
            document.getElementById("spnPublicInfoPlan").innerHTML = "<a target='_blank' style='color: darkred; text-decoration: underline; font-weight: bold;' href='PublicInfoPlan" + mdl.JailType + ".pdf'>(click here for public information plan)</a>";
            document.getElementById("spnMoneyInfo").style.display = "";
            document.getElementById("rowMoneyInfo").style.display = "";
        }
        else {
            document.getElementById("spnPublicInfoPlan").innerHTML = "";
            document.getElementById("spnMoneyInfo").style.display = "none";
            document.getElementById("rowMoneyInfo").style.display = "none";
        }
        if (mdl.Supps != "") {
            document.getElementById("divSupps").innerHTML = "<span class='BookingSectionHeader'>Charges</span><br /><br /> " + mdl.Supps;
            if (mdl.HousingFacility == "NO LONGER IN CUSTODY")
                document.getElementById("divSuppDisclaimer").style.display = "";
            else
                document.getElementById("divSuppDisclaimer").style.display = "none";
        }
        else {
            document.getElementById("divSupps").innerHTML = "";
            document.getElementById("divSuppDisclaimer").style.display = "none";
        }
        if (mdl.Holds != "")
            document.getElementById("divHolds").innerHTML = "<span class='BookingSectionHeader'>Holds</span><br /><br /> " + mdl.Holds;
        else
            document.getElementById("divHolds").innerHTML = "";
        if (mdl.Supps != "" || mdl.Holds != "")
            document.getElementById("spnPrintable").innerHTML = "<a target='_blank' style='color: darkred;' href='PrintChargeInfo.aspx?bookno=" + document.getElementById("celBooking").innerHTML + "'>Show Printable Charges</span>";
        else
            document.getElementById("spnPrintable").innerHTML = "";
        document.getElementById("spnFacilityDesc").innerHTML = mdl.FacilityDescription;
        if (mdl.USM == "USM")
            document.getElementById("tblUSMInfo").style.display = "";
        else
            document.getElementById("tblUSMInfo").style.display = "none";
        document.getElementById("celBailable").innerHTML = mdl.Bailable;
        document.getElementById("celArrestLocation").innerHTML = mdl.ArrestLocation;
        if (mdl.HousingFacility == "NO LONGER IN CUSTODY") {
            document.getElementById("celReleaseDate").innerHTML = mdl.ReleaseDate;
            document.getElementById("celReleasedTo").innerHTML = mdl.ReleasedTo;
            document.getElementById("rowRelease").style.display = "";
            document.getElementById("rowReleasedTo").style.display = "";
            document.getElementById("rowReleaseNote").style.display = "none";
            document.getElementById("rowVisiting").style.display = "none";
            document.getElementById("rowMailing").style.display = "none";
        }
        else {
            document.getElementById("celReleaseDate").innerHTML = "";
            document.getElementById("rowRelease").style.display = "none";
            document.getElementById("rowReleasedTo").style.display = "none";
            if (mdl.FacilityDescription == "" && mdl.VisitingPhone != "") { //facility is not 36 or 38
                document.getElementById("rowVisiting").style.display = "";
                document.getElementById("rowMailing").style.display = "";
                document.getElementById("rowReleaseNote").style.display = "";
            }
            else {
                document.getElementById("rowVisiting").style.display = "none";
                document.getElementById("rowMailing").style.display = "none";
                document.getElementById("rowReleaseNote").style.display = "none";
            }
        }
        document.getElementById("spnResults").style.display = "none";
        document.getElementById("spnStatusMessage").style.display = "none";
        document.getElementById("spnDisclaimer").style.display = "";
        document.getElementById("btnContinue").style.display = "";
        //document.getElementById("divStatus").style.display = "";
    }
    else {
        
        document.getElementById("btnContinue").style.display = "none";
        document.getElementById("spnResults").style.display = "";
        document.getElementById("spnStatusMessage").style.display = "none";
        document.getElementById("spnResults").innerHTML = mdl.ErrorMessage;
        document.getElementById("spnSearchAgain").style.display = "";
        if (mdl.ErrorMessage.substring(0, 48) == "You have exceeded the maximum number of requests")
            document.getElementById("spnResults").style.color = "red";
        else
            document.getElementById("spnDisclaimer").style.display = "";
    }
}

function clickContinue() {
    document.getElementById("spnDisclaimer").style.display = "none";
    document.getElementById("btnContinue").style.display = "none";
    document.getElementById("divStatus").style.display = "";
    document.getElementById("spnSearchAgain").style.display = "";
}

function displayError(err) {
    alert(err.get_message());
}

function displayTimeout(err) {
    alert(err.get_message());
}

function clearScreen() {
    var frm = document.getElementById("frmSearch");
    frm.txtBookNo.value = "";
    frm.txtLastName.value = "";
    frm.txtFirstName.value = "";
    frm.txtMiddleName.value = "";
    frm.txtDOB.value = "";
    frm.txtAge.value = "";
    frm.txtSelectedName.value = "";
    //frm.txtStartDate.value = "";
    frm.radGender_0.checked = true;
    frm.radGender_1.checked = false;
    document.getElementById("spnResults").innerHTML = "";
    document.getElementById("spnDisclaimer").style.display = "none";
    document.getElementById("btnContinue").style.display = "none";
    document.getElementById("divStatus").style.display = "none";
    document.getElementById("btnSearchResults").style.display = "none";
    document.getElementById("divSearch").style.display = "";
    document.getElementById("spnSearchAgain").style.display = "none";
    document.getElementById("tblUSMInfo").style.display = "none";
    hidePopups();
    frm.txtBookNo.focus();
}

function toggleResults() {
    document.getElementById("divStatus").style.display = "none";
    document.getElementById("spnResults").style.display = "";
    document.getElementById("btnSearchResults").style.display = "none";
}

function handleEnter(e, sType) {
    if (e.keyCode == 13) {
    //    alert(e.keyCode);
    //    e.returnValue = false;
        initSearch(sType);
    }
}

function numbersOnly() {
	var iKey = window.event.keyCode;
	//alert(iKey);
	if (iKey != 13) {
		if (iKey < 48 || iKey > 57) {
			window.event.returnValue = false;
		}
	}
}

function dateOnly() {
	var iKey = window.event.keyCode;
	//alert(iKey);
	if (iKey != 13) {
		if (iKey < 47 || iKey > 57) {
			window.event.returnValue = false;
		}
	}
}

function isDate(dte) {
    
    var exp1 = /^[1-9]\/[1-9]\/\d{4}$/
    var exp2 = /^[1-9]\/(0[1-9]|[1-2][0-9]|3[0-1])\/\d{4}$/
    var exp3 = /^(0[1-9]|1[0-2])\/[1-9]\/\d{4}$/
    var exp4 = /^(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])\/\d{4}$/
    
    if (exp1.test(dte) || exp2.test(dte) || exp3.test(dte) || exp4.test(dte))
        return true;
    else
        return false;
        
}

function hidePopups() {
    document.getElementById("divCourtInfo").style.display = "none";
    document.getElementById("divMailingInfo").style.display = "none";
    document.getElementById("divVisitingInfo").style.display = "none";
    document.getElementById("divMoneyInfo").style.display = "none";
    document.getElementById("divFacilityInfo").style.display = "none";
    document.getElementById("divFacilityDesc").style.display = "none";
    document.getElementById("divBailDisclaimer").style.display = "none";
}

function showFacilityInfo() {

    hidePopups();
    document.getElementById("divFacilityInfo").style.top = centerElement(document.getElementById("divFacilityInfo"));
    document.getElementById("divFacilityInfo").style.display = "";
    
}

function showCourtInfo(cel) {
    
    hidePopups();
    if (cel.innerHTML != "No Appearance Scheduled") {
        document.getElementById("spnCourt").innerHTML = cel.parentNode.getAttribute("key0");
        document.getElementById("spnCourtAddress").innerHTML = cel.parentNode.getAttribute("key1");
        document.getElementById("spnCourtPhone").innerHTML = cel.parentNode.getAttribute("key2");
        document.getElementById("divCourtInfo").style.top = centerElement(document.getElementById("divCourtInfo"));
        document.getElementById("divCourtInfo").style.display = "";
    }
    
}

function showMailInfo() {
    
    hidePopups();
    document.getElementById("divMailingInfo").style.top = centerElement(document.getElementById("divMailingInfo"));
    document.getElementById("divMailingInfo").style.display = "";
    
}

function showVisitingInfo() {
    
    hidePopups();
    document.getElementById("divVisitingInfo").style.top = centerElement(document.getElementById("divVisitingInfo"));
    document.getElementById("divVisitingInfo").style.display = "";
    
}

function showMoneyInfo() {
    hidePopups();
    document.getElementById("divMoneyInfo").style.top = centerElement(document.getElementById("divMoneyInfo"));
    document.getElementById("divMoneyInfo").style.display = "";
}

function showFacilityDesc() {
    hidePopups();
    document.getElementById("divFacilityDesc").style.top = centerElement(document.getElementById("divFacilityInfo"));
    document.getElementById("divFacilityDesc").style.display = "inline";
}

function showBailDisclaimer() {
    hidePopups();
    document.getElementById("divBailDisclaimer").style.top = centerElement(document.getElementById("divBailDisclaimer"));
    document.getElementById("divBailDisclaimer").style.display = "inline";
}

function centerElement(elmt) {
    //alert(elmt.style.height);
    if (document.documentElement.clientHeight - parseInt(elmt.style.height) > 0) 
        return ((document.documentElement.clientHeight - parseInt(elmt.style.height)) / 2) + document.documentElement.scrollTop + "px";
    else
        return "100px";
}

function getReleaseLog(sDate) {

    var mdl = new mdlReleaseLog;

    mdl.ReleaseDate = sDate;
    document.getElementById("spnResults").style.color = "";
    document.getElementById("spnResults").innerHTML = "Searching Inmates ...";
    document.getElementById("divStatus").style.display = "none";
    document.getElementById("divSearch").style.display = "none";
    document.getElementById("spnResults").style.display = "";

    PageMethods.GetReleaseLog(mdl, displaySearchResults, displayError, displayTimeout);
    
}
