﻿
// It calls SavedSearch.ashx as interface for .NET object.
// Designed to run only with default.aspx and required map.js to also been referenced by that page.

// Written by:      Paul Hughes
// Created:         2009/08/18             
// Last Updated:    2009/10/29
// ************************************************
// Revisions: 2009-09-30: Added Lat/Lng properties
//            2009-10-29: Added API call for readSavedSearches().
// ************************************************

var oSavedSearch = new SavedSearchAPI();

var oSavedSearchResult = null;
var iResultCount = 0;

function clearModalForm()
{
    $('txtSavedSearchName').value = '';
    $('ddlScheduleItems').value = 24;
    $('scheduledno').checked = 'checked';
}
  

// Read the searches list for the logged in member.  If no member logged in a empty array will be returned.
function readSavedSearches()
{
    //Clear the list.
    $('ddlSavedSearches').options.length = 0;
    
    // Call the API
    oSavedSearchResult = oSavedSearch.readByMemberID();
    
    // Set message when no saved searches / not logged in.
    if (oSavedSearchResult.length == 0)
    {
        $('ddlSavedSearches').options[$('ddlSavedSearches').length] = new Option("No saved searches",-1);
    }   
    else
    {
        //Repopulate box from JSON
        $('ddlSavedSearches').options[$('ddlSavedSearches').length] = new Option("-- Select --",-1);     
        for (var i = 0; i < oSavedSearchResult.length; i++) 
        {
            $('ddlSavedSearches').options[$('ddlSavedSearches').length] = new Option(oSavedSearchResult[i].Alias,oSavedSearchResult[i].ID);
        }
    }
    
    $('ddlSavedSearches').style.visibility = "visible";

}

// Read a single savedsearch object from the ID in the dropdown.
function readSelectedID()
{
    var theID = $F('ddlSavedSearches');
    
    if (theID != -1)
    {
        oSavedSearchResult = oSavedSearch.readByID($F('ddlSavedSearches'))
                
        TextHint('txtLocation', 0, true);    
        
        $('txtLocation').value = oSavedSearchResult.location;
        $('txtKeywords').value = oSavedSearchResult.keywords;
        $('drpRadius').value = oSavedSearchResult.radius;
        filterCompanyID = oSavedSearchResult.companyID;
       
        if (oSavedSearchResult.searchTitleOnly == true)
        {$('Searchtitleonly').checked = true;}
        else{$('searchboth').checked = true;}
        
        if (oSavedSearchResult.includeAgency == true)
        {$('Agency').checked = true;}
        else{$('Agency').checked = false;}
            
           
        advancedSearch();
    }

}

// Save a new search.
function saveNewSavedSearch()
{
    if($F('txtSavedSearchName') != '')
    {
        var savedSearchParams = new Object;
        
        
        savedSearchParams.Location = $F('txtLocation');
        savedSearchParams.Keywords = ($F("txtKeywords")==control[1])?'':$F("txtKeywords");
        savedSearchParams.SearchAlias = $F('txtSavedSearchName');
        savedSearchParams.Radius = $F('drpRadius');
        
        // Add Lat/Lng range of this search. 
        var theSearchParams = getSearchParams($F("txtLocation"),($F("txtKeywords")==control[1])?'':$F("txtKeywords"),$F('drpRadius'));
        savedSearchParams.LatMin = theSearchParams.SWLat;
        savedSearchParams.LatMax = theSearchParams.NELat;
        savedSearchParams.LngMin = theSearchParams.SWLng;
        savedSearchParams.LngMax = theSearchParams.NELng;
        
        savedSearchParams.CompanyID = -1;
        savedSearchParams.SearchTitleOnly = $('Searchtitleonly').checked;
        savedSearchParams.IncludeAgency = $('Agency').checked;
        savedSearchParams.FrequencyInHours = $F('ddlScheduleItems');
        savedSearchParams.ScheduledRunMode = $('scheduledyes').checked;
                       
        if(oSavedSearch.createSavedSearch(savedSearchParams) == true)
        {
            //Worked
            alert("Your search has been saved with reference: " + $F('txtSavedSearchName'));
            closeSavedSearchModal();
                // Reload savedsearch list.
                readSavedSearches();
        }
        else
        {
            //Failed
            alert("An error occurred while saving this search.  Please try again.");
        }
    }
    else
    {alert("You cannot save this search without setting a name.");}
}


