var map, geocoder;
var marker = null;
var msie = (window.navigator.appName == 'Microsoft Internet Explorer');
var hide = window.location.search.search(/nohide/)<0;
var google_keys = {
    'www.webformix.com': 'http://www.google.com/jsapi?key=ABQIAAAA1aUcPc4EX5GBMqMVMT4irxRydpUyK8b2QILfZD83EXTHU2r0ghSIqw3UjDPYbndHPnuMzqy51pkxCQ',
    'new.webformix.com': 'http://www.google.com/jsapi?key=ABQIAAAA1aUcPc4EX5GBMqMVMT4irxQtpdDA7gdEDOD8ZoOqdWXWY2eGRRSPdwfvmUmDU7P7X7XUT0rI_bHnMg'
};
var addr;

document.writeln("<script type='text/javascript' src='"+ google_keys[window.location.hostname] +"'></script>");

//window.loadList.push('covLoad1()');
window.addr = myQuery.address?myQuery.address.trim():'';
window.zip = myQuery.zip?myQuery.zip.trim():'';

window.areaList = [
    {'regex': /alfalfa/i,           'position': [44.090, -121.030, 12], 'zip': 97701 },
    {'regex': /bend/i,              'position': [44.050, -121.250, 11], 'zip': 97701 },
    {'regex': /crookedriverranch/i, 'position': [44.410, -121.230, 12], 'zip': 97760 },
    {'regex': /culver/i,            'position': [44.540, -121.220, 12], 'zip': 97734 },
    {'regex': /juniperacres/i,      'position': [44.040, -120.870, 12], 'zip': 97754 },
    {'regex': /madras/i,            'position': [44.670, -121.120, 11], 'zip': 97741 },
    {'regex': /metolius/i,          'position': [44.585, -121.175, 13], 'zip': 97741 },
    {'regex': /powellbutte/i,       'position': [44.270, -121.000, 12], 'zip': 97753 },
    {'regex': /prineville/i,        'position': [44.311, -120.847, 13], 'zip': 97754 },
    {'regex': /redmond/i,           'position': [44.283, -121.167, 12], 'zip': 97756 },
    {'regex': /sisters/i,           'position': [44.288, -121.517, 12], 'zip': 97759 },
    {'regex': /terrebonne/i,        'position': [44.343, -121.170, 13], 'zip': 97760 },
    {'regex': /tumalo/i,            'position': [44.145, -121.331, 13], 'zip': 97701 },
    {'regex': /3rivers/i,           'position': [44.547, -121.331, 12], 'zip': 97734 },
    {'regex': /./,                  'position': [44.360, -121.000,  9] }
];

function covLoad2()
{
  var area, i, mapDiv;

  window.unloadList.push('GUnload()');

  if (GBrowserIsCompatible())
  {
    mapDiv = document.getElementById("map");

    //----- Stop page scrolling if wheel over map ----
    //----- Code obtained from Google Maps API user: http://groups.google.com/group/Google-Maps-API/msg/da71b481d3ffb85f?utoken=_dFf6S8AAACT3lD9cBuQbpQwr14qTtBauzlywinU_xRyF-Kx3TvEnSLW2UWq2utjJ_AnnLGYyqI
    function wheelevent(e)
    {
        if (!e) e = window.event;
        if (e.preventDefault) e.preventDefault();
        e.returnValue = false;
    }
    GEvent.addDomListener(mapDiv, "DOMMouseScroll", wheelevent);
    mapDiv.onmousewheel = wheelevent; 
    //-----

    window.map = new google.maps.Map2(mapDiv);

    map.enableContinuousZoom();
    map.enableScrollWheelZoom();

    var coverage = new google.maps.GeoXml("http://www.webformix.com/res/images/Coverage_20091221.2.kml");
    geocoder = new google.maps.ClientGeocoder();

    setAreaCenter(document.referrer);

    map.addControl(new google.maps.LargeMapControl());
    map.addControl(new google.maps.MapTypeControl());
    map.addOverlay(coverage);

    // Create our "tower" marker icon
    var tower_icon = new google.maps.Icon();
    tower_icon.image = "res/images/tower_icon.png";
    tower_icon.iconSize = new google.maps.Size(20, 20);
    tower_icon.iconAnchor = new google.maps.Point(10, 17);
    tower_icon.infoWindowAnchor = new google.maps.Point(10, 17);

    document.forms.aFrm.style.display = 'block';

    google.maps.Event.addListener(map, "click", function(marker, point) {
      document.getElementById('output').innerHTML +=
          point.x +', '+ point.y +'<br>\n';
    });
  }

  document.forms.aFrm.zip.value = myQuery.zip;
  if(addr.length>0) { geocode(addr, zip); }
}

function addAddressToMap(response)
{
  var error = false;
  var obj;

  if (!response || response.Status.code != 200)
  {
    alert("Sorry, we were unable to geocode that address");
  } else {
    error = !(obj = response.Placemark) ||
            !(obj = obj[0]) ||
            !(obj = obj.AddressDetails) ||
            !(obj = obj.Country) ||
            !(obj = obj.AdministrativeArea) ||
            !(obj = obj.SubAdministrativeArea) || 
            !(obj = obj.Locality) ||
            !(obj = obj.PostalCode) ||
            !(obj = obj.PostalCodeNumber) ||
            !(obj.substr(0, 3)=='977') ||
    0;


    if(error)
    {
      alert("Sorry, we were unable to geocode that address to a location in Central Oregon");
    } else {
      if(marker) { map.removeOverlay(marker); }
      place = response.Placemark[0];
      point = new google.maps.LatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
      marker = new google.maps.Marker(point);
      document.getElementById('output').innerHTML =
          point.x +', '+ point.y +'<br>\n';
      map.addOverlay(marker);
      marker.openInfoWindowHtml(place.address);
      map.setZoom(13);
    }
  }
}

function geocode(addr, zip)
{
  var address;

  if(addr==null) { address = document.forms.aFrm.address.value; zip = document.forms.aFrm.zip.value; }
  else { document.forms.aFrm.address.value = address = addr; document.forms.aFrm.zip.value = zip; }
  geocoder.getLocations(address +' '+ zip, addAddressToMap);
}

function setAreaCenter(url)
{
  for(i=0; i<areaList.length; i++)
  {
    area = areaList[i];
    if(url.search(area.regex)>=0) { break; }
  }

  if(!myQuery.zip || myQuery.zip<97700) { myQuery.zip = area.zip; }
  document.forms.aFrm.zip.value = myQuery.zip;



  map.setCenter(new google.maps.LatLng(area.position[0], area.position[1]), area.position[2]);
}

function enumerate(obj)
{
  for(i in obj) { alert(i +':'+ obj[i]); }
}

window.loadList.push("google.setOnLoadCallback(covLoad2);");



