var g_searent_ApplicationId = 2;
var g_strListingQueryWebServiceUrl = "http://api.seattlerentals.com/searentAPI-1.4/webservice_getListingResultsetHtml.json.php";
var g_ajaxLoaderImgUrl = "http://www.seattlerentalgroup.com/images/ajax-loader.gif";
var g_strDetailPageUrl = "http://www.seattlerentalgroup.com/detail_test.html";

var g_constITEMS_PER_PAGE = 10;
var g_iLastPageNum = 1;
var g_iPageNum = 1;
var g_iTotalNumberOfItems = -1;

var g_iNeighborhoodId = -1;
var g_iUnitTypeId = -1;
var g_iBathsTypeId = -1;
var g_iMinPrice = 0;
var g_iMaxPrice = 99999;


function initSearentSearch(strUrlToUnitDetailPage, iNeighborhoodId, iUnitTypeId, iBathsTypeId, iMinPrice, iMaxPrice)
{
    g_strDetailPageUrl = strUrlToUnitDetailPage;
    g_iNeighborhoodId = iNeighborhoodId;
    g_iUnitTypeId = iUnitTypeId;
    g_iBathsTypeId = iBathsTypeId;
    g_iMinPrice = iMinPrice;
    g_iMaxPrice = iMaxPrice;
    
    _populateListView();
}

function tabListView_refresh()
{
    var view;
    if (g_iPageNum != g_iLastPageNum)
    {
        _populateListView();
    }
}


function _populateListView()
{
    var strQueryString = "";
    var strUrl = "";

    strQueryString = "?pagenum=" + g_iPageNum;

    strQueryString += "&appid=" + g_searent_ApplicationId;
    strQueryString += "&detailUrl=" + g_strDetailPageUrl;
    strQueryString += "&nid=" + g_iNeighborhoodId;
    strQueryString += "&typeid=" + g_iUnitTypeId;
    strQueryString += "&bathsid=" + g_iBathsTypeId;
    strQueryString += "&minprice=" + g_iMinPrice;
    strQueryString += "&maxprice=" + g_iMaxPrice;
    
    strQueryString += "&callback=?";

    _listView_showLoadingMsg();

    strUrl = g_strListingQueryWebServiceUrl + strQueryString;

    jQuery.getJSON(strUrl, function(data) { _listView_onloadedCallback(data); });
}

function _listView_onloadedCallback(data)
{
    var iPageNum = 1;

    jQuery("#listView_contents").html(data.htmlPage);


    _listView_hideLoadingMsg();

    if (g_iTotalNumberOfItems == -1)
    {
        g_iTotalNumberOfItems = Number(jQuery("#metaTotalItems").html());
    }

    iPageNum = Number(jQuery("#metaPageNumber").html());

    if (g_iTotalNumberOfItems == "0")
    {
        jQuery("#divErrorMsgListView").html("Sorry, no matches found.  Try your search again,<br />or<br /><a href='search.html'>Click here to see all available vacancies.</a>");
        jQuery("#divErrorMsgListView").fadeIn("slow");
    }
    else
    {
        _buildPagerControls(g_iTotalNumberOfItems, iPageNum);
    }

    g_iPageNum = iPageNum;
}

function _buildPagerControls(iNumItems, iPageNum)
{
    _buildPagerControl(iNumItems, iPageNum, "top");
    _buildPagerControl(iNumItems, iPageNum, "bottom");
}

function _buildPagerControl(iNumItems, iPageNum, strIdPostfix)
{
    var iNumPages;
    var strClass = "";

    jQuery("#divPagerControl_" + strIdPostfix).hide();
    iNumPages = Math.ceil(iNumItems / g_constITEMS_PER_PAGE);
    jQuery("#spanNumPages_" + strIdPostfix).html(iNumPages);
    jQuery("#spanPageNumber_" + strIdPostfix).html(iPageNum);

    iPageNumStart = Math.max(iPageNum - 5, 1);
    iPageNumEnd = Math.min(iPageNum + 5, iNumPages);


    var strHtml = "";
    for (i = iPageNumStart; i < (iPageNumEnd + 1); i++)
    {
        if (i == iPageNum)
        {
            strClass = ' class="active" ';
        }
        else
        {
            strClass = "";
        }

        strHtml += '<a ' + strClass + ' href="javascript:_onPageNumberClick(' + i + ')">' + i + '</a>&nbsp;&nbsp;';
    }

    jQuery("#spanPageNav_" + strIdPostfix).html(strHtml);


    if (iPageNumEnd == iPageNum)
    {
        jQuery("#spanPageNavNext_" + strIdPostfix).hide();
    }
    else
    {
        jQuery("#spanPageNavNext_" + strIdPostfix).show();
    }


    if (iPageNumStart == iPageNum)
    {

        jQuery("#spanPageNavPrev_" + strIdPostfix).hide();
    }
    else
    {
        jQuery("#spanPageNavPrev_" + strIdPostfix).show();
    }

    jQuery("#divPagerControl_" + strIdPostfix).show();
}

function _onPageNumberClick(iNewPageNum)
{
    g_iLastPageNum = g_iPageNum;
    g_iPageNum = iNewPageNum;

    tabListView_refresh();
}

function _onPageNavClick_Prev()
{
    _onPageNumberClick(g_iPageNum - 1);
}

function _onPageNavClick_Next()
{
    _onPageNumberClick(g_iPageNum + 1);
}

function _listView_showLoadingMsg()
{
    jQuery("#divLoaderListView").show();
}

function _listView_hideLoadingMsg()
{
    jQuery("#divLoaderListView").hide();
}
