﻿/// <reference path="jquery-1.6.2.js"/>

// MARKET SNAPSHOT
var ms_animate = false;
var ms_timer;
var ms_container;
var ms_delay = 9000;
var MKT_SELECTED_STATE = null;
var MKT_MAX_RESULTS = 2;

function initMktSnapshot(container, delay, stateAbbrv, maxResults) {
    ms_container = container;
    ms_delay = delay;
    MKT_SELECTED_STATE = stateAbbrv;
    if (maxResults != "" || maxResults != "")
        MKT_MAX_RESULTS = maxResults;

    loadMktSnapshot(null, null, stateAbbrv);
    startMktSnapshotTimer();
}

function startMktSnapshotTimer() {
    // Must wrap call to loadMktSnapshot in function() to work in FF
    ms_timer = window.setInterval(function () { loadMktSnapshot(null, null, MKT_SELECTED_STATE); }, ms_delay);
}

function stopMktSnapshotTimer() {
    if (ms_timer != null)
        window.clearInterval(ms_timer);
    ms_timer = null;
}

function showMktSnapshotError(msg) {
    stopMktSnapshotTimer();
    $(ms_container).html($("<span class='error' />").html(msg));
    startMktSnapshotTimer();
}

function loadMktSnapshotCity() {
    var cityCode = $("#MktSnapshotCityCode").val();
    var cityStateName = $("#MktSnapshotCityState").val();

    if (cityCode != "" || cityStateName != "")
        loadMktSnapshot(cityCode, cityStateName)
    else
        showMktSnapshotError("You must enter or select a city name to view stats for a specific city.");
}

function loadMktSnapshot(cityCode, cityStateName, stateAbbrv) {
    var params = "";
    if (cityCode != null && cityCode != "") {
        stopMktSnapshotTimer();
        params = "cityCode=" + cityCode;
    }
    else if (cityStateName != null && cityStateName != "") {
        stopMktSnapshotTimer();
        params = "cityStateName=" + cityStateName;
    }
    else if (stateAbbrv != null && stateAbbrv != "") {
        params = "stateAbbrv=" + stateAbbrv;
    }

    if (params.length > 0)
        params = params + "&";

    params = params + "maxResults=" + MKT_MAX_RESULTS;

    ac_ajaxRequest = $.ajax({ type: "POST",
        url: MKTSNAP_URL,
        dataType: "json",
        data: params,
        processData: false,
        error: function (req, status, err) {
            // Error, hide results
            if (params != "")
                showMktSnapshotError("An error occured looking up market stats for the selected city.");
        },
        success: function (jsonDoc) {
            if (jsonDoc != null) {
                if (jsonDoc.Success != null && !jsonDoc.Success) {
                    if (params != "")
                        showMktSnapshotError("No stats found for the selected city.");
                }
                else {
                    if (jsonDoc.Results.length == 0) {
                        //No results
                        if (params != "")
                            showMktSnapshotError("No stats found for the selected city.");
                        return;
                    }

                    $(ms_container).hide();
                    $(ms_container).html("");

                    $.each(jsonDoc.Results, function () {
                        var chgClass = "mrktFLAT";
                        if (this.ChangeType > 0)
                            chgClass = "mrktGRN";
                        else if (this.ChangeType < 0)
                            chgClass = "mrktRED";

                        $(ms_container).append($("<div class='cityDetails' />")
                                                .append($("<h4 />")
                                                    .html(this.CityState)
                                                )
                                                .append($("<div class='mrktContainer' />")
                                                    .append($("<span class='" + chgClass + "' />")
                                                        .append(this.RentAvg.toString())
                                                        .append($("<span class='mrktIcon' />"))
                                                     )
                                                    .append($("<span class='mrktRate' />").html("$/sqft (" + this.ChangePct + ")"))
                                                )
                                                .append($("<span class='mrktDesc' />").html(this.SqFtAvail + " sqft avail"))
                                            );
                    });

                    $(ms_container).fadeIn("slow");
                }
            }
        },
        timeout: 5000
    });
}

