
var map, marker, mapOptions, infowindow;
var inSet = 0;

function hideAll()
{
  document.getElementById("sharedialog").style.display="none";
  document.getElementById("savedialog").style.display="none";
  document.getElementById("book").style.display="none";
}

function showBookmark()
{
  document.getElementById("book").style.display="block";
}

function ShareDialog(map)
{
 if (infowindow)
	 infowindow.close();

 document.getElementById("savedialog").style.display="none";
 document.getElementById("book").style.display="none";

 if (document.getElementById("sharedialog").style.display=="block")
   document.getElementById("sharedialog").style.display="none";
 else
 {
   document.getElementById("waitTable").style.display="block";
   document.getElementById("shareTable").style.display="none";
   document.getElementById("sharedialog").style.display="block";
   getShortUrl(map);
 }
} 

function showShare(url)
{
   document.getElementById("book").style.display="none";
   document.getElementById("waitTable").style.display="none";
   document.getElementById("shareTable").style.display="block";
}

function SaveDialog(map)
{
 if (infowindow)
	 infowindow.close();

 document.getElementById("sharedialog").style.display="none";
 document.getElementById("book").style.display="none";

 if (document.getElementById("savedialog").style.display=="block")
   document.getElementById("savedialog").style.display="none";
 else
 {
   document.getElementById("txt1").value='';
   document.getElementById("savedialog").style.display="block";
 }
} 

function CreateMap(map)
{
  location.href='/mymap/index.jsp';
}

function saveRecord(ip, path, mark)
{
  var s = document.getElementById("txt").value;
  var s1 = document.getElementById("txt1").value;
  var pos = mark.getPosition();

  if (!s1) s1='';

  var query = 'w='+encodeURIComponent(s)+"&c="+ip;
  if (s1!='')
       query+="&d="+encodeURIComponent(s1);

  query+="&p="+path; 
  query+="&lat="+pos.lat()+"&lng="+pos.lng();

  var uri = '/mymap/savenote.jsp';

  var beforeAction = function() 
  { document.getElementById("txt1").value = "saving your data ..."; };

  var afterAction = function() 
  { hideAll(); };

  noteAjaxEnginePost(uri, query, noteHandlerFunction, noteErrorFunction, beforeAction, afterAction);
}

 function myInfoCallback(t)
  {
     if (t.errorCode==0)
     {
        var res = t.results;
        for (var key in res) 
        {
           res = res[key];
           
           shortUrl = res['shortUrl'];

           showShare(shortUrl); 
           
           return;
        }
     }
  }

 function getShortUrl(map)
 {
   var link = thisUrl+"?lat="
            +  map.getCenter().lat()
            + "&lng="
            +  map.getCenter().lng()
            + "&zml="
            + map.getZoom();

   var url = 'http://api.bit.ly/shorten?version=2.0.1&longUrl='+encodeURIComponent(link)
            + '&login=coldjava&apiKey=R_eaef9593ff7dafb595bf584116f7a108'
            + '&callback=myInfoCallback';

  var script = document.createElement("script");
      script.setAttribute("src", url);
      script.setAttribute("type", "text/javascript");
      document.body.appendChild(script); 
 }

 function shareFace(url)
 {
   location.href="http://m.facebook.com/sharer.php?u="+url;
 }

 function shareBuzz(url)
 {
   location.href='mailto:buzz@gmail.com?subject='+'My%20map%20'+url;
 }

 function shareEmail(url)
 {
   location.href='mailto:?subject='+'My%20map'+'&body='+url;
 }

 function shareSMS(url)
 {
   location.href='sms:?body='+'My%20map%20'+url;
 }


function noteErrorFunction(){  alert("Could not save note ...");}

function noteHandlerFunction(txt, xmlDoc)
{ if (txt)
  { var s = trimResponse(txt);
    var o = eval("("+s+")");

    if ("true"==o.reload)
    {
      s = "/mymap/maps/"+o.path
        + "/index.jsp";

      location.href=s;
      return;
    }

    else  // create marker
    {

     // create marker

     var mrk = createMarker(map,o);
      
     // redraw main marker

     marker.setMap(null);   
     setMarker1(map.getCenter().lat(),map.getCenter().lng());

     // add to array
     markers[markers.length] = mrk;         
    }
  }
}

function createMarker(map, o)
{
      var image = '/mymap/img/blue-pushpin.png';
      var mrk = new google.maps.Marker({
        position: new google.maps.LatLng(o.lat, o.lng),
        title: o.what,
        map: map,
        draggable: false,
        icon:image
      });

     // create onclick event

     google.maps.event.addListener(mrk, 'click', function() {
     var pos = mrk.getPosition();

     contentString = "<strong>"+shortDate(new Date(eval(o.dt)))+"</strong><br/>"
                   + "<em>"+o.what+"</em><br/>" 
                   + o.description;
        
     var infow = new google.maps.InfoWindow({
        content: contentString
      });
      hideAll(); 
      infow.open(map,mrk);
      });


      return mrk;
}

function trimResponse(s0)
{ if (s0==null) return s0; s=s0;

  var s1 = ' ';
  while (s.length>0 && s1==' ')
  {
   s1 = s.substring(s.length-1); 
   if (s1==' ' || s1=='\r' || s1=='\n' || s1=='\t') { s=s.substring(0,s.length-1); s1=' '; }      
  }

  while (s.length>0)
  { s1=s.substring(0,1);
    if (s1==' ' || s1=='\r' || s1=='\n' || s1=='\t') s=s.substring(1);
    else  return s; }

  return '';}

function shortDate(dt)
{
  return   dt.getDate()+"/"+(dt.getMonth()+1)+"/"+dt.getFullYear()
         + " "+dt.getHours()+":"+dt.getMinutes();
}


function noteAjaxEnginePost(uri, query, handlerFunction, errorFunction, beforeAction, afterAction)
{
    var contentType = "application/x-www-form-urlencoded; charset=UTF-8";

    if (handlerFunction==null)  handlerFunction = function() {};
    if (errorFunction==null)    errorFunction = function () {};
    if (beforeAction == null) beforeAction = function() {};
    if (afterAction == null) afterAction = function() {};  
    if (query==null) query="";
    var r = (window.ActiveXObject)?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();
    if (r) { r.onreadystatechange = function()
      {	if (r.readyState == 4)
        {afterAction();
         if (r.status == 200)
  	 { xmlDoc = r.responseXML; txt = r.responseText;
           handlerFunction(txt, xmlDoc);}
         else          errorFunction();
        } }

     beforeAction(); r.open("POST", uri, true);
     r.setRequestHeader("Content-Type", contentType);
     r.setRequestHeader("Content-length", query.length);
     r.setRequestHeader("Connection", "close");
     r.send(query); return true;
  } else { afterAction(); errorFunction(); return false; }}

function myInfoCallback1(t)
  {
     if (t.errorCode==0)
     {
        var res = t.results;
        for (var key in res) 
        {
           res = res[key];
           
           var s = 'I%20am%20here';
           var b = res['shortUrl'];
          if (email!=null) { 
           location.href='mailto:<%=email%>?subject='+s+'&body='+b;
            } else { 
           location.href='mailto:?subject='+s+'&body='+b;
            } 
           break;

        }
     }
  }

 function myInfoCallback2(t)
  {
     if (t.errorCode==0)
     {
        var res = t.results;
        for (var key in res) 
        {
           res = res[key];
           
           var s = 'I%20am%20here%20';
           var b = res['shortUrl'];
          if (phone!=null) { 
           location.href='sms:?body='+s+b;
            } else { 
           location.href='sms:<%=phone%>?body='+s+b;
            } 
           break;

        }
     }
  }

function myInfoCallback3(t)
  {
     if (t.errorCode==0)
     {
        var res = t.results;
        for (var key in res) 
        {
           res = res[key];
           
           var s = 'I%20am%20here';
           var b = res['shortUrl'];

           s+="%20"+b;
             
           location.href='mailto:buzz@gmail.com?subject='+s;
           break;
        }
     }
  }

function goto(mrk,t)
{
  var url ="http://mymap.linkstore.ru?lat="
          + mrk.getPosition().lat()
          + "&lng="
          + mrk.getPosition().lng()
          + "&zml="
          + map.getZoom();             

   if (t!="")
    url+="&t="+encodeURIComponent(t);

  location.href=url;
}

function sharePos(num,mrk,t)
{
  var link = "http://linkstore.ru/mymap?lat="
           +  mrk.getPosition().lat()
           + "&lng="
           +  mrk.getPosition().lng()
           + "&zml="
           + map.getZoom();

  if (t!="") link+="&t="+encodeURIComponent(t); 

  var url = 'http://api.bit.ly/shorten?version=2.0.1&longUrl='+encodeURIComponent(link)
            + '&login=coldjava&apiKey=R_eaef9593ff7dafb595bf584116f7a108'
            + '&callback=myInfoCallback'+num;

  var script = document.createElement("script");
      script.setAttribute("src", url);
      script.setAttribute("type", "text/javascript");
      document.body.appendChild(script); 
}





