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(0.0, 2.0),1);
        
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
	      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_HYBRID_MAP);
	      
	      

	  

      } 
       else 
          { 
           alert("Browser not compatible with Google Maps API, please upgrade");
           return;
           }




//private methods
 
  addItem = function(id,list,rssItem) {

    

    var infoArray=rssItem.getElementsByTagName("description")[0].firstChild.data.split(";",8);

    var  dat=infoArray[0];
    var  time=infoArray[1];    
    var  dep=parseFloat(infoArray[4].substr(infoArray[4].indexOf('=')+1,infoArray[4].length));
    var  reg=infoArray[6].substr(infoArray[6].indexOf('=')+1,infoArray[6].length);
    var  mag=parseFloat(infoArray[5].substr(infoArray[5].indexOf('=')+1,infoArray[5].length));
    var  aut=infoArray[7].substr(infoArray[7].indexOf('=')+1,infoArray[7].length);
    
    index=-index;
    list.innerHTML="<div class=\"listItem"+index+"\"><div class=\"left-container13\"><strong><a href=\"javascript:navi.locateQuake("+id+",\'"+escape(rssItem.getElementsByTagName("description")[0].firstChild.data)+"\',\'"+escape(rssItem.getElementsByTagName("link")[0].firstChild.data)+"\',true)\">"+dat+" - "+time+"</a></strong></div><div class=\"left-container23\">"+reg+" Mag = "+mag+"</div><div class=\"right-container13\">"+aut+"</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,xmlDoc.getElementsByTagName("item")[i].getElementsByTagName("description")[0].firstChild.data,xmlDoc.getElementsByTagName("item")[i].getElementsByTagName("link")[0].firstChild.data,false);
                
               }
               
              
	
	
	    }
	}
	
// public methods
	
	that.locateQuake= function(id,info,link,goThere)
     {
      var infoArray=info.split(";",8);
      var  date=infoArray[0];
      var  time=infoArray[1];
      var  lat=parseFloat(infoArray[2].substr(infoArray[2].indexOf('=')+1,infoArray[2].length));
      var  lon=parseFloat(infoArray[3].substr(infoArray[3].indexOf('=')+1,infoArray[3].length));
      var  mag=parseFloat(infoArray[5].substr(infoArray[5].indexOf('=')+1,infoArray[5].length));
      var  dep=parseFloat(infoArray[4].substr(infoArray[4].indexOf('=')+1,infoArray[4].length));
      


       // Create our  marker icon
      var icon = new GIcon();
      if (id==0)
      {
       icon.image = " /images/star.png";       
      	}
      	else
          icon.image = " /images/selected-c4-rouge.png";
      
      
      icon.shadow = "/images/quakeshadow.png";
      icon.iconSize = new GSize(mag*3.5, mag*3.5);
	  icon.shadowSize = new GSize(mag*3.5, mag*1.5);
	  icon.iconAnchor = new GPoint(0,0);
	  icon.infoWindowAnchor = new GPoint(7,5);
	
	  var marker = new GMarker(new GLatLng(lat, lon), icon);
	  marker.date=infoArray[0];
	  marker.time=infoArray[1];
	  marker.desc=infoArray[6]+" "+infoArray[5];
      marker.dep=dep;
	  marker.mag=mag;
      marker.lat= lat;
      marker.lon= lon;
	  marker.link=link;
      map.removeOverlay(marker);
	  map.addOverlay(marker);	
	
	   if (goThere)	 {
 
 	   map.setCenter(new GLatLng(lat, lon), 4);
 	   marker.openInfoWindowHtml("Date: <strong>["+marker.date+";"+marker.time+"] <br/><br/>"+marker.desc+"<br/><br/>Depth="+marker.dep+"Km</strong><br/><br/>"+"lat="+marker.lat+" lon="+marker.lon+"<br/><br/><a href='"+marker.link+"'>WilberII data access</a>", new GSize(50,0));
	
    	}
     	    else  { 
                   GEvent.addListener(map, "click", function(marker, point) {
                   if (marker) {
                       marker.openInfoWindowHtml("Date: <strong>["+marker.date+";"+marker.time+"] <br/><br/>"+marker.desc+"<br/><br/>Depth="+marker.dep+"Km</strong><br/><br/>"+"lat="+marker.lat+" lon="+marker.lon+"<br/><br/><a href='"+marker.link+"'>WilberII data access</a>", new GSize(50,0));  
                      }
     	            });
	
	               } 
  }


   
  
   that.load = function  () {

     
     
   
     updateMap.innerHTML=" Wait.. Collecting Data.. ";
     inNews.innerHTML="";
     //AjaxObject direct call for orfeus earthquakes and
     map.setCenter(new GLatLng(0.0, 2.0),1);
     that.sndReq('/orfeus-rss.xml',OrfeusRssHandler);
     


  }
  
  
  
 
  return that;
  
  
}




function powerTestObject ( )
{
 

//Parasitic inheritance of AjaxObject
var that = AjaxObject();

//private properties





//private methods

    localHandler=function () {
      
	 if( that.http.readyState == 4){

             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("/orfeus-rss.xml");
  

}




