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_SATELLITE_MAP);
      	} 
else 
        { 
        alert("Browser not compatible with Google Maps API, please upgrade");
        return;
        }

//private methods

  addItem = function(id,list,rssItem) 
  	{	
//    	var locality=rssItem.getElementsByTagName("locality");
//	var infoArray=rssItem.getElementsByTagName("title")[0].firstChild.data.split(",",2);
//	var infoArray=rssItem.getElementsByTagName("title")[0].firstChild.data.split("Mag",2);
//	var date=rssItem.getElementsByTagName("title")[0].firstChild.data;
	var date=rssItem.getElementsByTagName("date")[0].firstChild.data;
//	var date=infoArray[0];
	var locality=rssItem.getElementsByTagName("locality")[0].firstChild.data;
	var mag=rssItem.getElementsByTagName("mag")[0].firstChild.data;
//	if (locality != "nd" ){
//	var infoArray2=locality.split(",",3);
//	var loc0=infoArray2[0].substr(0,infoArray2[0].indexOf('(')-1);
//	var loc1=infoArray2[1].substr(0,infoArray2[1].indexOf('(')-1);
//	var loc2=infoArray2[2].substr(0,infoArray2[2].indexOf('(')-1);
//	}
//	var mag=rssItem.getElementsByTagName("mag");
//    	var lat=rssItem.getElementsByTagName("lat");
//    	var lon=rssItem.getElementsByTagName("long");
//    	var dep=rssItem.getElementsByTagName("depth");    	
    	index=-index;
	if (locality != "nd" ){
    		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("title")[0].firstChild.data+"</span>";
        updateMap.innerHTML="";
        map.clearOverlays();

        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 = that.http.responseXML.documentElement;
	      var rssItem = infoArray.getElementsByTagName("item")[id];
	
//	      Valorizzazione delle variabili con gli elementi del file rss

	      var title=rssItem.getElementsByTagName("title")[0].firstChild.data;
	      var date=rssItem.getElementsByTagName("date")[0].firstChild.data;
	      var mag=rssItem.getElementsByTagName("mag")[0].firstChild.data;
	      var lat=rssItem.getElementsByTagName("lat")[0].firstChild.data;
	      var lon=rssItem.getElementsByTagName("long")[0].firstChild.data;
	      var dep=rssItem.getElementsByTagName("depth")[0].firstChild.data;
	      var link=rssItem.getElementsByTagName("link")[0].firstChild.data;
	      var wave=rssItem.getElementsByTagName("wave")[0].firstChild.data;
	      var locality=rssItem.getElementsByTagName("locality")[0].firstChild.data;
	      fumetto="";
       // Create our  marker icon

	      var icon = new GIcon();
	      if (mag=="nd"){
		var magvis=.00001;
		}
	      else
		var magvis=mag;
	      if (id==0)
		{
		icon.image = " /images-google/star.png";
		}
	      else 
	          icon.image = " /images-google/quakeIconRed.png";
 	      	  icon.shadow = "/images-google/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;
		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="<br/><strong>"+marker.title+"</strong><br/><br/>";
				if (marker.locality != "nd" ){
					fumetto=fumetto+marker.locality+"<br/><br/>";
			        }
				if (marker.mag != "nd" ){
					fumetto=fumetto+" Mag.="+marker.mag+"<br/><br/>";
			        }
				else	{
					fumetto=fumetto+"<br/><br/>";
			        }
				fumetto=fumetto+"Lat.="+marker.lat+" Long.="+marker.lon;
				if (marker.dep != "nd" ){
					fumetto=fumetto+" Prof.="+marker.dep+" Km<br/><br/>";
			        }
				else	{
					fumetto=fumetto+"<br/><br/>";
			        }
				if (marker.link != "nd" ){
					fumetto=fumetto+"<a href='"+marker.link+"'>Altre informazioni</a><br/><br/>";
				}
			   	if (marker.wave != "nd" ){
					fumetto=fumetto+"<a href='"+marker.wave+"'>Scarica le forme d'onda</a>";
			        }
				marker.openInfoWindowHtml(fumetto, new GSize(50,0));
				}
			}
			);
		}
		else{
			map.setCenter(new GLatLng(lat, lon), 8);
			var fumetto="<br/><strong>"+marker.title+"</strong><br/><br/>";
			if (marker.locality != "nd" ){
				fumetto=fumetto+marker.locality+"<br/><br/>";
		        }
			if (marker.mag != "nd" ){
				fumetto=fumetto+" Mag.="+marker.mag+"<br/><br/>";
		        }
			else	{
				fumetto=fumetto+"<br/><br/>";
		        }
			fumetto=fumetto+"Lat.="+marker.lat+" Long.="+marker.lon;
			if (marker.dep != "nd" ){
				fumetto=fumetto+" Prof.="+marker.dep+" Km<br/><br/>";
		        }
			else	{
				fumetto=fumetto+"<br/><br/>";
		        }
			if (marker.link != "nd" ){
				fumetto=fumetto+"<a href='"+marker.link+"'>Altre informazioni</a><br/><br/>";
			}
		   	if (marker.wave != "nd" ){
				fumetto=fumetto+"<a href='"+marker.wave+"'>Scarica le forme d'onda</a>";
		        }
			marker.openInfoWindowHtml(fumetto, new 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('/iesn07.xml',OrfeusRssHandler);

  }
  return that;
}

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()

{
  navi = powerQuakesNavigator("map");
  navi.load("/iesn07.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 != "nd" ){
		fumetto=fumetto+marker.locality+"<br/><br/>";
        }
	fumetto=fumetto+"Lat.="+marker.lat+" Long.="+marker.lon;
	if (marker.dep != "nd" ){
		fumetto=fumetto+" Prof.="+marker.dep+" Km<br/><br/>";
        }
	else	{
		fumetto=fumetto+"<br/><br/>";
        }
	if (marker.link != "nd" ){
		fumetto=fumetto+"<a href='"+marker.link+"'>Altre informazioni</a><br/><br/>";
	}
   	if (marker.wave != "nd" ){
		fumetto=fumetto+"<a href='"+marker.wave+"'>Scarica le forme d'onda</a>";
        }

}
