

// Kezdő koordináták:
var start_x = 47.498403;
var start_y = 19.040759;
var defzoom = 15;
var basedir = BASEURL; 
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 = 'drag';
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(){
       if ($("#osszes").length) {
        osszes = document.getElementById("osszes").innerHTML;
        osszes = parseInt(osszes.replace(" ",""));
       }
      dist = Math.ceil(gdir.getDistance().meters/1000);
      //dist = 304;
      if ($("#tavolsag").length) {    
          $("#tavolsag").val(dist);
          $("#ajanlat_form").submit();
          return false;
      } else {
          if (dist <= 300 && dist) { 
              document.getElementById(divId).innerHTML = "<span id='tdist'>"+dist+"</span> km";
              szkltsg = dist * 45; // param!!!!
              $("#szallkltsg").html(szkltsg);
              $("#fizet").html(addCommas(osszes+szkltsg));
              $("#szkltsg_sum").val(szkltsg); 
          } else {
              document.getElementById(divId).innerHTML = "";
              $("#szallkltsg").html("<i>egyeztetés szükséges!</i>");
              $("#szkltsg_sum").val('0');
              $("#fizet").html(addCommas(osszes)); 
          } 
      } 
      /*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);

    //alert("from: "+fromX+", "+fromY+" to: "+toX+", "+toY);
    
    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,mapid) {
    defMark = 'fix';
    defMes = mes;
    load(getX,getY,mapid);
}

function load(getX,getY,mapid) {

  if (getX == 0 && getY == 0) {
     //getChoords("","","Szada","");
     getX = start_x;
     getY = start_y;
     //defzoom = 11;
  }
  
  //window.alert(getX+" "+getY); 
  
  if (GBrowserIsCompatible()) {
    if (mapid==undefined) map = new GMap2(document.getElementById("map"));
        else map = new GMap2(document.getElementById(mapid));
    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ő
       
        
        
        function TextualZoomControl() {
            }
        TextualZoomControl.prototype = new GControl();

        TextualZoomControl.prototype.initialize = function(map) {
          var container = document.createElement("div"); 
          
           var panUpDiv = document.createElement("div");
          this.setButtonStyle_(panUpDiv);
          container.appendChild(panUpDiv);
          panUpDiv.style.backgroundImage = "url('"+uparrow+"')";
          panUpDiv.appendChild(document.createTextNode(" "));
          GEvent.addDomListener(panUpDiv, "click", function() {
            map.panDirection(0,1);
          });
          
          var panLeftDiv = document.createElement("div");
          this.setButtonStyle_(panLeftDiv);
          container.appendChild(panLeftDiv);
          panLeftDiv.style.backgroundImage = "url('"+leftarrow+"')";
          panLeftDiv.style.position = 'relative';
          panLeftDiv.style.left = '-18';
          panLeftDiv.appendChild(document.createTextNode(" "));
          GEvent.addDomListener(panLeftDiv, "click", function() {
            map.panDirection(1,0);
          });
          
          var panRightDiv = document.createElement("div");
          this.setButtonStyle_(panRightDiv);
          container.appendChild(panRightDiv);
          panRightDiv.style.backgroundImage = "url('"+rightarrow+"')";
          panRightDiv.style.position = 'relative';
          panRightDiv.style.left = '18';
          panRightDiv.style.top = '-19.5';
          panRightDiv.appendChild(document.createTextNode(""));
          GEvent.addDomListener(panRightDiv, "click", function() {
            map.panDirection(-1,0);
          });
          
          var panDownDiv = document.createElement("div");
          this.setButtonStyle_(panDownDiv);
          container.appendChild(panDownDiv);
          panDownDiv.style.backgroundImage = "url('"+downarrow+"')";
          panDownDiv.style.position = 'relative';
          panDownDiv.style.top = '-19.5';
          panDownDiv.appendChild(document.createTextNode(""));
          GEvent.addDomListener(panDownDiv, "click", function() {
            map.panDirection(0,-1);
          });
          var centerpoint = new GLatLng(start_x, start_y);
          var panCenterDiv = document.createElement("div");
          this.setButtonStyle_(panCenterDiv);
          container.appendChild(panCenterDiv);
          panCenterDiv.style.backgroundImage = "url('"+centerbutt+"')";
          panCenterDiv.style.position = 'relative';
          panCenterDiv.style.top = '-58.5';
          panCenterDiv.appendChild(document.createTextNode(""));
          GEvent.addDomListener(panCenterDiv, "click", function() {
            map.panTo(centerpoint);
          });
          
          var zoomInDiv = document.createElement("div");
          this.setButtonStyle_(zoomInDiv);
          container.appendChild(zoomInDiv);
          zoomInDiv.style.backgroundImage = "url('"+zoomin+"')";
          zoomInDiv.style.position = 'relative';
          zoomInDiv.style.top = '-39';
          zoomInDiv.appendChild(document.createTextNode(""));
          GEvent.addDomListener(zoomInDiv, "click", function() {
            map.zoomIn();
            actzoom=map.getZoom();
          });
    
          var zoomOutDiv = document.createElement("div");
          this.setButtonStyle_(zoomOutDiv);
          container.appendChild(zoomOutDiv);
          zoomOutDiv.style.backgroundImage = "url('"+zoomout+"')";
          zoomOutDiv.style.position = 'relative';
          zoomOutDiv.style.top = '-39';
          zoomOutDiv.appendChild(document.createTextNode(""));
          GEvent.addDomListener(zoomOutDiv, "click", function() {
            map.zoomOut();
            actzoom=map.getZoom();
          });
          
          map.getContainer().appendChild(container);
          return container;
          }
        
        TextualZoomControl.prototype.getDefaultPosition = function() {
              return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(20, 5));
            }
        
        TextualZoomControl.prototype.setButtonStyle_ = function(button) {
              button.style.textDecoration = "none";
              button.style.color = "#ffffff";
              button.style.height = "13px";
              button.style.width = "13px";
              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 TextualZoomControl());
        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 TextualZoomControl());
           
      }
      
      //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');
        if (xmlHttp.responseText != "") {
            //$("#tavolsag").val("-1");
            getPointsDistance(dchoordX,dchoordY,xmlHttp.responseText.split(', ')[1],xmlHttp.responseText.split(', ')[0],'dist_cont',0);
        } else { 
          
          if ($("#osszes").length) {
              osszes = document.getElementById("osszes").innerHTML;
              osszes = parseInt(osszes.replace(" ",""));
              document.getElementById("dist_cont").innerHTML = "";
          }
          if ($("#tavolsag").length) $("#tavolsag").val("-1");
          $("#szallkltsg").html("<i>egyeztetés szükséges!</i>");
          $("#szkltsg_sum").val('0');
          $("#fizet").html(addCommas(osszes));
        }
        //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;";
        //alert(xmlHttp.responseText);
        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 pausecomp(millis)
{
    var date = new Date();
    var curDate = null;

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

var dchoordX;
var dchoordY;
function genDirect(chX,chY) {
    if ($("#tavolsag").length) var kell = new Array('sz_irsz','sz_varos','sz_uhsz','in_nev','in_tel');
     else var kell = new Array('sz_irsz','sz_varos','sz_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= "";
           }
       }
    if ($("#tavolsag").length) {
        if (!$("#kulteri_helye").val()) {
            $("#kulteri_helye").addClass("oline");
            alert("Válassza ki a kültéri egység helyét!");
            return false;
        } else $("#kulteri_helye").removeClass("oline");
    }
    
    if (!hiba) {
        //set_fuggony("Tervezés folyamatban ... Kis türelmet!");
        //document.getElementById("loading").innerHTML="<table><tr><td><image src='"+BASEURL+"images/loader.gif'></td><td valign='middle'>Kis türelmet ...</td></tr></table>";
        
        // nagytarcsa: 47.52993, 19.28868 
        // bp: 47.472745, 19.124134
        dchoordX=47.472745;
        dchoordY=19.124134;
        getChoordstoDirect(document.getElementById('sz_uhsz').value,document.getElementById('sz_irsz').value,document.getElementById('sz_varos').value,'Hungary');
    } else {
        //window.alert('A cím kitöltése szükséges ehhez a funkcióhoz!'); 
       $("#szallkltsg").html("<table class='float_left'><tr><td><img src='"+BASEURL+"images/cms_images/loader_mini.gif' /></td><td><small><i>adatok hiányoznak ...</i></small></td></tr></table>" );
       return false;
    } 
}
