var coord_x = 44.654571;
var coord_y = 10.772172;

function addLoadEvent(function_name)
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = function_name;
  } else {
    window.onload = function() {
      oldonload();
      function_name();
    }
  }
}

function addUnloadEvent(function_name)
{
  var oldonunload = window.onunload;
  if (typeof window.onunload != 'function') {
    window.onunload = function_name;
  } else {
    window.onunload = function() {
      oldonunload();
      function_name();
    }
  }
}

addLoadEvent(load);
addUnloadEvent(GUnload);

var map;
var geocoder = new GClientGeocoder();

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function Style(msg)
{
	return "<span style='font-family:Arial, Helvetica, sans-serif; font-size:12px;'>" + msg + "</span>";
}

function ShowControls() {		
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
}

function SetCenter(p_x, p_y) {
	map.panTo(new GLatLng(p_x, p_y));	
}

function ShowInfo(p_x, p_y, msg) {		
	SetCenter(p_x, p_y);
	var point = new GLatLng(p_x, p_y);
	map.openInfoWindowHtml(point, Style(msg));
}

function AddMapPoint(p_x, p_y) {
	SetCenter(p_x, p_y);
	var point = new GLatLng(p_x, p_y);
	map.addOverlay(new GMarker(point));
}

function AddMapPointWithoutCenter(p_x, p_y) {
	var point = new GLatLng(p_x, p_y);
	map.addOverlay(new GMarker(point));
}

function AddMapLine()
{
	var points = [];
	points.push(new GLatLng(coord_x, coord_y));
	points.push(new GLatLng(point_x, point_y));
	points.sort(function(p1, p2) {
	  return p1.lng() - p2.lng();
	});	
	map.addOverlay(new GPolyline(points));	
}

function ClearAddress(){
	obj = MM_findObj('Indirizzo');
	obj.value = '';
}

function FindAddress(){
	obj = MM_findObj('Indirizzo');
	address = obj.value;
	geocoder.getLatLng(
	address,
	function(point) {
	  if (!point) {
		alert(address + " non trovato");
	  } else {
		map.setCenter(point, 13);
		var marker = new GMarker(point);
		map.addOverlay(marker);
		marker.openInfoWindowHtml(Style(address));
	  }
	}
  );
}

function ShowOverview(){
map.addControl(new GOverviewMapControl());
}

function load() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("mappa"));
    map.setCenter(new GLatLng(coord_x, coord_y), 13);	
	AddMapPoint(coord_x, coord_y);
	ShowControls();
	//ShowOverview();
	map.setZoom(15);
	ShowInfo(coord_x, coord_y, '<b>ADVANCED ITALIA s.a.s.</b><br />Via Emilia Ovest 17A/I<br />42048 Rubiera (RE)<br />Italia');
  }
}
