forkicon = new GIcon();
forkicon.image = "http://images.starved.org/maps/mapfork.png";
forkicon.shadow = "http://images.starved.org/maps/forkdropshadow.png";
forkicon.iconSize = new GSize(7, 42);
forkicon.shadowSize = new GSize(41, 42);
forkicon.iconAnchor = new GPoint(0, 3);
forkicon.infoWindowAnchor = new GPoint(5, 1);
caricon = new GIcon();
caricon.image = "http://images.starved.org/maps/caricon.png";
caricon.shadow = "http://images.starved.org/maps/cariconshadow.png";
caricon.iconSize = new GSize(38,15);
caricon.shadowSize = new GSize(46, 15);
caricon.iconAnchor = new GPoint(6, 20);
caricon.infoWindowAnchor = new GPoint(5, 1);

function DecodePoints(Vb){
  var Ih=Vb.length;
  var pb=0;
  var ba=new Array();
  var Ka=0;
  var Pa=0;
  while(pb<Ih){
    var ub;
    var oc=0;
    var Fa=0;
    do{
      ub=Vb.charCodeAt(pb++)-63;
      Fa|=(ub&31)<<oc;
      oc+=5
    }
    while(ub>=32);
    Ka=Ka+(Fa&1?~(Fa>>1):Fa>>1);
    ba.push(Ka/100000);
    oc=0;
    Fa=0;
    do{
      ub=Vb.charCodeAt(pb++)-63;
      Fa|=(ub&31)<<oc;
      oc+=5
    }
    while(ub>=32);
    Pa=Pa+(Fa&1?~(Fa>>1):Fa>>1);
    ba.push(Pa/100000)
  }
  return ba;
}

function DrawDirections(carlat,carlong) {
  var ddurl='';
  if (carlat && carlong) {
    LoadCar(carlat,carlong);
    ddurl = '/drdir?perm=1&zoom=no&start=' + carlong + ',' + carlat + '&drive=1&ordered=1&p='+carlong + ',' + carlat+'&p='+RESTLONG+','+RESTLAT;
  }
  else {
    var geoinfo = WhereCookie();
    if (geoinfo && geoinfo[1] && geoinfo[2]) {
      LoadCar(geoinfo[1],geoinfo[2]);
      ddurl = '/drdir?perm=1&zoom=no&start=' + geoinfo[2] + ',' + geoinfo[1] + '&drive=1&ordered=1&p='+geoinfo[2]+','+geoinfo[1]+'&p='+RESTLONG+','+RESTLAT;
    }
    else if (getElement('loc').value && RESTLAT && RESTLONG) {
      ddurl = '/drdir?perm=1&zoom=no&startloc=' + getElement('loc').value + '&drive=1&ordered=1&p='+RESTLONG+','+RESTLAT;
    }
    else {
       return null;
    }
  }
  if (ddurl) {
    AddJS('http://www.starved.org' + ddurl);
  }
}

function LoadCar(lat,long) {
  if (!lat || !long || CarLoaded) {
    return null;
  }
  var mainmarker = new GMarker(new GLatLng(lat,long), {draggable:true, icon: caricon, title: "Drag and Drop to Search in a Different Area" });
  GEvent.addListener(mainmarker, "dragend", function(mark,point) {
    DrawDirections(mainmarker.getPoint().y,mainmarker.getPoint().x);
  });
  map.addOverlay(mainmarker);
  CarLoaded=1;
}

function AddJS(url) {
  if (!url) {
    return null;
  }
  var s = document.createElement( "script" );
  s.src = url;
  s.type = "text/javascript";
  document.getElementsByTagName( "head" )[0].appendChild( s );
}

function AddTLJS(url,linktype) {
  AddJS(url);
  document.getElementById("MapLinkMssg").innerHTML=linktype + ' Links Added';
}

function WhereCookie() {
  var wherelist = unescape(readCookie('wherec'));
  if (wherelist) {
    var locations = wherelist.split('|||');
    if (locations) {
      var geoinfo = locations[0].split('%%%');
      if (geoinfo) {
        //geoinfo[1]/=10000;geoinfo[2]/=10000;
        return geoinfo;
      }
    }
  }
  return null;
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i<ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function createMarker(point, icon, html) {
  var marker = new GMarker(point,icon);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}

function ShowMap(id) {
  HideLayer("ShowMap");
  ShowLayer(id);
  loadMap();
}


