var map = null;
var geocoder = null;
var markerHash = null;
var coords=new Array()
var colors = [
          '#ff0000', '#00ff00', '#0000ff',
          '#ffff00', '#ff00ff', '#00ffff',
          '#ffffff', '#000000', '#7fff00',
          '#7f00ff', '#ff7f00', '#ff007f',
          '#007fff', '#00ff7f', '#7f7f7f' ];
var colorIndex =0;
var coords= Array();
var flag=true;
var sqrt3=1.752;
var navi;

function powerQuakesNavigator (id)

{

//Parasitic inheritance of AjaxObject

var that = AjaxObject();

//private properties

var inNews=document.getElementById("newsDiv_"+id);
var showRss= document.getElementById("rssDiv_"+id);
var map = document.getElementById(id);
var updateMap = document.getElementById("update_"+id);
var index=1;

if (GBrowserIsCompatible()) 
	{
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(42.5, 12.5),6);  
        map.addControl(new GLargeMapControl());
        map.addControl(new GHierarchicalMapTypeControl());
	map.addMapType(G_PHYSICAL_MAP);
        map.setMapType(G_PHYSICAL_MAP);        
	map.addControl(new GOverviewMapControl(), new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10, 10)));
        map.addControl(new GScaleControl());
        map.addControl(new GZoomControl({sColor:'#000',nOpacity:.3,sBorder:'1px solid yellow'}), new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(5,285)));
	//map.setMapType(G_PHYSICAL_MAP);
//	G_PHYSICAL_MAP.getMinimumResolution = function () { return 6 };
//	G_NORMAL_MAP.getMinimumResolution = function () { return 6 };
//	G_SATELLITE_MAP.getMinimumResolution = function () { return 6 };
//	G_HYBRID_MAP.getMinimumResolution = function () { return 6 };

	G_PHYSICAL_MAP.getMaximumResolution = function () { return 14 };
	G_NORMAL_MAP.getMaximumResolution = function () { return 14 };
	G_SATELLITE_MAP.getMaximumResolution = function () { return 14 };
	G_HYBRID_MAP.getMaximumResolution = function () { return 14 }; 
      	} 
else 
        { 
        alert("Browser not compatible with Google Maps API, please upgrade");
        return;
        }

//private methods

  addItem = function(id,list,rssItem) 
  	{	
	var date=rssItem.getElementsByTagName("date")[0].firstChild.data;
	var locality=rssItem.getElementsByTagName("locality")[0].firstChild.data;
	var mag=rssItem.getElementsByTagName("mag")[0].firstChild.data;
    	index=-index;
	if (locality != null ){
    		list.innerHTML="<div class=\"listItem"+index+"\"><div class=\"left-container13\"><a href=\"javascript:navi.locateQuake("+id+")\">"+date+"</a></div><div class=\"left-container23\">"+locality+"</div><div class=\"right-container13\">"+" M= "+mag+"</div></div>"+list.innerHTML;
	}
	else
		list.innerHTML="<div class=\"listItem"+index+"\"><div class=\"left-container13\"><a href=\"javascript:navi.locateQuake("+id+")\">"+date+"</a></div><div class=\"right-container13\">"+" M= "+mag+"</div></div>"+list.innerHTML;
    	}

 OrfeusRssHandler=function ()
      {

      //    inNews.innerHTML="";
      if(that.http.readyState == 4)
	{
	var xmlDoc = that.http.responseXML.documentElement;	     
        showRss.innerHTML="<span class='listTitle'>"+xmlDoc.getElementsByTagName("description")[0].firstChild.data+"</span>";
        updateMap.innerHTML="";
        map.clearOverlays();
        var flag = false;
          for(var i=xmlDoc.getElementsByTagName("item").length-1; i>=0; i--)
		{
                addItem(i,inNews,xmlDoc.getElementsByTagName("item")[i]);             
                that.locateQuake(i,true);
                }
	}
      }

// public methods
      that.locateQuake= function(id,goThere)
	     {
	      var infoArray = null;
	      infoArray = that.http.responseXML.documentElement;
	      var rssItem = null;
	      rssItem = infoArray.getElementsByTagName("item")[id];
	      var title=null;
	      if (leggiContenuto (rssItem,'title') != null){
	      	title=note=leggiContenuto (rssItem,'title');
               }
	      var note=null;
	      if (leggiContenuto (rssItem,'note') != null){
	       	note=leggiContenuto (rssItem,'note');
	      	}
	      var date=null;
	      if (leggiContenuto (rssItem,'date') != null){
	      	date=leggiContenuto (rssItem,'date');
	      }
	      var mag=null;
	      if (leggiContenuto (rssItem,'mag') != null){
	      	mag=leggiContenuto (rssItem,'mag');
	      }
	      var lat=null;
	      if (leggiContenuto (rssItem,'lat') != null){
	      	lat=leggiContenuto (rssItem,'lat');
	      }
	      var lon=null;
	      if (leggiContenuto (rssItem,'long') != null){
	      	lon=leggiContenuto (rssItem,'long');
	      }
	      var dep=null;
	      if (leggiContenuto (rssItem,'depth') != null){
		dep=leggiContenuto (rssItem,'depth');
	      }
	      var link=null;
	      if (leggiContenuto (rssItem,'info') != null){
	 	link=leggiContenuto (rssItem,'info');
	      }
	      var wave=null;
	      if (leggiContenuto (rssItem,'wave') != null){
		wave=leggiContenuto (rssItem,'wave');
	      }
	      var locality=null;
	      if (leggiContenuto (rssItem,'locality') != null){
	 	locality=leggiContenuto (rssItem,'locality');
	      }
	      fumetto="";
       // Create our  marker icon
	      var icon = new GIcon();
	      if (mag == null){
		var magvis=.00001;
		}
	      else
		var magvis=mag;
	      if (id == 0)
		{
		icon.image = "images/star.png";
		icon.iconSize = new GSize(15, 15);
		}
	      else 
	      	{
          	if(dep > 100){
	              icon.image = "images/circle-red.png";
          	}
          	else if(dep > 50){
              		icon.image = "images/circle-purple.png";
          	}
          	else if(dep > 20){
              		icon.image = "images/circle-blue.png";
          	}
          	else if(dep > 10){
              		icon.image = "images/circle-green.png";
          	}
          	else if(dep > 5){
              		icon.image = "images/circle-yellow.png";
          	}
          	else {
              		icon.image = "images/circle-orange.png";
          	}    	
	          //icon.image = "images/quakeIconRed.png";
	          icon.iconSize = new GSize(magvis*3.5, magvis*3.5);
	        }  
 	      	  icon.shadow = "images/quakeshadow.png";
//	      	  icon.iconSize = new GSize(magvis*3.5, magvis*3.5);
	          icon.shadowSize = new GSize(magvis*3.5, magvis*3.5);
	          icon.iconAnchor = new GPoint(0,0);
	          icon.infoWindowAnchor = new GPoint(7,5);
	          var marker = new GMarker(new GLatLng(lat, lon), icon);
		marker.title=title;
		marker.date=date;
		marker.lat=lat;
		marker.lon=lon;
		marker.dep=dep;
		marker.link=link;
		marker.mag=mag;
		marker.locality=locality;
		marker.wave=wave;
		marker.note=note;
		var interspace="<br/><br/>";		
		map.removeOverlay(marker);
		map.addOverlay(marker); 
// Controllo dei valori nei singoli elementi

//  Se carica il file, non viene scritto il fumetto, altrimenti si

		if (goThere){
			GEvent.addListener(map, "click", function(marker, point){
			if (marker){
  				var fumetto="<style:float><font size=1><br/><strong>"+marker.title+"</strong>";
				if (marker.locality != null){
					fumetto=fumetto+interspace+marker.locality;
			        }
				if (marker.mag != null){
					fumetto=fumetto+interspace+" Mag.="+marker.mag;
			        }
				fumetto=fumetto+interspace+"Lat.= "+marker.lat+" Lon.= "+marker.lon;
				if (marker.dep != null){
					fumetto=fumetto+interspace+" Profondit&agrave= "+marker.dep+" Km";
			        }
				if (marker.link != null){
					fumetto=fumetto+interspace+"<a href='"+marker.link+"'>Altre informazioni</a>";
				}
			   	if (marker.wave != null){
					fumetto=fumetto+interspace+"<a href='"+marker.wave+"'>Scarica le forme d'onda</a>";
			        }
			   	if (marker.note != null){
					fumetto=fumetto+interspace+"Nota: <strong>"+marker.note+"</strong><br>";
			        }
				marker.openInfoWindowHtml(fumetto, GSize(50,0));
				}								
			}
			);
		}
		else{
			map.setCenter(GLatLng(lat, lon));
			var fumetto="<style:float><font size=1><br/><strong>"+marker.title+"</strong>";
			if (marker.locality != null){
				fumetto=fumetto+interspace+marker.locality;
		        }
			if (marker.mag != null){
				fumetto=fumetto+interspace+" Mag.="+marker.mag;
		        }
			fumetto=fumetto+interspace+"Lat.= "+marker.lat+" Lon.= "+marker.lon;
			if (marker.dep != null){
				fumetto=fumetto+interspace+" Profondit&agrave = "+marker.dep+" Km";
		        }
			if (marker.link != null){
				fumetto=fumetto+interspace+"<a href='"+marker.link+"'>Altre informazioni</a>";
			}
		   	if (marker.wave != null){
				fumetto=fumetto+interspace+"<a href='"+marker.wave+"'>Scarica le forme d'onda</a>";
		        }
		   	if (marker.note != null){
				fumetto=fumetto+interspace+"Nota: <strong>"+marker.note+"</strong><br>";
		        }
			marker.openInfoWindowHtml(fumetto, GSize(50,0));
		}
    	}
   that.load = function  () {
     updateMap.innerHTML=" Wait.. Collecting Data.. ";
     inNews.innerHTML="";

     //AjaxObject direct call for bina earthquakes

     map.setCenter(new GLatLng(42.5, 12.5),5);
     that.sndReq('bina-quake.xml',OrfeusRssHandler);

  }
  return that;
}
function leggiContenuto(item, nomeNodo) {
	if (item.getElementsByTagName(nomeNodo).item(0) != null){
		if (item.getElementsByTagName(nomeNodo).item(0).firstChild != null){
  			return item.getElementsByTagName(nomeNodo).item(0).firstChild.data;
  		}
    	}
}; 
function powerTestObject ( )

{

//Parasitic inheritance of AjaxObject

var that = AjaxObject();

//private properties

//private methods

    localHandler=function () {
	 if( that.http.readyState == 5){
             alert(that.http.responseXML.documentElement);	
	    }
	}

// public methods  

   that.load = function(url) {

     //Ajax direct call thanks to AjaxObject

     that.sndReq(url,localHandler);

  }

  return that;

}

function init()

{
//  alert('Partenza');
  navi = powerQuakesNavigator("map");
  navi.load("/iesn.xml");

  if (location.search.length > 0){ 
    var qid = +location.search.replace(/\?qid=(\d+)$/,"$1");    
    if ( !isNaN(qid) ){
  	navi.locateQuake(qid);
    }
  }
  
}

function getById(attr_id) {
 
 var xmlDoc = that.http.responseXML.documentElement[attr_id];
 return(xmlDoc.all[attr_id])

}

function trim(stringa)
{
while (stringa.substring(0,1) == ' ')
{
stringa = stringa.substring(1, stringa.length);
}
while (stringa.substring(stringa.length-1, stringa.length) == ' ')
{
stringa = stringa.substring(0,stringa.length-1);
}
return stringa;
}

function rightTrim(stringa)
{
while (stringa.substring(stringa.length-1, stringa.length) == ' ')
{
stringa = stringa.substring(0,stringa.length-1);
}
return stringa;
}


function leftTrim(stringa)
{
while (stringa.substring(0,1) == ' ')
{
stringa = stringa.substring(1, stringa.length);
}
return stringa;
}

function faiFumetto(marker)
{
	var fumetto="<br/><strong>"+date+"  Ml ="+marker.mag+"</strong><br/><br/>";
	if (marker.locality != null){
		fumetto=fumetto+marker.locality+"<br/><br/>";
        }
	fumetto=fumetto+"Lat.="+marker.lat+" Long.="+marker.lon;
	if (marker.dep != null){
		fumetto=fumetto+" Prof.="+marker.dep+" Km<br/><br/>";
        }
	else	{
		fumetto=fumetto+"<br/><br/>";
        }
	if (marker.link != null){
		fumetto=fumetto+"<a href='"+marker.link+"'>Altre informazioni</a><br/><br/>";
	}
   	if (marker.wave != null){
		fumetto=fumetto+"<a href='"+marker.wave+"'>Scarica le forme d'onda</a>";
        }

}

