var webcamMarkerArray=new Array();
var status_webcam;

var sensoriMarkerArray=new Array();
var status_sensori;

var arrWebcams;
var arrSensori;

/* var urlWebcamServer= "http://192.168.56.3:8080/DL-IMA-VCN_1.1/stream?cam="; */
//COLL
//var urlWebcamServer= "http://192.168.46.3:7011/portale/NetcamStreaming?idNetcam=";
//

var urlWebcamServer= getRelPath() + "NetcamStreaming?idNetcam=";
 
function init_webcam(map)
{
 var netcamCont=0;
//alert("init");
 setMapBoundBox();	
				
 var uppLat=latNE;
 var uppLng=lngNE;
 var lowLat=latSW;
 var lowLng=lngSW;	
     //if (false) {
      	
      if (!((map==undefined) || (map==null)))
      {
      		if (webcamMarkerArray.length==0){
      		
				for (i=0;i<jsonWebcamArray.length;i++)
				{
					if (jsonWebcamArray[i].stradeTO.coordinateMappaTO.coordinateMappaCY<= uppLat && 
							jsonWebcamArray[i].stradeTO.coordinateMappaTO.coordinateMappaCY >= lowLat
							&& jsonWebcamArray[i].stradeTO.coordinateMappaTO.coordinateMappaCX<= uppLng && 
							jsonWebcamArray[i].stradeTO.coordinateMappaTO.coordinateMappaCX >= lowLng)
						{		
							webcamMarkerArray[netcamCont]=createWebcamMarker(jsonWebcamArray[i],map);
							createWebcamListener(netcamCont,jsonWebcamArray[i], map);
							map.addOverlay(webcamMarkerArray[netcamCont]);
							netcamCont=netcamCont+1;
						}
		
				}
				if (netcamCont==0)
					{							
						document.getElementById("check_webcam").style.visibility="hidden";
						document.getElementById("testoNetcam").innerHTML="<span  class=\"bea-portal-body-header-font\">Nell'area selezionata non sono presenti netcam.<br/></span>";
					}
				else
					{						
						document.getElementById("testoNetcam").innerHTML="<span  class=\"bea-portal-body-header-font\" align=\"right\">Mostra netcam</span>";
						document.getElementById("check_webcam").style.visibility="visible";					
					}			
						
				status_webcam=1;
			}
			
	  }
	  
	  //}
}

function createWebcamMarker(jsonWebcam, map)
{
	
	var iconLIC = new GIcon(); 
           
    iconLIC.image = getRelPath()+"images/gmaps/webcam.gif"; 
           
    iconLIC.iconAnchor = new GPoint(15, 13); 
    iconLIC.infoWindowAnchor = new GPoint(15, 0); 
    iconLIC.iconSize = new GSize(30, 26); 
          
    var pointWebcam = new GLatLng(jsonWebcam.stradeTO.coordinateMappaTO.coordinateMappaCY,jsonWebcam.stradeTO.coordinateMappaTO.coordinateMappaCX);
    mWebcam = new GMarker(pointWebcam , { icon: iconLIC });
    //GEvent.addListener(mWebcam, "click", function() {map.closeInfoWindow(); mWebcam.openInfoWindowHtml("<img id='theImage' src='http://filip.csvts.cz/webcam/image.jpg?' height='150' width='200' /><br/><a href=''>Aggiungi a preferiti</a>");}); 
	
	
	
	return mWebcam;
	
}


function init_sensori(map)
{
	
      if (false) {
      
      if (!((map==undefined) || (map==null)))
      {
      		if (sensoriMarkerArray.length==0){
      		
				for (i=0;i<jsonSensoriArray.length;i++)
				{
					sensoriMarkerArray[i]=createSensoriMarker(jsonSensoriArray[i],map);
					//createSensoriListener(i,map);
					createSensoriListener(i,jsonSensoriArray[i], map);
					map.addOverlay(sensoriMarkerArray[i]); 			
				}				
				status_sensori=1;
			}
			
	  }
	  }
}

function createSensoriMarker(jsonSensore, map)
{
	
	var iconLIC = new GIcon(); 
           
    iconLIC.image = getRelPath()+"images/gmaps/sensore.gif"; 
           
    iconLIC.iconAnchor = new GPoint(15, 13); 
    iconLIC.infoWindowAnchor = new GPoint(15, 0); 
    iconLIC.iconSize = new GSize(30, 26); 
          
    var pointSensore = new GLatLng(jsonSensore.stradeTO.coordinateMappaTO.coordinateMappaCY,jsonSensore.stradeTO.coordinateMappaTO.coordinateMappaCX);
    mSensore = new GMarker(pointSensore , { icon: iconLIC });
    //GEvent.addListener(mWebcam, "click", function() {map.closeInfoWindow(); mWebcam.openInfoWindowHtml("<img id='theImage' src='http://filip.csvts.cz/webcam/image.jpg?' height='150' width='200' /><br/><a href=''>Aggiungi a preferiti</a>");}); 

	return mSensore;
	
}

function createWebcamListener(i,webcam,map)
{

	
	var testoPerBroweserNonCompatibile="";
	var browser=navigator.appName;
	
	
	if (browser!=="Microsoft Internet Explorer")
	{
		testoPerBroweserNonCompatibile="<span class=\"cciss-container-item-nome\">Il browser richiede l\'utilizzo di un'applicazione esterna<br/>per visualizzare la webcam.</span><br/>";
	}

	var testoCallout="<br/><span class=\"cciss-container-item-nome\">"+webcam.descrizione+"</span><br/>"+testoPerBroweserNonCompatibile;
	
	
	
	
	testoCallout= testoCallout+"<OBJECT id=\"VIDEO\" CLASSID=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\"	type=\"application/x-oleobject\" width=\"320\" height=\"240\">";
	testoCallout= testoCallout+" <PARAM NAME=\"URL\" VALUE=\""+urlWebcamServer+webcam.nome+"\"><PARAM NAME=\"enabled\" VALUE=\"True\">";
	//testoCallout= testoCallout+" <PARAM NAME=\"URL\" VALUE=\"myVideo.wmv\"><PARAM NAME=\"enabled\" VALUE=\"True\">"<param name=\"loop\" value=\"true\">;
	testoCallout= testoCallout+"  <PARAM NAME=\"AutoStart\" VALUE=\"true\"><param name=\"showControls\" value=\"false\">";
    testoCallout= testoCallout+"<PARAM NAME=\"Rate\" VALUE=\"1.0\"><PARAM name=\"PlayCount\" value=\"9999\">";
    testoCallout= testoCallout+"<PARAM NAME=\"fullScreen\" VALUE=\"False\"><PARAM name=\"uiMode\" value=\"none\">";
    testoCallout= testoCallout+"<embed type\"application/x-mplayer2\" pluginspage=\"http://www.microsoft.com/Windows/MediaPlayer/\" name=\"mediaplayer1\" ShowStatusBar=\"false\" "; 
    testoCallout= testoCallout+" EnableContextMenu=\"false\" autostart=\"true\" width=\"320\" height=\"240\" loop=\"true\" src=\""+urlWebcamServer+webcam.nome+"\" />";
    //testoCallout= testoCallout+" EnableContextMenu=\"false\" autostart=\"false\" width=\"320\" height=\"240\" loop=\"false\" src=\"myVideo.wmv\" /></OBJECT>";

	//testoCallout=testoCallout+"<div id=\"div_popup_salva_webcam\" class=\"cciss-home-news cciss-home-news-link\"><a href=\"javascript:salvaPreferito('"+webcam.stradeTO.descrizioneStrada+"','"+webcam.nome+"','','"+webcam.citta.name+"','"+webcam.stradeTO.coordinateMappaTO.coordinateMappaCY+"','"+webcam.stradeTO.coordinateMappaTO.coordinateMappaCX+"','div_popup_salva_webcam','2');\">Aggiungi ai preferiti</a></div>";

	GEvent.addListener(webcamMarkerArray[i], "click", function() {map.closeInfoWindow(); webcamMarkerArray[i].openInfoWindowHtml(testoCallout);});
	//var objResult=jsonWebcamArray[i];
	//GEvent.addListener(webcamMarkerArray[i], "click", function() {map.closeInfoWindow(); webcamMarkerArray[i].openInfoWindowHtml("<img id='theImage' src='http://filip.csvts.cz/webcam/image.jpg?' height='150' width='200' /><br/><div id=\"div_popup_salva\" class=\"cciss-home-news cciss-home-news-link\"><a href=\"javascript:salvaPreferito('"+jsonWebcamArray[i].stradaTO.descrizioneStrada+"','"+jsonWebcamArray[i].stradaTO.name+"','"+jsonWebcamArray[i].numeroCivico+"','"+jsonWebcamArray[i].cittaTO.name+"','"+jsonWebcamArray[i].coordinateMappaTO.coordinateMappaCY+"','"+jsonWebcamArray[i].coordinateMappaTO.coordinateMappaCX+"','div_popup_salva');\">Aggiungi ai preferiti</a></div>");});
	  //GEvent.addListener(webcamMarkerArray[i], "click", function() {map.closeInfoWindow(); webcamMarkerArray[i].openInfoWindowHtml("<img id='theImage' src='http://filip.csvts.cz/webcam/image.jpg?' height='150' width='200' /><br/><div id=\"div_popup_salva\" class=\"cciss-home-news cciss-home-news-link\"><a href=\"javascript:salvaPreferito('"+jsonWebcamArray[i].stradaTO.descrizioneStrada+"','"+jsonWebcamArray[i].stradaTO.name+"','"+jsonWebcamArray[i].numeroCivico+"','"+jsonWebcamArray[i].cittaTO.name+"','"+jsonWebcamArray[i].coordinateMappaTO.coordinateMappaCY+"','"+jsonWebcamArray[i].coordinateMappaTO.coordinateMappaCX+"','div_popup_salva');\">Aggiungi ai preferiti</a></div>");});
	  //alert("'"+jsonWebcamArray[i].stradaTO.descrizioneStrada+"','"+jsonWebcamArray[i].stradaTO.name+"','"+jsonWebcamArray[i].numeroCivico+"','"+jsonWebcamArray[i].cittaTO.name+"','"+jsonWebcamArray[i].coordinateMappaTO.coordinateMappaCY+"','"+jsonWebcamArray[i].coordinateMappaTO.coordinateMappaCX+"','div_popup_salva'");
}

function createSensoriListener(i,sensore, map)
{
	
	var testoCallout="Sensore di traffico: "+jsonSensoriArray[i].nome+"<br/>Livello di congestione: "+jsonSensoriArray[i].stato+"/4<br/><br/>";
	testoCallout=testoCallout+"<div id=\"div_popup_salva_sensore\" class=\"cciss-home-news cciss-home-news-link\"><a href=\"javascript:salvaPreferito('"+sensore.stradeTO.descrizioneStrada+"','"+sensore.nome+"','','"+sensore.citta.name+"','"+sensore.stradeTO.coordinateMappaTO.coordinateMappaCY+"','"+sensore.stradeTO.coordinateMappaTO.coordinateMappaCX+"','div_popup_salva_sensore','3');\">Aggiungi ai preferiti</a></div>";
	GEvent.addListener(sensoriMarkerArray[i], "click", function() {map.closeInfoWindow(); sensoriMarkerArray[i].openInfoWindowHtml(testoCallout);});
	

	//GEvent.addListener(sensoriMarkerArray[i], "click", function() {map.closeInfoWindow(); sensoriMarkerArray[i].openInfoWindowHtml("Sensore di traffico: "+jsonSensoriArray[i].nome+"<br/>Livello di congestione: "+jsonSensoriArray[i].stato+"/4<br/><br/><a href=''>Aggiungi a preferiti</a>");});
}


function getRelPath()
	{
		var iPos = "";
		
		var foo = window.location.href;
		var bar = foo.split("/");
		
		// ciclo in modo da prendere: protocollo//host/appname
		for(var i = 0;i<4;i++)
		{
			iPos=iPos+bar[i]+"/";
		}
		relPath=iPos;
		return relPath;
	}




	function toggleWebcam()
	{
		if (status_webcam==1)
		{			 
			
			for (i=0; i<webcamMarkerArray.length;i++)
			{
				webcamMarkerArray[i].hide();
			}			   	 
		   	 
		    status_webcam=0;
		}
		else 
		{
			for (i=0; i<webcamMarkerArray.length;i++)
			{
				webcamMarkerArray[i].show();
			}			   	 
		   	 
		    status_webcam=1;
		}
	}
	
	
		function toggleSensori()
	{
		if (status_sensori==1)
		{			 
			
			for (i=0; i<sensoriMarkerArray.length;i++)
			{
				sensoriMarkerArray[i].hide();
			}			   	 
		   	 
		    status_sensori=0;
		}
		else 
		{
			for (i=0; i<sensoriMarkerArray.length;i++)
			{
				sensoriMarkerArray[i].show();
			}			   	 
		   	 
		    status_sensori=1;
		}
	}
	
	
	
	
	
	function getWebcams()
	{
		var citta=document.getElementById("my_ac2").value;
		
	    var div_preferenze=document.getElementById("netcamPreferiti");
 		if (!(div_preferenze==undefined)&& (div_preferenze!=null))
 		{
 			div_preferenze.style.display='none';
 		}
		
         var dataUrl = relPath+'ajax/RetrieveWebcamServlet?citta='+citta;
           
     
            
           var xmlhttp = new bea.wlp.disc.io.XMLHttpRequest(); 
           if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0)
           { 
                   xmlhttp.open('GET', dataUrl, true); 
                   
                   xmlhttp.onreadystatechange = function() { 
                           if (xmlhttp.readyState == 4)
                           {                                 	
                               var data = eval('(' + xmlhttp.responseText + ')');
                               
                               arrWebcams=data;
                              
							 	//alert("qui ok 2 " +data);
							   var testoWebcam;
                               testoWebcam=getTestoWebcam();
                                    
                                    //alert("qui ok 3");
                                    
                               var divWebcam=document.getElementById("testoWebcam");
                               if (!((divWebcam==undefined) ||(divWebcam==null)))
                               {
                               	document.getElementById("testoWebcam").innerHTML=testoWebcam;
                               }
                               
                               //alert("qui ok 4");
                           }
                   }
                   xmlhttp.send(null); 
           }    

	}
	

    	function getTestoWebcam()
    	{
    		var testoWebcam='';
   		//alert("arrWebcams.length = "+arrWebcams.length);
    		for (i=0;i<arrWebcams.length;i++)
		    {
	    		testoWebcam+='<span class=\"cciss-container-item-nome\"><br/>'+arrWebcams[i].nome+'<br/></span><span class=\"cciss-container-item-link\"><a href=\"javascript:focusOnWebcam('+i+');\">'+arrWebcams[i].stradeTO.descrizioneStrada+'</a></span>';
		    }
		    		    
    		return testoWebcam;
    	}

    	
    	
       	function focusOnWebcam(i)
    	{
    	
    	
    		var latW=map.getCenter().lat();
    		var lngW=map.getCenter().lng();
    		
    		if (latW==italia_center_lat && lngW==italia_center_lng)
    		{
    		initializeMap(arrWebcams[i].stradeTO.coordinateMappaTO.coordinateMappaCY,arrWebcams[i].stradeTO.coordinateMappaTO.coordinateMappaCX,-1);
    		}
    		else
    		{
    		map.closeInfoWindow();
    		var centerW=new GLatLng(arrWebcams[i].stradeTO.coordinateMappaTO.coordinateMappaCY,arrWebcams[i].stradeTO.coordinateMappaTO.coordinateMappaCX);
	    	map.panTo(centerW);
    		}
    		    		

    	}


	function getSensori()
	{
		var citta=document.getElementById("my_ac").value;
		
	
		
         var dataUrl = relPath+'ajax/RetrieveSensoriServlet?citta='+citta;
           
            
           var xmlhttp = new bea.wlp.disc.io.XMLHttpRequest(); 
           if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0)
           { 
                   xmlhttp.open('GET', dataUrl, true); 
                   
                   xmlhttp.onreadystatechange = function() { 
                           if (xmlhttp.readyState == 4)
                           {                                 	
                               var data = eval('(' + xmlhttp.responseText + ')');
                               
                               arrSensori=data;
                              
						
							   var testoSensori;
                               testoSensori=getTestoSensori();
                               
                                    
                               var divSensori=document.getElementById("testoSensori");
                               if (!((divSensori==undefined) ||(divSensori==null)))
                               {
                               	document.getElementById("testoSensori").innerHTML=testoSensori;
                               }
                                
                           }
                   }
                   xmlhttp.send(null); 
           }    

	}
	
	
	
	    function getTestoSensori()
    	{
    		var testoSensori='';
   		
    		for (i=0;i<arrSensori.length;i++)
		    {
	    		testoSensori+='<span class=\"cciss-container-item-nome\"><br/>'+arrSensori[i].nome+'<br/></span><span class=\"cciss-container-item-link\"><a href=\"javascript:focusOnSensore('+i+');\">'+arrSensori[i].stradeTO.descrizioneStrada+'</a></span>';
		    }
		    		    
    		return testoSensori;
    	}

    	
    	
       	function focusOnSensore(i)
    	{
    	
    	
    		var latW=map.getCenter().lat();
    		var lngW=map.getCenter().lng();
    		
    		if (latW==italia_center_lat && lngW==italia_center_lng)
    		{
    		initializeMap(arrSensori[i].stradeTO.coordinateMappaTO.coordinateMappaCY,arrSensori[i].stradeTO.coordinateMappaTO.coordinateMappaCX,-1);
    		}
    		else
    		{
    		map.closeInfoWindow();
    		var centerW=new GLatLng(arrSensori[i].stradeTO.coordinateMappaTO.coordinateMappaCY,arrSensori[i].stradeTO.coordinateMappaTO.coordinateMappaCX);
	    	map.panTo(centerW);
    		}

    	}



	function getWebcamsVideo()
	{
		var citta=document.getElementById("my_ac2").value;
		
	    var div_preferenze=document.getElementById("netcamPreferiti");
 		if (!(div_preferenze==undefined)&& (div_preferenze!=null))
 		{
 			div_preferenze.style.display='none';
 		}
		
         var dataUrl = relPath+'ajax/RetrieveWebcamServlet?citta='+citta;
           
     
            
           var xmlhttp = new bea.wlp.disc.io.XMLHttpRequest(); 
           if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0)
           { 
                   xmlhttp.open('GET', dataUrl, true); 
                   
                   xmlhttp.onreadystatechange = function() { 
                           if (xmlhttp.readyState == 4)
                           {                                 	
                               var data = eval('(' + xmlhttp.responseText + ')');
                               
                               arrWebcams=data;
                              
							 	//alert("qui ok 2 " +data);
							   var testoWebcam;
                               testoWebcam=getTestoWebcamVideo();
                                    
                                    //alert("qui ok 3");
                                    
                               var divWebcam=document.getElementById("testoWebcam");
                               if (!((divWebcam==undefined) ||(divWebcam==null)))
                               {
                               	document.getElementById("testoWebcam").innerHTML=testoWebcam;
                               }
                               
                               //alert("qui ok 4");
                           }
                   }
                   xmlhttp.send(null); 
           }    

	}
	

    	function getTestoWebcamVideo()
    	{
    		var testoWebcam='';
   		//alert("arrWebcams.length = "+arrWebcams.length);
    		for (i=0;i<arrWebcams.length;i++)
		    {
	    		testoWebcam+='<span class=\"cciss-container-item-nome\"><br/>'+arrWebcams[i].nome+'<br/></span><span class=\"cciss-container-item-link\"><a href=\"javascript:playWebcam('+arrWebcams[i].nome+');\">'+arrWebcams[i].stradeTO.descrizioneStrada+'</a></span>';
		    }
		    		    
    		return testoWebcam;
    	}
    	
    	
    	function playWebcam(){}