﻿// JScript File
var Cities2prepopulate = new Array();
var StatePopulate="";
var sourceId="";
var agentlist = "";
var officelist = "";
var _runRefresh = false; //used to call refresh from map page if ever set to true by another file.
var _isMapSearch = false;
var _filter = false;
var CachedGet;
var browser = navigator.appName;
var isIE = (browser == "Microsoft Internet Explorer");
var $get;
if(isIE)
    $get = document.getElementById;
else
    $get = function(id){return document.getElementById(id);}
function GetStates(mapsearch)
{ 
    if($get('StateDD'))
    {
        $get('StateDD').options[0] = new Option("Select State","");
        $get('CityDD').options[0] = new Option("Select City","");
    }
    else if($get('StateDD2'))
    {
        $get('StateDD2').options[0] = new Option("Select State","");
        if($get('CityDD2'))
            $get('CityDD2').options[0] = new Option("Select City","");
    }
    getCSArgs();
    if(mapsearch)
    { 
        _isMapSearch=true;
        $.ajax(
            {
                type: "POST",
                url: "../webservices/clientservices.asmx/JSGetMapStates",
                data: "{srcs:'"+sourceId+"'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(_request){ 
                    StateComplete(_request);
                },
                error: function(msg){},
                async: false                
            });
        //ClientServices.JSGetMapStates(sourceId, StateComplete, StateFailed);
    }
    else
    {
        _isMapSearch = false;
        if(sourceId.length > 0 || agentlist.length > 0 || officelist.length > 0)
        {
        $.ajax(
            {
                type: "POST",
                url: "../webservices/clientservices.asmx/AgentOfficeListGetStates",
                data: "{srcs:'"+sourceId+"',agentlist:'"+agentlist+"',officelist:'"+officelist+"'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(_request){ 
                    StateComplete(_request);
                },
                error: function(msg){}                
            });
            //ClientServices.AgentOfficeListGetStates(sourceId,agentlist,officelist,StateComplete, StateFailed); 
        }   
        else
        {
            $.ajax(
            {
                type: "POST",
                url: "../webservices/clientservices.asmx/JSGetStates",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(_request){ 
                    StateComplete(_request);
                },
                error: function(msg){}                
            });
            //ClientServices.JSGetStates(StateComplete, StateFailed);
        }
    }
}
function GetStatesFiltered()
{  
    if($get('StateDD'))
    {
        $get('StateDD').options[0] = new Option("Select State","");
        $get('CityDD').options[0] = new Option("Select City","");
    }
    else if($get('StateDD2'))
    {
        $get('StateDD2').options[0] = new Option("Select State","");
        if($get('CityDD2'))
            $get('CityDD2').options[0] = new Option("Select City","");
    }
    
    var qs = new Querystring();
    sourceId = qs.get("sourceId","");
    if(sourceId.length > 0){
        _filter = true;
        $.ajax(
            {
                type: "POST",
                url: "../webservices/clientservices.asmx/JSGetStatesFiltered",
                data: "{srcs:'"+sourceId+"'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(_request){ 
                    StateComplete(_request);
                },
                error: function(msg){}                
            });
        //ClientServices.JSGetStatesFiltered(sourceId, StateComplete, StateFailed);
    
    }else{
        $.ajax(
            {
                type: "POST",
                url: "../webservices/clientservices.asmx/JSGetStates",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(_request){ 
                    StateComplete(_request);
                },
                error: function(msg){}                
            });
            //ClientServices.JSGetStates(StateComplete, StateFailed);
    }
}
function getCSArgs()
{
    var qs = new Querystring();
    sourceId = qs.get("sourceId","");
    agentlist = qs.get("agentlist","");
    officelist = qs.get("officelist","");
}
function GetCities(statename, mapsearch, prepopulating)
{
    if(statename.length > 0)
        if(mapsearch)
        {
            while (statename.substring(statename.length-1,statename.length) == ' '){
                statename = statename.substring(0, statename.length-1);
            }
            _isMapSearch = true;
            $.ajax(
            {
                type: "POST",
                url: "../webservices/clientservices.asmx/JSGetMapCities",
                data: "{StateName:'"+statename+"',srcs:'"+sourceId+"'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(_request){ 
                    PrepopulateCityComplete(_request);
                },
                error: function(msg){}                
            });
            //ClientServices.JSGetMapCities(statename,sourceId,PrepopulateCityComplete, CityFailed);
        }
        else
        {
            _isMapSearch = false;
            var qs = new Querystring();
            var sourcefilter = qs.get("sourceId","");
            if(prepopulating || statename.toLowerCase() == StatePopulate.toLowerCase())
                if((sourceId.length > 0 || agentlist.length > 0 || officelist.length > 0) && !sourcefilter)
                {
                    $.ajax(
                    {
                        type: "POST",
                        url: "../webservices/clientservices.asmx/AgentOfficeListGetCities",
                        data: "{sourceId:'"+sourceId+"',agentlist:'"+agentlist+"',officelist:'"+officelist+"',statename:'"+statename+"'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(_request){ 
                            PrepopulateCityComplete(_request);
                        },
                        error: function(msg){}                
                    });
                    //ClientServices.AgentOfficeListGetCities(sourceId,agentlist,officelist,statename,PrepopulateCityComplete, CityFailed);
                }
                else
                {
                    $.ajax(
                    {
                        type: "POST",
                        url: "../webservices/clientservices.asmx/JSGetCities",
                        data: "{StateName:'"+statename+"'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(_request){ 
                            PrepopulateCityComplete(_request);
                        },
                        error: function(msg){}                
                    });
                    //ClientServices.JSGetCities(statename,PrepopulateCityComplete, CityFailed);
                }
            else
                if(sourceId.length > 0 || agentlist.length > 0 || officelist.length > 0)
                {
                    $.ajax(
                    {
                        type: "POST",
                        url: "../webservices/clientservices.asmx/AgentOfficeListGetCities",
                        data: "{sourceId:'"+sourceId+"',agentlist:'"+agentlist+"',officelist:'"+officelist+"',statename:'"+statename+"'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(_request){ 
                            CityComplete(_request);
                        },
                        error: function(msg){}                
                    });
                    //ClientServices.AgentOfficeListGetCities(sourceId,agentlist,officelist,statename,CityComplete, CityFailed);    
                }
                else
                {
                    $.ajax(
                    {
                        type: "POST",
                        url: "../webservices/clientservices.asmx/JSGetCities",
                        data: "{StateName:'"+statename+"'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function(_request){ 
                            CityComplete(_request);
                        },
                        error: function(msg){}                
                    });
                    //ClientServices.JSGetCities(statename,CityComplete, CityFailed);
                }
        }
    else
    {
        if($get('CityDD'))
        {
            if($get('CityDD').options.length > 0)
                $get('CityDD').options.length = 0;
            $get('CityDD').options[0] = new Option("Select City","");
        }
        else if($get('CityDD2'))
        {
            if($get('CityDD2').options.length > 0)
                $get('CityDD2').options.length = 0;
            $get('CityDD2').options[0] = new Option("Select City","");
            if($get('ZipDD').options.length > 0)
                $get('ZipDD').options.length = 0;
            $get('ZipDD').options[0] = new Option("Select City","");
            if($get('ddlAvailableCities').options.length > 0)
                $get('ddlAvailableCities').options.length = 0;
            $get('ddlAvailableCities').options[0] = new Option("SELECT A STATE","");
        }
        else if($get('ddlAvailableCities'))
        {
            if($get('ddlAvailableCities').options.length > 0)
                $get('ddlAvailableCities').options.length = 0;
            $get('ddlAvailableCities').options[0] = new Option("SELECT A STATE","");
        }
    }
}
function PrePopulateState(state)
{
    StatePopulate = state;
    
    var StateDD;
    if($get('StateDD2'))
        StateDD = $get('StateDD2');
    else if($get('StateDD'))
        StateDD = $get('StateDD');
    if(StateDD)
    {
        for(i=0;i< StateDD.options.length;i++)
        {
            if(trim(StateDD.options[i].value).toLowerCase() == state.toLowerCase())
            {
                StateDD.selectedIndex = i;
                if (StateDD.onchange) StateDD.onchange();
            }
        }    
    }       
}
function PopulateCheck(statename,city)
{
    if(statename != "")
    {
        if($get('StateDD'))
        {
            if($get('StateDD').options.length > 0 && ($get('StateDD').options.length < 2  && $get('StateDD').options[0].text == "Select State") && $get('StateTB') && $get('StateTB').value == "")
            {
                if(city != "")
                    FillPrepopulateCitiesArray(city);
                window.setTimeout("PopulateCheck('"+statename+"','"+city+"');",500);
            }
            else
            {
                PrePopulateState(statename);
                FillPrepopulateCitiesArray(city);
            }
        }
    }
}
function PopulateCheckLimited(statename,city)
{
    if(statename != "")
    {
        if($get('StateDD'))
        {
            var StateDD = $get('StateDD');
            for(i=0;i< StateDD.options.length;i++)
            {
                if(trim(StateDD.options[i].value).toLowerCase() == statename.toLowerCase())
                {
                    StateDD.selectedIndex = i;
                    if (StateDD.onchange) StateDD.onchange();
                }
            }
        }
        if($get('CityDD'))
        {
            var CityDD = $get('CityDD');
            for(i=0;i< CityDD.options.length;i++)
            {
                if(trim(CityDD.options[i].value).toLowerCase() == city.toLowerCase())
                {
                    CityDD.selectedIndex = i;
                }
            }
         }
    }
}
function FillPrepopulateCitiesArray(prepopcities)
{
    Cities2prepopulate = prepopcities.split('|');
}
function GetAllStates()
{
    if($get('StateDD'))
    {
        $get('StateDD').options[0] = new Option("Select State","");
        $get('CityDD').options[0] = new Option("Select City","");
    }
    else if($get('StateDD2'))
    {
        $get('StateDD2').options[0] = new Option("Select State","");
        if($get('CityDD2'))
            $get('CityDD2').options[0] = new Option("Select City","");
    }
    ClientServices.GetAllStates(StateComplete, StateFailed);
}
function GetAllCities(statename)
{ 
    if(statename.length > 0)
    {
        $.ajax(
        {
            type: "POST",
            url: "../webservices/clientservices.asmx/GetAllCities",
            data: "{state:'"+statename+"'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(_request){ 
                CityComplete(_request);
            },
            error: function(msg){}                
        });
        //ClientServices.GetAllCities(statename,CityComplete, CityFailed);
    }
    else
    {
        if($get('CityDD'))
        {
            if($get('CityDD').options.length > 0)
                $get('CityDD').options.length = 0;
            $get('CityDD').options[0] = new Option("Select City","");
        }
        else if($get('CityDD2'))
        {
            if($get('CityDD2').options.length > 0)
                $get('CityDD2').options.length = 0;
            $get('CityDD2').options[0] = new Option("Select City","");
            if($get('ZipDD').options.length > 0)
                $get('ZipDD').options.length = 0;
            $get('ZipDD').options[0] = new Option("Select City","");
            if($get('ddlAvailableCities').options.length > 0)
                $get('ddlAvailableCities').options.length = 0;
            $get('ddlAvailableCities').options[0] = new Option("SELECT A STATE","");
        }
        else if($get('ddlAvailableCities'))
        {
            if($get('ddlAvailableCities').options.length > 0)
                $get('ddlAvailableCities').options.length = 0;
            $get('ddlAvailableCities').options[0] = new Option("SELECT A STATE","");
        }
    }
}
function GetZips(CityName)
{
    if(CityName.length > 0)
    {
        $.ajax(
        {
            type: "POST",
            url: "../webservices/clientservices.asmx/JSGetZips",
            data: "{CityName:'"+CityName+"'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(_request){ 
                ZipComplete(_request);
            },
            error: function(msg){}                
        });
        //ClientServices.JSGetZips(CityName,ZipComplete, ZipFailed);
    }
    else
    {
        if($get('ZipDD').options.length > 0)
                $get('ZipDD').options.length = 0;
            $get('ZipDD').options[0] = new Option("Select Zip","");
    }
}
function StateComplete(states)
{
    if(states.length == 1){
        if($get('StateDD'))
        {
            $get('StateDD').style.display = 'none';
            $get('StateTB').style.display = 'block';
            $get('StateTB').value = states[0],states[0].indexOf("(") > 0 ? states[0].substring(0,states[0].indexOf("(")) : states[0];
            $get('StateTB').disabled = true;
            GetCities(states[0].substring(0,states[0].indexOf("(")),_isMapSearch,true);
            if($get('hiddenSelectedStateMap'))
            {
                $get('hiddenSelectedStateMap').value = states[0].substring(0,states[0].indexOf("("));
                //alert(states[0].substring(0,states[0].indexOf("(")));
            }
        }
        else if($get('StateDD2'))
        {
            $get('StateDD2').style.display = 'none';
            $get('StateTB2').style.display = 'block';
            $get('StateTB2').value = states[0],states[0].substring(0,states[0].indexOf("("));
            $get('StateTB2').disabled = true;
            GetCities(states[0].substring(0,states[0].indexOf("(")),false,true);
        }
    }else{
        var selectedstate;
        if($get('hiddenSelectedStates'))
            selectedstate = $get('hiddenSelectedStates').value;
        if($get('StateDD'))
        {
            if($get('ctl00_ContentPlaceHolder1_lrResults_hiddenSelectedState'))
                selectedstate = $get('ctl00_ContentPlaceHolder1_lrResults_hiddenSelectedState').value;
            for(i=1;i<=states.length;i++)
            {
                $get('StateDD').options[i] = new Option(states[i-1],states[i - 1].indexOf("(") > 0 ? states[i-1].substring(0,states[i-1].indexOf("(")) : states[i-1]);
                if(selectedstate){
                    if(selectedstate == states[i-1].substring(0,states[i-1].indexOf("(")))
                        $get('StateDD').options[i].selected = true;
                }
                
            }
        }
        else if($get('StateDD2'))
        {
            for(i=1;i<=states.length;i++)
            {
                $get('StateDD2').options[i] = new Option(states[i-1],states[i-1].substring(0,states[i-1].indexOf("(")));
                if(selectedstate){
                    if(selectedstate == states[i-1].substring(0,states[i-1].indexOf("(")))
                        $get('StateDD2').options[i].selected = true;
                }
            }
        }
        if(selectedstate){
            if(selectedstate.length >0){
                GetCities(selectedstate,_isMapSearch,true);
            }
        }
    }
    
}
function CityComplete(cities)
{
    if($get('CityDD'))
    {
        var selectedcity;
        if($get('ctl00_ContentPlaceHolder1_lrResults_hiddenSelectedCities'))
            selectedcity = $get('ctl00_ContentPlaceHolder1_lrResults_hiddenSelectedCities').value;    
        if($get('CityDD').options.length > 0)
            $get('CityDD').options.length = 0;
        $get('StateDD').options[0] = new Option("Select State","");
        $get('CityDD').options[0] = new Option("Select City","");
        for(i=1;i<=cities.length;i++)
        {
            $get('CityDD').options[i] = new Option(cities[i-1], cities[i - 1].indexOf("(") > 0 ? cities[i-1].substring(0,cities[i-1].indexOf("(")) : cities[i-1]);
            if(selectedcity){
                if(selectedcity == cities[i-1].substring(0,cities[i-1].indexOf("(")))
                    $get('CityDD').options[i].selected = true;
            }
        }
    }
    else if($get('CityDD2'))
    { 
        if($get('CityDD2').options.length > 0)
            $get('CityDD2').options.length = 0;
        $get('StateDD2').options[0] = new Option("Select State","");
        $get('CityDD2').options[0] = new Option("Select City","");
        for(i=1;i<=cities.length;i++)
        {
            $get('CityDD2').options[i] = new Option(cities[i-1],cities[i-1].substring(0,cities[i-1].indexOf("(")));
            $get('ddlAvailableCities').options[i] = new Option(cities[i-1],cities[i-1].substring(0,cities[i-1].indexOf("(")));
        }
    }
    else if($get('ddlAvailableCities'))
    {
        if($get('ddlAvailableCities').options.length > 0)
        {
            $get('ddlAvailableCities').options.length = 0;
            $get('ddlAvailableCities').options[0] = new Option("SELECT A CITY","");
        }
        for(i=1;i<=cities.length;i++)
        {
            $get('ddlAvailableCities').options[i] = new Option(cities[i-1],cities[i-1].substring(0,cities[i-1].indexOf("(")));
        }
    }
    
}
function PrepopulateCityComplete(cities)
{
    var selectedcity;
    var UseLimitedSearch = false;
    if($get('hiddenSelectedCities')){
       if($get('hiddenSelectedCities').value.length > 0)
            selectedcity = $get('hiddenSelectedCities').value;
    }
    if($get('hiddenUseLimitedSearch')){
        if($get('hiddenUseLimitedSearch').value == "true")
            UseLimitedSearch = true;
    } 
    if($get('CityDD2') ||  $get('ddlSelectedCities'))
    {
        if($get('hiddenSelectedCities') && selectedcity){
           if(selectedcity.length > 0)
                Cities2prepopulate = selectedcity.split(',');
        }
        if($get('CityDD2'))
        {
            if($get('CityDD2').options.length > 0)
                $get('CityDD2').options.length = 0;
        }
        if($get('ddlAvailableCities'))
        {
            if($get('ddlAvailableCities').options.length > 0)
                $get('ddlAvailableCities').options.length = 0;
            $get('ddlAvailableCities').options[0] = new Option("SELECT A CITY","");
        }
        if($get('ddlSelectedCities').options.length > 0)
            $get('ddlSelectedCities').options.length = 0;
        $get('StateDD2').options[0] = new Option("Select State","");
        if($get('CityDD2'))
            $get('CityDD2').options[0] = new Option("Select City","");
        for(i=1;i<=cities.length;i++)
        {
            if($get('CityDD2'))
                $get('CityDD2').options[i] = new Option(cities[i-1],cities[i-1].substring(0,cities[i-1].indexOf("(")));
            var added = false;
           // var indextoSplice = -1;
            for(j=0;j<Cities2prepopulate.length;j++)
            {
                if(trim(cities[i-1].substring(0,cities[i-1].indexOf("("))) == Cities2prepopulate[j] && Cities2prepopulate[j] != "")
                {
                    $get('ddlSelectedCities').options[$get('ddlSelectedCities').options.length] = new Option(cities[i-1],trim(cities[i-1].substring(0,cities[i-1].indexOf("("))));
                    added = true;
                    //indextoSplice = j;
                }
            }
           // if(indextoSplice != -1)
           //     Cities2prepopulate.splice(indextoSplice,1);
            if(!added)
                $get('ddlAvailableCities').options[i] = new Option(cities[i-1], trim(cities[i-1].substring(0,cities[i-1].indexOf("("))));
            added = false;
            indextoSplice = -1;
        }
    }
    else if($get('CityDD'))
    {
        if($get('ctl00_ContentPlaceHolder1_lrResults_hiddenSelectedCities')){
            selectedcity = $get('ctl00_ContentPlaceHolder1_lrResults_hiddenSelectedCities').value; 
         }  
         if(selectedcity){
            if(selectedcity.length > 0){
                if(selectedcity.indexOf(",") > 0){
                    selectedcity = trim(selectedcity.substring(0, selectedcity.indexOf(",")));
                    Cities2prepopulate = null;
                }
                if (!UseLimitedSearch && !selectedcity.indexOf(",") > 0) {
                    Cities2prepopulate[0] = selectedcity;
                }
            }   
         } 
         if(!UseLimitedSearch){
             if($get('CityDD').options.length > 0)
                    $get('CityDD').options.length = 0;
             $get('StateDD').options[0] = new Option("Select State","");
             $get('CityDD').options[0] = new Option("Select City","");
             for(i=1;i<=cities.length;i++)
             {
                $get('CityDD').options[i] = new Option(cities[i-1],cities[i-1].substring(0,cities[i-1].indexOf("(")));
                var added = false;
                // var indextoSplice = -1;
                if (Cities2prepopulate && selectedcity) {
                    for (j = 0; j < Cities2prepopulate.length; j++) {
                        if (trim(cities[i - 1].substring(0, cities[i - 1].indexOf("("))).toLowerCase() == trim(Cities2prepopulate[j]).toLowerCase() && trim(Cities2prepopulate[j]) != "")
                            $get('CityDD').options[i].selected = true;

                    }
                }
             }
        }
    }
    var prepop = null;
    if(_filter)
        prepop = true;
    if($get('StateDD2'))
        $get('StateDD2').onchange = function(){GetCities($get('StateDD2').options[$get('StateDD2').options.selectedIndex].value,_isMapSearch, prepop)};
    else if($get('StateDD'))
        $get('StateDD').onchange = function(){GetCities($get('StateDD').options[$get('StateDD').options.selectedIndex].value,_isMapSearch, prepop)};
        
    if(_runRefresh && Refresh)
    {
        Refresh();
        _runRefresh = false;
    }
}
function ZipComplete(zips)
{
    if($get('ZipDD').options.length > 0)
            $get('ZipDD').options.length = 0;
    $get('ZipDD').options[0] = new Option("Select Zip","");
    if($get('ZipDD'))
    {
        for(i=1;i<=zips.length;i++)
        {
            $get('ZipDD').options[i] = new Option(zips[i-1],zips[i-1]);
        }
    }
}
function StateFailed()
{
    //alert('Get States Failed');
}
function CityFailed()
{
}
function ZipFailed()
{
}
function trim(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
        sString = sString.substring(1, sString.length);
    }
    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
        sString = sString.substring(0,sString.length-1);
    }
    return sString;
}
function GetCustomCitySearch(statename, citylist){
    form = document.forms[0];
    if(citylist){
        var cities = citylist.split(',');
        if(cities.length > 0){
            if(cities.length != 2){
                if(document.getElementById('CityDD')){ document.getElementById('CityDD').options[0] = new Option('Select City','');}
            }else{
                if(document.getElementById('CityDD')){ document.getElementById('CityDD').options[0] = null;}
            }
            if(cities[0]){ 
                if(document.getElementById('StateTB') && document.getElementById('StateDD')){
                    form.StateTB.value = cities[0];
                    form.StateTB.style.display = 'block';
                    form.StateTB.disabled = true;
                    form.StateDD.style.display = 'none';
                }
            }
            if(document.getElementById('hiddenSelectedStateMap')){
                form.hiddenSelectedStateMap.value = statename
            }   
            if(document.getElementById('hiddenUseLimitedSearch')){
                form.hiddenUseLimitedSearch.value = "true";
            } 
            if(cities.length != 2){                               
                for ( i = 1; i <= (cities.length - 1); i++) { 
                    if(document.getElementById('CityDD')){
                        document.getElementById('CityDD').options[i] = new Option(cities[i], cities[i].indexOf("(") > 0 ? cities[i].substring(0,cities[i].indexOf("(")) : cities[i]);
                    }
                }
            }else{
                if(document.getElementById('CityDD')){
                    document.getElementById('CityDD').options[0] = new Option(cities[1], cities[1].indexOf("(") > 0 ? cities[1].substring(0,cities[1].indexOf("(")) : cities[1]);
                }
            }
        }
    }
}
