function getXMLHttp()
{ var xmlHttp
  try
  { //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  { //Internet Explorer
    try
    { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    { try
      { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      { alert("Your browser does not support AJAX!")
        return false;
      }
    }
  }
  return xmlHttp;
}

function MakeRequest(target)
{ var xmlHttp = getXMLHttp();

  xmlHttp.onreadystatechange = function()
  { if(xmlHttp.readyState == 4)
    { HandleResponse(xmlHttp.responseText);
    }
  }
  xmlHttp.open("GET", target, true);
  xmlHttp.send(null);
}

function BuildRequest()
{ var p0 = document.getElementById('prodid').value;
  var p1 = escape(document.getElementById('name').value);
  var p2 = escape(document.getElementById('address').value);
  var p3 = escape(document.getElementById('town').value);
  var p4 = escape(document.getElementById('postcode').value);
  var p5 = escape(document.getElementById('url').value);
  var p6 = document.getElementById('latlon').value;
  var queryString = "?prodid=" + p0 + "&name=" + p1 + "&attr3=" + p2 + "&attr2=" + p3 + "&attr1=" + p4 + "&attr4=" + p5 + "&attr5=" + p6;
  MakeRequest("addhotspot.php" + queryString);
}
function HandleResponse(response)
{ if (response.substr(0,2)=='ok')
  { if (response.substr(2)==document.getElementById('prodid').value)
    { document.getElementById('reply').innerHTML = 'Details updated';
    }else
    { document.getElementById('reply').innerHTML = 'Details saved';
    };
    document.getElementById('prodid').value = response.substr(2);
    document.getElementById('save').disabled=true;
    document.getElementById('save').value='Update Entry';
    document.getElementById('new').disabled=false;
  }else
  { document.getElementById('reply').innerHTML = 'Error saving details, code: ' + response;
    document.getElementById('save').disabled=true;
  };
}
function AllowSave()
{ if (document.getElementById('name').value.length>0 && document.getElementById('latlon').value.length>0)
  { document.getElementById('save').disabled=false;
    document.getElementById('reply').innerHTML = '';
  }else
  { document.getElementById('save').disabled=true;
  };
  document.getElementById('showtext').innerHTML='<b>' + document.getElementById('name').value + '</b> ' + document.getElementById('address').value + ' ';
  document.getElementById('showtext').innerHTML+=document.getElementById('town').value + ' ' + document.getElementById('postcode').value;
  if (document.getElementById('url').value.length>7) {document.getElementById('showtext').innerHTML+=' <a href="' + document.getElementById('url').value + '" target="_blank">link</a>';};
}
function NewEntry()
{ document.getElementById('prodid').value='new';
  document.getElementById('save').value='Save New Entry';
  document.getElementById('save').disabled=true;
  document.getElementById('reply').innerHTML = '';
  document.getElementById('showtext').innerHTML='<b> </b>';
}
function initMap()
{ map=new GMap2(document.getElementById("map"));
  map.addControl(new GLargeMapControl3D());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(53.58,-2.43), 7);
  GEvent.addListener(map, "moveend", function() {
         map.clearOverlays();
         if (document.getElementById('latlon').value.length>0)
         { map.addOverlay(hotspot);
         };
         map.addOverlay(new GMarker(map.getCenter())); });
  geocoder=new GClientGeocoder();
}
function showAddress(address)
{ geocoder.getLatLng(
   address,
   function(point)
   { if (!point)
     { alert(address + " not found");
     }else
     { map.setCenter(point,12);
     }
   });
}

function MarkLocation()
{ map.clearOverlays();
  var blueIcon = new GIcon(G_DEFAULT_ICON);
  blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
  markerOptions = {icon:blueIcon};
  hotspot=new GMarker(map.getCenter(), markerOptions);
  map.addOverlay(hotspot);
  document.getElementById('latlon').value = map.getCenter(); 
  AllowSave();
}

