﻿
GMap2.prototype.fit = function(bounds, save){
  var boundsZoomLevel = this.getBoundsZoomLevel(bounds);
  if(!save){
    this.setZoom(boundsZoomLevel);
    this.panTo(bounds.getCenter()); 
  }else{
    this.setCenter(bounds.getCenter(), boundsZoomLevel);
    this.savePosition();
    return boundsZoomLevel;
  }
}



_mPreferMetric=true;                                   
 
      
var map = new GMap2(document.getElementById("map"), {draggableCursor: 'crosshair',size:new GSize(826,580) });
map.setCenter(new GLatLng( 44.696451,7.852221), 13);



var mt = map.getMapTypes();
     for (var i=0; i<mt.length; i++) {
        mt[i].getMinimumResolution = function() {return 10;}
        mt[i].getMaximumResolution = function() {return 14;}
}

map.addControl(new GMapTypeControl(1));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl(300));


var lastPoint;
GEvent.addListener(map, "mousemove", function(point){lastPoint = point;});

GEvent.addListener(map, "click", function(){document.getElementById("productDiv").innerHTML ="Attendere...";mainScreen.ExecuteCommand( 'GetCoordinate', 'methodHandlers.ShowProduct', lastPoint.lat().toFixed(6) + '/' + lastPoint.lng().toFixed(6));}); 







String.prototype.parseCsv = function(opt_options){
  var results = [];
  var opts = opt_options||{};
  var iLat = opts.lat||1;
  var iLng = opts.lng||0;
  var lines = this.split("\n");
  for (var i=0; i<lines.length; i++) {
    var blocks = lines[i].split('"');
    for(var j=0;j<blocks.length;j++){
      if(j%2){
        blocks[j]=blocks[j].replace(/,/g,'::::');
      }
    } 
    lines[i] = blocks.join("");
    var lineArray = lines[i].split(",");
    var lat = parseFloat(lineArray[iLat]);
    var lng = parseFloat(lineArray[iLng]);
    var point = new GLatLng(lat,lng);
   
    for(var cell in lineArray){
      lineArray[cell] = lineArray[cell].replace(/::::/g,',');
    } 
    if(!isNaN(lat+lng)){
      point.textArray = lineArray;
      results.push(point);
    }
  }
  return results;
}


var textFiles = [
  "/xml/granfondo2011.txt",
  "/xml/mediofondo2011.txt",
  "/xml/brabrababy.txt"
  ];
  

function ajaxLoad(fileNumber,opt_options){
  var opts = opt_options||{};
  map.clearOverlays();
  var process = function(material){
    var polyPoints = material.parseCsv(opts);
    makeDrawing(polyPoints, opts);
  }
  GDownloadUrl(textFiles[fileNumber], process);
}


function makeDrawing(pnts, opt_options){
  var opts = opt_options||{};
  var color = opts.color||'#ff0000';
  var weight = opts.weight||2;
  var opa = opts.liOpa||0.8;
  var fillColor = opts.fillColor||color;
  if(opts.fillOpa){
    var poly = new GPolygon(pnts,color,weight,opa,fillColor,opts.fillOpa);
  }else{
    var poly = new GPolyline(pnts,color,weight,opa);
  }
  map.addOverlay(poly);
  map.fit(poly.getBounds(), true);


  //AGGIUNGO LE ICONE

  var cicon = new GIcon();
  cicon.image = "http://www.brabra.org/images/ico/downright.png";
  //cicon.shadow = "/images/ico/icon_pfeil_schatten.png";
  cicon.iconSize = new GSize(22, 22);
  cicon.shadowSize = new GSize(35, 22);
  cicon.iconAnchor = new GPoint(6, 22);
  cicon.infoWindowAnchor = new GPoint(5, 1);
  markerOptions = { icon: cicon };

  var cicon1 = new GIcon();
  cicon1.image = "http://www.brabra.org/images/ico/downleft.png";
  //cicon1.shadow = "/images/ico/icon_pfeil_schatten.png";
  cicon1.iconSize = new GSize(22, 22);
  cicon1.shadowSize = new GSize(35, 22);
  cicon1.iconAnchor = new GPoint(6, 22);
  cicon1.infoWindowAnchor = new GPoint(5, 1);
  markerOptions1 = { icon: cicon1 };

  var latlng = new GLatLng(44.62932886115201, 7.9300689697265625);
  map.addOverlay(new GMarker(latlng, markerOptions));

  var latlng1 = new GLatLng(44.53861116112907, 7.943115234375);
  map.addOverlay(new GMarker(latlng1, markerOptions1));


  // Place parking icon for Maugersbury Road
  var latlng2 = new GLatLng(44.646673791982664, 7.8778839111328125);     /* position of carpark */
  var Parking3Opts = { title: "Direzione di marcia", clickable: false, icon: cicon };

  map.addOverlay(new GMarker(latlng2, Parking3Opts));
  // FINE AGGIUNTA DELLE ICONE
}



