/*
 * Copyright (c) 2006, ScanHealth, Inc. All Rights Reserved.
 */
function getElemById(elemId) {
    var element = null;
    if (document.layers) {
        // Netscape 4 or equiv.
        element = document.layers[elemId]
    } else if (document.getElementById) {
        // Netscape 6 or equiv.
        element = document.getElementById(elemId);
    } else if (document.all) {
        // MS IE or equiv.
        element = document.all[elemId];
    }
    return element;
}

function resetListParams() {
    //Reset page number
   var pageElem = getElemById('page');
   if(pageElem != null) {
     pageElem.style.cssText = "";
     pageElem.value = 1; //Reset page number
   }

    str = '&onlyReturn=true&resetList=true';
    var options = {
        method : 'post',
        parameters : str,
        onSuccess:doNothing,
        onFailure:doNothing,
        onLoading:function(request) {
            Element.show('matrixBuildIndicator')
        },
        onComplete:function(request) {
            Element.hide('matrixBuildIndicator')
        }
    };
    new Ajax.Request('AgencyLocator.do?method=Search', options);
}

function buildSearchResultsTable(searchType,searchMode) {
    <!-- Start Search Results -->
    var methodName = "doAdvancedSearch";
    if("top-performers" == TrimString(searchType)) {
        methodName = "doTop20Search";
    }else if("quick-find" == TrimString(searchType)) {
       methodName = "doZipSearch";
    }
    log.debug("methodName: "+methodName);
    return  "<div align=\"center\">\n" +
            "<div id=\"detailsWrapperMatrix\">\n" +
            "<div class=\"advanced-top\" ><img src=\"images/locator/search-results-header.gif\" width=\"670\" height=\"25\" alt=\"Search Results\" title=\"Search Results\" border=\"0\" /></div>\n" +

            "<div class=\"advanced-middle\" >\n" +
            "  <div style=\"padding: 5px; width: 650px;\">\n" +
            "        <div style=\"width: 30%; text-align: left; float: left;\">\n" +
            "            <a href=\"javascript:buildMatrix()\"><img src=\"images/locator/compare-btn.gif\" alt=\"\"></a>\n" +
            "        </div>\n" +
            "\n" +
            "        <div align=\"center\" class=\"letterSearch\" style=\"float:left;\">\n" +
            "            <a id=\"letterA\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','A')\"> A </a>\n" +
            "            <a id=\"letterB\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','B')\"> B </a>\n" +
            "            <a id=\"letterC\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','C')\"> C </a>\n" +
            "            <a id=\"letterD\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','D')\"> D </a>\n" +
            "            <a id=\"letterE\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','E')\"> E </a>\n" +
            "            <a id=\"letterF\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','F')\"> F </a>\n" +
            "            <a id=\"letterG\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','G')\"> G </a>\n" +
            "            <a id=\"letterH\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','H')\"> H </a>\n" +
            "            <a id=\"letterI\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','I')\"> I </a>\n" +
            "            <a id=\"letterJ\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','J')\"> J </a>\n" +
            "            <a id=\"letterK\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','K')\"> K </a>\n" +
            "            <a id=\"letterL\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','L')\"> L </a>\n" +
            "            <a id=\"letterM\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','M')\"> M </a>\n" +
            "            <a id=\"letterN\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','N')\"> N </a>\n" +
            "            <a id=\"letterO\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','O')\"> O </a>\n" +
            "            <a id=\"letterP\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','P')\"> P </a>\n" +
            "            <a id=\"letterQ\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','Q')\"> Q </a>\n" +
            "            <a id=\"letterR\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','R')\"> R </a>\n" +
            "            <a id=\"letterS\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','S')\"> S </a>\n" +
            "            <a id=\"letterT\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','T')\"> T </a>\n" +
            "            <a id=\"letterU\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','U')\"> U </a>\n" +
            "            <a id=\"letterV\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','V')\"> V </a>\n" +
            "            <a id=\"letterW\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','W')\"> W </a>\n" +
            "            <a id=\"letterX\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','X')\"> X </a>\n" +
            "            <a id=\"letterY\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','Y')\"> Y </a>\n" +
            "            <a id=\"letterZ\" href=\"javascript:doBasicLetterSearch('BASIC_LETTER','Z')\"> Z </a>\n" +
            "            <a id=\"agencyDetails\" href=\"javascript:showAll()\">(Show More)</a>\n" +
            "        </div>\n" +
            "\n" +
            "        <div style=\"float:right;margin:0px;padding:0px;\">\n" +
            "            <span id=\"matrixBuildIndicator\" style=\"display: none\">\n" +
            "                <img src=\"images/icons/ajax-loader.gif\" alt=\"Updating...\" title=\"Updating...\"/>\n" +
            "            </span>\n" +
            "        </div>\n" +
            "\n" +
            "        <div style=\"clear:both\"></div>\n" +
            "\n" +
            "        <div style=\"width:100%;float:left;text-align:right;height:20px;\">\n" +
            "\n" +
            "            <span id=\"recordsText\"></span>\n" +
            "            <a class=\"pagePrevLink\" id=\"prevLink\" href=\"javascript:prev();\"><img class=\"pagePrevImg\" id=\"prevImg\" src=\"images/buttons/pagenav_previous_off.gif\" align=\"bottom\" border=\"0\"></a>\n" +
            "            <a class=\"pageNextLink\" id=\"nextLink\" href=\"javascript:next();\"><img class=\"pageNextImg\" id=\"nextImg\" src=\"images/buttons/pagenav_next.gif\" align=\"bottom\" border=\"0\"></a>\n" +
            "            <a class=\"refreshLink\" id=\"refreshLink\" href=\"javascript:refreshBasicList();\"><img class=\"refreshLinkImg\" id=\"refreshLinkImg\" src=\"images/icons/refresh.gif\" align=\"bottom\" border=\"0\"></a>\n" +
            "        </div>\n" +
            "    </div>\n" +
            "\n" +
            "    <div style=\"clear:both\"></div>\n"+
            "     <form action=\"get\" name=\"compare_form\" id=\"compare_form\">\n" +
            "        <table cellpadding=\"0\" border=\"0\" cellspacing=\"0\" class=\"details\" id=\"agencyTable\" cellspacing=\"0\" width=\"650\">\n" +
            "          <thead>\n" +
            "           <tr>\n" +
            "              <th style=\"padding:0px;margin:0px;\" nowrap=\"nowrap\">\n" +
            "                  &nbsp;\n" +
            "                </th>\n" +
            "                <th nowrap=\"nowrap\">\n" +
            "                    <a href=\"javascript:"+methodName+"('SORT_BY_NAME_BASIC')\">Agency Name</a>\n" +
            "                    <span id=\"sortIconName\"></span>\n" +
            "                </th>\n" +
            "                <th nowrap=\"nowrap\" >\n" +
            "                    <strong><a href=\"javascript:"+methodName+"('SORT_BY_CITY_BASIC')\">City</a></strong>\n" +
            "                    <span id=\"sortIconCity\"></span>\n" +
            "                </th>\n" +
            "                <th nowrap=\"nowrap\" >\n" +
            "                    <strong><a href=\"javascript:"+methodName+"('SORT_BY_STATE_BASIC')\">State</a></strong>\n" +
            "                    <span id=\"sortIconState\"></span>\n" +
            "                  </th>\n" +
            "                <th id=\"nationalRankTitle\" >\n" +
            "                    <strong><a href=\"javascript:"+methodName+"('SORT_BY_PERCENTILE_BASIC')\">National Medicare <br/> Performance Percentile</a></strong>\n" +
            "                    <span id=\"sortIconPercentile\"></span>\n" +
            "                </th>\n" +
            "             </tr>\n" +
            "            </thead>\n" +
            "            <tbody id=\"searchResults\"></tbody>\n" +
            "            </table>\n" +
            "            <input id=\"searchType\" type=\"hidden\" value='"+searchType+"'/>\n"+
            "            <input id=\"searchMode\" type=\"hidden\" value='"+searchMode+"'/>\n"+
//            "            <input id=\"associationId\" type=\"hidden\" value='22'/>\n"+
//            "            <input id=\"sortColumn\" type=\"hidden\" value='a.name'/>\n"+
            "            <input id=\"searchLetter\" type=\"hidden\" value=''/>\n"+
            "            <input id=\"autocompleteZip\" type=\"hidden\" value=''/>\n"+
            "            <input id=\"resetList\" type=\"hidden\" value=\"false\"/>\n"+
            "            </form>\n" +
            "        <div style=\"width:650px;padding-top:5px\">\n" +
            "            <div style=\"width:20%;float:left;text-align:left\"><a href=\"javascript:buildMatrix()\"><img src=\"images/locator/compare-btn.gif\" alt=\"\"/></a></div>\n" +
            "            <div style=\"width:80%;text-align:center\">\n" +
            "                <a class=\"pagePrevLink2\" id=\"prevLink2\" href=\"javascript:prev();\"><img class=\"pagePrevImg2\" id=\"prevImg2\" src=\"images/buttons/pagenav_previous_off.gif\" align=\"bottom\" border=\"0\"></a>\n" +
            "                <a class=\"pageNextLink2\" id=\"nextLink2\" href=\"javascript:next();\"><img class=\"pageNextImg2\" id=\"nextImg2\" src=\"images/buttons/pagenav_next.gif\" align=\"bottom\" border=\"0\"></a>\n"+
            "                <font color=\"#666666\">\n" +
            "                        <span id=\"pageControl\"> Page </span>\n" +
            "                        <input id=\"page\" onchange=\"javascript:"+methodName+"('PAGE_NUMBER')\" value=\"1\" size=\"3\" type=\"text\"/> of\n" +
            "                        <span id=\"itemsText\"></span>\n" +
            "                <select size=\"1\" id=\"itemsPerPage\" onchange=\"javascript:"+methodName+"('ITEMS_PER_PAGE');\">\n" +
            "                        <option selected=\"selected\" value=\"10\">10</option>\n" +
            "                        <option value=\"20\">20</option>\n" +
            "                        <option value=\"30\">30</option>\n" +
            "                        <option value=\"40\">40</option>\n" +
            "                        <option value=\"50\">50</option>\n" +
            "                        <option value=\"60\">60</option>\n" +
            "                        <option value=\"100\">100</option>\n" +
            "                        <option value=\"150\">150</option>\n" +
            "                        <option value=\"200\">200</option>\n" +
            "                </select>\n" +
            "              </font>\n" +
            "          </div>\n" +
            "     </div>\n" +
            "<div class=\"advanced-bottom\"></div>\n" +
            "</div>\n" +
            "</div>\n";
}
var us = [["",""], [ "AL","Alabama"], [ "AK","Alaska"], [ "AZ","Arizona"], [ "AR","Arkansas"], [ "CA","California"], [ "CO","Colorado"], [ "CT","Connecticut"], [ "DE","Delaware"], [ "DC","District of Columbia"], [ "FL","Florida"], [ "GA","Georgia"], [ "HI","Hawaii"], [ "ID","Idaho"], [ "IL","Illinois"], [ "IN","Indiana"], [ "IA","Iowa"], [ "KS","Kansas"], [ "KY","Kentucky"], [ "LA","Louisiana"], [ "MA","Maine"], [ "MD","Maryland"], [ "MA","Massachusetts"], [ "MI","Michigan"], [ "MN","Minnesota"], [ "MS","Mississippi"], [ "MO","Missouri"], [ "MT","Montana"], [ "NE","Nebraska"], [ "NV","Nevada"], [ "NH","New Hampshire"], [ "NJ","New Jersey"], [ "NM","New Mexico"], [ "NY","New York"], [ "NC","North Carolina"], [ "ND","North Dakota"], [ "OH","Ohio"], [ "OK","Oklahoma"], [ "OR","Oregon"], [ "PA","Pennsylvania"], [ "RI","Rhode Island"], [ "SC","South Carolina"], [ "SD","South Dakota"], [ "TN","Tennessee"], [ "TX","Texas"], [ "UT","Utah"], [ "VT","Vermont"], [ "VA","Virginia"], [ "WA","Washington"], [ "WV","West Virginia"], [ "WI","Wisconsin"], [ "WY","Wyoming"], ["","--------------------"], ["VI","Virgin Islands"],["PR","Puerto Rico"]];


function doZipSearch(choice) {
    //Show progress bar
    showProgress();
    str = '&search_type=basic';
    var zipCode = "";
    if (getElemById('agency_zipCodes') != null) { //Are we searching from the 'search by service area' page?
        zipCode = getElemById('agency_zipCodes').value;
    }
    if (zipCode == "") { //Or Are we searching from the QuickFind zipcode search?
        if (getElemById('sidebar_agency_zip') != null) {
            zipCode = getElemById('sidebar_agency_zip').value;
        }
    }

    if(getElemById("searchLetter") != null) {
        searchLetter = getElemById("searchLetter").value;
        if(searchLetter != "") {
            str+="&letter="+searchLetter;
        }
    }

    log.debug("zipCode: " + zipCode);
    if (zipCode == null || "" == zipCode) {
        return;
    }

    //Determine search zip type (location/service area)
    myOption = -1;
    for (i = document.zipLocationForm.length - 1; i > -1; i--) {
        if (document.zipLocationForm[i].checked) {
            myOption = i;
            i = -1;
        }
    }
    if (myOption == 0) { //Search by Agency zip
        str += '&resetList=true&search_by_zip=true'
    } else if (myOption == 1) { //Search by Service Area
        str += '&resetList=true&search_by_service_area=true'
    }
    if (zipCode != "") {
        str += "&agency_zipCodes=" + zipCode;
    }

    log.debug("str: " + str);
    executeChoices(choice,str);
}


//function doAffinityZipSearch(choice) {
//    str = '&search_type=affinity';
//    var zipCode = "";
//    if (getElemById('agency_zipCodes') != null) {
//        zipCode = getElemById('agency_zipCodes').value;
//    }
//    if (zipCode == null || "" == zipCode) {
//        return;
//    }
//
//    if (zipCode != "") {
//        str += "&agency_zipCodes=" + zipCode;
//    }
//    window.location = "http://www.gethomecare.com/AgencyLocator.do?method=Search?"+str;
//}

function updateQuickZipSearch(ajax) {
    log.debug("updateQuickZipSearch - Start");
    log.debug(ajax.responseText);
    var response = ajax.responseXML.documentElement;
    var items = response.getElementsByTagName('agency');
    log.debug("# agencies: " + items.length);
    var searchMode = "search_by_service_area";
    //Determine search zip type (location/service area)
    myOption = -1;
    for (i = document.zipLocationForm.length - 1; i > -1; i--) {
        if (document.zipLocationForm[i].checked) {
            myOption = i;
            i = -1;
        }
    }
    if (myOption == 0) { //Search by Agency zip
        //str += '&resetList=true&search_by_zip=true'
        log.debug("search_by_zip");
        searchMode = "search_by_zip";
    } else if (myOption == 1) { //Search by Service Area
        log.debug("search_by_service_are");
//        str += '&resetList=true&search_by_service_area=true'
        searchMode = "search_by_service_area";
    }

    var zipCode = "";
    if (getElemById('agency_zipCodes') != null) { //Are we searching from service area page?
        zipCode = getElemById('agency_zipCodes').value;
    }
    if (zipCode == "") { //QuickFind zip
        if (getElemById('sidebar_agency_zip') != null) { //Are we searching from the quickfind zip?
            zipCode = getElemById('sidebar_agency_zip').value;
        }
    }
    log.debug("zipCode: "+zipCode);
    //Replace mainContent in template with search results
    var contentWrapper = getElemById("contentWrapper");
    if ("" == zipCode || zipCode == null) {
        searchMode = "";
        contentWrapper.innerHTML = "<div class='searchCriteriaTitle'><a>GetHomeCare.com&trade; Top Performers</a></div>" + buildSearchResultsTable('top-performers',searchMode);
    } else {
        contentWrapper.innerHTML = "<div class='searchCriteriaTitle'><a>Search Critieria ... " + zipCode + "</a></div>" + buildSearchResultsTable('quick-find',searchMode);
    }

    var zipCodeElem = getElemById("autocompleteZip");
    if(zipCodeElem != null) {
        zipCodeElem.value = zipCode;
    }
    log.debug("1");

    //Reset the page number
    resetPageNumber(response);
//    activateNext();
//    disablePrev();

    //Show search results
    showResults();
    log.debug("2");

//    comparePageControls = getElemById("pageControl");
//    //Turn paging off
//    comparePageControls.style.display = "none";
//    comparePageControls.style.visibility = "hidden";
    log.debug("3");


    //Generate results
    buildSearchResults(response);

    //Hide progress bar
    hideProgress();
    updateShowMoreLink();
}

var str = "";
function doSearch(type) {
    log.debug("search type: " + type);
    clearLetters();
    showProgress();
    if ("basic" == type) {
        doBasicSearch("BASIC");
    }
    if ("zip" == type) {
        doZipSearch("ZIP");
    }
}
function updateSearchResultsGoodCity(ajax) {
    //log.debug(ajax.responseText);
    var response = ajax.responseXML.documentElement;
    var maxPages = response.getAttribute("pages");
    var pageElem = getElemById('page');
    var currentPage = pageElem.value;

    //Update city count
    var cityElem = getElemById('cities_form').elements;
    var i = 0;
    var cityCount = 0;
    for (i = 0; i < cityElem.length; i++) {
        if (cityElem[i].type == 'checkbox') {
            if (cityElem[i].checked) {
                ++cityCount;
            }
        }
    }
    cityCountElem = getElemById("cityCount");
    cityCountElem.innerHTML = "(" + cityCount + " of " + i + ")";

    //Display zip codes
    buildZipList(response, document);

    //Build search results
    buildSearchResults(response)

    //Update prev/next icons
    //updatePager(ajax,"next");

    //Hide progress bar
    hideProgress();

    //Reset page number
    resetPageNumber(response);
    updateShowMoreLink();


    //Show search results
    showResults();
}


function updateSearchResultsGoodZip(ajax) {
    //log.debug('zip: ' + ajax.responseText);
    var response = ajax.responseXML.documentElement;
    var maxPages = response.getAttribute("pages");
    var pageElem = getElemById('page');
    var currentPage = pageElem.value;

    //    //Update city count
    //    var cityElem = getElemById('cities_form').elements;
    //    var i = 0;
    //    var cityCount = 0;
    //    for (i = 0; i < cityElem.length; i++) {
    //        if (cityElem[i].type == 'checkbox') {
    //            if (cityElem[i].checked) {
    //                ++cityCount;
    //            }
    //        }
    //    }
    //    cityCountElem = getElemById("cityCount");
    //    cityCountElem.innerHTML = "(" + cityCount + " of " + i + ")";
    //Display City list
    buildCityList(response, document);

    //Update zip count
    var zipElem = getElemById('zipCode_form').elements;
    var i = 0;
    var zipCount = 0;
    for (i = 0; i < zipElem.length; i++) {
        if (zipElem[i].type == 'checkbox') {
            if (zipElem[i].checked) {
                ++zipCount;
            }
        }
    }
    zipCountElem = getElemById("zipCodeCount");
    zipCountElem.innerHTML = "(" + zipCount + " of " + i + ")";


    //Build search results
    buildSearchResults(response);

    //Update prev/next icons
    //updatePager(ajax,"next");

    //Hide progress bar
    hideProgress();

    //Reset page number
    resetPageNumber(response);
    updateShowMoreLink();

    //Show search results
    showResults();

}

function updateBasicSearchResultsGood(ajax) {
    log.debug("updateBasicSearchResultsGood -- Start");
    log.debug(ajax.responseText);


    var response = ajax.responseXML.documentElement;
    //Update column sort
    columnToSortBy = response.getAttribute("columnToSortBy");
    sortOrder = response.getAttribute("sortOrder");
    updateSortHeaders(columnToSortBy, sortOrder);

    //Build Search Results
    buildSearchResults(response);

    //Reset the page number
    resetPageNumber(response);
//    activateNext();
//    disablePrev();

    //Show search results
    showResults();

    //Hide progress bar
    hideProgress();
    updateShowMoreLink();

}

function updateSearchResultsGood(ajax) {
    log.debug("updateSearchResultsGood -- Start");
    var response = ajax.responseXML.documentElement;
    var itemsPerPage = response.getAttribute("itemsPerPage");
    var currentOffset = response.getAttribute("currentOffset");

    //Update column sort
    columnToSortBy = response.getAttribute("columnToSortBy");
    sortOrder = response.getAttribute("sortOrder");
    updateSortHeaders(columnToSortBy, sortOrder);

    //Display City list
    buildCityList(response, document);

    //Display Zip Code list
    buildZipList(response, document);

    //Build Search Results
    buildSearchResults(response);

    //Hide progress bar
    hideProgress();
    updateShowMoreLink();

    //Reset the page number
    resetPageNumber(response);

//    //Update pager
//    if(parseInt(currentOffset) > 1) {
//        activatePrev();
//    }else {
//        disablePrev();
//    }
//    activateNext();

    //Show search results
    showResults();

}

function updateSearchResultsGoodPager(ajax) {
    log.debug("inside updateSearchResultsGoodPager()");
    var response = ajax.responseXML.documentElement;
    log.debug(ajax.responseText);
    //Build Search Results
    buildSearchResults(response);

    //Show search results
    showResults();

    //Hide progress bar
    hideProgress();
    updateShowMoreLink();

}
function updateSearchResultsGoodPagerItemsPerPage(ajax) {
    var response = ajax.responseXML.documentElement;
    var maxPages = response.getAttribute("pages");
    var maxRecords = response.getAttribute("maxRecords");
    var itemsPerPage = response.getAttribute("itemsPerPage");
    //alert("maxPages: "+maxPages + " maxRecords: "+maxRecords+"  itemsPer: "+itemsPerPage);

    var agencyCount = getElemById("agencyCount"); //Used to show all/show less
    if(agencyCount != null) {
        agencyCount.value = itemsPerPage;
    }

    resetPageNumber(response);

//    if(itemsPerPage >= maxRecords) {
//        if(parseInt(maxPages) == 1) {
//            disableNext();
//            disablePrev();
//        }
//        else {
////        disableNext();
//       activateNext();
//        disablePrev();
//     }
//
//    } else {
//    disablePrev();
//    activateNext();
//        }
    clearLetters();
    updateSearchResultsGoodPager(ajax);
}

function updateSearchResultsGoodPagerPage(ajax) {
    var response = ajax.responseXML.documentElement;
    var maxPages = response.getAttribute("pages");
    log.debug("inside updateSearchResultsGoodPagerPage()");
    log.debug(ajax.responseText);
    var pageElem = getElemById('page');

    var currentPage = pageElem.value;
    if(isNaN(currentPage)) {
        alert("You have entered an invalid page number. Please try again.");
        pageElem.style.cssText = "border:2px solid red;text-decoration:blink;";
    } else {

    if(parseInt(currentPage) > parseInt(maxPages)) {
        pageElem.value = maxPages;
        pageElem.style.cssText = "";
    } else if (parseInt(currentPage) < 1 ) {
        pageElem.value = 1;
        pageElem.style.cssText = "";
    } else {
        pageElem.style.cssText = "";
    }

        }
    resetPageNumber(response);
    //updatePager(ajax,"none");
    updateSearchResultsGoodPager(ajax);
    hideProgress();
    updateShowMoreLink();
}

function updateSearchResultsGoodPagerNext(ajax) {
    var response = ajax.responseXML.documentElement;
    resetPageNumber(response);

//      updatePager(ajax,"next");

      updateSearchResultsGoodPager(ajax);
      hideProgress();
      updateShowMoreLink();

}
function updateSearchResultsGoodPagerPrev(ajax) {
    var response = ajax.responseXML.documentElement;
    resetPageNumber(response);
//      updatePager(ajax,"prev");
      updateSearchResultsGoodPager(ajax);
      hideProgress();
      updateShowMoreLink();
}


function updateSearchResultsFailed(ajax) {
    var response = ajax.responseXML.documentElement;
    alert('The search failed!');
}

function launchwin(winurl, winname, winfeatures) {
    if (winname == null) {
        winname = 'search_form';
    }
    if (winfeatures == null) {
        winfeatures = 'height=500,width=500,resizable=yes,scrollbars=yes,toolbar=yes';
    }
    //This launches a new window and then
    //focuses it if window.focus() is supported.
    newwin = window.open(winurl, winname, winfeatures);
}
function loadAll() {
    var numOptions = 0;
    var obj = document.forms['agencySearch'].STS;
    clearDropDown();
    loadDropDown(obj, us, numOptions);
    numOptions = document.forms['agencySearch'].STS.options.length;
    obj.options[0].selected = false;
}
function loadDropDown(obj, arr, numOptions) {
    for (i = 0; i < arr.length; i++) {
        obj.options[numOptions + i] = new Option(arr[i][1], arr[i][0]);
    }
    obj.options[0].selected = true;
}
function clearDropDown() {
    document.forms['agencySearch'].STS.options.length = 0;
}
function doClearContactUs() {
  document.ContactUsForm.reset();
}
function doClear() {
    document.agencySearch.reset();
    loadAll();
    showBlock = "none";
    //hide search results;
    hideResults();
}
function frminit() {
    loadAll();
}

function frminit_2() {
    var numOptions = 0;
    obj = getElemById("searchStates");
    loadAll2(obj, us, numOptions);
}
function loadAll2(obj, arr, numOptions) {
    for (i = 0; i < arr.length; i++) {
        name = arr[i][1];
        value = arr[i][0];
        if (name == "") continue;

        trElem = document.createElement("tr");
        tdElem = document.createElement("td");
        try {
            //IE Sucks!
            checkBoxElem = document.createElement('<input type="checkbox" name="agency_state" onclick="javascript:doAdvancedSearch(\'STATE\')" />');
        } catch(err) {
            checkBoxElem = document.createElement('input');
            checkBoxElem.setAttribute('type', 'checkbox');
            checkBoxElem.setAttribute('name', 'agency_state');
            checkBoxElem.setAttribute("onclick", "javascript:doAdvancedSearch('STATE')");
        }

        checkBoxElem.setAttribute('value', value);
        tdElem.appendChild(checkBoxElem);
        txtNode = document.createTextNode(name);
        tdElem.appendChild(txtNode);

        trElem.appendChild(tdElem);
        obj.appendChild(trElem);
    }
    //    clearDropDown();
}

function switchStyle(thisId, attribute, searchTag) {
    log.debug("thisId: "+thisId);
    if (document.all) {
        // MS IE or equiv.
        var list = document.all.tags(searchTag);
        for (i = 0; i < list.length; i++) {
            if (list(i).id == thisId) {
                if (list(i).style.visibility == "hidden") {
                    list(i).style.visibility = "visible";
                }
                else {
                    list(i).style.visibility = "hidden";
                }
                switchTrStyle(list(i), 'ie', 'TR');
            }
        }
    } else if (document.getElementById) {
        //Netscape or Mozilla equivalent (DOM not well supported by ie5.5)
        if (getElemById(thisId).getAttribute('style') == "visibility: hidden;") {
            getElemById(thisId).setAttribute('style', 'visibility: visible;');
        } else {
            getElemById(thisId).setAttribute('style', 'visibility: hidden;');
        }
        switchTrStyle(getElemById(thisId), 'ns', 'TR');
    }
}


function changeImages() {

    var img = getElemById(changeImages.arguments[0]);

    log.debug("img: "+img);
    log.debug(changeImages.arguments[0]);
    // detailImage0_1 (right arrow)
    // detailImage0_0 (down arrow)
    if (img.name.lastIndexOf("_1") != -1) {
        img.name = img.name.replace("_1", "_0");
        img.src = changeImages.arguments[1];
    } else if (img.name.lastIndexOf("_0") != -1) {
        img.name = img.name.replace("_0", "_1");
        img.src = changeImages.arguments[2];
    }

}

function switchTrStyle(E, browser, switchTag) {
    if (browser == "ie") {
        while (E.tagName != switchTag) {
            E = E.parentElement;
        }
    } else {
        while (E.tagName != switchTag) {
            E = E.parentNode;
        }
    }
    if (E.style.display == "none") {
        E.style.display = '';
    } else {
        E.style.display = 'none';
    }
}

function buildSearchResults(response) {
    log.debug("inside build search results");
    var pages = response.getAttribute("pages");
    log.debug("pages: " + pages);
    var perPage = response.getAttribute("itemsPerPage");
    var itemsPerPageDecision = response.getAttribute("itemsPerPageDecision");
    var currentOffset = response.getAttribute("currentOffset");
    var maxRecords = response.getAttribute("maxRecords");

    var items = response.getElementsByTagName('agency');
    //Agencies from xml
    var mytable = getElemById("agencyTable");
    //    mytable.style.display = "none";
    //    mytable.style.visibility = "hidden";
    var mytbody = getElemById("searchResults");
    var myNewtbody = document.createElement("tbody");
    myNewtbody.id = "searchResults";
    var docFragment = document.createDocumentFragment();
    var trElem, trElem2, tdElem2, tdElem, txtNode2, txtNode;
    var currentOffSetTmp = currentOffset;
    if (items.length == 0) {
        log.debug("No results found!");
        trElem = document.createElement("tr");
        trElem.setAttribute("id", j);
        tdElem = document.createElement("td");
        tdElem.style.padding = "0px";
        tdElem.style.margin = "0px";
        tdElem.setAttribute("colspan", "4");
        tdElem.appendChild(document.createTextNode("No results found"));
        trElem.appendChild(tdElem);
        docFragment.appendChild(trElem);
        comparePageControls = getElemById("compareControl");
        //Turn compare off when no search results
        comparePageControls.style.display = "none";
        comparePageControls.style.visibility = "hidden";
        comparePageControls = getElemById("pageControl");
        //Turn paging off when no search results
        comparePageControls.style.display = "none";
        comparePageControls.style.visibility = "hidden";

    }
    //alert("items: "+items);
    var j;
    for (j = 0; j < items.length; j++) {

        //alert("num: " + j);
        var item = items[j];
        isMember = item.childNodes[12].firstChild.nodeValue;
        isTop20 = item.childNodes[9].firstChild.nodeValue;
        log.debug("isTop20? " + isTop20);

        agencyId = item.childNodes[0].firstChild.nodeValue;
        //Start row
        trElem = document.createElement("tr");
        //        trElem.className = "row1";
        //        trElem.setAttribute("onmouseover", "this.className='row3';");
        //        trElem.setAttribute("onmouseout", "this.className='row1';");
        trElem.setAttribute("id", j);

        //Row Number
        tdElem = document.createElement("td");
        //        tdElem.className = "row1";
        tdElem.style.padding = "0px";
        tdElem.style.margin = "0px";
        tdElem.style.width = "16px";
        //        txtNode = document.createTextNode(currentOffSetTmp++);
        //Compare check box if its a medicare certified agency
        var certified = item.childNodes[8].firstChild;

        compareBox = document.createElement("input");
        compareBox.setAttribute("type", "checkbox");
        compareBox.setAttribute("id", item.childNodes[0].firstChild.nodeValue);
        compareBox.setAttribute("value", item.childNodes[0].firstChild.nodeValue);
        compareBox.setAttribute("name", "agency_id");
        if(certified==null) {  //Disable checkbox if not certified
            compareBox.setAttribute("disabled", "true");
        }
        tdElem.appendChild(compareBox);
        trElem.appendChild(tdElem);

        //Agency Name
        tdElem = document.createElement("td");
        tdElem.className = "row1";
        tdElem.setAttribute("id", "");

        var imgId = "detailsImage" + j ;
        imgElem = document.createElement("img");
        imgElem.name = imgId + "_1";
        //Modify name to determine if toggled up or down
        //imgElem.id = 1;

        imgElem.id = imgId;
        var id = "agencyDetailsHidden" + j;
        ahrefNode = document.createElement("a");

        if (isMember == "true") {
            imgElem.title = "Click to see Member website";
            if (isTop20 == "true") {
                imgElem.src = "images/icons/top20-32.png";
                imgElem.className = "top20Image";
            } else {
//                imgElem.src = "images/spacer-clear-15.gif";
                imgElem.src = "images/spacer.gif";
                imgElem.className = "memberImage";
            }
            //Show Member website in link
            ahrefNode.setAttribute("href", "http://" + item.childNodes[7].firstChild.nodeValue);
            //            ahrefNode.setAttribute("href", "javascript:changeImages('" + imgId + "','images/locator/down-orange.gif','images/locator/right-orange.gif');javascript:switchStyle('" + id + "','style','span');");

            ahrefNode.setAttribute("title", item.childNodes[7].firstChild.nodeValue);
            //Member website in title
            tdElem.className = "member";
            tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background:#C0D3E6;";
            //tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background: #C0D3E6 url(../../images/icons/lime.gif)  repeat-x;";

        } else { //Non-member links
            imgElem.title = "Click to View Details";
            imgElem.src = "images/locator/right-orange.gif";
            ahrefNode.setAttribute("href", "javascript:changeImages('" + imgId + "','images/locator/down-orange.gif','images/locator/right-orange.gif');javascript:switchStyle('" + id + "','style','span');");
            ahrefNode.setAttribute("title", "Click to view Details");
            ahrefNode.setAttribute("onmouseover", "return showStatus('Click to view Details')");
            ahrefNode.setAttribute("onmouseout", "return showStatus('')");
        }
        ahrefNode.appendChild(imgElem);

        txtNode = document.createTextNode(item.childNodes[1].firstChild.nodeValue);
        ahrefNode.appendChild(txtNode);
        tdElem.appendChild(ahrefNode);
        trElem.appendChild(tdElem);
        //City
        tdElem = document.createElement("td");
        tdElem.className = "row1";
        tdElem.setAttribute("id", "");
        txtNode = document.createTextNode(item.childNodes[3].firstChild.nodeValue);
        tdElem.appendChild(txtNode);
        if (isMember == "true") {
            tdElem.className = "member";
            tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background:#C0D3E6;";
            //tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background: #C0D3E6 url(../../images/icons/lime.gif)  repeat-x;";
        }
        trElem.appendChild(tdElem);

        //State
        tdElem = document.createElement("td");
        tdElem.className = "searchResult";
        tdElem.setAttribute("id", "");
        txtNode = document.createTextNode(item.childNodes[2].firstChild.nodeValue);
        tdElem.appendChild(txtNode);
        if (isMember == "true") {
            tdElem.className = "member";
              tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background:#C0D3E6;";
//            tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background: #C0D3E6 url(../../images/icons/lime.gif)  repeat-x;";
        }
        trElem.appendChild(tdElem);


        //        //Street Address
        //        tdElem = document.createElement("td");
        //        tdElem.className = "row1";
        //        tdElem.setAttribute("id", "");
        //        txtNode = document.createTextNode(item.childNodes[4].firstChild.nodeValue);
        //        tdElem.appendChild(txtNode);
        //        trElem.appendChild(tdElem);

        //Zip
        //        tdElem = document.createElement("td");
        //        tdElem.className = "row1";
        //        tdElem.setAttribute("id", "");
        //        txtNode = document.createTextNode(item.childNodes[5].firstChild.nodeValue);
        //        tdElem.appendChild(txtNode);
        //        trElem.appendChild(tdElem);

        //Score
        //        tdElem = document.createElement("td");
        //        tdElem.className = "row1";
        //        tdElem.setAttribute("id", "");
        eligable = item.childNodes[10].attributes[0].value;
        //        log.debug("eligable1 : "+eligable);
        //        if(eligable == "true") {
        //           txtNode = document.createTextNode(item.childNodes[11].firstChild.nodeValue);
        //        }else {
        //            txtNode = document.createTextNode("N/A");
        //        }
        //        tdElem.appendChild(txtNode);
        //        trElem.appendChild(tdElem);

        //Percentile
        tdElem = document.createElement("td");
        tdElem.className = "row1";
        tdElem.setAttribute("id", "");
        percentileBox = document.createElement("span");
        percentileBox.className = "top20Agency";
          percentileBox.style.cssText = "font-weight:bold;color:#3CA200;text-decoration:none";
//        percentileBox.style.cssText = "";
        infoSpan = document.createElement("span");
        infoSpan.style.cssText = "float:right;white-space:nowrap;padding-left:20px;font-size:70%;font-weight:normal;text-decoration:none;color:#000;background:transparent !important;text-align:right;";
        infoSpan.className="infoSpan";
        if (eligable == "true") {
            if (isTop20 == "true") {
                txtNode = document.createTextNode(item.childNodes[10].firstChild.nodeValue + "%");
                if(isMember == "false"){
                   infoSpan.appendChild(document.createTextNode("Top 20 Agency"));
                 }
            } else {
                txtNode = document.createTextNode(item.childNodes[10].firstChild.nodeValue + "%");
                infoSpan.appendChild(document.createTextNode(""));
            }
        } else {
            txtNode = document.createTextNode("N/A");
            infoSpan.appendChild(document.createTextNode(""));
        }
        if(isMember == "true") {
//            infoSpan.appendChild(document.createTextNode("Member Agency"));
            infoSpan.appendChild(document.createTextNode(""));
        }
        percentileBox.appendChild(txtNode);
        percentileBox.appendChild(infoSpan);
        if (isTop20 == "true") {
            tdElem.appendChild(percentileBox);
        } else {
            tdElem.appendChild(txtNode);
            tdElem.appendChild(infoSpan);
        }
        if (isMember == "true") {//Match the percentile column to the other member columns
            tdElem.className = "member";
            tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background:#C0D3E6;";
            //tdElem.style.cssText="border-collapse:collapse;font-weight:bold;padding-bottom:5px;background: #C0D3E6 url(../../images/icons/lime.gif)  repeat-x;";
        }
//        trElem.appendChild(tdElem);
        //Phone
        //        tdElem = document.createElement("td");
        //        tdElem.className = "row1";
        //        txtNode = document.createTextNode(item.childNodes[4].firstChild.nodeValue);
        //        tdElem.appendChild(txtNode);
        //        trElem.appendChild(tdElem);

        //Certified Date
        //        tdElem = document.createElement("td");
        //        tdElem.className = "row1";
        //        txtNode = document.createTextNode(item.childNodes[5].firstChild.nodeValue);
        //        tdElem.appendChild(txtNode);
        //        trElem.appendChild(tdElem);

        trElem.appendChild(tdElem);

        //Agency Details Row
        trElem2 = document.createElement("tr");
        trElem2.style.display = "none";

        tdElem1 = document.createElement("td");

        tdElem2 = document.createElement("td");
        //tdElem2.setAttribute("colspan", "5");
        tdElem2.colSpan = 5;
        //                tdElem2.setAttribute("id","details");


        //Start flip down details
        spanElem = document.createElement("span");
        spanElem.id = "agencyDetailsHidden" + j;
        spanElem.style.visibility = "hidden";


        //                tableElem = document.createElement("table");
        //                tableElem.setAttribute("class","agencyDetails");
        //
        //                var tableTR = document.createElement("tr");
        //                var tableTD = document.createElement("td");
        //               tableTD.className = "test2";

        //Start flip down details
        //        var divWrapper = document.createElement("div");
        //        divWrapper.setAttribute("id","detailsWrapper");
        //        var divWrapper1 = document.createElement("div");
        //        divWrapper1.setAttribute("id", "detailsWrapper_1");
        //        var divWrapper2 = document.createElement("div");
        //        divWrapper2.setAttribute("id", "detailsWrapper_2");
        //        var divWrapper3 = document.createElement("div");
        //        divWrapper3.setAttribute("id", "detailsWrapper_3");
        //        var divWrapper4 = document.createElement("div");
        //        divWrapper4.setAttribute("id", "detailsWrapper_4");
        var demoWrapper = document.createElement("div");
        demoWrapper.setAttribute("id", "demographicsWrapper");

        var detailDemo = document.createElement("div");
        detailDemo.setAttribute("id", "detailDemographics");

        //Agency Details
        var detailHeader = document.createElement("div");
        detailHeader.appendChild(document.createTextNode("Agency Details"));
        detailHeader.className = "groupHeader";
        detailHeader.style.cssText = "width:auto;height:18px;border-bottom:4px solid #f8f8f8;background:#D5E2F6;color: #4379C9;font-size: 8pt;font-weight: bold;";
        var address = document.createElement("div");
        address.className = "information";

        //Address Label
        var name = document.createElement("div");
        name.setAttribute("id", "label");
        name.appendChild(document.createTextNode("Address:"));

        var value = document.createElement("div");
        value.setAttribute("id", "value");
        log.debug("Street?" + item.childNodes[4].firstChild.nodeValue);
        txtNode = document.createTextNode(item.childNodes[4].firstChild.nodeValue);
        value.appendChild(txtNode);

        address.appendChild(name);
        address.appendChild(value);
        log.debug("1");

        //State Label
        var state = document.createElement("div");
        state.className = "information";

        var name = document.createElement("div");
        name.setAttribute("id", "label");
        name.appendChild(document.createTextNode("State:"));

        var value = document.createElement("div");
        value.setAttribute("id", "value");
        txtNode = document.createTextNode(item.childNodes[2].firstChild.nodeValue);
        value.appendChild(txtNode);

        state.appendChild(name);
        state.appendChild(value);
        log.debug("1");

        //City Label
        var city = document.createElement("div");
        city.className = "information";

        var name = document.createElement("div");
        name.setAttribute("id", "label");
        name.appendChild(document.createTextNode("City:"));

        var value = document.createElement("div");
        value.setAttribute("id", "value");
        txtNode = document.createTextNode(item.childNodes[3].firstChild.nodeValue);
        value.appendChild(txtNode);
        city.appendChild(name);
        city.appendChild(value);

        log.debug("1");
        //Zip Label
        var zip = document.createElement("div");
        zip.className = "information";

        var name = document.createElement("div");
        name.setAttribute("id", "label");
        name.appendChild(document.createTextNode("Zip:"));

        var value = document.createElement("div");
        value.setAttribute("id", "value");
        txtNode = document.createTextNode(item.childNodes[5].firstChild.nodeValue);

        value.appendChild(txtNode);
        zip.appendChild(name);
        zip.appendChild(value);

        log.debug("1");
        //Phone Label
        var phone = document.createElement("div");
        phone.className = "information";

        var name = document.createElement("div");
        name.setAttribute("id", "label");
        name.appendChild(document.createTextNode("Phone:"));

        var value = document.createElement("div");
        value.setAttribute("id", "value");
        txtNode = document.createTextNode(item.childNodes[6].firstChild.nodeValue);

        value.appendChild(txtNode);
        phone.appendChild(name);
        phone.appendChild(value);

        log.debug("1");
        //Web Label
        var web = document.createElement("div");
        web.className = "information";

        //        var name = document.createElement("div");
        //        name.setAttribute("id", "labelLong");
        //        name.appendChild(document.createTextNode("Web:"));
        //
        //        var value = document.createElement("div");
        //        value.setAttribute("id", "valueLong");
        ////        txtNode = document.createTextNode(item.childNodes[7].firstChild.nodeValue);
        //        txtNode = document.createTextNode(" ");
        //
        //        value.appendChild(txtNode);
        //        web.appendChild(name);
        //        web.appendChild(value);

        //        var separator = document.createElement("div");
        //        separator.setAttribute("id", "separator");
        //        separator.appendChild(document.createElement("hr"));

        //Certified Label
        //Only if they are medicare certified and eligable
        if(item.childNodes[8].firstChild != null) {
                //.firstChild.nodeValue
        var certified = document.createElement("div");
        certified.className = "information";

        var name = document.createElement("div");
        name.setAttribute("id", "labelLong");
        name.appendChild(document.createTextNode("Medicare Certified Since:"));

        var value = document.createElement("div");
        value.setAttribute("id", "valueLong");
        txtNode = document.createTextNode(item.childNodes[8].firstChild.nodeValue);
        value.appendChild(txtNode);
        certified.appendChild(name);
        certified.appendChild(value);
       }

        detailDemo.appendChild(detailHeader);
        detailDemo.appendChild(address);
        detailDemo.appendChild(state);
        detailDemo.appendChild(city);
        detailDemo.appendChild(zip);
        detailDemo.appendChild(phone);
        //        detailDemo.appendChild(web);
        //        detailDemo.appendChild(separator);
        if(item.childNodes[8].firstChild != null ) { //Only if they are medicare certified.
        detailDemo.appendChild(certified);
            }

        var detailServices = document.createElement("div");
        detailServices.setAttribute("id", "detailServices");

        //Services Offered
        var servicesHeader = document.createElement("div");
        servicesHeader.className = "groupHeader";
        servicesHeader.style.cssText = "width:auto;height:18px;border-bottom:4px solid #f8f8f8;background:#D5E2F6;color: #4379C9;font-size: 8pt;font-weight: bold;";
        servicesHeader.appendChild(document.createTextNode("Services Offered"));
        var serviceList = document.createElement("ul");
        serviceList.setAttribute("id", "servicesWrapper");
        servicesNodes = item.childNodes[13].childNodes;
        log.debug("# servicesNodes: " + servicesNodes.length);

        for (zz = 0; zz < servicesNodes.length; ++zz) {
            service = servicesNodes[zz];
            log.debug("service: " + service.firstChild.nodeValue);
            serviceNode = document.createElement("li");
            txtNode = document.createTextNode(service.firstChild.nodeValue);
            serviceNode.appendChild(txtNode);
            serviceList.appendChild(serviceNode);
        }

        log.debug("after services");
        detailServices.appendChild(servicesHeader);
        detailServices.appendChild(serviceList);

        //        demoWrapper.appendChild(detailDemo);
        //        demoWrapper.appendChild(detailServices);
        //Service Area
        var detailServiceArea = document.createElement("div");
        detailServiceArea.setAttribute("id", "detailServiceArea");

        var serviceAreaHeader = document.createElement("div");
        serviceAreaHeader.className = "groupHeader";
        serviceAreaHeader.style.cssText = "width:auto;height:18px;border-bottom:4px solid #f8f8f8;background:#D5E2F6;color: #4379C9;font-size: 8pt;font-weight: bold;";
        serviceAreaHeader.appendChild(document.createTextNode("Service Area"));

        serviceAreaZips = document.createElement("div");
        serviceAreaZips.setAttribute("id", "serviceZips");

        var serviceAreaList = document.createElement("ul");
        serviceAreaList.setAttribute("id", "serviceAreaWrapper");
        serviceAreaNodes = item.childNodes[14].childNodes;
        log.debug("serviceAreaNodes: " + serviceAreaNodes.length);
        for (yy = 0; yy < serviceAreaNodes.length; ++yy) {
            serviceArea = serviceAreaNodes[yy];
            //    log.debug("service: "+serviceArea.firstChild.nodeValue);
            serviceAreaNode = document.createElement("li");
            txtNode = document.createTextNode(serviceArea.firstChild.nodeValue);
            serviceAreaNode.appendChild(txtNode);
            serviceAreaList.appendChild(serviceAreaNode);
        }

        serviceAreaZips.appendChild(serviceAreaList);
        detailServiceArea.appendChild(serviceAreaHeader);
        detailServiceArea.appendChild(serviceAreaZips);

        //Overall Ranking
        var detailOverall = document.createElement("div");
        detailOverall.setAttribute("id", "detailOverall");
        //        detailOverall.id =  "detailOverall";
        //        detailOverall.className =  "detailOverall";
        detailOverall.style.cssText = "float:left;width:100px; height:170; padding: 5px;";

        var overallHeader = document.createElement("div");
        overallHeader.className = "groupHeader";
        overallHeader.style.cssText = "width:auto;height:18px;border-bottom:4px solid #f8f8f8;background:#D5E2F6;color: #4379C9;font-size: 8pt;font-weight: bold;";
        overallHeader.appendChild(document.createTextNode("National Rank"));

        var overAllRank = document.createElement("div");
        overAllRank.setAttribute("id", "overAllRank");
        //        overAllRank.className = "overallRank";
        overAllRank.style.width = "100px";
        overAllRank.style.height = "150px";

        var scorecardLinkImg;
        var message = document.createElement("div");
        message.setAttribute("id", "getHomeCareMessage");
        message.style.cssText = "float:left;font-size:smaller;font-weight:bold;text-align:center";

        var scorecard = document.createElement("div");
        scorecard.setAttribute("id", "scorecard");
        scorecard.style.cssText = "margin:20px; height:20px;text-align:center;color:#0F3367;font-style:italic;";

        //Only if they are medicare certified.
        if(item.childNodes[8].firstChild != null && eligable == "true") {
        message.appendChild(document.createTextNode("GetHomeCare.com Performance Rank"));
        var percentile = item.childNodes[10].firstChild.nodeValue;
        log.debug("percentile: " + percentile);
        var eligable = item.childNodes[10].attributes[0].value;
        log.debug("eligable2: " + eligable);

        var percentGraphBorder = document.createElement("div");
        percentGraphBorder.className = "prog-border";
        percentGraphBorder.style.cssText = "height: 15px;width:100px; border: 1px solid silver;margin: 0;padding: 0;";

        var percentGraphProgress = document.createElement("div");
        if (eligable == "true") {
            percentGraphProgress.className = "prog-text";
            percentGraphProgress.style.cssText = "height: 11px;margin: 2px;padding: 0;text-align: left;font-size: 10px;font-weight:bold;background: #FF9900;";
            percentGraphProgress.style.width = percentile + "%";
            percentGraphProgress.appendChild(document.createTextNode(percentile + "%"));
        } else {
            percentGraphProgress.className = "prog-text-not-rated";
            percentGraphProgress.style.cssText = "white-space:nowrap;height: 11px;margin: 2px;padding: 0;text-align: center;font-size: 10px;font-weight:bold;color:#FFF;background: red;";
            percentGraphProgress.style.width = "100%";
            percentGraphProgress.appendChild(document.createTextNode("Not Rated"));
        }
        percentGraphBorder.appendChild(percentGraphProgress);

        message.appendChild(percentGraphBorder);

//        var scorecard = document.createElement("div");
//        scorecard.setAttribute("id", "scorecard");
//        scorecard.style.cssText = "margin:20px; height:20px;text-align:left;color:#0F3367;font-style:italic;";

        scorecardLinkImg = document.createElement("img");
        scorecardLinkImg.setAttribute("src", "images/locator/scorecard.gif");
        scorecardLinkImg.style.cssText = "padding-top:5px;";

        var scorecardLink = document.createElement("a");
        scorecardLink.setAttribute("id", "scorecardLink");
        scorecardLink.style.cssText = "white-space:nowrap;text-decoration:underline;";
        scorecardLink.setAttribute("href", "javascript:buildDetails('" + item.childNodes[0].firstChild.nodeValue + "')");

        var scorecardLinkText = document.createTextNode("P4P Scorecard...");
        var br = document.createElement("br");
        scorecardLink.appendChild(scorecardLinkImg);
        scorecardLink.appendChild(scorecardLinkText);
        scorecard.appendChild(scorecardLinkImg);
        scorecard.appendChild(br);
        scorecard.appendChild(scorecardLink);
        } else { //Not medicare certified Agency or eligable
            scorecardLinkImg = document.createElement("img");
            scorecardLinkImg.setAttribute("src", "images/locator/whats_this2.gif");
            scorecardLinkImg.style.cssText = "cursor:pointer; padding-top:5px;";
            //scorecardLinkImg.setAttribute("onclick", "javascript:showRatingCriteria('" + item.childNodes[0].firstChild.nodeValue + "')");

            message.setAttribute("id", "noRatingMessage");
            message.style.cssText = "float:left;font-size:70%;font-weight:bold;";

            message.appendChild(scorecardLinkImg);
            message.appendChild(document.createTextNode("  This Agency does not have data necessary to determine a GetHomeCare.com Performance Rating. "));
            //scorecard.appendChild(scorecardLinkImg);
        }
        detailOverall.appendChild(overallHeader);
        overAllRank.appendChild(message);
        //        overAllRank.appendChild(percentGraphBorder);
        overAllRank.appendChild(scorecard);
        detailOverall.appendChild(overAllRank);

        //        demoWrapper.appendChild(detailOverall);

        hrDiv = document.createElement("div");
        hrDiv.className = "clearBoth";
        hrDiv.appendChild(document.createElement("hr"));

        demoWrapper.appendChild(detailDemo);
        demoWrapper.appendChild(detailServices);
        demoWrapper.appendChild(detailServiceArea);
        demoWrapper.appendChild(detailOverall);
        demoWrapper.appendChild(hrDiv);


        //        divWrapper4.appendChild(demoWrapper);
        //        divWrapper3.appendChild(divWrapper4);
        //        divWrapper2.appendChild(divWrapper3);
        //        divWrapper1.appendChild(divWrapper2);

        //        divWrapper.appendChild(divWrapper1);
        //        tableTD.appendChild(divWrapper);
        //        spanElem.appendChild(divWrapper1);
        spanElem.appendChild(demoWrapper);


        //End flip down details
        //                tableTR.appendChild(tableTD);
        //                tableElem.appendChild(tableTR);
        //
        //
        //                spanElem.appendChild(tableElem);
        trElem2.appendChild(tdElem1);
        tdElem2.appendChild(spanElem);
        trElem2.appendChild(tdElem2);

        docFragment.appendChild(trElem);
        docFragment.appendChild(trElem2);
    }
    var agencyCount = document.createElement("input");
    agencyCount.setAttribute("type", "hidden");
    agencyCount.setAttribute("id", "agencyCount");
    agencyCount.setAttribute("value", j);
    docFragment.appendChild(agencyCount);
    myNewtbody.appendChild(docFragment);
    mytable.replaceChild(myNewtbody, mytbody);
    //    mytable.style.display = "block";
    //    mytable.style.visibility = "visible";


    var itemsText = getElemById("itemsText");
    itemsText.innerHTML = " " + pages + ", Items per page:";
    var recordsText = getElemById("recordsText");
    log.debug("itemsPerPageDecision: " + itemsPerPageDecision + "    maxRecords:" + maxRecords);
    if (parseInt(itemsPerPageDecision) > parseInt(maxRecords)) {
        itemsPerPageDecision = maxRecords;
    }
    //    recordsText.innerHTML = " Records <b>" + currentOffset + "</b> to <b>" + ((itemsPerPageDecision - currentOffset) + 1) + "</b> of <b>" + maxRecords + "</b> total";
    recordsText.innerHTML = " Records <b id=\"currentOffset\">" + currentOffset + "</b> to <b id=\"itemsPerPageDecision\">" + (itemsPerPageDecision) + "</b> of <b>" + maxRecords + "</b> total";
}

function buildCityList(response, document) {

    var cityTable = getElemById("cityTable");
    var cityTableTbody = getElemById("searchCities");
    var cityTableNewTbody = document.createElement("tbody");
    //cityTableNewTbody.id = "searchCities";
    cityTableNewTbody.setAttribute("id", "searchCities");

    //Get Chosen city elements
    var chosenCities = response.getElementsByTagName('chosenCity');
    var cityFragment = document.createDocumentFragment();

    var x = 0;
    for (x = 0; x < chosenCities.length; x++) {
        var city = chosenCities[x];
        var cityName = city.childNodes[0].firstChild.nodeValue;
        log.debug("city: " + cityName);
        trElem = document.createElement("tr");
        tdElem = document.createElement("td");

        //        checkBoxElem = document.createElement("input");
        try {
            //IE Sucks!
            checkBoxElem = document.createElement('<input type="checkbox" name="agency_city" onclick="javascript:doAdvancedSearch(\'CITY\')" />');
        } catch(err) {
            checkBoxElem = document.createElement('input');
            checkBoxElem.setAttribute('type', 'checkbox');
            checkBoxElem.setAttribute('name', "agency_city");
            checkBoxElem.setAttribute('value', cityName);
            checkBoxElem.setAttribute("onclick", "javascript:doAdvancedSearch('CITY')");
        }
        checked = city.childNodes[2].firstChild.nodeValue;
        log.debug("checked: " + checked);
        if (checked == "true") {
            checkBoxElem.setAttribute("checked", "true");
        }
        checkBoxElem.value = cityName;
        //city.childNodes[0].firstChild.nodeValue;
        tdElem.appendChild(checkBoxElem);
        txtNode = document.createTextNode(city.childNodes[1].firstChild.nodeValue);
        tdElem.appendChild(txtNode);

        trElem.appendChild(tdElem);

        cityFragment.appendChild(trElem);
    }

    cityCountElem = getElemById("cityCount");
    cityCountElem.innerHTML = "(0 of " + x + ")";

    cityTableNewTbody.appendChild(cityFragment);
    cityTable.replaceChild(cityTableNewTbody, cityTableTbody);
}

function buildZipList(response, document) {
    //Zip Codes
    var zipTable = getElemById("zipCodeTable");
    var zipTableTbody = getElemById("searchZipCodes");
    var zipTableNewTbody = document.createElement("tbody");
    zipTableNewTbody.id = "searchZipCodes";

    var chosenZips = response.getElementsByTagName('chosenZipCodes');
    var zipFragment = document.createDocumentFragment();

    var z = 0;
    for (z = 0; z < chosenZips.length; z++) {
        var zip = chosenZips[z];
        trElem = document.createElement("tr");
        tdElem = document.createElement("td");

        try {
            //IE Sucks!
            checkBoxElem = document.createElement('<input type="checkbox" name="agency_zipCodes" onclick="javascript:doAdvancedSearch(\'ZIP_CODES\')" />');
        } catch(err) {
            checkBoxElem = document.createElement('input');
            checkBoxElem.setAttribute('type', 'checkbox');
            checkBoxElem.setAttribute('name', 'agency_zipCodes');
            checkBoxElem.setAttribute("onclick", "javascript:doAdvancedSearch('ZIP_CODES')");
        }

        //        checkBoxElem = document.createElement("input");
        //        checkBoxElem.type = "checkbox";
        checked = zip.childNodes[2].firstChild.nodeValue;
        if (checked == "true") {
            checkBoxElem.setAttribute("checked", "true");
        }
        //        checkBoxElem.setAttribute("onclick", "javascript:doAdvancedSearch('ZIP_CODES')");
        //        checkBoxElem.name = "agency_zipCodes";
        //        checkBoxElem.id = zip.childNodes[0].firstChild.nodeValue;
        checkBoxElem.value = zip.childNodes[0].firstChild.nodeValue;

        tdElem.appendChild(checkBoxElem);

        txtNode = document.createTextNode(zip.childNodes[1].firstChild.nodeValue);
        tdElem.appendChild(txtNode);

        trElem.appendChild(tdElem);

        zipFragment.appendChild(trElem);
    }

    zipCountElem = getElemById("zipCodeCount");
    zipCountElem.innerHTML = "(0 of " + z + ")";

    zipTableNewTbody.appendChild(zipFragment);
    zipTable.replaceChild(zipTableNewTbody, zipTableTbody);
}

function clearCities() {
    var cityTable = getElemById("cityTable");
    if (cityTable != null) {
        var cityTableTbody = getElemById("searchCities");
        var cityTableNewTbody = document.createElement("tbody");
        cityTableNewTbody.id = "searchCities";

        var cityFragment = document.createDocumentFragment();
        trElem = document.createElement("tr");
        tdElem = document.createElement("td");
        trElem.appendChild(tdElem);
        cityFragment.appendChild(trElem);
        cityCountElem = getElemById("cityCount");
        if (cityCountElem != null) {
            cityCountElem.innerHTML = "(0)";
        }
        cityTableNewTbody.appendChild(cityFragment);
        cityTable.replaceChild(cityTableNewTbody, cityTableTbody);
    }
}
function clearZip() {
    var zipTable = getElemById("zipCodeTable");
    if (zipTable != null) {
        var zipTableTbody = getElemById("searchZipCodes");
        var zipTableNewTbody = document.createElement("tbody");
        zipTableNewTbody.id = "searchZipCodes";

        var zipFragment = document.createDocumentFragment();

        trElem = document.createElement("tr");
        tdElem = document.createElement("td");
        trElem.appendChild(tdElem);
        zipFragment.appendChild(trElem);
        zipCountElem = getElemById("zipCodeCount");
        zipCountElem.innerHTML = "(0)";

        zipTableNewTbody.appendChild(zipFragment);
        zipTable.replaceChild(zipTableNewTbody, zipTableTbody);
    }
}

function clearServices(val) {
    dml = document.forms["services_form"];
    len = dml.elements.length;
    var i = 0;
    for (i = 0; i < len; i++) {
        if (dml.elements[i].name == "agency_services") {
            dml.elements[i].checked = val;
        }
    }
}

//function sortBy(choice, str) {
//    log.debug("str: " + str);
//    if (choice == "NAME") {
//        if (str != "") {
//            var options = {
//                method : 'post',
//                parameters : '&column=a.ProviderName&page=' + page + '&items=' + perPage + '&states=' + str,
//                onSuccess:updateSearchResultsGood,
//                onFailure:updateSearchResultsFailed,
//                onLoading:function(request) {
//                    Element.show('matrixBuildIndicator')
//                },
//                onComplete:function(request) {
//                    Element.hide('matrixBuildIndicator')
//                }
//            };
//            new Ajax.Request('AgencyLocator.do?method=Search', options);
//        }
//    }
//    if (choice == "STATE") {
//        if (str != "") {
//            var options = {
//                method : 'post',
//                parameters : '&column=a.State&page=' + page + '&items=' + perPage + '&states=' + str,
//                onSuccess:updateSearchResultsGood,
//                onFailure:updateSearchResultsFailed,
//                onLoading:function(request) {
//                    Element.show('matrixBuildIndicator')
//                },
//                onComplete:function(request) {
//                    Element.hide('matrixBuildIndicator')
//                }
//            };
//            new Ajax.Request('AgencyLocator.do?method=Search', options);
//        }
//    }
//    if (choice == "CITY") {
//        if (str != "") {
//            var options = {
//                method : 'post',
//                parameters : '&column=a.City&page=' + page + '&items=' + perPage + '&states=' + str,
//                onSuccess:updateSearchResultsGood,
//                onFailure:updateSearchResultsFailed,
//                onLoading:function(request) {
//                    Element.show('matrixBuildIndicator')
//                },
//                onComplete:function(request) {
//                    Element.hide('matrixBuildIndicator')
//                }
//            };
//            new Ajax.Request('AgencyLocator.do?method=Search', options);
//        }
//    }
//    if (choice == "ZIP") {
//        if (str != "") {
//            var options = {
//                method : 'post',
//                parameters : '&column=a.ZipCode&page=' + page + '&items=' + perPage + '&states=' + str,
//                onSuccess:updateSearchResultsGood,
//                onFailure:updateSearchResultsFailed,
//                onLoading:function(request) {
//                    Element.show('matrixBuildIndicator')
//                },
//                onComplete:function(request) {
//                    Element.hide('matrixBuildIndicator')
//                }
//            };
//            new Ajax.Request('AgencyLocator.do?method=Search', options);
//        }
//    }
//}

function getStateCount(document) {
    var stateCount = 0;
    var elem = getElemById('states_form').elements;

    for (var i = 0; i < elem.length; i++) {
        if (elem[i].type == 'checkbox') {
            if (elem[i].checked) {
                ++stateCount;
                str += '&' + elem[i].name + '=' + elem[i].value;
            } else {
                //  str += '&unchecked_' + elem[i].name + '=' + elem[i].value;
            }
        }
    }
    log.debug("stateCount: " + stateCount);
    log.debug("str: " + str);
    if (stateCount == 0) {
        chooseStateHeader = getElemById("chooseState");
        chooseStateHeader.style.background = "";
        chooseStateHeader.style.color = "black";
        //Hide search results
        searchResultsWrapper = getElemById("searchDetailsWrapper");
        searchResultsWrapper.style.display = "none";
        searchResultsWrapper.style.visibility = "hidden";

    } else {
        chooseStateHeader = getElemById("chooseState");
        chooseStateHeader.style.background = "green";
        chooseStateHeader.style.color = "white";
        //Display search results
        searchResultsWrapper = getElemById("searchDetailsWrapper");
        searchResultsWrapper.style.display = "block";
        searchResultsWrapper.style.visibility = "visible";
    }
    return stateCount;

}
function getCityCount(document) {
    var cityCount = 0;
    var cityElem = getElemById('cities_form').elements;

    for (var i = 0; i < cityElem.length; i++) {
        if (cityElem[i].type == 'checkbox') {
            if (cityElem[i].checked) {
                ++cityCount;
                str += '&' + cityElem[i].name + '=' + cityElem[i].value;
            } else {
                // str += '&unchecked_' + cityElem[i].name + '=' + cityElem[i].value;
            }
        }
    }
    log.debug("cityCount: " + cityCount);
    log.debug("str: " + str);

    if (cityCount == 0) {
        chooseCityHeader = getElemById("chooseCity");
        chooseCityHeader.style.background = "";
        chooseCityHeader.style.color = "black";
    } else {
        chooseCityHeader = getElemById("chooseCity");
        chooseCityHeader.style.background = "green";
        chooseCityHeader.style.color = "white";
    }
    return cityCount;
}
function getZipCount(document) {
    var zipCount = 0;
    var zipElem = getElemById('zipCode_form').elements;

    for (var i = 0; i < zipElem.length; i++) {
        if (zipElem[i].type == 'checkbox') {
            if (zipElem[i].checked) {
                ++zipCount;
                str += '&' + zipElem[i].name + '=' + zipElem[i].value;
            } else {
                // str += '&unchecked_' + zipElem[i].name + '=' + zipElem[i].value;
            }
        }
    }

    log.debug("zipcount: " + zipCount);
    log.debug("str: " + str);

    if (zipCount == 0) {
        chooseZipHeader = getElemById("chooseZip");
        chooseZipHeader.style.background = "";
        chooseZipHeader.style.color = "black";
    } else {
        chooseZipHeader = getElemById("chooseZip");
        chooseZipHeader.style.background = "green";
        chooseZipHeader.style.color = "white";
    }
    return zipCount;
}

function executeChoices(choice, str) {
    log.debug("Executing choice: " + choice);

    //Configure pager info
    var itemsElem = getElemById('itemsPerPage');
    if (itemsElem != null) {
        var itemsPerPage = itemsElem.value;
        if (itemsPerPage == null || "" == itemsPerPage) {
            itemsPerPage = 10; //Default
        }
        str += "&items=" + itemsPerPage;
    }

    var resetListElem = getElemById('resetList');
    var resetList = "false";
    if(resetListElem != null) {
       resetList = resetListElem.value;
    }

    var pageElem = getElemById('page');
    if (pageElem != null) {
        pageElem.style.cssText = ""; //Default style (no red outline error)
        var currentPage = pageElem.value;
        if (currentPage == null || "" == currentPage) {
            currentPage = 1;//Default
            disablePrev();
        }
        //Reset page Number
        if(choice == "ITEMS_PER_PAGE" || choice == "STATE" || choice == "CITY" || choice == "ZIP_CODES" || choice == "ZIP" || resetList == "true") {
//        if(choice == "ITEMS_PER_PAGE" || choice == "STATE" || choice == "CITY" || choice == "ZIP_CODES" || choice == "ZIP" ) {
            //clearSortIcons();
            str += "&page=1";
        }  else if (choice == "PAGER_PREV") {
            if(parseInt(currentPage) > 1) {
                str += "&page="+parseInt(currentPage-1);
            }
        } else {
            str += "&page=" + currentPage;
        }
    }

    log.debug("param string: " + str);

    //---------------------------------------------------------------------
    // -- PAGINATION OPTIONS
    //---------------------------------------------------------------------
    if (choice == 'PAGE_NUMBER') {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGoodPagerPage,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);

        }
    }

    if (choice == 'PAGER_NEXT') {
        var currentOffsetElem = getElemById('currentOffset');
        if (currentOffsetElem != null) {
            var currentOffset = currentOffsetElem.innerHTML;

            if(parseInt(currentOffset) > 0) {
                currentOffset = parseInt(currentOffset) + parseInt(itemsPerPage);
                currentOffset -= 1;
            }
            str += "&offset=" + currentOffset;
        }
        log.debug("offset: "+currentOffset);

        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGoodPagerNext,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == 'PAGER_PREV') {
        var currentOffsetElem = getElemById('currentOffset');
        if (currentOffsetElem != null) {
            var currentOffset = currentOffsetElem.innerHTML;
            log.debug("prev offset: "+currentOffset);

            if(parseInt(currentOffset) > 0) {
                currentOffset = parseInt(currentOffset) - parseInt(itemsPerPage);
                currentOffset -= 1;
            }
            str += "&offset=" + currentOffset;
        }

//        var offset = parseInt(currentPage) * parseInt(itemsPerPage);

        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGoodPagerPrev,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == "ITEMS_PER_PAGE") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGoodPagerItemsPerPage,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }



    //---------------------------------------------------------------------
    // -- ADVANCED SEARCH OPTIONS
    //---------------------------------------------------------------------

    // -- Checkbox selectors
    if (choice == "LETTER") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == "BASIC_LETTER") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == "STATE") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == "CITY") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGoodCity,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);

        }
    }


    if (choice == "ZIP_CODES") {
        if (str != "") {
            var options = {
                method : 'post',
            //                parameters : '&page=' + currentPage + '&items=' + itemsPerPage + '&states=' + str,
                parameters : str,
                onSuccess:updateSearchResultsGoodZip,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);

        }
    }
    if (choice == "SERVICES") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    // -- Advanced sort options
    if (choice == "SORT_BY_NAME") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.ProviderName' + str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_STATE") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.State' + str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_CITY") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.City' + str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_ZIP") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.ZipCode' + str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_SCORE") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.Score' + str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_PERCENTILE") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.Percentile' + str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "TOP_20_ONLY") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }



   //---------------------------------------------------------------------
   // -- BASIC SEARCH OPTIONS
   //---------------------------------------------------------------------
    if (choice == "BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == "SORT_BY_NAME_BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.ProviderName' + str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_STATE_BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.State' + str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_CITY_BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.City' + str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SORT_BY_ZIP_BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.ZipCode' + str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    if (choice == "SORT_BY_PERCENTILE_BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&column=a.Percentile' + str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }
    if (choice == "SERVICES_BASIC") {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:updateBasicSearchResultsGood,
                onFailure:updateSearchResultsFailed,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);
        }
    }

    //---------------------------------------------------------------------
    // -- QUICK FIND ZIP CODE SEARCH OPTION
    //---------------------------------------------------------------------
    if (choice == "ZIP") {
            if (str != "") {
                var options = {
                    method : 'post',
                    parameters : str,
                    onSuccess:updateQuickZipSearch,
                    onFailure:updateSearchResultsFailed,
                    onLoading:function(request) {
                        Element.show('matrixBuildIndicator')
                    },
                    onComplete:function(request) {
                        Element.hide('matrixBuildIndicator')
                    }
                };
                new Ajax.Request('AgencyLocator.do?method=Search', options);

            }
    }


}

var form = 'states_form' //Give the form name here
var form2 = 'cities_form';
var form3 = 'zipCode_form';
function setChecked(val, chkName) {
    //TODO: need to clear all forms checkboxes except the state checkboxes.
    dml = document.forms[form];
    len = dml.elements.length;
    var i = 0;
    for (i = 0; i < len; i++) {
        if (dml.elements[i].name == chkName) {
            dml.elements[i].checked = val;
        }
    }

    //Clear state step wizard
    chooseStateHeader = getElemById("chooseState");
    chooseStateHeader.style.background = "";
    chooseStateHeader.style.color = "black";

    //Clear city step wizard
    chooseCityHeader = getElemById("chooseCity");
    chooseCityHeader.style.background = "";
    chooseCityHeader.style.color = "black";

    //Clear zip step wizard
    chooseZipHeader = getElemById("chooseZip");
    chooseZipHeader.style.background = "";
    chooseZipHeader.style.color = "black";

    //Hide search results
    searchResultsWrapper = getElemById("searchDetailsWrapper");
    searchResultsWrapper.style.display = "none";
    searchResultsWrapper.style.visibility = "hidden";


    //Reset the state count
    stateCountElem = getElemById("stateCount");
    stateCountElem.innerHTML = "(0 of 50)";

    //Reset refresth
    stateRefresh = getElemById("clearStateWrapper");
    stateRefresh.style.display = "none";
    stateRefresh.style.visibility = "hidden";
    cityRefresh = getElemById("clearCityWrapper");
    cityRefresh.style.display = "none";
    cityRefresh.style.visibility = "hidden";
    zipRefresh = getElemById("clearZipWrapper");
    zipRefresh.style.display = "none";
    zipRefresh.style.visibility = "hidden";

    clearStates(document);

    clearCities(document);
    clearZip(document);
}

function updateHeaderIcon(iconSpan, sortOrder) {
    log.debug("sortSpan: " + iconSpan);
    log.debug("order: " + sortOrder);
    var sortSpan = getElemById(iconSpan);
    log.debug("sortSpanElem: "+sortSpan);
    created = "0";
    //Verify whether sort images is present
    if (sortSpan.getElementsByTagName("img").length == 0) {
        sortIMG = document.createElement("img");
        sortIMG.setAttribute("id", iconSpan + "IMG");
        sortIMG.setAttribute("width", 12);
        sortIMG.setAttribute("height", 10);
        created = "1";
    } else {
        sortIMG = getElemById(iconSpan + "IMG");
    }
    //Update the image
    if (sortOrder == "desc") {
        sortIMG.src = "images/locator/down.gif";
        sortIMG.setAttribute("width", 12);
        sortIMG.setAttribute("height", 10);
    } else {
        sortIMG.src = "images/locator/up.gif";
        sortIMG.setAttribute("width", 12);
        sortIMG.setAttribute("height", 10);
    }
    log.debug('after update');
    if (created == "1") {
        sortSpan.appendChild(sortIMG);
    }
    log.debug("created: " + created);
}

function clearSortIcon(iconSpan) {
    log.debug("sortSpan: " + iconSpan);
    var sortSpan = getElemById(iconSpan);

    //Verify whether sort images is present
    if (sortSpan.getElementsByTagName("img").length == 0) {
        sortIMG = document.createElement("img");
        sortIMG.setAttribute("id", iconSpan + "IMG");
        created = "1";
    } else {
        sortIMG = getElemById(iconSpan + "IMG");
    }
    //Update the image
    sortIMG.src = "images/spacer.gif";
    if (created == "1") {
        sortSpan.appendChild(sortIMG);
    }
    log.debug("created: " + created);
}

function clearSortIcons() {
    clearSortIcon("sortIconName");
    clearSortIcon("sortIconState");
    clearSortIcon("sortIconCity");
    clearSortIcon("sortIconPercentile");
//            clearIcon("sortIconZip");

}
function updateSortHeaders(columnToSortBy, sortOrder) {
    log.debug("column: " + columnToSortBy + " " + sortOrder);
    //Clear icons
    clearSortIcons();
    switch (columnToSortBy) {
        case "a.ProviderName":
            updateHeaderIcon("sortIconName", sortOrder);
            break;
        case "a.State":
            updateHeaderIcon("sortIconState", sortOrder);
            break;
        case "a.City":
            updateHeaderIcon("sortIconCity", sortOrder);
            break;
        case "a.ZipCode":
            updateHeaderIcon("sortIconZip", sortOrder);
            break;
        case "a.Percentile":
            updateHeaderIcon("sortIconPercentile", sortOrder);
            break;
        default:clearSortIcons();
    }
}

var viewState = 'none';
function showhide(layer_ref) {

    if (viewState == 'block') {
        viewState = 'none';
    }
    else {
        viewState = 'block';
    }
    if (document.all) { //IS IE 4 or 5 (or 6 beta)
        eval("document.all." + layer_ref + ".style.display = viewState");
    }
    if (document.layers) { //IS NETSCAPE 4 or below
        document.layers[layer_ref].display = viewState;
    }
    if (document.getElementById && !document.all) {
        hza = getElemById(layer_ref);
        hza.style.display = viewState;
    }
}
function getAgencyDetails(agencyId, printable) {
    log.debug("inside getAgencyDetails");
    if (agencyId != "") {
        str = "&agency_id=" + agencyId;
        var options = {
            method : 'post',
            //parameters : str,
            parameters : '&printable=' + printable + '&resetList=true' + str,
            onSuccess:openMatrixGood,
            onFailure:openMatrixBad,
            onLoading:function(request) {
                Element.show('matrixBuildIndicator')
            },
            onComplete:function(request) {
                Element.hide('matrixBuildIndicator')
            }
        };
        new Ajax.Request('AgencyLocator.do?method=Search', options);

    }
}
function compareAgencies(printable) {
    var str = "";

    var compareElem;
    if (getElemById('compare_form') != null) {
        compareElem = getElemById("compare_form").elements;
        log.debug("elements: " + compareElem.length);
    }
    var compareCount = 0;
    for (var i = 0; i < compareElem.length; i++) {
        if (compareElem[i].type == 'checkbox') {
            if (compareElem[i].checked) {
                ++compareCount;
                str += '&' + compareElem[i].name + '=' + compareElem[i].value;
            } else {
            }
        }
    }
    log.debug("compareCount: " + compareCount);
    if (compareCount > 4) {
        openAlert("Please choose up to 4 Agencies to compare");
    } else {
        if (str != "") {
            var options = {
                method : 'post',
                parameters : '&matrix=true&printable=' + printable + '&resetList=true' + str,
                onSuccess:openMatrixGood,
                onFailure:openMatrixBad,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('AgencyLocator.do?method=Search', options);

        }
    }
}

function openAlert(message, width, height) {
    alert(message);
    //    Dialog.alert({url: "http://localhost:8080/msh/test2.jsp", options: {method: 'get'}}, {windowParameters: {className: "alphacube", width:540}, okLabel: "Close"});
    //    Dialog.alert(message,
    //    {windowParameters: {width:300, height:400}, okLabel: "Close",
    //        ok:function(win) {log.debug("Validate alert panel"); return true;}});

}
var modal = true;
function displayDischargeGroup() {
    return;
    var win = new Window('discharge_group_id', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "Discharge Success Group", width:300, height:200});
    var content = "<div class=\"groupDescription\">The Discharge Success Group ...</div>";
    win.getContent().update(content);
    win.setDestroyOnClose();
    win.showCenter(modal);
}
function displayADLSGroup() {
    return;
    var win = new Window('adls_group_id', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "ADLS Group", width:300, height:200});
    var content =
            "<div class=\"groupDescription\">\n" +
            "   <div class=\"groupDescriptionHeader\">Group Description:</div>\n" +
            "   <div>Based on your diagnosis, if improving how you are able to perform common activites of daily living is important to you, then peformance in these measures may be of more interest. <br/> <i>Higher percentages are better</i>.</div>";
    win.getContent().update(content);
    win.setDestroyOnClose();
    win.showCenter(modal);
}
function displayAmbulationGroup() {
    return;
    var win = new Window('ambulation_group_id', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "Ambulation Group", width:300, height:200});
    var content = "<div class=\"groupDescription\">The Ambulation Group ...</div>";
    win.getContent().update(content);
    win.setDestroyOnClose();
    win.showCenter(modal);
}
function displayEmergentCareGroup() {
    return;
    var win = new Window('emergent_group_id', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "Emergent Care Group", width:300, height:200});
    var content = "<div class=\"groupDescription\">The Emergent Care Group ...</div>";
    win.getContent().update(content);
    win.setDestroyOnClose();
    win.showCenter(modal);
}

function showPopUp() {
    var str = "<html>\n" +
              "<head>\n" +
              "    <title>GetHomeCare.com - Advanced Search Tips</title>\n" +
              "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
              "    <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" +
              "    <link rel=\"stylesheet\" href=\"css/locator/locator.css\" type=\"text/css\"/>\n" +
              "</head>\n" +
              "<body>\n" +
              "  <div class=\"searchTips\" >These search results show only those GetHomeCare.com&trade; top rated home care agencies who rank highest in GetHomeCare.com&trade; performance measurements. Every Agencies\'s GetHomeCare.com&trade; rating appears on his or her profile and highlights features of those agencies who are part of this elite national ranking.</div>" +
              "</body>\n" +
              "</html>";
    var winWhat = new Window('what_is_this', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "GetHomeCare.com&trade; Top Performers", width:400, height:200});
    winWhat.getContent().update(str);
    winWhat.setDestroyOnClose();
    winWhat.showCenter();
}
function showRatingCriteria() {
    var str = "<html>\n" +
              "<head>\n" +
              "    <title>GetHomeCare.com&trade Rating Criteria</title>\n" +
              "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
              "    <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" +
              "    <link rel=\"stylesheet\" href=\"css/locator/locator.css\" type=\"text/css\"/>\n" +
              "</head>\n" +
              "<body>\n" +
              "  <div class=\"searchTips\" >Medicare certified Agencies report data to the Centers for Medicare and Medicaid Services <a href=\"http://www.cms.hhs.gov/\"><b>(CMS)</b></a> where upon criteria is provided to determine their GetHomeCare.com&trade; rating.  None medicare certified Agencies are not required to report this data, so determining a rating is not applicable.<div>" +
              "</body>\n" +
              "</html>";
    var winWhat = new Window('what_is_this', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "GetHomeCare.com&trade; Top Performers", width:400, height:200});
    winWhat.getContent().update(str);
    winWhat.setDestroyOnClose();
    winWhat.showCenter();
}

function showAdvancedTips() {
    var str = "<html>\n" +
              "<head>\n" +
              "    <title>GetHomeCare.com - Advanced Search Tips</title>\n" +
              "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
              "    <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" +
              "    <link rel=\"stylesheet\" href=\"css/locator/locator.css\" type=\"text/css\"/>\n" +
              "</head>\n" +
              "\n" +
              "<body>\n" +
              "<table width=\"600\" class=\"searchTips\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n" +
              "    <tr>\n" +
              "        <td align=\"left\"><h3>Tips for Advanced Search</h3></td>\n" +
              "    </tr>\n" +
              "    <tr>\n" +
              "        <td colspan=\"2\">\n" +
              "            <p>Use the\n" +
              "                <span class=\"bld-txt\">advanced search</span> to obtain detailed information about a specific home care agancy or member of state or national association.\n" +
              "            </p>\n" +
              "\n" +
              "            <p>Begin by selecting the state the agency is located. The locator will update to reflect the cities and zip codes corresponding to the state selected.\n" +
              "                You can narrow your search further by select a city or zip code. The results will be displayed in realtime that match your search criteria.\n" +
              "            </p>\n" +
              "\n" +
              "            <h3>Tips for the GetHomeCare.com Locator form</h3>\n" +
              "\n" +
              "            <p>Use the GetHomeCare.com&trade; Locator to obtain detailed information about a specific Agency or Agencies.\n" +
              "                All that is required to select is a state. You can narrow your search further by selecting other known information, such as city or zip code.\n" +
              "                The system will display in realtime a listing of the Agencies that match your search criteria.\n" +
              "                You may then browse through the listings for more details or modify your search. </p>\n" +
              "\n" +
              "            <p class=\"bld-txt-lg\">Field Descriptions</p>\n" +
              "\n" +
              "            <p><span class=\"bld-txt\">Show Featured GetHomeCare.com Top-Rated Performers Only</span> (optional)</p>\n" +
              "\n" +
              "            <p>When checked this option filters to only those HomeCare Agencies that are rated in the 20 percent of all home care agencies </p>\n" +
              "\n" +
              "\n" +
              "            <p><span class=\"bld-txt\">Clear</span> (optional)</p>\n" +
              "\n" +
              "            <p>When clicked will clear the form of any previous criteria</p>\n" +
              "\n" +
              "        </td>\n" +
              "    </tr>\n" +
              "</table>\n" +
              "</body>\n" +
              "</html>";
    var winWhat = new Window('what_is_this', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "GetHomeCare.com&trade; Advanced Search Tips", width:650, height:500});
    var content = "<div class=\"groupDescription\">" + str + "</div>";
    winWhat.getContent().update(content);
    winWhat.setDestroyOnClose();
    winWhat.showCenter();
}
function showZipcodeSearchInfo() {
    var str = "<html>\n" +
              "<head>\n" +
              "    <title>GetHomeCare.com - Advanced Search Tips</title>\n" +
              "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
              "    <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" +
              "    <link rel=\"stylesheet\" href=\"css/locator/locator.css\" type=\"text/css\"/>\n" +
              "</head>\n" +
              "<body>\n" +
              "<div class=\"searchTips\"><h3>Search By Agency zipcode</h3>Shows a listing of home health agencies based on the zip code provided.<hr/><h3>Search By Consumer zipcode</h3>For a listing of agencies who have provided service to other patients in your zip code over the last year</div>\n" +
              "</body>\n" +
              "</html>";

    var winWhat = new Window('what_is_a_zipcode_search', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "GetHomeCare.com&trade; ZipCode Search", width:400, height:400});
    winWhat.getContent().update(str);
    winWhat.setDestroyOnClose();
    winWhat.showCenter();
}


function showSearchTips() {
    var str = "<html>\n" +
              "<head>\n" +
              "    <title>GetHomeCare.com - Advanced Search Tips</title>\n" +
              "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
              "    <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" +
              "    <link rel=\"stylesheet\" href=\"css/locator/locator.css\" type=\"text/css\"/>\n" +
              "</head>\n" +
              "<body>\n" +
              "<table width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" class=\"searchTips\">\n" +
              "    <tr>\n" +
              "        <td colspan=\"2\" style=\"background:#FFF;padding:5px\">\n" +
              "            <p>Use the\n" +
              "                <span class=\"bld-txt\">GetHomeCare.com&trade; Locator</span> to obtain detailed information about a specific home care agency or assisted living facility by simply entering the name or by narrowing your search by pairing an agency with a state, city, area code or zip. The system will displays a list of agencies that match your search criteria. You may browse through the listing to view details.\n" +
              "            </p>\n" +
              "\n" +
              "            <p class=\"bld-txt-lg\">Field Descriptions</p>\n" +
              "\n" +
              "            <p><span class=\"bld-txt\">Agency Name</span> (optional)</p>\n" +
              "\n" +
              "            <p>Enter the agency name or assisted living facitily you wish to locate. Although this field is not required, it will improve the accuracy of your search. You do not need to enter the full name of the Agency; however, you should enter enough information to be reasonably unique. You can enter the first few characters and a list of matching agencies will display. </p>\n" +
              "\n" +
              "            <p><span class=\"bld-txt\">City</span> (optional)</p>\n" +
              "\n" +
              "            <p>Enter the city in which you need to locate an agency or assisted living facility. If you are unsure of the city, you can enter multiple cities by using the\n" +
              "                the <a href=\"AgencyLocator.do?method=AdvancedSearch\"><strong>Advanced Search</strong></a> locator. Otherwise, if you leave this field blank, all cities will be searched.\n" +
              "            </p>\n" +
              "\n" +
              "            <p><span class=\"bld-txt\">State</span> (optional)</p>\n" +
              "\n" +
              "            <p>Select the primary location in which you need to locate an agency or assisted living facility. If you do not make a selection, all states will be searched. If you are unsure of the state, you can enter multiple states by using \n" +
              "               the <a href=\"AgencyLocator.do?method=AdvancedSearch\"><strong>Advanced Search</strong></a> locator.</p>\n" +
              "\n" +
              "            <p><span class=\"bld-txt\">Zip Code</span> (optional)</p>\n" +
              "\n" +
              "            <p>Enter the zip code in which you need to locate an agency or assisted living facility. If you are unsure of the zip code, you can enter the first few numbers a list will show up detailing the zip codes available. If you leave this field blank, all zip codes will be searched.</p>\n" +
              "\n" +
              "        </td>\n" +
              "    </tr>\n" +
              "\n" +
              "</table>";

    var winWhat = new Window('basic_search_tips', {className: "mac_os_x", wiredDrag:true, maximizable:false, minimizable:false, showEffect:Element.show, hideEffect:Element.hide, title: "GetHomeCare.com&trade; Basic Search Tips", width:680, height:600});
    winWhat.getContent().update(str);
    winWhat.setDestroyOnClose();
    winWhat.showCenter();
}
function showGetHomeCareScore() {
    alert("The GetHomeCare.com score takes into account the overall agency improvement and increasing quality of service.");
}

function doTop20Search(choice) {
    showProgress();
    str = '&top20=true&search_type=basic';
    executeChoices(choice,str);
}
function getTopPerformers() {
    str = '&top20=true&search_type=basic&resetList=true';

    //Show progress bar
    showProgress();
    log.debug("str: " + str);

    if (str != "") {
        var options = {
            method : 'post',
            parameters : str,
            onSuccess:updateQuickZipSearch,
            onFailure:updateSearchResultsFailed,
            onLoading:function(request) {
                Element.show('matrixBuildIndicator')
            },
            onComplete:function(request) {
                Element.hide('matrixBuildIndicator')
            }
        };
        new Ajax.Request('AgencyLocator.do?method=Search', options);

    }
}
function doClearCheckboxes() {
    //Clear states
    var statesElem = getElemById('states_form');
    if (statesElem != null) {
        var elems = statesElem.elements;
        for (var i = 0; i < elems.length; i++) {
            if (elems[i].type == 'checkbox') {
                if (elems[i].checked) {
                    elems[i].checked = false;
                }
            }
        }
    }
    //Clear cities
    clearCities();
    //Clear zipcodes
    clearZip();

    //Clear top20
    var top20Elem = getElemById('top20');
    if (top20Elem != null) {
        top20Elem.checked = false;
    }

    //Clear search results
    hideResults();

    //Hide progress bar
    Element.hide("progressBar");
//    progressBar = getElemById('progressBar');
//    progressBar.style.display = "none";
//    progressBar.style.visibility = "hidden";

}

function next() {
    //showProgress();
    clearLetters();
    var searchType = getElemById("searchType");
    if("basic" == TrimString(searchType.value)) {
      doBasicSearch("PAGER_NEXT");
    } else if("advanced" == TrimString(searchType.value)) {
     doAdvancedSearch('PAGER_NEXT');
    } else if("top-performers" == TrimString(searchType.value)) {
        doTop20Search('PAGER_NEXT');
    }else if("quick-find" == TrimString(searchType.value)) {
       doZipSearch('PAGER_NEXT');
    }
}
function prev() {
    //showProgress();
    clearLetters();
    var searchType = getElemById("searchType");
    if("basic" == TrimString(searchType.value)) {
      doBasicSearch("PAGER_PREV");
    } else if("advanced" == TrimString(searchType.value)) {
     doAdvancedSearch('PAGER_PREV');
    } else if("top-performers" == TrimString(searchType.value)) {
        doTop20Search('PAGER_PREV');
    }else if("quick-find" == TrimString(searchType.value)) {
       doZipSearch('PAGER_PREV');
    }
}
function refreshBasicList() {
    showProgress();
    clearLetters();
    var resetElem = getElemById("resetList");
    if(resetElem != null) {
        resetElem.value = "true";
    }
    doBasicSearch("BASIC");//REFRESH?
}

function refreshAdvancedList() {
    showProgress();
    clearLetters();
    var resetElem = getElemById("resetList");
    if(resetElem != null) {
        resetElem.value = "true";
    }
    str = buildAdvancedCriteria();
    if(str == null) {return;}
    executeChoices("STATE", str);
}
function showResults() {
    var searchResultsWrapper = getElemById("detailsWrapperMatrix");
    if(searchResultsWrapper == null) {
         searchResultsWrapper = getElemById("affinitySearchDetailsWrapper");
    }
    searchResultsWrapper.style.display = "block";
    searchResultsWrapper.style.visibility = "visible";
}
function hideResults() {
    var searchResultsWrapper = getElemById("detailsWrapperMatrix");
    if(searchResultsWrapper == null) {
         searchResultsWrapper = getElemById("affinitySearchDetailsWrapper");
    }
    searchResultsWrapper.style.display = "none";
    searchResultsWrapper.style.visibility = "hidden";
}

function showProgress() {
    var progressBar = getElemById("progressBar");
    if (progressBar != null) {
        progressBar.style.display = "block";
        progressBar.style.visibility = "visible";
    }
}
function hideProgress() {
    var progressBar = getElemById("progressBar");
    if (progressBar != null) {
        progressBar.style.display = "block";
        progressBar.style.visibility = "hidden";
    }
}

function doBasicSearch(choice) {
    str = buildBasicCriteria(choice);
    executeChoices(choice, str);
}
function buildAdvancedCriteria() {
    var top20only = false;
    str = '&search_type=advanced';
    if (getElemById('resetList') != null) {
        resetList = getElemById('resetList').value;
        if (resetList != "") {
            str += "&resetList=" + resetList;
        }
    }

    if (getElemById('top20') != null) {
        top20only = getElemById('top20').checked;
        if (top20only) {
            str += '&top20=' + top20only;
        }
    }

    //States
    var stateCount = 0;

    //Determine state(s) choosen
    var statesElem = getElemById('states_form');
    if (statesElem != null) {
        var elems = statesElem.elements;
        for (var i = 0; i < elems.length; i++) {
            if (elems[i].type == 'checkbox') {
                if (elems[i].checked) {
                    ++stateCount;
                    str += '&' + elems[i].name + '=' + elems[i].value;
                    var hiddenElem = document.createElement("input");
                    hiddenElem.setAttribute("type", "hidden");
                    hiddenElem.setAttribute("name", "agency_state");
                    hiddenElem.setAttribute("id", "agency_state");
                    hiddenElem.name = 'agency_state';
                    hiddenElem.setAttribute("value", elems[i].value);
                    statesElem.appendChild(hiddenElem);

                } else {
                    //  str += '&unchecked_' + elem[i].name + '=' + elem[i].value;
                }
            }
        }
    }
    log.debug("stateCount: " + stateCount);
    log.debug("str: " + str);
    if (stateCount == 0 && !top20only) {
        chooseStateHeader = getElemById("chooseState");
        if (chooseStateHeader != null) {
            chooseStateHeader.style.background = "";
            chooseStateHeader.style.color = "black";
        }
        //Hide search results if no state choosen
        hideResults();
        //Turn off progress bar
        hideProgress();
        //Reset paging state.
        resetListParams();
        //Turn off state refresh
        //        stateRefresh = getElemById("clearStateWrapper");
        //        stateRefresh.style.display = "none";
        //        stateRefresh.style.visibility = "hidden";
        //        stateRefresh = getElemById("clearStateWrapper");
        //        stateRefresh.style.display = "none";
        //        stateRefresh.style.visibility = "hidden";

        //Turn off city refresh
        //        cityRefresh = getElemById("clearCityWrapper");
        //        cityRefresh.style.display = "none";
        //        cityRefresh.style.visibility = "hidden";

        //Turn off zip refresh
        //        zipRefresh = getElemById("clearZipWrapper");
        //        zipRefresh.style.display = "none";
        //        zipRefresh.style.visibility = "hidden";


    } else { //More than on state selected
        //Adjust the sortIcon
        chooseStateHeader = getElemById("chooseState");

        //Turn on state refresh
        //        stateRefresh = getElemById("clearStateWrapper");
        //        stateRefresh.style.display = "block";
        //        stateRefresh.style.visibility = "visible";
        //Turn on city refresh
        //        cityRefresh = getElemById("clearCityWrapper");
        //        cityRefresh.style.display = "block";
        //        cityRefresh.style.visibility = "visible";
        //Turn on zip refresh
        //        zipRefresh = getElemById("clearZipWrapper");
        //        zipRefresh.style.display = "block";
        //        zipRefresh.style.visibility = "visible";

        chooseStateHeader = getElemById("chooseState");
        chooseStateHeader.style.background = "green";
        chooseStateHeader.style.color = "white";
    }

    //City
    var cityCount = 0;
    var cityElem = getElemById('cities_form');
    if (cityElem != null) {
        cityElem = getElemById('cities_form').elements;
        for (var i = 0; i < cityElem.length; i++) {
            if (cityElem[i].type == 'checkbox') {
                if (cityElem[i].checked) {
                    ++cityCount;
                    str += '&' + cityElem[i].name + '=' + cityElem[i].value;
                } else {
                    // str += '&unchecked_' + cityElem[i].name + '=' + cityElem[i].value;
                }
            }
        }
    }
    log.debug("cityCount: " + cityCount);
    log.debug("str: " + str);

    if (cityCount == 0) {
        chooseCityHeader = getElemById("chooseCity");
        if (chooseCityHeader != null) {
            chooseCityHeader.style.background = "";
            chooseCityHeader.style.color = "black";
        }
    } else {
        chooseCityHeader = getElemById("chooseCity");
        if (chooseCityHeader != null) {
            chooseCityHeader.style.background = "green";
            chooseCityHeader.style.color = "white";
        }
    }

    //Zip Code
    var zipCount = 0;
    var zipElem = getElemById('zipCode_form');
    if (zipElem != null) {
        zipElem = getElemById('zipCode_form').elements;
        for (var i = 0; i < zipElem.length; i++) {
            if (zipElem[i].type == 'checkbox') {
                if (zipElem[i].checked) {
                    ++zipCount;
                    str += '&' + zipElem[i].name + '=' + zipElem[i].value;
                } else {
                    // str += '&unchecked_' + zipElem[i].name + '=' + zipElem[i].value;
                }
            }
        }
    }
    log.debug("zipcount: " + zipCount);
    log.debug("str: " + str);

    if (zipCount == 0) {
        chooseZipHeader = getElemById("chooseZip");
        if (chooseZipHeader != null) {
            chooseZipHeader.style.background = "";
            chooseZipHeader.style.color = "black";
        }
    } else {
        chooseZipHeader = getElemById("chooseZip");
        if (chooseZipHeader != null) {
            chooseZipHeader.style.background = "green";
            chooseZipHeader.style.color = "white";
        }
    }

    //Services
    var servicesCount = 0;
    //    var servicesElem = getElemById('services_form').elements;
    //
    //    for (var i = 0; i < servicesElem.length; i++) {
    //        if (servicesElem[i].type == 'checkbox') {
    //            if (servicesElem[i].checked) {
    //                ++servicesCount;
    //                str += '&' + servicesElem[i].name + '=' + servicesElem[i].value;
    //            } else {
    //            }
    //        }
    //    }
    //    serviceCountElem = getElemById("servicesCount");
    //    serviceCountElem.innerHTML = "(" + servicesCount + " of 6)";

    log.debug("Str: " + str);
    log.debug("Str size: " + str.length);
    stateCountElem = getElemById("stateCount");
    if (stateCountElem != null) {
        stateCountElem.innerHTML = "(" + stateCount + " of 50)";
    }


    log.debug("state: " + stateCount + "   " + "cityCount: " + cityCount + " zipCount: " + zipCount + " servicesCount: " + servicesCount);

    //Verify that at least one State is selected.
    if (stateCount == 0 && cityCount > 0) {
        //Reset headers
        chooseStateHeader = getElemById("chooseState");
        if (chooseStateHeader != null) {
            chooseStateHeader.style.color = "black";
            chooseCityHeader = getElemById("chooseCity");
            chooseCityHeader.style.color = "black";
        }
        chooseZipHeader = getElemById("chooseZip");
        if (chooseZipHeader != null) {
            chooseZipHeader.style.color = "black";
        }

        //Clear cities and zip codes
        log.debug("Must clear city and zip.  No states selected!");
        clearCities(document);
        clearZip(document);
    }
    if(top20only) {
        return str;
    }
    if (stateCount == 0) {
        clearCities(document);
        clearZip(document);
        return null;
        //        clearServices(0);
    }
    return str;
}
function doAdvancedSearch(choice) {

    showProgress();
//    str = '&search_type=advanced';
//    if (getElemById('top20') != null) {
//        var top20only = getElemById('top20').checked;
//        if (top20only) {
//            str += '&top20=' + top20only;
//        }
//    }
//
//    //States
//    var stateCount = 0;
//
//    //Determine state(s) choosen
//    var statesElem = getElemById('states_form');
//    if (statesElem != null) {
//        var elems = statesElem.elements;
//        for (var i = 0; i < elems.length; i++) {
//            if (elems[i].type == 'checkbox') {
//                if (elems[i].checked) {
//                    ++stateCount;
//                    str += '&' + elems[i].name + '=' + elems[i].value;
//                    var hiddenElem = document.createElement("input");
//                    hiddenElem.setAttribute("type", "hidden");
//                    hiddenElem.setAttribute("name", "agency_state");
//                    hiddenElem.setAttribute("id", "agency_state");
//                    hiddenElem.name = 'agency_state';
//                    hiddenElem.setAttribute("value", elems[i].value);
//                    statesElem.appendChild(hiddenElem);
//
//                } else {
//                    //  str += '&unchecked_' + elem[i].name + '=' + elem[i].value;
//                }
//            }
//        }
//    }
//    log.debug("stateCount: " + stateCount);
//    log.debug("str: " + str);
//    if (stateCount == 0) {
//        chooseStateHeader = getElemById("chooseState");
//        if (chooseStateHeader != null) {
//            chooseStateHeader.style.background = "";
//            chooseStateHeader.style.color = "black";
//        }
//        //Hide search results if no state choosen
//        hideResults();
//        //Turn off progress bar
//        hideProgress();
//        //Reset paging state.
//        resetList();
//        //Turn off state refresh
//        //        stateRefresh = getElemById("clearStateWrapper");
//        //        stateRefresh.style.display = "none";
//        //        stateRefresh.style.visibility = "hidden";
//        //        stateRefresh = getElemById("clearStateWrapper");
//        //        stateRefresh.style.display = "none";
//        //        stateRefresh.style.visibility = "hidden";
//
//        //Turn off city refresh
//        //        cityRefresh = getElemById("clearCityWrapper");
//        //        cityRefresh.style.display = "none";
//        //        cityRefresh.style.visibility = "hidden";
//
//        //Turn off zip refresh
//        //        zipRefresh = getElemById("clearZipWrapper");
//        //        zipRefresh.style.display = "none";
//        //        zipRefresh.style.visibility = "hidden";
//
//
//    } else {
//        //Adjust the sortIcon
//        chooseStateHeader = getElemById("chooseState");
//
//        //Turn on state refresh
//        //        stateRefresh = getElemById("clearStateWrapper");
//        //        stateRefresh.style.display = "block";
//        //        stateRefresh.style.visibility = "visible";
//        //
//        //        //Turn on city refresh
//        //        cityRefresh = getElemById("clearCityWrapper");
//        //        cityRefresh.style.display = "block";
//        //        cityRefresh.style.visibility = "visible";
//        //        //Turn on zip refresh
//        //        zipRefresh = getElemById("clearZipWrapper");
//        //        zipRefresh.style.display = "block";
//        //        zipRefresh.style.visibility = "visible";
//
//        chooseStateHeader = getElemById("chooseState");
//        chooseStateHeader.style.background = "green";
//        chooseStateHeader.style.color = "white";
//    }
//
//    //City
//    var cityCount = 0;
//    var cityElem = getElemById('cities_form');
//    if (cityElem != null) {
//        cityElem = getElemById('cities_form').elements;
//        for (var i = 0; i < cityElem.length; i++) {
//            if (cityElem[i].type == 'checkbox') {
//                if (cityElem[i].checked) {
//                    ++cityCount;
//                    str += '&' + cityElem[i].name + '=' + cityElem[i].value;
//                } else {
//                    // str += '&unchecked_' + cityElem[i].name + '=' + cityElem[i].value;
//                }
//            }
//        }
//    }
//    log.debug("cityCount: " + cityCount);
//    log.debug("str: " + str);
//
//    if (cityCount == 0) {
//        chooseCityHeader = getElemById("chooseCity");
//        if (chooseCityHeader != null) {
//            chooseCityHeader.style.background = "";
//            chooseCityHeader.style.color = "black";
//        }
//    } else {
//        chooseCityHeader = getElemById("chooseCity");
//        if (chooseCityHeader != null) {
//            chooseCityHeader.style.background = "green";
//            chooseCityHeader.style.color = "white";
//        }
//    }
//
//    //Zip Code
//    var zipCount = 0;
//    var zipElem = getElemById('zipCode_form');
//    if (zipElem != null) {
//        zipElem = getElemById('zipCode_form').elements;
//        for (var i = 0; i < zipElem.length; i++) {
//            if (zipElem[i].type == 'checkbox') {
//                if (zipElem[i].checked) {
//                    ++zipCount;
//                    str += '&' + zipElem[i].name + '=' + zipElem[i].value;
//                } else {
//                    // str += '&unchecked_' + zipElem[i].name + '=' + zipElem[i].value;
//                }
//            }
//        }
//    }
//    log.debug("zipcount: " + zipCount);
//    log.debug("str: " + str);
//
//    if (zipCount == 0) {
//        chooseZipHeader = getElemById("chooseZip");
//        if (chooseZipHeader != null) {
//            chooseZipHeader.style.background = "";
//            chooseZipHeader.style.color = "black";
//        }
//    } else {
//        chooseZipHeader = getElemById("chooseZip");
//        if (chooseZipHeader != null) {
//            chooseZipHeader.style.background = "green";
//            chooseZipHeader.style.color = "white";
//        }
//    }
//
//    //Services
//    var servicesCount = 0;
//    //    var servicesElem = getElemById('services_form').elements;
//    //
//    //    for (var i = 0; i < servicesElem.length; i++) {
//    //        if (servicesElem[i].type == 'checkbox') {
//    //            if (servicesElem[i].checked) {
//    //                ++servicesCount;
//    //                str += '&' + servicesElem[i].name + '=' + servicesElem[i].value;
//    //            } else {
//    //            }
//    //        }
//    //    }
//    //    serviceCountElem = getElemById("servicesCount");
//    //    serviceCountElem.innerHTML = "(" + servicesCount + " of 6)";
//
//    log.debug("Str: " + str);
//    log.debug("Str size: " + str.length);
//    stateCountElem = getElemById("stateCount");
//    if (stateCountElem != null) {
//        stateCountElem.innerHTML = "(" + stateCount + " of 50)";
//    }
//
//
//    log.debug("state: " + stateCount + "   " + "cityCount: " + cityCount + " zipCount: " + zipCount + " servicesCount: " + servicesCount);
//
//    //Verify that at least one State is selected.
//    if (stateCount == 0 && cityCount > 0) {
//        //Reset headers
//        chooseStateHeader = getElemById("chooseState");
//        if (chooseStateHeader != null) {
//            chooseStateHeader.style.color = "black";
//            chooseCityHeader = getElemById("chooseCity");
//            chooseCityHeader.style.color = "black";
//        }
//        chooseZipHeader = getElemById("chooseZip");
//        if (chooseZipHeader != null) {
//            chooseZipHeader.style.color = "black";
//        }
//
//        //Clear cities and zip codes
//        log.debug("Must clear city and zip.  No states selected!");
//        clearCities(document);
//        clearZip(document);
//    }
//    if (stateCount == 0) {
//        clearCities(document);
//        clearZip(document);
//        return;
//        //        clearServices(0);
//    }
    str = buildAdvancedCriteria();
    if(str == null) {return;}
    executeChoices(choice, str);
    updateShowMoreLink();
}

function doNothing() {
    ;
}

function activatePrev() {
    var prevImg = getElemById("prevImg");
    if (prevImg != null) {
        prevImg.setAttribute("src", "images/buttons/pagenav_previous.gif");
    }
    var prevLink = getElemById("prevLink");
    prevLink.setAttribute("href","javascript:prev()");

    var prevImg2 = getElemById("prevImg2");
    if (prevImg2 != null) {
        prevImg2.setAttribute("src", "images/buttons/pagenav_previous.gif");
    }
    var prevLink2 = getElemById("prevLink2");
    prevLink2.setAttribute("href","javascript:prev()");

}
function disablePrev() {
    var prevImg = getElemById("prevImg");
    if (prevImg != null) {
        prevImg.setAttribute("src", "images/buttons/pagenav_previous_off.gif");
    }
    var prevLink = getElemById("prevLink");
    prevLink.setAttribute("href","javascript:doNothing();");

    var prevImg2 = getElemById("prevImg2");
    if (prevImg2 != null) {
        prevImg2.setAttribute("src", "images/buttons/pagenav_previous_off.gif");
    }
    var prevLink2 = getElemById("prevLink2");
    prevLink2.setAttribute("href","javascript:doNothing();");

}
function activateNext() {
    var nextImg = getElemById("nextImg");
    if (nextImg != null) {
        nextImg.setAttribute("src", "images/buttons/pagenav_next.gif");
    }
  var nextLink = getElemById("nextLink");
  nextLink.setAttribute("href","javascript:next()");

    var nextImg2 = getElemById("nextImg2");
    if (nextImg2 != null) {
        nextImg2.setAttribute("src", "images/buttons/pagenav_next.gif");
    }
  var nextLink2 = getElemById("nextLink2");
  nextLink2.setAttribute("href","javascript:next()");

}

function disableNext() {
    var nextImg = getElemById("nextImg");
    if (nextImg != null) {
        nextImg.setAttribute("src", "images/buttons/pagenav_next_off.gif");
    }
    var nextLink = getElemById("nextLink");
    nextLink.setAttribute("href","javascript:doNothing()");

    var nextImg2 = getElemById("nextImg2");
    if (nextImg2 != null) {
        nextImg2.setAttribute("src", "images/buttons/pagenav_next_off.gif");
    }
    var nextLink2 = getElemById("nextLink2");
    nextLink2.setAttribute("href","javascript:doNothing()");

}

function resetPageNumber(response) {
 var maxPages = response.getAttribute("pages");
 var maxRecords = response.getAttribute("maxRecords");
 var itemsPerPage = response.getAttribute("itemsPerPage");
 var currentOffset = response.getAttribute("currentOffset");
 var pageValue = Math.round(parseInt(currentOffset)/parseInt(itemsPerPage)+1);
 if(parseInt(pageValue) == 0) {
     pageValue = 1;
 }
 if(parseInt(pageValue) > parseInt(maxPages)) {
     pageValue = maxPages;
 }
 var pageElem = getElemById('page');

if(pageElem != null) {
  pageElem.style.cssText = "";
  pageElem.value = pageValue; //Reset page number
}
    if(pageValue != null) {
        if(parseInt(pageValue) > 1) {
            activatePrev();
            activateNext();
        }
        if(parseInt(pageValue) == 1) {
            disablePrev();
            if(parseInt(maxPages) > 1) {
                activateNext();
            } else {
                disableNext();
            }
        }
    }

    log.debug(pageValue +" "+maxPages);
    if(parseInt(pageValue) == parseInt(maxPages)) {
            disableNext();
            if(parseInt(pageValue) != 1) {
              activatePrev();
            }
    }
    log.debug(itemsPerPage + " "+maxRecords);
    log.debug('currentoffset: '+currentOffset);
        if(parseInt(itemsPerPage) >= parseInt(maxRecords)) {
            if(parseInt(currentOffset) != 1) {
                activatePrev();
            }else {
                disablePrev();
            }
            disableNext();
       }
        }

//function updatePager(ajax,mode) {
//    var response = ajax.responseXML.documentElement;
//    var itemsPerPage = response.getAttribute("itemsPerPage");
//
//    var maxPages = response.getAttribute("pages");
//    //Current offset
//    var currentOffsetElem = getElemById('currentOffset');
//    if (currentOffsetElem != null) {
//        var currentOffset = currentOffsetElem.innerHTML;
//    }
//
//    var pageElem = getElemById('page');
//    var currentPage = pageElem.value;
//    log.debug(currentPage +" "+mode);
//    if(parseInt(currentPage) == parseInt(maxPages)) {
//        if(parseInt(maxPages) == 1) {
//            disablePrev();
//            disableNext();
//        } else {
//          disableNext();
//          activatePrev();
//          pageElem.value = maxPages;
//        }
//
//        if (mode == "prev") {
//            pageElem.value = --currentPage;
//            activatePrev();
//            activateNext();
//        }
//
//     } else if(parseInt(currentPage)+1 == parseInt(maxPages) && mode == "next") {
//        log.debug('here2');
//        disableNext();
//        activatePrev();
//        pageElem.value = ++currentPage;
//      } else if (parseInt(currentPage) < parseInt(maxPages)) {
//        if(mode=="next") {
//         //Increase page number by one
//         pageElem.value = ++currentPage;
//        } else if (mode == "prev" && parseInt(currentPage) > 1) {
//            log.debug("inside");
//            //Decrement page number by one
//            pageElem.value = --currentPage;
//        } else if(mode == "none") {;}
//        activatePrev();
//        activateNext();
//    }
//
//    if(parseInt(currentPage) == 1) {
//        disablePrev();
//        activateNext();
//    }
//    if(parseInt(currentPage) > parseInt(maxPages)) {
//        if(parseInt(maxPages) == 1) {
//        disablePrev();
//        disableNext();
//        } else {
//            disablePrev();
//            activateNext();
//        }
//
//    }
//    if( (parseInt(currentOffset) - parseInt(itemsPerPage)) == 1) {
//        disablePrev();
//    }else {
//        activatePrev();
//    }
//
//}

//function updatePager2(ajax) {
//    log.debug("inside updatePager2()");
//    var response = ajax.responseXML.documentElement;
//    var maxPages = response.getAttribute("pages");
//
//    var pageElem = getElemById('page');
//    var currentPage = pageElem.value;
//
//    if(parseInt(currentPage) == parseInt(maxPages)) {
//        if(parseInt(maxPages) == 1) {
//            disablePrev();
//            disableNext();
//        }else {
//        disableNext();
//        activatePrev();
//        pageElem.value = maxPages;
//        }
//
//     } else if (parseInt(currentPage) < parseInt(maxPages)) {
//        //Increase page number by one
//        //pageElem.value = ++currentPage;
//        activatePrev();
//        activateNext();
//    }
//
//    if(parseInt(currentPage) == 1) {
//        disablePrev();
//        activateNext();
//    }
//}

function buildBasicCriteria(choice) {
    log.debug("build basic criteria");
    var state = "";
    var city = "";
    var name = "";
    var areaCode = "";
    var zipCode = "";
    var resetList = "";
    var byServiceArea = "";
    var providerId = "";
    var associationId = "";
    var sortByColumn = "";
    var sortOrder = "";
    var searchMode = "";
    var searchLetter = "";
    str = '&search_type=basic';

    if (getElemById('top20') != null) {
        var top20only = getElemById('top20').checked;
        if (top20only) {
            str += '&top20=' + top20only;
        }
    }

    //Build criteria
    if(getElemById("searchMode") != null) {
        searchMode = getElemById("searchMode").value;
        if(searchMode != "") {
            str+="&"+searchMode+"=true";
        }
    }
//    if(getElemById("searchLetter") != null) {
//        searchLetter = getElemById("searchLetter").value;
//        if(searchLetter != "") {
//            str+="&letter="+searchLetter;
//        }
//    }

    if (getElemById('basic_state') != null) {
        state = getElemById('basic_state').value;
        if (state != "") {
            str += "&agency_state=" + state;
        }
    }
    if (getElemById('autocompleteCity') != null) {
        city = getElemById('autocompleteCity').value;
        if (city != "") {
            str += "&agency_city=" + city;
        }
    }
    if (getElemById('autocompleteName')) {
        name = getElemById('autocompleteName').value;
        if (name != "") {
            str += "&agency_name=" + name;
        }
    }
    if (getElemById('autocompleteAreaCode') != null) {
        areaCode = getElemById('autocompleteAreaCode').value;
        if (areaCode != "") {
            str += "&agency_areaCodes=" + areaCode;
        }
    }

    if (getElemById('autocompleteZip') != null) {
        zipCode = getElemById('autocompleteZip').value;
        if (zipCode != "") {
            str += "&agency_zipCodes=" + zipCode;
        }
    }
    if (getElemById('search_by_service_area') != null) {
        byServiceArea = getElemById('search_by_service_area').value;
        if (byServiceArea != "") {
            str += "&search_by_service_area=" + byServiceArea;
        }
    }

    if (getElemById('resetList') != null) {
        resetList = getElemById('resetList').value;
        if (resetList != "") {
            str += "&resetList=" + resetList;
        }
    }
    if (getElemById('association_id') != null) {
        associationId = getElemById('association_id').value;
        if (associationId != "") {
            str += "&association_id=" + associationId;
        }
    }
    
    if (getElemById('sort_column') != null) {
        sortByColumn = getElemById('sort_column').value;
        if (sortByColumn != "") {
            str += "&column=" + sortByColumn;
        }
    }
    //Needed for paging but not for SORT_BY_ choices (header filters)
    var sortByRegEx = /SORT_BY/;
    var matchPos = choice.search(sortByRegEx);
    if (getElemById('sort_order') != null && matchPos == -1) {
        sortOrder = getElemById('sort_order').value;
        if (sortOrder != "") {
            str += "&order=" + sortOrder;
        }
    }

//alert(str);
    if (providerId != "") {
        str += "&agency_id=" + state;
    }
    log.debug("state: " + state);
    log.debug("city: " + city);
    log.debug("name: " + name);
    log.debug("areaCode: " + areaCode);
    log.debug("zipCode: " + zipCode);
    log.debug("show top 20 only: " + top20only);
    log.debug("search str: " + str);
    return str;
}
function TrimString(sInString) {
  sInString = sInString.replace( /^\s+/g, "" );// strip leading
  return sInString.replace( /\s+$/g, "" );// strip trailing
}

function showAll() {
    var count = getElemById('agencyCount').value;
    if(count >= 0) {
        for(i=0;i<count;++i) {
            var img = getElemById("detailsImage"+i);
            if(img.className != "top20Image") {
              changeImages('detailsImage'+i+'','images/locator/down-orange.gif','images/locator/right-orange.gif');
            }
            switchStyle('agencyDetailsHidden'+i+'','style','span');
        }
    }
    var expandLink = document.getElementById('agencyDetails');
    expandLink.innerHTML="(Show Less)";
    expandLink.href="javascript:collaspeAll()";
}

function collaspeAll() {
    showAll();
    var expandLink = getElemById('agencyDetails');
    expandLink.innerHTML="(Show More)";
    expandLink.href="javascript:showAll()";
}
function updateShowMoreLink() {
    var expandLink = document.getElementById('agencyDetails');
    if(expandLink != null) {
    expandLink.innerHTML="(Show More)";
    expandLink.href="javascript:showAll()";
    }
}

function doLetterSearch(choice,letter) {
    str = buildAdvancedCriteria();
    if(str == null) {return;}
    str +="&letter="+letter;
    resetLetters(letter);
    executeChoices(choice,str);
}
function doBasicLetterSearch(choice,letter) {
    var searchType = getElemById("searchType");
    var searchMode = getElemById("searchMode");
    if(searchType != null) {

    }
    if(searchMode != null) {

    }
    log.debug(searchType.value)
//    if("basic" == TrimString(searchType.value)) {
//      doBasicSearch("BASIC_LETTER");
//    } else if("top-performers" == TrimString(searchType.value)) {
//        doTop20Search('BASIC_LETTER');
//    } else if("quick-find" == TrimString(searchType.value)) {
//       doZipSearch('BASIC_LETTER');
//    }

    resetLetters(letter);
    str = buildBasicCriteria(choice);
    if(str == null) {return;}
    str +="&letter="+letter;
    executeChoices(choice,str);
}

function clearLetters() {
    var letters = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    for (var i = 0; i < letters.length; i++) {
        var letterElem = getElemById("letter"+letters[i]);
        if(letterElem != null) {
            letterElem.style.cssText = "font-weight:normal;text-decoration:none";
        }
    }
    if(getElemById("searchLetter") != null) { //Reset search letter.
        searchLetter = getElemById("searchLetter").value;
        searchLetter.value = "";
    }

}
function resetLetters(currentLetter) {
    clearLetters();
    //hightlight current letter
    var letterElem = getElemById("letter"+currentLetter);
    if(letterElem != null) {
//        var searchLetter = getElemById("searchLetter");
//        if(searchLetter != null) {
//            searchLetter.value = currentLetter;
//        }
        letterElem.style.cssText = "font-weight:bold;font-size:120%;color:#3CA200;text-decoration:none";
    }
}

function activateSite() {
    var str = "";

    var compareElem;
    if (getElemById('compare_form') != null) {
        compareElem = getElemById("compare_form").elements;
        log.debug("elements: " + compareElem.length);
    }
    var compareCount = 0;
    for (var i = 0; i < compareElem.length; i++) {
        if (compareElem[i].type == 'checkbox') {
            if (compareElem[i].checked) {
                ++compareCount;
                str += '&' + compareElem[i].name + '=' + compareElem[i].value;
            } else {
            }
        }
    }
    log.debug("compareCount: " + compareCount);
    if (str != "") {
            var options = {
                method : 'post',
                parameters : str,
                onSuccess:openActivationGood,
                onFailure:openActivationBad,
                onLoading:function(request) {
                    Element.show('matrixBuildIndicator')
                },
                onComplete:function(request) {
                    Element.hide('matrixBuildIndicator')
                }
            };
            new Ajax.Request('GHCSite.do?method=ActivateSite', options);

        }
}
function buildSiteList(ajax) {
   return  "<table border=\"1\">\n" +
            "    <tr style=\"height:32px\">\n" +
            "    <th colspan=\"9\">GetHomeCare.com&trade; Members Sites</th>\n" +
            "\n" +
            "    <th>&nbsp;\n" +
            "        <div id=\"updateIndicator\" style=\"display:none;\">\n" +
            "        <img align=\"right\" src=\"/images/icons/ajax-loader.gif\" alt=\"Updating Content...\" title=\"Updating Content...\"/>\n" +
            "       </div>\n" +
            "    </th>\n" +
            "    </tr>\n" +
            "    <th><img src=\"/images/icons/web-shadow-24.gif\" align=\"absmiddle\"/></th>\n" +
            "    <th >SiteId</th>\n" +
            "\n" +
            "    <th >Name</th>\n" +
            "    <th >WebName</th>\n" +
            "    <th >Package</th>\n" +
            "    <th >Entered</th>\n" +
            "    <th >Modified</th>\n" +
            "    <th >Expires</th>\n" +
            "\n" +
            "    <th colspan=\"2\">Actions</th>\n" +
            "    <tr>\n" +
            "        <td><img src=\"images/locator/right-orange.gif\" align=\"right\" alt=\"\"/></td>\n" +
            "        <td>1</td>\n" +
            "        <td>HomeCare Of The Grand Valley</td>\n" +
            "        <td>\n" +
            "           <p id=\"editme\">hcgrandvalley</p>\n" +
            "\n" +
            "           <script type=\"text/javascript\">\n" +
            "              new Ajax.InPlaceEditor('editme', '/GHC.do?method=UpdateSiteAttributes',{ callback: function(form, value) { return '&site_id=1&agency_id=067133&element=webName&value=' + escape(value) }});\n" +
            "           </script>\n" +
            "        </td>\n" +
            "        <td> <p id=\"package\">Enhanced</p>\n" +
            "            <script type=\"text/javascript\">\n" +
            "               new Ajax.InPlaceCollectionEditor(\n" +
            "                 'package', '_ajax_inplaceeditor_result.html', {\n" +
            "                  collection: ['Enhanced','Basic','Partner'],\n" +
            "                  ajaxOptions: {method: 'get'} //override so we can use a static for the result\n" +
            "                });\n" +
            "            </script>\n" +
            "        </td>\n" +
            "        <td>1/2/1973</td>\n" +
            "\n" +
            "        <td>1/2/1975</td>\n" +
            "        <td>\n" +
            "            <input type=\"text\" id=\"date-expires\" name=\"date-expires\"/>\n" +
            "            <img src=\"images/icons/calendar-16.gif\" align=\"absmiddle\" onclick=\"\"/>\n" +
            "        </td>\n" +
            "        <td colspan=\"2\">\n" +
            "            <img src=\"images/icons/view-16.gif\" onclick=\"viewSite()\"/>\n" +
            "            <img src=\"images/icons/delete-16.gif\" onclick=\"deleteSite()\"/>\n" +
            "\n" +
            "            <input type=\"checkbox\" checked name=\"enabled\" onclick=\"updateEnabled()\"/><span style=\"font-size:80%\">Enabled</span></td>\n" +
            "     <script type=\"text/javascript\">\n" +
            "        /*<[CDATA[*/\n" +
            "        var dpck2\t= new DatePicker({\n" +
            "        relative\t: 'date-expires',\n" +
            "        language\t: 'en',\n" +
            "        keepFieldEmpty: 'false',\n" +
            "        updateCallback: updateDate\n" +
            "         });\n" +
            "        /*]]>*/\n" +
            "    </script>\n" +
            "    </tr>\n" +
            "    <tr>\n" +
            "        <td>&nbsp;</td>\n" +
            "        <td colspan=\"1\"><img src=\"images/icons/pages.gif\" align=\"right\"/> </td>\n" +
            "        <td colspan=\"9\">\n" +
            "\n" +
            "            <table border=\"1\" style=\"margin:10px;\" width=\"70%\">\n" +
            "                <th>Type</th>\n" +
            "                <th colspan=\"1\">Actions</th>\n" +
            "                <th colspan=\"1\">Logo</th>\n" +
            "                <tr>\n" +
            "                    <td> <p style=\"margin:0px;padding:0px\" id=\"page-types\">PageType.ABOUT_US</p>\n" +
            "\n" +
            "                        <script type=\"text/javascript\">\n" +
            "                           new Ajax.InPlaceCollectionEditor(\n" +
            "                             'page-types', '_ajax_inplaceeditor_result.html', {\n" +
            "                              collection: ['PageType.ABOUT_US','PageType.CONTACT_US','PageType.EMPLOYMENT'],\n" +
            "                              ajaxOptions: {method: 'post'} //override so we can use a static for the result\n" +
            "                            });\n" +
            "                        </script>\n" +
            "                    </td>\n" +
            "                    <td style=\"text-align:left;padding-right:5px;\">\n" +
            "                        <img src=\"images/icons/view-16.gif\" onclick=\"viewPage()\"/>\n" +
            "                        <img src=\"images/icons/edit-16.gif\"/>\n" +
            "                        <img src=\"images/icons/delete-16.gif\" style=\"padding-right:30px;\" onclick=\"deletePage()\"/>\n" +
            "                        <input type=\"checkbox\" checked name=\"enabled\" onclick=\"updatePageEnabled()\"/><span style=\"font-size:80%\">Enabled</span>\n" +
            "                    </td>\n" +
            "\n" +
            "                    <td rowspan=\"8\" style=\"padding:2px;\">\n" +
            "                        <img src=\"images/logos/HCGrandvalley-logo.gif\" alt=\"Home of the Grand Valley\" title=\"Home of the Grand Valley\"/>\n" +
            "                    </td>\n" +
            "\n" +
            "                </tr>\n" +
            "                <tr>\n" +
            "                    <td>PageType.ABOUT_US</td>\n" +
            "                    <td style=\"text-align:left;padding-right:5px;\">\n" +
            "                        <img src=\"images/icons/view-16.gif\" onclick=\"viewPage()\"/>\n" +
            "\n" +
            "                        <img src=\"images/icons/edit-16.gif\"/>\n" +
            "                        <img src=\"images/icons/delete-16.gif\" style=\"padding-right:30px;\" onclick=\"deletePage()\"/>\n" +
            "                        <input type=\"checkbox\" checked name=\"enabled\" onclick=\"updatePageEnabled()\"/><span style=\"font-size:80%\">Enabled</span>\n" +
            "                    </td>\n" +
            "                </tr>\n" +
            "                <tr>\n" +
            "                    <td>PageType.ABOUT_US</td>\n" +
            "                    <td style=\"text-align:left;padding-right:5px;\">\n" +
            "\n" +
            "                        <img src=\"images/icons/view-16.gif\" onclick=\"viewPage()\"/>\n" +
            "                        <img src=\"images/icons/edit-16.gif\"/>\n" +
            "                        <img src=\"images/icons/delete-16.gif\" style=\"padding-right:30px;\" onclick=\"deletePage()\"/>\n" +
            "                        <input type=\"checkbox\" checked name=\"enabled\" onclick=\"updatePageEnabled()\"/><span style=\"font-size:80%\">Enabled</span>\n" +
            "                    </td>\n" +
            "                </tr>\n" +
            "\n" +
            "            </table>\n" +
            "        </td>\n" +
            "\n" +
            "    </tr>\n" +
            "</table>";

}
function openActivationGood(ajax) {
    //Hide the advanced search results
    window.location="http://www.gethomecare.com/SiteList.html";
//    var wrapper = getElemById("advanced-search-wrapper");
//    wrapper.style.cssText = "display:none;visibity:hidden";
//    alert('test');
//    var contentWrapper = getElemById("contentWrapper");
//    contentWrapper.innerHTML = "<div class='searchCriteriaTitle'><a>GetHomeCare.com&trade; Member Sites</a></div>" + buildSiteList();
}
function openActivationBad(ajax) {

}