﻿/// <reference name="MicrosoftAjax.js"/>
Type.registerNamespace("ThreeIreland");

var _threeIrelandMap = null;

ThreeIreland.Search = function(threeIrelandSearchService, threeIrelandMap)
{
    this._threeIrelandSearchService = threeIrelandSearchService;
    //this._threeIrelandMap = threeIrelandMap; //I couldn't access it from OnSearchSuccess
    _threeIrelandMap = threeIrelandMap;
}

ThreeIreland.Search.prototype =
{
    Search: function(type, val)
    {
        if (type == "NominalId")
            this._threeIrelandSearchService.SearchForSiteByNominalId(val.toString().trim(), this.OnSearchSuccess, this.OnFail);
        else
            this.AddSiteLatLon(val);
    },
    AddSiteLatLon: function(val)
    {
        var lat = val.toString().split(',')[0];
        var lon = val.toString().split(',')[1];

        //validate the string received
        if ((val.toString().split(',')[2] != null) || //If there are more than 2 parameters separated by commas
            (lat == null) || (lon == null) ||         //If lat or lon is null
            (isNaN(Number(lat))) || (isNaN(Number(lon))))                 //If lat or lon is NOT a number
            alert("The search format must be Lat, Lon. (e.g 53.3,-6.4 )");
        else
            _threeIrelandMap.AddSearchPin(lat.trim(), lon.trim(), "<div>Lat/Lon search result</div>&#160; <br/><DIV>Latitude: " + Number(lat).toFixed(6) +
                    "</DIV><DIV>Longitude: " + Number(lon).toFixed(6) + "</DIV>&#160;", true);
    },
    OnSearchSuccess: function(site)
    {
        if (site != null)
            _threeIrelandMap._map.SetCenterAndZoom(new VELatLong(site.Latitude, site.Longitude), 15);
        else
            alert("Site not found");
    },
    OnFail: function(error)
    {
        alert("Could not perform search. Please try again.");
    }
}

ThreeIreland.Search.registerClass('ThreeIreland.Search', null, Sys.IDisposable);

if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

