﻿var actionTemp = '';
var statusCode = 0;
var previousAction = '';
var bShowDialog = true;
var EmailAlerts = '';

function z57(action) {
    var url = "";
    var sProxyUrl = APPLICATION_URL + "Proxy.ashx";
    var sRequestUrl = "RequestUrl=" + Z57_API_URL;
    var sRequestType = "RequestType=GET";
    var sRequestParam = "RequestParam=";
    var sParams = "";
    actionTemp = action;
    sParams += "[event=api." + action.toString() + "]";
    // sParams += "[agentId=egazq62nz180]"; 
    // sParams += "[agentId=" + document.getElementById('na_tbagentID').value.toString() + "]";

    if (action.toString() == 'newAccount') {
        sParams += "[agentId=" + AgentId + "]";
        sParams += "[fname=" + document.getElementById('na_tbfname').value.toString() + "]";
        sParams += "[lname=" + document.getElementById('na_tblname').value.toString() + "]";
        sParams += "[email=" + document.getElementById('na_tbemail').value.toString() + "]";
        sParams += "[phone=" + document.getElementById('na_tbphone').value.toString() + "]";
            
    }
    else if (action.toString() == 'saveListing') {

        sParams += "[agentId=" + AgentId + "]";
        sParams += "[uID=" + UId + "]"; // uID = get it from stored session
        sParams += "[listingID=" + listingId + "]";
        sParams += "[mlsID=" + MLSListingId + "]";
        sParams += "[mls=" + FeedID + "]";

	//alert(sParams);
    }
    else if (action.toString() == 'saveSearch') {

        var featuresTemp = "";
    
        sParams += "[agentId=" + AgentId + "]";
        sParams += "[uID=" + UId + "]";
        if (document.getElementById("cbDOM").checked == 1) 
            sParams += "[dom=" + "7" + "]"; // dom (days on market)
        else
            sParams += "[dom=" + "" + "]"; // dom (days on market)
        
        sParams += "[bedrooms=" + document.getElementById("tbSliderBed").value.toString() + "]";
        sParams += "[bathrooms=" + document.getElementById('tbSliderBath').value.toString() + "]";
        sParams += "[minprice=" + document.getElementById('tbSliderPR1').value.toString() + "]";
        sParams += "[maxprice=" + document.getElementById('tbSliderPR2').value.toString() + "]";
        sParams += "[minsize=" + document.getElementById('tbSliderSF1').value.toString() + "]";
        sParams += "[maxsize=" + document.getElementById('tbSliderSF2').value.toString() + "]";
        sParams += "[propertytype=" + document.getElementById("ddlPropertyType")[document.getElementById("ddlPropertyType").selectedIndex].value.toString() + "]"; // propertytype (ob values, comma separated list)
        sParams += "[feedid=" + FeedID + "]";
        sParams += "[email_alert=" + EmailAlerts + "]"; // email_alert ("T" or empty string)

        if (Features.indexOf('SHORT_SALE_YN|REO_YN|FORECLOSURE_YN') < 0) {
            if (document.getElementById("cbREO").checked == 1)
                featuresTemp = "SHORT_SALE_YN|REO_YN|FORECLOSURE_YN";

            featuresTemp = Features + featuresTemp;
        } else
            featuresTemp = Features;
        
        sParams += "[featureProfile=" + featuresTemp + "]"; // featureProfile (for features, comma separated list)
        sParams += "[styleSearch=" + document.getElementById("ddlStyle")[document.getElementById("ddlStyle").selectedIndex].value.toString() + "]"; // styleSearch (for styles, comma separated list)
       // sParams += "[areaSearch1=" + document.getElementById("ddlSubdivision")[document.getElementById("ddlSubdivision").selectedIndex].value.toString() + "]"; // areaSearch1 (for area1, comma separated list)
       // sParams += "[areaSearch2=" + document.getElementById("ddlSubdivision")[document.getElementById("ddlSubarea").selectedIndex].value.toString() + "]"; // areaSearch2 (for area2, comma separated list)
        //sParams += "[areaSearch3=" + document.getElementById('ssh_tbareaSearch3').value.toString() + "]"; // areaSearch3 (for area3, comma separated list)
        sParams += "[minlotsize=" + document.getElementById('tbSliderLotSize1').value.toString() + "]";
        sParams += "[maxlotsize=" + document.getElementById('tbSliderLotSize2').value.toString() + "]";
        
        if (document.getElementById("tbSliderFloor1").value == "1" && document.getElementById("tbSliderFloor2").value == "1")
            sParams += "[singleStory=T]"; // singleStory ("T' or empty string) 
        else
            sParams += "[singleStory=]"; // singleStory ("T' or empty string) 

        var address = "";
        var city = "";
        var zip = "";
        var state = "";
        var SearchText = document.getElementById("tbSearchText").value.split(",");
        
        
        
        var SearchType = document.getElementById("lblActive").innerHTML;
                
        // we don't require the search type, we determine this according to the parameters you pass (city or zip or address or mlsid)
        if (SearchType == "MLS")
            sParams += "[mlsid=" + document.getElementById('tbSearchText').value.toString() + "]"; // mlsid (comma separated list)
        else if (SearchType == "Zip") {
            zip = getArrayValue(SearchText, 0);
            state = getArrayValue(SearchText, 1);
            
            sParams += "[zip=" + zip + "|" + state + "]"; // zip (comma separated of Zips)
        } else if (SearchType == "City") {
            city = getArrayValue(SearchText, 0);
            state = getArrayValue(SearchText, 1);
            
            sParams += "[city=" + city + "|" + state + "]"; // city (comma separated of City|State)
        } else if (SearchType == "Address") {

            address = getArrayValue(SearchText, 0);
            city = getArrayValue(SearchText, 1);
            state = getArrayValue(SearchText, 2);
            zip = getArrayValue(SearchText, 3); // we need zip
            
            sParams += "[streetAddress=" + address + "]";
            sParams += "[cityAddr=" + city + "|" + state + "]"; // cityAddr ( City|State format)
            sParams += "[searchDistance=" + document.getElementById("ddlRadius")[document.getElementById("ddlRadius").selectedIndex].value.toString() + "]"; // searchDistance (in miles)
        }
            
    }
    else if (action.toString() == 'schedShowing') {
        sParams += "[agentId=" + AgentId + "]";
        sParams += "[listingID=" + listingId + "]";
        sParams += "[mlsID=" + FeedID + "]";
        sParams += "[fname=" + document.getElementById('ss_tbfname').value.toString() + "]";
        sParams += "[lname=" + document.getElementById('ss_tblname').value.toString() + "]";
        sParams += "[email=" + document.getElementById('ss_tbemail').value.toString() + "]";
        sParams += "[phone=" + document.getElementById('ss_tbphone').value.toString() + "]";
        sParams += "[comments=" + document.getElementById('ss_tbcomments').value.toString() + "]";

    }
    else if (action.toString() == 'infoRequest') {
        sParams += "[agentId=" + AgentId + "]";
        sParams += "[listingID=" + listingId + "]";
        sParams += "[mlsID=" + FeedID + "]";
        sParams += "[fname=" + document.getElementById('ir_tbfname').value.toString() + "]";
        sParams += "[lname=" + document.getElementById('ir_tblname').value.toString() + "]";
        sParams += "[email=" + document.getElementById('ir_tbemail').value.toString() + "]";
        sParams += "[phone=" + document.getElementById('ir_tbphone').value.toString() + "]";
        sParams += "[comments=" + document.getElementById('ir_tbcomments').value.toString() + "]";
    }
    else if (action.toString() == 'emailListing') {
        sParams += "[agentId=" + AgentId + "]";
        sParams += "[listingID=" + listingId + "]";
        sParams += "[mlsID=" + FeedID + "]";
        sParams += "[name=" + document.getElementById('el_tbname').value.toString() + "]";
        sParams += "[email=" + document.getElementById('el_tbemail').value.toString() + "]";
        sParams += "[message=" + document.getElementById('el_tbmessage').value.toString() + "]";
        sParams += "[f1name=" + document.getElementById('el_tbname1').value.toString() + "]"; // * optional
        sParams += "[f1email=" + document.getElementById('el_tbemail1').value.toString() + "]"; // * optional
        sParams += "[f2name=" + document.getElementById('el_tbname2').value.toString() + "]"; // * optional
        sParams += "[f2email=" + document.getElementById('el_tbemail2').value.toString() + "]"; // * optional
        sParams += "[f3name=" + document.getElementById('el_tbname3').value.toString() + "]"; // * optional
        sParams += "[f3email=" + document.getElementById('el_tbemail3').value.toString() + "]"; // * optional
    }
    else if (action.toString() == 'validateLoginUid') {
        // coming soon
    }
    //else if (action.toString() == 'emailAlerts') {
        // coming soon
    //}
    sRequestParam += sParams;
    url = sProxyUrl + "?" + sRequestType + "&" + sRequestUrl + "&" + sRequestParam;
   //alert(url);
    SendRequest(url, z57_Callback);
}


function z57_Callback(oReq) {
    var oXmlDoc = LoadXML(oReq.responseText);
   // var tb = document.getElementById('result');
    // tb.value = oReq.responseText;

    if (oReq.responseText.indexOf('code="0"') > -1) {
        statusCode = 0;
        // Get UID
        if (actionTemp == 'newAccount') {

            var startIndex = oReq.responseText.indexOf('<uID>');
            var endIndex = oReq.responseText.indexOf('</uID>');
            //            var x = oXmlDoc.getElementsByTagName("uID")[0]
            //            var y = x.childNodes[0];
            //            UId = y.nodeValue;
            UId = oReq.responseText.substring(startIndex + 5, endIndex);
            //  alert('2 = ' + UId);
        }
    } else {
        statusCode = 1;
    }
    
   // alert('0 = ' + statusCode);
        
    //alert(oReq.responseText);
}

function SendRequest(sUrl, oCallback, oPostData) {
    var oReq = GetHttpRequest();

    if (!oReq) return;
    oReq.open("GET", sUrl, true);
    oReq.setRequestHeader('User-Agent', 'XMLHTTP/1.0');
    oReq.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

    oReq.onreadystatechange = function() {
        if (oReq.readyState != 4) return;
        if (oReq.status != 200 && oReq.status != 304) {
            statusCode = 1;
            // alert('client api down!');
            return;
        }
        oCallback(oReq);
    }

    if (oReq.readyState == 4) return;

    oReq.send(oPostData);

}
