var mmap;
var playlist = [];
var markers = [];
var gmarkers = [];
var gpoly = [];
var home;
var m;
var toolstip;
var songtitle;
var zoomed =0;
function ginit() {
var de = document.documentElement;
	   var h= window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
       var w= window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
  		w = w + 90;     
	 
       var hstr = h + 'px';
	   $('map').setStyle ({height: hstr});	
	   $('side').style.height = hstr;	
	   $('side').style.left = w + 'px';	
	   
	   //console.log(h);
	   mmap = new GMap2($("map"));
	   mmap.setCenter(new GLatLng(30.4,0),3);
	   mmap.enableContinuousZoom();
	   mmap.enableDoubleClickZoom();
	   var bottomleft = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(1,1));

	   mmap.addControl(new GSmallZoomControl(),bottomleft);
	   mmap.setMapType(G_HYBRID_MAP);
	   home =  new GLatLng(53.582294,10.017766);
 	   getListeners();
       new PeriodicalExecuter(function() { getListeners();},5);
 	   startPlayer(false);
  	   Element.setOpacity('side','0.8');
 	   Element.setOpacity('title','0.7');
  	   new Effect.Appear($('title'),{delay:2,duration:4,to:0.8});
 	   var dims = $(document.body).getDimensions();
  	   new Effect.MoveBy ($('side'),0,-220, {
  	   			transition:Effect.Transitions.sinoidal,
  	   			afterFinish: function() {
  	   				new Effect.MoveBy($('player'),106, -10,{duration:3});
  	   	},delay:1,duration:3});
  	  // setTimeout(function(){new Draggable('side');},2000);
       new PeriodicalExecuter(function() { startPlayer('true');},600);
	   
}


function getListeners() {
 	if (!zoomed) new Ajax.Request("./cron.php?json=1");
	else zoomed = zoomed -1;
}


function start() {
	toggleform();
}

function toggleform() {
	var f = $('ownform');
	if (f.style.display=='none') {
		Effect.BlindDown(f);
		Element.hide('addown');
	Element.setOpacity($('ownform'),0.8);

	} else {
		Effect.Fade(f);
	Element.show('addown');
	}
}

function log(o) {
	Try.these(console.log(o));
}

function getPlaylist() {
	$('title').innerHTML = playlist['0'].song;
	log(playlist['0']);
}

function getSongtitle() {
	$('title').innerHTML =  songtitle;
//	log(playlist['0']);
}
function startPlayer(autostart) {
	$('player').innerHTML='';
   	var flashvars={};
   	flashvars.usefullscreen="false";
   	flashvars.skin="./playcasso.swf";
   	var host="85.214.79.105";
   	var params={};
   	params.wmode='transparent';
   	params.allowfullscreen="false";
   	var fn=";stream.mp3";
   	params.autostart=autostart;
   	var port="8200";
   	params.allowscriptaccess="always";
   	var rnd="&12393680469";
   	flashvars.autostart=autostart;
   	flashvars.wmode='transparent';
   	flashvars.file="http://"+host+":"+port+"/"+fn+rnd;
    var attributes={};
    attributes.id="player";
    attributes.name="player";
    swfobject.embedSWF("player.swf","player","220",'55',"9.0.0","expressInstall.swf", flashvars, params, attributes);
}




importMarkers = function() {
	mmap.clearOverlays();
	var bounds = new GLatLngBounds();
	   bounds.extend(home);
     	
    var polyOptions = {geodesic:true};
	$('side').innerHTML = '<div style="display:none;color:darkblue" class="list">Land Stadt<br/>hört seit&nbsp;&nbsp;&nbsp;&nbsp;Ortszeit</div>';          
	if (markers.length==0) $('side').innerHTML = '<div style="color:darkblue" class="list">Zwangspause durch IP-Wechsel, gleich geht es weiter&nbsp;&hellip;</div>';          
	
	for (var i=0; i<markers.length; i++) {
    	m = markers[i];
        var point = new GLatLng(markers[i].lat, markers[i].lng);
      	gpoly[i] = new GPolyline([home,point],'gray',2, polyOptions);
        gmarkers[i] = new GMarker(point,{icon:new GIcon(baseIcon,'http://tools.webmasterei.com/mibastat/pins/' + m.pin + '.png'),name:'xx'});
        bounds.extend(point);
        GEvent.addListener(gmarkers[i],"click",function() {
        	gmarkers[i].openInfoWindowHtml(m.html);
        });
     	$('side').innerHTML += '<div style="cursor:pointer" onclick="zoomed=3;mmap.setCenter(new GLatLng('+m.lat+','+m.lng+'),11);" title="In '+m.city+' is it really '+ m.loctime+ ' and someone listen the wonderfull music since ' + m.since +' with „' + m.ua+'“ " class="list"><img src="./pins/'+ m.pin +'.png"/>&nbsp;' +m.country + ' ' + m.city + '</div>';          
          mmap.addOverlay(gpoly[i]);
          mmap.addOverlay(gmarkers[i]);
      }
       mmap.addOverlay(new GMarker(home,{icon:michi}));
       var level = mmap.getBoundsZoomLevel(bounds);
       level =  2 ;
       //if (level>13) level = 10;

       mmap.setZoom(level);
  	//   mmap.setCenter(bounds.getCenter());
    }             

function importanceOrder (marker,b) {
        return marker.importance;
}


function createMarker(point,name,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        i++;
        return marker;
}

var baseIcon = new GIcon();
baseIcon.iconSize=new GSize(12,12);
baseIcon.shadowSize=new GSize(36,24);
baseIcon.iconAnchor=new GPoint(10,10);
baseIcon.infoWindowAnchor=new GPoint(0,0);
          
var miba = new GIcon(baseIcon, "http://tools.webmasterei.com/mibastat/06.png", null, "http://maps.google.com/mapfiles/kml/pal4/icon27s.png");
var michi= new GIcon(baseIcon, "http://tools.webmasterei.com/mibastat/michi.png", null, "http://maps.google.com/mapfiles/kml/pal4/icon27s.png");
michi.iconSize=new GSize(22,24);

for (var i=0;i<10;i++) {
	eval("var pin0"+i+" = new GIcon(baseIcon, \"http://tools.webmasterei.com/mibastat/pins/0" +i + ".png\", null, \"http://maps.google.com/mapfiles/kml/pal4/icon27s.png\");");
	eval("var pin1"+i+" = new GIcon(baseIcon, \"http://tools.webmasterei.com/mibastat/pins/1" +i + ".png\", null, \"http://maps.google.com/mapfiles/kml/pal4/icon27s.png\");");
}

function showTooltip(marker) {
   																	 tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,- offset.y + point.y +anchor.y)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
      }

      // ===== This function is invoked when the mouse goes over an entry in the side_bar =====
      // It launches the tooltip on the icon      
      function mymouseover(i) {
        showTooltip(gmarkers[i])
      }
      // ===== This function is invoked when the mouse leaves an entry in the side_bar =====
      // It hides the tooltip      
      function mymouseout() {
	tooltip.style.visibility="hidden";
      }


