var pops = [];
function uP(url, id) {
  if(url.substr(0,4) != "http") {
     url = pathToMain + url;
  }
  if(pops[id] && !pops[id].closed) {
    pops[id].location = url;
    pops[id].focus();
  } else {
    pops[id] = window.open(url, id, 'toolbar=1,menubar=1,location=1,directories=1,width=760,height=400,scrollbars=1,resizable=1,status=1');
  }
}
function i$(id) {
    return document.getElementById(id);
}
function p(id, dest_lang, src_lang) {
  var url = 'http://healthmap.org/ln.php?' + id;
  if(dest_lang) {
      url += '&trto=' + dest_lang;
  }
  if(src_lang) {
      url += '&trfr=' + src_lang;
  }
  uP(url, id);
}
function xP(id) {
  uP('x.php?lc=' + lang + '&id=' + id, id);
}
function sc(lat, lon, lvl) {
  map.setCenter(new GLatLng(lat, lon),lvl);
}
function confirmLeave(url) {
    var answer = confirm("By clicking OK, you will leave the Flu.gov site and will enter a non-federal Web site. Continue?")
    if (answer){
        window.location = url;
    }
}
var visiMrk = new Array();
var markerArray = new Array();
function a(marker, hide_id) {
  if(hide_id) {
      //marker.hide();
      marker.onMap = 0;
      if(isArray(visiMrk[hide_id])) {
        visiMrk[hide_id].push(marker);
      } else {
        visiMrk[hide_id] = new Array(marker);
      }
  } else {
    map.addOverlay(marker);
    markerArray.push(marker);
  }
}
var geocoder = new GClientGeocoder();
function show_fluclinics(address) {
   geocoder.getLocations(address, addAddressToMap);
}
function setUpMarkerHandlers(marker,data,staddr) {
        var qs = '';
        var ds = data.split(",");
        for(var m=2; m<ds.length; m++) {
                var words = ds[m].split(" ");
                for(var n=0; n<words.length; n++) {
                        if(words[n]) {
                                qs += words[n]+'+';
                        }
                }
        }
        var dd = '<p><a href=http://maps.google.com/?saddr='+staddr+'&daddr='+qs+'>Driving Directions</a></p><p>';
        var bubble = '<div id="gm">'+dd+ds[0]+'<br />'+ds[1]+'<br />'+ds[2]+'<br />'+ds[3]+', '+ds[4]+'</p></div>';
        GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(bubble); });
}
function show_markers(zip, staddr) {
        var zipstart = zip.substr(0,1);
        var filename="flucache/fc/"+zipstart+"/"+zip;
        var line = '';
        var clinic = '';
        var point = '';
        var latlon = new Array();
        var tag = '';
        var ic = new GIcon();
        ic.image = "http://healthmap.org/img/1.png";
        ic.shadow = "http://healthmap.org/img/mm_shadow.png";
        ic.shadowSize = new GSize(22,20);
        ic.iconSize = new GSize(12,20);
        ic.iconAnchor = new GPoint(6,20);
        ic.infoWindowAnchor = new GPoint(6,10);
        $.get(filename, function(data){
                var lines = data.split("\n");
                for(var j=0; j < lines.length; j++) {
                        line = lines[j];
                        linevals = line.split("|");
                        point = linevals[0];
                        pointdata = linevals[1];
                        latlon = point.split(",");
                        var marker = new GMarker(new GLatLng(latlon[0], latlon[1]), {'icon': ic, 'title': pointdata});
                        setUpMarkerHandlers(marker,pointdata,staddr);
                        map.addOverlay(marker);
                }
        });
//markers[counter] = marker;
//counter++;
//return marker;
}
function addAddressToMap(response) {
      map.clearOverlays();
      if (!response || response.Status.code != 200) {
        alert("Sorry, we were unable to geocode that address");
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        map.setCenter(point, 11);
        map.clearOverlays();
        var ic = new GIcon();
        ic.image = "http://healthmap.org/img/c/10.png";
        ic.shadow = "http://healthmap.org/img/mm_shadow.png";
        ic.shadowSize = new GSize(22,20);
        ic.iconSize = new GSize(12,20);
        ic.iconAnchor = new GPoint(6,20);
        ic.infoWindowAnchor = new GPoint(6,10);
        var yourloc = 'Your Location: '+place.address;
        var marker = new GMarker(point, {'icon': ic, 'title': yourloc});
        GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(yourloc); });
        map.addOverlay(marker);
        if(place.AddressDetails.Country.AdministrativeArea.Locality === undefined) {
            var addarr = place.address.split(" ");
            var postalc = addarr[addarr.length - 2];
            var postalcode = postalc.replace(",","");
            //var postalcode = place.address.substr(-10,5);
        } else {
            if (place.AddressDetails.Country.AdministrativeArea.Locality.PostalCode.PostalCodeNumber == null) {
                var postalcode = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
            } else {
                var postalcode = place.AddressDetails.Country.AdministrativeArea.Locality.PostalCode.PostalCodeNumber;
            }
        }
        var staddr = place.address;
        staddr = staddr.replace(/ /g,'+'); 
        show_markers(postalcode, staddr);
     }
}
