<html><head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" charset="utf-8">
    <title>Person Search</title>
                
                <style>
                fieldset {
    color: rgb(0,0,0);
    direction: ltr;
   font-family: "Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    font-size: 16px;
    line-height: 20px;
    font-weight: 100;
    margin-bottom: 14px;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
    background-color: rgb(255,255,255);
    padding: 2px;
    border: solid 0 #ffffff;
    width: 100%;
}

table {
    border-collapse: collapse;
    font-family: "Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    width: 705px;
}

th {
    background-color: #ffffff;
    color: black;
    font-family: "Segoe UI Light","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    font-size: 16px;
    line-height: 20px;
    font-weight: 600;
    white-space: nowrap;
    text-align: left;
}

td {
    padding: 5px;
    white-space: nowrap;
}

.odd {
    background-color: white;
    cursor: pointer;
}

.even {
    background-color: whitesmoke;
    cursor: pointer;
}

.odd:hover {
    background-color: #99ccff;
    color: #800000;
}

.even:hover {
    background-color: #99ccff;
    color: #800000;
}

div#tmpDialog {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 250px;
    height: 50px;
    margin: -101px 0 0 -251px;
    background: rgb(255, 255, 255);
    border: 1px solid black;
}

    div#tmpDialog p {
        padding: 5px;
        margin: 5px;
        text-align: center;
    }

input {
    background-color: rgba(255,255,255,0);
    border-color: rgb(186,186,186);
    border-width: 1px;
    border-style: solid;
    color: rgb(0,0,0);
    font-family: "Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    font-size: 14.06px;
    height: 30px;
    line-height: normal;
}

div {
    color: rgb(0,0,0);
    direction: ltr;
    float: left;
    font-family: "Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    font-size: 12.06px;
    line-height: 17px;
    padding-bottom: 4px;
    padding-top: 0;
    text-align: left;
}

button {
    background-color: rgb(0,32,80);
    border-color: rgb(255,255,255);
    border-style: none;
    border-width: 0px;
    color: rgb(255,255,255);
    direction: ltr;
    font-family: "Segoe UI Semibold","Segoe UI Web Semibold","Segoe UI Web Regular","Segoe UI","Segoe UI Symbol","HelveticaNeue-Medium","Helvetica Neue",Arial,sans-serif;
    font-size: 14.06px;
    height: 30px;
    line-height: 20px;
    min-width: 84.4px;
    padding-bottom: 10px;
    padding-left: 12px;
    padding-right: 12px;
    padding-top: 5px;
    margin-right: 6px;
}

h1 {
    font-family: 'Segoe UI',Tahoma,Arial;
    font-weight: 100;
    color: #262626;
    font-size: 36px;
    line-height: 20px;
    margin-bottom: 12px;
}

h3 {
    font-family: 'Segoe UI',Tahoma,Arial;
    font-weight: 100;
    color: #262626;
    font-size: 22px;
    line-height: 10px;
    margin-bottom: 12px;
    margin-top: 8px;
}

h2 {
    color: rgb(0,0,0);
    direction: ltr;
    font-family: "Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    font-size: 14.06px;
    line-height: 20px;
    font-weight: 100;
    margin-bottom: 14px;
    margin-left: 0px;
    margin-right: 0px;
    margin-top: 0px;
}

fieldset {
    border: 0;
}

span {
    color: red;
    font-family: "Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
    font-size: 14.06px;
    font-weight: 100;
    display: none;
}

.auto-style1 {
    width: 142px;
}
</style>

<meta><meta><meta><meta><meta></head>
<body style="-ms-word-wrap: break-word;">
    
    <script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>

    <script src="bah_jquery1.4.1.min.js" type="text/javascript"></script>

    <script src="bah_SDK.REST.js" type="text/javascript"></script>

    <script src="bah_json2.js" type="text/javascript"></script>

    <script type="text/javascript">
        $(document).ready(function () {

            $("#SearchByNameButton").bind("click", function () {

                $("#searchResultsMessageDiv").val("");

                if (validateSearchByName() == true) {

                    formatExecutingSearch();

		debugger;

                    var dobday = $("#BirthDayTextBox").val() == "dd" ? "" : $("#BirthDayTextBox").val();
                    var dobyear = $("#BirthYearTextBox").val() == "yyyy" ? "" : $("#BirthYearTextBox").val();
                    var dobmonth = $("#BirthMonthTextBox").val() == "mm" ? "" : $("#BirthMonthTextBox").val();
                    var dob = dobmonth + "/" + dobday + "/" + dobyear;
                    var ssn = $("#SocialSecurityTextBox").val();
                    ssn = ssn.replace(/-/g, "");
                    var filterPrefix = "$select=*&$filter=";
                    var filter = buildQueryFilter("crme_FirstName", $("#FirstNameTextBox").val(), false);
                    filter += buildQueryFilter("crme_LastName", $("#LastNameTextBox").val(), true);
                    filter += buildQueryFilter("crme_SearchType", 'SearchByFilter', true);
                    filter += " and crme_IsAttended eq true";

                    if (dobyear != "") {
                        filter += " and crme_DOBString eq '" + dob + "'";
                    }

                    //if ($("#PhoneNoTextBox").val() != "") {
                    //    filter += buildQueryFilter("crme_PrimaryPhone", $("#PhoneNoTextBox").val(), true);
                    //}

                    if ($("#SocialSecurityTextBox").val() != "") {
                        filter += buildQueryFilter("crme_SSN", ssn, true);
                    }
                    filter = encodeURIComponent(filter);
                    filter = filterPrefix + filter;
                    SDK.REST.retrieveMultipleRecords("crme_person", filter, personSearchCallBack, function (error) { alert(error.message); }, personSearchComplete);

                } else {
                    formatValidationFailed();
                }

            });

            $("#SearchByIdentifierButton").bind("click", function () {

                if (validateSearchByIdentifier() == true) {

                    formatExecutingSearch();

                    var filterPrefix = "$select=*&$filter=";
                    var filter = "";
                    if ($("#EdipiTextBox").val() != "") {
                        filter += buildQueryFilter("crme_EDIPI", $("#EdipiTextBox").val(), false);
                        filter += buildQueryFilter("crme_ClassCode", 'MIL', true);
                    }

                    filter += buildQueryFilter("crme_SearchType", 'SearchByIdentifier', true);
                    filter += " and crme_IsAttended eq false";

                    filter = encodeURIComponent(filter);
                    filter = filterPrefix + filter;
                    SDK.REST.retrieveMultipleRecords("crme_person", filter, personSearchCallBack, function (error) { alert(error.message); }, personSearchComplete);

                } else {
                    formatValidationFailed();
                }
            });

            $('#clearIdentifierFieldsButton').bind("click", function () {

                $("#EdipiTextBox").val("");
                $("#validationFailedDiv").hide();
                personSearchComplete();
            });

            $('#clearNameFieldsButton').bind("click", function () {

                $("#FirstNameTextBox").val("");
                $("#MiddleNameTextBox").val("");
                $("#LastNameTextBox").val("");
                $("#BirthMonthTextBox").val("");
                $("#BirthDayTextBox").val("");
                $("#BirthYearTextBox").val("");
                //$("#PhoneNoTextBox").val("");
                $("#SocialSecurityTextBox").val("");
                $("#validationFailedDiv").hide();
                $("#notFoundDiv").hide();
                personSearchComplete();
            });

            $('#createNewVeteranButton').bind("click", createNewVeteran);

            function formatExecutingSearch() {
                $('div#tmpDialog').show();
                $("#validationFailedDiv").hide();
                $("#resultsFieldSetDiv").hide();
                $("#notFoundDiv").hide();
                $("#searchResultsMessageDiv").hide();
                $("#SearchByNameButton").attr('disabled', true);
                $("#SearchByIdentifierButton").attr('disabled', true);
            }

            function formatValidationFailed() {
                $("#validationFailedDiv").show();
                $("#notFoundDiv").hide();
                $("#resultsFieldSetDiv").hide();
                $("#searchResultsMessageDiv").hide();
                $("#personSearchResultsTable").find("thead, tr, th").remove();
                $("#personSearchResultsTable").find("tr:gt(0)").remove();
            }

            function personSearchComplete() {
                $('div#tmpDialog').hide();
                $("#SearchByNameButton").attr('disabled', false);
                $("#SearchByIdentifierButton").attr('disabled', false);
                //$("#personSearchResultsTable").find("tr:gt(0)").focus();
                $("#personSearchResultsTable").focus();
            }

            function GetODataDateString(dateval) 
            {
               if (dateval != null && dateval != "")
               {
                  var dobstr = dateval.split("/", 3);

                  if (dobstr.length == 3)
                  {
                     if (dobstr[0].length < 2) dobstr[0] = "0" + dobstr[0];
                     if (dobstr[1].length < 2) dobstr[1] = "0" + dobstr[1];
 
                     var strdt = dobstr[2] + "-" + dobstr[0] + "-" + dobstr[1] + "T06:00:00";

                     return strdt;
                  }
               }
               return "";
            }

            // *This may need to be updated depending on expected fields 
            //            when creating the new Veteran record
            //
            function createNewVeteran() {
                if (Xrm != null && Xrm.Page != null && Xrm.Page.context != null) {
                    var fname = $("#FirstNameTextBox").val();
                    var lname = $("#LastNameTextBox").val();
                    var ssn = $("#SocialSecurityTextBox").val();
                    var dobyear = $("#BirthYearTextBox").val();
                    var dobmonth = $("#BirthMonthTextBox").val();
                    var dobday = $("#BirthDayTextBox").val();
                    var source = "";                                                                                                             // *TODO: Add project name here
                    var url = Xrm.Page.context.getClientUrl();
                    url += "/main.aspx?etc=2&pagetype=entityrecord&extraqs="
                    var urlExtraQs = "";
                    var parameters = {};
                    if (fname != null && fname != "") {
                        urlExtraQs += "firstname=" + fname + "&";
                    }
                    if (lname != null && lname != "") {
                        //parameters["lastname"] = lname;
                        urlExtraQs += "lastname=" + lname + "&";
                    }

                    // FtP Logic Start
                    /*    if (ssn != null && ssn != "") {
                           //parameters["udo_ssn"] = ssn;
                           urlExtraQs += "udo_ssn=" + ssn + "&";
                       } */
                    // FtP Logic End
                    if (dobday != null && isNumeric(dobday) && dobmonth != null && isNumeric(dobmonth) && dobyear != null && isNumeric(dobyear)) {
                        urlExtraQs += "birthdate=" + dobmonth + "/" + dobday + "/" + dobyear + "&";
                    }
                    //parameters["udo_recordsource"] = source;
                    //  urlExtraQs += "udo_recordsource=" + source;
                    window.open(url + encodeURIComponent(urlExtraQs));
                    //Xrm.Utility.openEntityForm("contact", null, parameters);
                }
            }

            function buildQueryFilter(field, value, and) {
                if (and) {
                    return " and " + field + " eq '" + value + "'";
                } else {
                    return field + " eq '" + value + "'";
                }
            }

            function openSelectedPerson(obj) {

		debugger;
                $('div#tmpDialog').show();
                var ssn = obj.getAttribute('ssn');
                var edipi = obj.getAttribute('edipi');

                if (edipi == null || edipi == "")
                {
                   alert("There is no value for the EDIPI attribute. This record cannot be processed.");
                   return;
                }

                var firstName = obj.getAttribute('firstName');
                var lastName = obj.getAttribute('lastName');
                var dateofbirth = obj.getAttribute('dateofbirth');

                MDI_FirstName = firstName;
                MDI_LastName = lastName;
                /*var recordSource = obj.getAttribute('recordSource');
                var patientMviIdentifier = obj.getAttribute('patientMviIdentifier');
                //        var icn = obj.getAttribute('icn');                             // FtP Logic
                var fulladdress = obj.getAttribute('fulladdress');
                var dateofbirth = obj.getAttribute('dateofbirth');
                var fullName = obj.getAttribute('fullName');
                var vetSensLevel = obj.getAttribute('vetSensLevel');*/
                var filterPrefix = "$select=*&$filter=";

                //var filter = buildQueryFilter("crme_SSN", ssn, false);
                //filter += buildQueryFilter("crme_EDIPI", edipi, true);
                var filter = buildQueryFilter("bah_edipi_text", edipi, false);
                //filter += buildQueryFilter("crme_SearchType", 'SelectedPersonSearch', true);
                //filter += buildQueryFilter("crme_PatientMviIdentifier", patientMviIdentifier, true);
                //       filter += buildQueryFilter("crme_ICN", icn, true);                          // FtP Logic
                filter += buildQueryFilter("FirstName", firstName, true);
                filter += buildQueryFilter("LastName", lastName, true);
                filter += buildQueryFilter("bah_searchtype_text", "CREATEUPDATEMVI", true);

                if (dateofbirth != "")
                {
                   var strdt = GetODataDateString(dateofbirth);
                   var tempval = " and " + "bah_dob_date" + " eq datetime'" + strdt + "'";
                   filter += tempval;
                }

                /*
                filter += buildQueryFilter("crme_RecordSource", recordSource, true);
                filter += buildQueryFilter("crme_MVIFullAddress", fulladdress, true);
                filter += buildQueryFilter("crme_MVIDOBString", dateofbirth, true);
                filter += buildQueryFilter("crme_MVIFullName", fullName, true);
                filter += buildQueryFilter("crme_VeteranSensitivityLevel", vetSensLevel, true);
                */
                filter = encodeURIComponent(filter);
                filter = filterPrefix + filter;

                //start FtP code
                /*                  var userid = Xrm.Page.context.getUserId();
                                var Vfilter = "$select=BusinessUnitId,va_FileNumber,business_unit_system_users/udo_VeteranSensitivityLevel&$expand=business_unit_system_users&$filter=SystemUserId eq guid'" + userid + "'";
                
                                SDK.REST.retrieveMultipleRecords("SystemUser", Vfilter,
                                    function (data) {
                
                                        if (data != null) {
                                            record = data[0];
                
                                            var uSsn = record.va_FileNumber;
                                            userSL = record.business_unit_system_users.udo_VeteranSensitivityLevel.Value;
                                            userSL = userSL - 752280000;
                
                                            if (uSsn === ssn) {
                
                                                $('div#tmpDialog').hide();
                                                alert("You do not have access to view your own records.");
                                                //if (uSsn === ssn) {
                                                //    $('div#tmpDialog').hide();
                                                //    alert("You do not have access to view your own records.");
                
                                                //}
                                                //    if (userSL < vetSensLevel) {
                                                //        $('div#tmpDialog').hide();
                                                //       alert("The record you are accessing requires a user with higher Sensitivity level.  Please forward to the appropriate person.");
                                                //    }
                
                                            }
                                            else {
                                                SDK.REST.retrieveMultipleRecords("crme_person", filter, selectedPersonCallBack, function (error) { alert(error.message); }, personSearchComplete);
                                            }
                                        }
                
                                    },
                                    function (error) { alert(error.message); },
                                    function () { }); */
                //end Ftp code - **comment below for FtP
                //SDK.REST.retrieveMultipleRecords("crme_person", filter, selectedPersonCallBack, function (error) { alert(error.message); }, personSearchComplete);
                //alert(filter);
                SDK.REST.retrieveMultipleRecords("Contact", filter, selectedPersonCallBack, function (error) { alert(error.message); }, personSearchComplete);

                return false;
            }

            function personSearchCallBack(data, textStatus, XmlHttpRequest) {

                $('div#tmpDialog').show();
                // get the table
                var table = $("#personSearchResultsTable");

                // reset the table by removing all data rows
                $("#personSearchResultsTable").find("thead, tr, th").remove();
                $("#personSearchResultsTable").find("tr:gt(0)").remove();
                $("#resultsFieldSetDiv").hide();

                if (data != null && data.length > 0) {

                    var thead = document.createElement('thead');
                    var theadRow = document.createElement('tr');

                    for (var i = 0; i < data.length; i++) {

                        var fullName = formatName(data[i]);

                        //CRMe can return result, even if just ReturnMessage that there were no results...
                        //If blank\no name, we should break
                        if (fullName.trim() == "") {
                            $("#searchResultsMessageDiv").show();
                            $("#searchResultsMessageDiv").text((data != null && data.length > 0 && data[0].crme_ReturnMessage != null) ? data[0].crme_ReturnMessage : "Your search in MVI did not find any records matching the search criteria.");
                            $("#notFoundDiv").show();
                            break;
                        }
                        var dateOfBirth = data[i].crme_DOBString == null ? "" : data[i].crme_DOBString;
                        var address = formatAddress(data[i]);
                        // var phoneNumber = data[i].crme_PrimaryPhone == null ? "" : data[i].crme_PrimaryPhone;
                        var icn = data[i].crme_ICN == null ? "" : data[i].crme_ICN;
                        var patientMviIdentifier = data[i].crme_PatientMviIdentifier == null ? "" : data[i].crme_PatientMviIdentifier;
                        var recordSource = data[i].crme_RecordSource == null ? "" : data[i].crme_RecordSource;
                        var edipi = data[i].crme_EDIPI == null ? "" : data[i].crme_EDIPI;
                        var ssn = data[i].crme_SSN == null ? "" : data[i].crme_SSN;
                        var firstName = data[i].crme_FirstName == null ? "" : data[i].crme_FirstName;
                        var lastName = data[i].crme_LastName == null ? "" : data[i].crme_LastName;
                        var alias = data[i].crme_Alias == null ? "" : data[i].crme_Alias;
                        var gender = data[i].crme_Gender == null ? "" : data[i].crme_Gender;
                        var deceasedDate = data[i].crme_DeceasedDate == null ? "" : data[i].crme_DeceasedDate;
                        var identityTheft = data[i].crme_IdentityTheft == null ? "" : data[i].crme_IdentityTheft;
                        //var vetSensLevel = data[i].crme_VeteranSensitivityLevel == null ? "" : data[i].crme_VeteranSensitivityLevel;   // FtP Logic
                        var vetSensLevel = "";
                        var branchOfService = data[i].crme_BranchOfService == null ? "" : data[i].crme_BranchOfService;

                        // *ToDo: Remove. Demo purpose only
                        var participantId = data[i].crme_PatientMviIdentifier == null ? "" : data[i].crme_PatientMviIdentifier;

                        // *Add any new/different variables you want to display in the Results grid here.
                        //            You will also need to add those additional crme_ values to the table, and all
                        //  relevant place below.

                        if (i == 0) {
                            var th1 = document.createElement('th');
                            var thAlias = document.createElement('th');
                            var th2 = document.createElement('th');
                            var th3 = document.createElement('th');
                            var th4 = document.createElement('th');
                            var th5 = document.createElement('th');
                            //  var th6 = document.createElement('th');
                            var th7 = document.createElement('th');
                            var th8 = document.createElement('th');
                            var th10 = document.createElement('th');
                            var th11 = document.createElement('th');
                            var th12 = document.createElement('th');
                            var th13 = document.createElement('th');
                            var th14 = document.createElement('th');                            // *ToDo: Remove. Demo purpose only

                            th1.appendChild(document.createTextNode('Name'));
                            thAlias.appendChild(document.createTextNode('Alias'));
                            th2.appendChild(document.createTextNode('Date of Birth'));
                            th3.appendChild(document.createTextNode('Deceased Date'));
                            th4.appendChild(document.createTextNode('Gender'));
                            th5.appendChild(document.createTextNode('Address'));
                            //th6.appendChild(document.createTextNode('Phone No'));
                            th7.appendChild(document.createTextNode('SSN'));
                            th8.appendChild(document.createTextNode('EDIPI'));
                            th10.appendChild(document.createTextNode('Identity Theft'));
                            th11.appendChild(document.createTextNode('Sens. Level'));
                            th12.appendChild(document.createTextNode('Source'));
                            th13.appendChild(document.createTextNode('Br. of Svc'));
                            th13.appendChild(document.createTextNode('Part. ID'));                                // *ToDo: Remove. Demo purpose only

                            theadRow.appendChild(th1);
                            if (alias != "") {
                                theadRow.appendChild(thAlias);
                            }
                            theadRow.appendChild(th2);
                            if (deceasedDate != "") {
                                theadRow.appendChild(th3);
                            }
                            theadRow.appendChild(th4);
                            theadRow.appendChild(th5);
                            // theadRow.appendChild(th6);
                            theadRow.appendChild(th7);
                            // theadRow.appendChild(th8);
                            if (identityTheft != "") {
                                theadRow.appendChild(th10);
                            }
                            theadRow.appendChild(th11);
                            theadRow.appendChild(th12);
                            theadRow.appendChild(th13);
                            theadRow.appendChild(th14);                  // *ToDo: Remove. Demo purpose only
                            thead.appendChild(theadRow);
                        }

                        // Table rows
                        var row = document.createElement('tr');
                        var col1 = document.createElement('td');
                        var colAlias = document.createElement('td');
                        var col2 = document.createElement('td');
                        var col3 = document.createElement('td');
                        var col4 = document.createElement('td');
                        var col5 = document.createElement('td');
                        // var col6 = document.createElement('td');
                        var col7 = document.createElement('td');
                        //var col8 = document.createElement('td');
                        var col10 = document.createElement('td');
                        var col11 = document.createElement('td');
                        var col12 = document.createElement('td');
                        var col13 = document.createElement('td');
                        var col14 = document.createElement('td');                                                          // *ToDo: Remove. Demo purpose only
                        col1.appendChild(document.createTextNode(fullName));
                        colAlias.appendChild(document.createTextNode(alias));
                        col2.appendChild(document.createTextNode(dateOfBirth));
                        col3.appendChild(document.createTextNode(deceasedDate));
                        col4.appendChild(document.createTextNode(gender));
                        col5.appendChild(document.createTextNode(address));
                        //   col6.appendChild(document.createTextNode(phoneNumber));
                        col7.appendChild(document.createTextNode(ssn));
                        //col8.appendChild(document.createTextNode(edipi));
                        col10.appendChild(document.createTextNode(identityTheft));
                        col11.appendChild(document.createTextNode(vetSensLevel));
                        col12.appendChild(document.createTextNode(recordSource));
                        col13.appendChild(document.createTextNode(branchOfService));
                        col14.appendChild(document.createTextNode(participantId));                 // *ToDo: Remove. Demo purpose only
                        row.appendChild(col1);

                        if (alias != "") {
                            row.appendChild(colAlias);
                        }
                        row.appendChild(col2);
                        if (deceasedDate != "") {
                            row.appendChild(col3);
                        }
                        row.appendChild(col4);
                        row.appendChild(col5);
                        //row.appendChild(col6);
                        row.appendChild(col7);
                        // row.appendChild(col8);
                        if (identityTheft != "") {
                            row.appendChild(col10);
                        }
                        row.appendChild(col11);
                        row.appendChild(col12);
                        row.appendChild(col13);
                        row.appendChild(col14);                                                                                              // *ToDo: Remove. Demo purpose only
                        row.setAttribute('fullName', fullName);
                        row.setAttribute('dateofbirth', dateOfBirth);
                        row.setAttribute('fulladdress', address);
                        row.setAttribute('ssn', ssn);
                        row.setAttribute('edipi', edipi);
                        row.setAttribute('recordSource', recordSource);
                        row.setAttribute('firstName', firstName);
                        row.setAttribute('lastName', lastName);
                        row.setAttribute('patientMviIdentifier', patientMviIdentifier);
                        row.setAttribute('icn', icn);
                        row.setAttribute('vetSensLevel', vetSensLevel);
                        row.setAttribute('participantId', participantId);                                 // *ToDo: Remove. Demo purpose only
                        row.className = (i % 2 == 0) ? "even" : "odd";
                        row.ondblclick = function () { openSelectedPerson(this); };
                        row.onkeydown = function (e) {
                            if (e.keyCode === 13 || e.keyCode === 32) {
                                openSelectedPerson(this);
                            }
                        };
                        row.tabIndex = 100 + i;
                        table.append(thead);
                        table.append(row);

                        $("#resultsFieldSetDiv").show();
                        if (i == 1)
                            row.focus = true;
                    }
                }
                else {
                    $("#notFoundDiv").show();
                }

                $("#searchResultsMessageDiv").show();
                $("#searchResultsMessageDiv").text((data != null && data.length > 0 && data[0].crme_ReturnMessage != null) ? data[0].crme_ReturnMessage : "Your search in MVI did not find any records matching the search criteria.");
                //$("#searchResultsMessageDiv").text((data != null && data.length > 0 && data[0].crme_ReturnMessage != null) ? "Return Message goes here:" + data[0].crme_ReturnMessage : "Your search in MVI did not find any records matching the search criteria.");
                //$("#resultsFieldSetDiv").focus = true;
            }

            function formatDatePart(datepart) {
                return datepart.length == 1 ? "0" + datepart : datepart;
            }

            function formatName(data) {

                if (data.crme_FullName != null) {
                    return data.crme_FullName;
                }

                var firstName = data.crme_FirstName != null ? data.crme_FirstName : "";
                var lastName = data.crme_LastName != null ? data.crme_LastName : "";

                return firstName + " " + lastName;
            }

            function formatAddress(data) {
                if (data.crme_FullAddress != null) {
                    return data.crme_FullAddress;
                }

                var street = data.crme_Address1 != null ? data.crme_Address1 : "";
                var city = data.crme_City != null ? data.crme_City : "";
                var state = data.crme_StateProvinceId.Name != null ? data.crme_StateProvinceId.Name : "";
                var zip = data.crme_ZIPPostalCodeId.Name != null ? data.crme_ZIPPostalCodeId : "";

                return street + " " + city + " " + state + " " + zip;
            }


            var userSL;
            var MDI_FirstName;
            var MDI_LastName;

            function selectedPersonCallBack(data) {
                $("#SearchByIdentifierButton").enable = true;
                $('div#tmpDialog').hide(100);
debugger;
                if (data != null && data.length > 0) {

                     var url = Xrm.Page.context.getClientUrl();
                    url += "/main.aspx?etc=2&pagetype=entityrecord&id=%7b"+data[0].ContactId+"%7d"
 
                    
                    //alert(MDI_FirstName);

                    var fullname = MDI_LastName + ", " + MDI_FirstName;

                    window.parent.Xrm.Page.getAttribute("bah_veteranid").setValue([{ id: data[0].ContactId, entityType: "contact", name: fullname }]);
		
                    // SYH - Added additional fields
                    window.parent.Xrm.Page.ui.tabs.get("tab_veteransearch").setDisplayState("collapsed");

                    window.parent.Xrm.Page.getAttribute("bah_firstname_text").setValue(MDI_FirstName);
                    window.parent.Xrm.Page.getAttribute("bah_lastname_text").setValue(MDI_LastName);
                    window.parent.Xrm.Page.data.entity.save();
                    window.parent.Xrm.Page.getAttribute("bah_veteranid").fireOnChange();

                    //window.parent.Xrm.Page.getAttribute("bah_ssn_text").setValue();
                    //window.parent.Xrm.Page.getAttribute("bah_dob_date").setValue();
                    //window.parent.Xrm.Page.getAttribute("hrc_gender_code").setValue();
                    //window.parent.Xrm.Page.getAttribute("hrc_edipi_text").setValue();
                    //window.parent.Xrm.Page.getAttribute("bah_phonenumber_text").setValue();

                }
                else {
                	alert("no data returned by contact search in crm");
                }
            }

            function validateSearchByIdentifier() {
                var edipi = $("#EdipiTextBox").val();

                if (edipi != "") {
                    if ((edipi.length != 10 || isNumeric(edipi) == false)) {
                        $("#validationFailedDiv").text("VALIDATION FAILED: EDIPI is invalid.");
                        return false;
                    }
                    return true;
                }
                else {
                    $("#validationFailedDiv").text("VALIDATION FAILED: The search requires an EDIPI.");
                    return false;
                }
            }

            function validateSearchByName() {
                var fname = $("#FirstNameTextBox").val();
                var lname = $("#LastNameTextBox").val();
                var ssn = $("#SocialSecurityTextBox").val();
                // var phone = $("#PhoneNoTextBox").val();
                var dobyear = $("#BirthYearTextBox").val();
                var dobmonth = $("#BirthMonthTextBox").val();
                var dobday = $("#BirthDayTextBox").val();
                var dob = dobyear + dobmonth + dobday;
                var errorMessage = "VALIDATION FAILED: ";
                var errorCount = 0;
                if (ssn == null || ssn.trim() == "") {
                    errorMessage += "'SSN'";
                    errorCount += 1;
                }
                //if (fname == "") {
                //    if (errorCount > 0) {
                //        errorMessage += ", ";
                //    }
                //    errorMessage += "'first name'";
                //    errorCount += 1;
                //}

                if (lname == null || lname == "") {
                    if (errorCount > 0) {
                        errorMessage += ", ";
                    }
                    errorMessage += "'last name'";
                    errorCount += 1;
                }
                if (dob == null || dob.trim() == "" || !isNumeric(dob.trim())) {
                    if (errorCount > 0) {
                        errorMessage += ", ";
                    }
                    errorMessage += "'DOB'";
                    errorCount += 1;
                }
                if (errorCount > 0) {
                    errorMessage += " fields are required.";
                }

                ssn = ssn.replace(/-/g, "");
                if (ssn.trim().length != 9 || isNumeric(ssn.trim()) == false) {
                    errorMessage += " SSN is invalid.";
                    errorCount += 1;
                }

                if (!validateDateOfBirth(dobyear, dobmonth, dobday)) {
                    errorMessage += " DOB is invalid.";
                    errorCount += 1;
                }

                if (errorCount > 0) {
                    $("#validationFailedDiv").text(errorMessage);
                    return false;
                }


                return true;
            }

            function validateDateOfBirth(dobyear, dobmonth, dobday) {

                if ((dobyear == "" || dobyear == "YYYY") && (dobmonth == "" || dobmonth == "MM") && (dobday == "" || dobday == "DD")) {
                    return true;
                }

                if (dobyear != "YYYY" || dobmonth != "MM" || dobday != "DD") {
                    if ((dobyear != "" && isNumeric(dobyear) == false) || (dobmonth != "" && isNumeric(dobmonth) == false) || (dobday != "" && isNumeric(dobday) == false)) {
                        return false;
                    }
                }

                if (dobyear.length != 4) {
                    return false;
                }

                if (dobyear >= (new Date).getFullYear() + 1) {
                    return false;
                }

                if (dobyear < (new Date).getFullYear() - 200) {
                    return false;
                }

                if (dobmonth < 1 || dobmonth > 12) {
                    return false;
                }

                if (dobday < 1 || dobday > 31) {
                    return false;
                }

                return true;
            }

            function isNumeric(value) {

                return !isNaN(parseFloat(value) && isFinite(value));
            }


            //$("#SocialSecurityTextBox").focus = true;

        });
        //end jQuery Document.ready

        function clearField(obj) {
            if (obj.defaultValue == obj.value) obj.value = '';
        }

    </script>


    
    <div>
        <table>
            <tbody>
                <tr>
                    <td class="auto-style1">
                        <h3>Section 1 - Search By Traits</h3>
                    </td>
                </tr>
            </tbody>
        </table>
        <fieldset>
            <legend>The search criteria for a search by traits includes the Social Security Number, First Name, Last Name, and Date of Birth in MM DD YYYY format</legend>
            <table>
                <tbody>
                    <tr>
                        <td class="auto-style1">
                            <label for="SocialSecurityTextBox">*SSN</label>
                        </td>
                        <td>
                            <label for="FirstNameTextBox">First</label>
                        </td>
                        <td>
                            <label for="LastNameTextBox">*Last</label>
                        </td>
                        <td>
                            <label for="BirthMonthTextBox">*Month</label>
                        </td>
                        <td>
                            <label for="BirthDayTextBox">*Day</label>
                        </td>
                        <td>
                            <label for="BirthYearTextBox">*Year</label>
                        </td>

                    </tr>
                    <tr>
                        <td class="auto-style1">
                            <input name="ssn" tabindex="1" class="formInputText" id="SocialSecurityTextBox" required="" onfocus="clearField(this)" size="16" maxlength="11"> 
                            <script type="text/javascript">
                                // Start changing field names here
                                var a = document.getElementById("SocialSecurityTextBox");
                                a.value = window.parent.Xrm.Page.getAttribute("bah_ssn_text").getValue();
                            </script>
                        </td>
                        <td>
                            <input name="firstName" tabindex="2" class="formInputText" id="FirstNameTextBox" onfocus="clearField(this)" size="16" maxlength="30">
                            <script type="text/javascript">
                                var a = document.getElementById("FirstNameTextBox");
                                a.value = window.parent.Xrm.Page.getAttribute("bah_firstname_text").getValue();
                            </script>
                        </td>
                        <td>
                            <input name="lastName" tabindex="3" class="formInputText" id="LastNameTextBox" required="" onfocus="clearField(this)" size="16" maxlength="30">
                            <script type="text/javascript">
                                var a = document.getElementById("LastNameTextBox");
                                a.value = window.parent.Xrm.Page.getAttribute("bah_lastname_text").getValue();
                            </script>
                        </td>
                        <td>

                            <input name="dateOfBirthMonth" tabindex="4" class="formInputText" id="BirthMonthTextBox" style="height: 30px;" required="" onfocus="clearField(this)" size="2" maxlength="2" value="MM">
                            /
                            <script type="text/javascript">
                                var a = document.getElementById("BirthMonthTextBox");
                                var dateFieldValue = window.parent.Xrm.Page.getAttribute("bah_dob_date").getValue();
                                a.value = (dateFieldValue.getMonth() + 1);
                            </script>
                        </td>
                        <td>
                            <input name="dateOfBirthDay" tabindex="5" class="formInputText" id="BirthDayTextBox" style="height: 30px;" required="" onfocus="clearField(this)" size="2" maxlength="2" value="DD">
                            /
                            <script type="text/javascript">
                                var a = document.getElementById("BirthDayTextBox");
                                var dateFieldValue = window.parent.Xrm.Page.getAttribute("bah_dob_date").getValue();
                                a.value = dateFieldValue.getDate();
                            </script>
                        </td>
                        <td>
                            <input name="dateOfBirthYear" tabindex="6" class="formInputText" id="BirthYearTextBox" style="height: 30px;" required="" onfocus="clearField(this)" size="4" maxlength="7" value="YYYY">
                            <script type="text/javascript">
                                var a = document.getElementById("BirthYearTextBox");
                                var dateFieldValue = window.parent.Xrm.Page.getAttribute("bah_dob_date").getValue();
                                a.value = dateFieldValue.getFullYear();
                            </script>
                        </td>
                    </tr>
                    <!--<tr>
                    <td class="auto-style1">
                        <label for="formInputText">Phone</label>
                    </td>
                </tr>-->
                    <!--<tr>
                    <td class="auto-style1">
                        <input name="phoneNo" tabindex="13" class="formInputText" id="PhoneNoTextBox" style="height: 30px;" onfocus="clearField(this)" size="16" maxlength="15">
                    </td>
                </tr>-->
                    <tr>
                        <td style="padding-top: 10px;" colspan="4">
                            <button tabindex="7" id="SearchByNameButton" aria-label="Search by Traits">Search</button>
                            <button tabindex="8" id="clearNameFieldsButton" aria-label="Reset Search by Traits">Reset</button>
                        </td>
                    </tr>

                </tbody>
            </table>
        </fieldset>
        <table>
            <tbody>
                <tr>
                    <td class="auto-style1">
                        <h3>Section 2 - Search By EDIPI</h3>
                    </td>
                </tr>
            </tbody>
        </table>
        <fieldset>
            <legend>The search criteria for a search by EDIPI includes the EDIPI</legend>
        <table>
            <tbody>
                <tr>
                    <td>
                        <label for="EdipiTextBox">*EDIPI</label>
                    </td>
                </tr>
                <tr>
                    <td>
                        <input name="edipi" tabindex="9" class="formInputText" id="EdipiTextBox" required="" onfocus="clearField(this)" size="16" maxlength="10">
                        <script type="text/javascript">
                            var a = document.getElementById("EdipiTextBox");
                            a.value = window.parent.Xrm.Page.getAttribute("hrc_edipi_text").getValue();
                        </script>
                   </td>
                </tr>
               <tr>
                    <td style="padding-top: 10px;">
                        <button tabindex="10" id="SearchByIdentifierButton" aria-label="Search by EDIPI">Search</button>
                        <button tabindex="11" id="clearIdentifierFieldsButton" aria-label="Reset Search by EDIPI">Reset</button>
                    </td>
                </tr>
            </tbody>
        </table>
            </fieldset>
        <!-- <hr style="border: 1px solid gray;">
        <table>
            <tbody>
                <tr>
                    <td>
                        <h3 style="padding-bottom: 5px;">Veteran Not Found?</h3>
                    </td>
                </tr>
                <tr>
                    <td>
                        <button tabindex="16" id="createNewVeteranButton">Create Veteran</button>
                    </td>
                </tr>
            </tbody>
        </table>-->
    </div>
    <br>
    <div id="validationFailedDiv" style="color: rgb(128, 0, 0); clear: both; font-size: 1em; font-weight: bold; display: none;" aria-label="Search validation failed message">The search requires some additional information. Please follow the instructions above to execute your search.</div>
    <div id="resultsFieldSetDiv" style="width: 100%; float: left; display: none;">
    <h3>Section 3 - Search Results</h3>
    <div style="clear: both;"></div>
    <div id="searchResultsMessageDiv" style="color: rgb(128, 0, 0); font-size: 1em; font-weight: bold; display: none;" aria-label="Search Results Message"></div>
        <fieldset id="SearchResultFieldSet">
            <legend style="display: none;">Search Results</legend>
            <table id="personSearchResultsTable" style="width: 100%;">
            </table>
        </fieldset>
    </div>
    <div id="notFoundDiv" style="width: 100%; float: left; display: none;">
        <fieldset id="notFoundFieldset">
            <legend>No Records Found</legend>
            <hr style="border: 1px solid gray;">
            <table>
                <tbody>
                    <tr>
                        <td>
                            <h3 style="padding-bottom: 5px;">Veteran Not Found?</h3>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <button tabindex="16" id="createNewVeteranButton" aria-label="Create New Veteran">Create Veteran</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </fieldset>
    </div>
    <div id="tmpDialog">
        <p>Working on it. Please wait ...</p>
    </div>


</body></html>