﻿/****************************************************/
 var map = null;
 var counter = 1;
 var count=0;
 /****************************************************/
 function GetMap()
 {
    try
    {
        var cElem = $get("ctl00_ContentPlaceHolder1_count");
        if(typeof(cElem)!='undefined' && cElem!=null)
        {
            count = cElem.innerHTML;
        }
        map = new VEMap('themap');
        map.LoadMap(new VELatLong(55.0,-2.8));   
        map.SetZoomLevel(6);
        setTimeout(FindLoc, 1000);
    }
    catch(e)
    {
        //alert("GetMap - " + e.message);
    }
 }
  //********************************************** 
 function FindLoc()
 {
    try
    {
       var ts = document.getElementById("thestate");
       if(counter<=count)
       {
            if(typeof(ts)!='undefined' && ts!=null)
                ts.innerHTML = "Adding surgeries..." + (count-counter) + " left";
            var elem = document.getElementById('postcode' + counter);           
            if(typeof(elem)!='undefined' && elem!=null)
            {
                if(elem.innerHTML!="")
                {
                    map.Find(null,elem.innerHTML,null,null,0,1,true,true,false,false,AddPushpin);
                }
                else
                {
                   ++counter;
                   FindLoc();
                } 
            }
            else
            {
                elem = $get('lat' + counter);//document.getElementById('lat' + counter);  
                         
                if(typeof(elem)!='undefined' && elem!=null)
                {
                    var lat = elem.innerHTML;
                    elem = $get('long' + counter);//document.getElementById('long' + counter);           
                    if(typeof(elem)!='undefined' && elem!=null)
                    {
                        var llong = elem.innerHTML;
                        DoAddPushpin(new VELatLong(lat,llong));
                    }
                    else
                    {
                       ++counter;
                       FindLoc();
                    } 
                }
                else
                {
                   ++counter;
                   FindLoc();
                }           
            }
       }
       else
       {
          if(typeof(ts)!='undefined' && ts!=null)
            ts.innerHTML="";
       }
    }
    catch(e)
    {
//       alert("FindLoc - " + e.message);
        ++counter;
        FindLoc();
    }
 }
 //**********************************************
 function AddPushpin(layer, resultsArray, places, hasMore, veErrorMessage)
 {
    try
    { 
        var elem = $get('name' + counter);
        if(typeof(elem)!='undefined' && elem!=null)
        {
            var pin = new VEShape(VEShapeType.Pushpin,places[0].LatLong);
            var thename = elem.innerHTML;
            pin.SetDescription(thename);
            map.AddShape(pin);  
            elem = $get('ctl00_ContentPlaceHolder1_output');
            if(typeof(elem)!='undefined' && elem!=null)
            {
                elem.innerText += "\r\n<div id=\"name" + counter + "\">" + thename + "</div>\r\n" + 
                                  "<div id=\"lat" + counter + "\">" + places[0].LatLong.Latitude + "</div>\r\n" +
                                  "<div id=\"long" + counter + "\">" + places[0].LatLong.Longitude + "</div>";
            }
       }
        ++counter;
        FindLoc();
    }
    catch(e)
    {
        //alert("AddPushpin - " + e.message);
        ++counter;
        FindLoc();
    }        
 }
 //**************************************************
 function DoAddPushpin(ll)
 {
    try
    { 
        var elem = $get('name' + counter);//document.getElementById('name' + counter);
        if(typeof(elem)!='undefined' && elem!=null)
        {
            var pin = new VEShape(VEShapeType.Pushpin,ll);
            var thename = elem.innerHTML;
            pin.SetDescription(thename);
            map.AddShape(pin);  
       }
        ++counter;
        setTimeout(FindLoc,10);
    }
    catch(e)
    {
        //alert("AddPushpin - " + e.message);
    }
 }
