

// Kezdő koordináták:
var start_x = 47.498403;
var start_y = 19.040759;
var defzoom = 14;
var basedir = "http://mypersonalbp.arteries.hu/"; 
var counter = 0;

// teszt buborék
//var message = "<b>Őrbottyán Nagyközség Önkormányzat</b><br>2162 Őrbottyán, Fő út 63.";

// gombok URL
var usedefault = true; //használja e a beépített gombokat, ha true, akkor nem ''-val töltsük fel a köv. sorokat!
var uparrow = 'images/arrow_up.png';
var downarrow = 'images/arrow_down.png';
var leftarrow = 'images/arrow_left.png';
var rightarrow = 'images/arrow_right.png';
var zoomin = 'images/zoom_in.png';
var zoomout = 'images/zoom_out.png';
var centerbutt = 'images/arrow_center.png';
var map;
var actzoom = defzoom;
var defMark = 'fix';
var defMes = '';

// KÖZÉPPONT
function SetMapCenter(getX, getY, actZoom) {
    map.setCenter(new GLatLng(getX, getY), actZoom);
}

// NARANCS MUTATÓ
function CreateOrangeMarker (getX,getY,markType,mes) {
    //Narans ikon
    var baseIcon = new GIcon();
    baseIcon.shadow = basedir+ "images/bubble_shad.png";
    baseIcon.iconSize = new GSize(40, 42);
    baseIcon.shadowSize = new GSize(45, 50);
    baseIcon.iconAnchor = new GPoint(9, 34);
    baseIcon.infoWindowAnchor = new GPoint(9, 2);
    baseIcon.infoShadowAnchor = new GPoint(18, 25); 
    
    function createMarker(point, index,mType) {
          // Create a lettered icon for this point using our icon class
          var letter = String.fromCharCode("A".charCodeAt(0) + index);
          var letteredIcon = new GIcon(baseIcon);
          letteredIcon.image = basedir+ "images/bubble.png";

          // Set up our GMarkerOptions object
          if(mType=='fix') 
            markerOptions = { icon:letteredIcon };
            else markerOptions = { icon:letteredIcon , draggable: true };
          var marker = new GMarker(point, markerOptions);

          /*
          GEvent.addListener(marker, "dragend", function() {
           var thepoint = marker.getPoint();
            document.getElementById("choord_x").value=thepoint.toString().split(', ')[0].substring(1);
            document.getElementById("choord_y").value=thepoint.toString().split(', ')[1].substring(0,(thepoint.toString().split(', ')[1].length-1));
            
            /*document.getElementById("ho").innerHTML = thepoint.toString().split(', ')[0].substring(1) 
            document.getElementById("sz").innerHTML = thepoint.toString().split(', ')[1].substring(0,(thepoint.toString().split(', ')[1].length-1));*/
            //document.getElementById("message").innerHTML = "Hosszúság: " + marker.x + "<br />Szélesség: " + marker.y;
          // });
          
          if (mes != "") {
              GEvent.addListener(marker, "click", function() {
                marker.openInfoWindowHtml(mes);
              });
          }
          return marker;
        }
        
        point = new GLatLng(getX, getY);
        var marc = map.addOverlay(createMarker(point,1,markType));
}

function getPointsDistance(fromX,fromY,toX,toY,divId,distance) {
    
    function onGDirectionsLoad(){ 
      document.getElementById('tav_'+divId).innerHTML = (gdir.getDistance().meters/1000);
      if (distance != 0) {
          if ((gdir.getDistance().meters/1000)<=distance) CreateOrangeMarker(toX,toY,"fix",document.getElementById("mes_"+divId).value);
            else {
                document.getElementById('talszam').innerHTML= parseInt(document.getElementById('talszam').innerHTML)-1;
                document.getElementById('tr_'+divId).style.display = "none";
            }
      } else CreateOrangeMarker(toX,toY,"fix",document.getElementById("mes_"+divId).value);
    }
    directionOptions = {getPolyline:true };
    gdir = new GDirections(false, false,directionOptions);
    GEvent.addListener(gdir, "load", onGDirectionsLoad);
          
    gdir.load("from: "+fromX+", "+fromY+" to: "+toX+", "+toY);
} 

function getPointsDirection(fromX,fromY,toX,toY,divId) {
    
    /*function onGDirectLoad(){ 
      document.getElementById('tav_'+divId).innerHTML = (gdir.getDistance().meters/1000);
      if (distance != 0) {
          if ((gdir.getDistance().meters/1000)<=distance) CreateOrangeMarker(toX,toY,"fix",document.getElementById("mes_"+divId).value);
            else {
                document.getElementById('tr_'+divId).style.display = "none";
            }
      } else CreateOrangeMarker(toX,toY,"fix",document.getElementById("mes_"+divId).value);
    }*/
    gdirect = new GDirections(map, document.getElementById(divId));
    //GEvent.addListener(gdirect, "load", onGDirectLoad);
          
    gdirect.load("from: "+fromX+", "+fromY+" to: "+toX+", "+toY);
}     

function loadFix(getX,getY,mes) {
    defMark = 'fix';
    defMes = mes;
    load(getX,getY);
}

function load(getX,getY) {

  if (getX == 0 && getY == 0) {
     //getChoords("","","Szada","");
     getX = start_x;
     getY = start_y;
     //defzoom = 11;
  }
  
  //window.alert(getX+" "+getY); 
  
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    SetMapCenter(getX, getY,defzoom);
    map.setMapType(G_NORMAL_MAP);//G_HYBRID_MAP ; G_SATELLITE_MAP
    
    /*if (uri.split('/')[2] != "admin") markType = "fix"; else markType = "drag";*/
        CreateOrangeMarker(getX, getY,defMark,defMes);
    
    /*function onGDirectionsLoad(){ 
      // Use this function to access information about the latest load()
      // results.

      // e.g.
      document.getElementById("getStatus").innerHTML = gdir.getDistance().meters;
      // and yada yada yada...
    }
        var directions;
        
          window.alert("from: "+getX+", "+getY+" to "+start_x+", "+start_y);
          gdir = new GDirections(map, false);
          GEvent.addListener(gdir, "load", onGDirectionsLoad);
          
          gdir.load("from: "+getX+", "+getY+" to: "+start_x+", "+start_y);      */

         
    

    
       // ---- Szövegbuborék ---- 
        //map.openInfoWindow(map.getCenter(), document.createTextNode("Hello, world"));
        
        // ************************************************************************
        
        // ---- Koordináta kiirás ----
    /*GEvent.addListener(map, "moveend", function() {
      var center = map.getCenter();
      
      document.getElementById("message").innerHTML = "Hosszúság: " + center.toString().split(', ')[0].substring(1) + "<br />Szélesség: " + center.toString().split(', ')[1].substring(0,(center.toString().split(', ')[1].length-1));
      }); */
        
        //*************************************************************************
        

    // Függvény ami mutatót tesz a megadott helyre, a mutatóra kattintva eltünik/előjön a buborék
        /* function createMarker(point, title, address) {
          var marker = new GMarker(point, {draggable: true});
          marker.value = title;
          /*GEvent.addListener(marker,"click", function() {
            var myHtml = "<b>"+ title + "</b><br/>" + address;
            map.openInfoWindowHtml(point, myHtml);
          }); */
          /*return marker; 
        }
        
       //*********************************************************************************
         /*var myEventListener = GEvent.bind(map, "click", this, function(marker,point) {
             map.removeOverlay();

                map.addOverlay(createMarker(point,1));
                document.getElementById("message").innerHTML = "Hosszúság: " + point.x + "<br />Szélesség: " + point.y;
          });*/ 
        

            
        //******************************************************************************
        
        // ---- Zoom, meg a többi :D ----
        
        var posiTion = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
        /* ez a pozicionáló! : - mihez képest? -> ( G_ANCHOR_TOP_RIGHT, 
                                                    G_ANCHOR_TOP_LEFT, 
                                                    G_ANCHOR_BOTTOM_RIGHT, 
                                                    G_ANCHOR_BOTTOM_LEFT) ->értelemszerüen
                                - ennyivel -> GSize (x,y) */
 
        //map.addControl(new GLargeMapControl(),posiTion); // zoom, [opt pozíciója] ... alapértelmezésben a bal felső
       
        map.addControl(new GLargeMapControl3D());
        
        map.addControl(new GMapTypeControl());
        
           
         
        
        function TextOut() {
            }
        TextOut.prototype = new GOverlay();

        TextOut.prototype.initialize = function(map) {
          var cont = document.createElement("div");
          
           var textDiv = document.createElement("div");
          this.setButtonStyle2_(textDiv);
          cont.appendChild(textDiv);
          textDiv.appendChild(document.createTextNode("blaaablabalacd"));
          
          map.getContainer().appendChild(cont);
          return cont;
          }
        
        TextOut.prototype.setButtonStyle2_ = function(button) {
              button.style.color = "#ffffff";
              button.style.height = "13px";
              button.style.width = "13px";
              button.style.backroundColor = '#ffffff';
              button.style.font = "Arial";
              button.style.border = "0";
              button.style.padding = "2px";
              button.style.marginBottom = "3px";
              button.style.textAlign = "center";
              button.style.cursor = "pointer";
           }
        
        
        
        map.addControl(new GLargeMapControl3D());
           
      }
      
      //document.getElementById('map_box').style.z-index='5';
    }
    
function getChoords (street,postcode,city,country){
        var url = basedir+"get_choord.php?street=" +street+ "&postcode=" +postcode+ "&city=" +city+ "&country=" +country;
        //var url = "http://maps.google.com/maps/geo?q=" +street+ "+" +postcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key=ABQIAAAAcsCDDw24FtCAxX3-EX1nchSlFhvSwoZm-fIho7g1PAG80uMB7hQrgnlrOIBCL0k5zrWsQDJTpG4pnQ";
        //window.alert(url);
        xmlHttp=GetXmlHttpObject(stateChanged_coord); 
        xmlHttp.open("GET", url , true);
        xmlHttp.send(null);
}

function getOnlyChoords (street,postcode,city,country){
        var url = basedir+"get_choord.php?street=" +street+ "&postcode=" +postcode+ "&city=" +city+ "&country=" +country;
        //var url = "http://maps.google.com/maps/geo?q=" +street+ "+" +postcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key=ABQIAAAAcsCDDw24FtCAxX3-EX1nchSlFhvSwoZm-fIho7g1PAG80uMB7hQrgnlrOIBCL0k5zrWsQDJTpG4pnQ";
        //window.alert(url);
        xmlHttp=GetXmlHttpObject(stateChanged_Ocoord); 
        xmlHttp.open("GET", url , true);
        xmlHttp.send(null);
}


function getChoordstoDirect (street,postcode,city,country){
        var url = basedir+"get_choord.php?street=" +street+ "&postcode=" +postcode+ "&city=" +city+ "&country=" +country;
        //var url = "http://maps.google.com/maps/geo?q=" +street+ "+" +postcode+ "+" +city+ "+" +country+ "&callback=getCoordinates&output=JSON&key=ABQIAAAAcsCDDw24FtCAxX3-EX1nchSlFhvSwoZm-fIho7g1PAG80uMB7hQrgnlrOIBCL0k5zrWsQDJTpG4pnQ";
        //window.alert(url);
        xmlHttp=GetXmlHttpObject(stateChanged_coordDirect); 
        xmlHttp.open("GET", url , true);
        xmlHttp.send(null);
}

function stateChanged_coordDirect() { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
        //document.getElementById("loading").innerHTML="&nbsp;";
        //window.alert(xmlHttp.responseText.split(', ')[1]+", "+xmlHttp.responseText.split(', ')[0]+", "+dchoordX+", "+dchoordY+", "+'route')
        getPointsDirection(xmlHttp.responseText.split(', ')[1],xmlHttp.responseText.split(', ')[0],dchoordX,dchoordY,'route');
        document.getElementById('fuggony').style.display='none'; 
    } 
}

function stateChanged_coord() { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
        //document.getElementById("loading").innerHTML="&nbsp;";
        load(xmlHttp.responseText.split(', ')[1],xmlHttp.responseText.split(', ')[0]);
        document.getElementById("choord_x").value=xmlHttp.responseText.split(', ')[1];
        document.getElementById("choord_y").value=xmlHttp.responseText.split(', ')[0];
        document.getElementById('fuggony').style.display='none';
        
    } 
}

function stateChanged_Ocoord() { 
    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
        //document.getElementById("loading").innerHTML="&nbsp;";
        document.getElementById("choord_x").value=xmlHttp.responseText.split(', ')[1];
        document.getElementById("choord_y").value=xmlHttp.responseText.split(', ')[0];
        document.getElementById('fuggony').style.display='none';
        document.getElementById('fuggony').value='1';
        document.szolgForm.submit();   
    } 
}

function GetXmlHttpObject(handler)
{

    var objXmlHttp=null

    if (navigator.userAgent.indexOf("MSIE")>=0)
    { 
        var strName="Msxml2.XMLHTTP"
        if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
        {
            strName="Microsoft.XMLHTTP"
        } 
        try
        { 
            objXmlHttp=new ActiveXObject(strName)
            objXmlHttp.onreadystatechange=handler
            return objXmlHttp
        } 
        catch(e)
            { 
                alert("Error. Scripting for ActiveX might be disabled") 
                return 
            } 
    } 
    if (navigator.userAgent.indexOf("Mozilla")>=0 || navigator.userAgent.indexOf("Opera")>=0 || navigator.userAgent.indexOf("Safari")>=0)
    {
        objXmlHttp=new XMLHttpRequest()
        objXmlHttp.onload=handler
        objXmlHttp.onerror=handler 
        return objXmlHttp
    }
}

function pausecomp(millis)
{
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); }
    while(curDate-date < millis);
} 

function genPos(type) {
    if (type=='data') var kell = new Array('ceg_isz','ceg_varos','ceg_uhsz');
    if (type=='fel') var kell = new Array('ter_varos','ter_uhsz');
    var hiba = false;
    
    for(i=0;i<kell.length;i++) {
           if (document.getElementById(kell[i]).value=="") {
               document.getElementById(kell[i]).style.border= "1px red solid";
               hiba = true;
           } else {
                document.getElementById(kell[i]).style.border= "1px gray solid";
           }
       }
    if (!hiba) {
        document.getElementById("loading").innerHTML="<table><tr><td><image src='"+BASEURL+"images/loader.gif'></td><td valign='middle'>Please wait ...</td></tr></table>";
        if (type=='data') getChoords(document.getElementById('ceg_uhsz').value,document.getElementById('ceg_isz').value,document.getElementById('ceg_varos').value,'Hungary'); 
        if (type=='fel') getChoords(document.getElementById('ter_uhsz').value,document.getElementById('ter_isz').value,document.getElementById('ter_varos').value,'Hungary'); 
    } else {
        if (type=='data') window.alert('A cég/vállalkozás címének kitöltése szükséges ehhez a funkcióhoz!'); 
        if (type=='fel') window.alert('You have to give the address, at least street and city!'); 
        
    } 
}

