$.noConflict();
var diesdas = 0;
var vessels = new Array();
var ports = new Array();
var mapHeight = '';

//Sprachvariable setzen
var locale = "de";
if (document.URL.search(/\/en\//) != -1) locale = "en";
if (document.URL.search(/\/ru\//) != -1) locale = "ru";
if (document.URL.search(/\/am\//) != -1) locale = "am";
if (document.URL.search(/\/nl\//) != -1) locale = "nl";


function shipSetTimeOut(mmsi) {
	var str = "getVesselInfoAsJson('" + mmsi + "')";
	window.setTimeout(str, diesdas * 30000);
	diesdas += 1;
}
function shipAddListener(mmsi) {
	google.maps.event.addListener(vessels[mmsi], 'click', function() {
		getVesselInfoAsJson(mmsi);
		
    //pageTracker._trackEvent('Schiffe', 'Schiffsmarker angeklickt', mmsi);
	});
}

function generateIcon(name,offsetX,offsetY){
	if(offsetX >= 359) offsetX = 358;
	if(offsetX < 0) offsetX = 0;
	var icon = new google.maps.MarkerImage("/images/mapicons_sprite/" + name + ".png" , 
		new google.maps.Size(30, 30),     			
			new google.maps.Point(parseInt(offsetY), parseInt(offsetX*32)),
			new google.maps.Point(15, 15)     			
		);
	return icon
}

function resizeMarker(resizeCheck) {
  for(var i in vessels) {
	  var tmpOffset = vessels[i].offset;
	  var tmpCourse = vessels[i].course;
	  var tmpImage = vessels[i].icon.url;
	  if (resizeCheck == false) {
		  var tmpSize = 60;
		  if (tmpImage == "/images/mapicons_sprite/vessels-moving.png") {
			  vessels[i].setIcon(generateIcon("vessels-moving-big", tmpCourse, tmpOffset, tmpSize));  
		  } else {
			  vessels[i].setIcon(generateIcon("vessels-stopped-big", tmpCourse, tmpOffset, tmpSize)); 
		  }		
	  } else {
		  var tmpSize = 30;
		  if (tmpImage == "/images/mapicons_sprite/vessels-moving-big.png") {
			  vessels[i].setIcon(generateIcon("vessels-moving", tmpCourse, tmpOffset, tmpSize));  
		  } else {
			  vessels[i].setIcon(generateIcon("vessels-stopped", tmpCourse, tmpOffset, tmpSize)); 
		  }	
	  }
  }
}
function resize() {
	if(document.getElementById("map").style.height == "100%") {
		var tmpCenter = map.getCenter();
		if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('iPad') != -1 || useragent.indexOf('Android') != -1 ) {
			jQuery("#fullscreen").attr("className", "fullscreen fullscreen_mobile");
		} else {
			jQuery("#fullscreen").attr("className", "fullscreen");
		}		
		jQuery("#fullscreen #normal").css("display", "none");
		jQuery("#fullscreen #vollbild").css("display", "block");
		jQuery('#map > div').css("visibility", "hidden");
		jQuery("#map").css({position: "relative", top: "", left: "", 'z-index': ""});
		jQuery("body").css("overflow", "");
		jQuery("#map").animate({
			width: "100%",
			height: mapHeight
		  }, 500, function() {	
			  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('iPad') != -1 || useragent.indexOf('Android') != -1 ) {				  
			  } else {
				  map.navigationControlOptions.style = google.maps.NavigationControlStyle.SMALL;
			  }
			  google.maps.event.trigger(map, 'resize');
			  map.setCenter(tmpCenter);
			  window.setTimeout('jQuery("#map > div").css("visibility", "visible")', 200);	
		  });
		 
	}	else {
		var tmpCenter = map.getCenter();
		if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('iPad') != -1 || useragent.indexOf('Android') != -1 ) {
			jQuery("#fullscreen").attr("className", "fullscreen_active fullscreen_mobile");
		} else {
			jQuery("#fullscreen").attr("className", "fullscreen_active");
		}
		jQuery("#fullscreen #vollbild").css("display", "none");
		jQuery("#fullscreen #normal").css("display", "block");
		jQuery('#map > div').css("visibility", "hidden");
		jQuery("#map").css({position: "fixed", 'z-index': "100"});
		jQuery("body").css("overflow", "hidden");
		jQuery("#map").animate({
		    width: "100%",
		    top: "0px",
		    left: "0px",
			height: "100%"
		  }, 500 , function() {
			  if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('iPad') != -1 || useragent.indexOf('Android') != -1 ) {				  
			  } else {
				  map.navigationControlOptions.style = google.maps.NavigationControlStyle.DEFAULT;
			  }
			  google.maps.event.trigger(map, 'resize');
			  map.setCenter(tmpCenter);	
			  window.setTimeout('jQuery("#map > div").css("visibility", "visible")', 200);		 
		  });
	}

}
function toggleMapControl() {
	if(jQuery('#mapControlOpened').css("display") == "none") {
		var a = new Date();
		a = new Date(a.getTime() +1000*60*60*24*365);
		document.cookie = 'mapControl=true; path=/; expires='+a.toGMTString()+';'; 
		jQuery('#mapControlClosed').css("display", "none");
		jQuery('#mapControlOpened').css("display", "block");
	} else {
		var a = new Date();
		a = new Date(a.getTime() +1000*60*60*24*365);
		document.cookie = 'mapControl=false; path=/; expires='+a.toGMTString()+';'; 
		jQuery('#mapControlOpened').css("display", "none");
		jQuery('#mapControlClosed').css("display", "block");
	}   
}

function toggleVessels(value) {
		var selector = '#' + value;
		var tmpMarkers = [];
		for(var i in vessels) {
		  if (vessels[i].shipType == value) {
			  tmpMarkers.push(vessels[i]);
			  if (infoWindow.getPosition() == vessels[i].getPosition()) {
				  infoWindow.close();
			  }
		  }
		  
		}
	if (!jQuery(selector).attr("checked")) {
		jQuery(selector).attr("checked", false);
		markerClusterer.removeMarkers(tmpMarkers);
	} else {
		jQuery(selector).attr("checked", true);
		markerClusterer.addMarkers(tmpMarkers);
	}    
} 

function togglePorts() {
	if (!jQuery('#haefen').attr("checked")) {
		jQuery('#haefen').attr("checked", false);
		for(var i in ports) {
			ports[i].setVisible(false);
		}
	} else {
		jQuery('#haefen').attr("checked", true);
		for(var i in ports) {
			ports[i].setVisible(true);
		}
	}
}
function portAddListener(id, title, icon) {
	google.maps.event.addListener(ports[id], 'click', function() {
		window.location.href = "/" + locale + "/ports/" + id + "/" + title;
		
    //pageTracker._trackEvent('Häfen', 'Hafenmarker angeklickt', id);
	});
	google.maps.event.addListener(ports[id], 'mouseover', function() {
		infoWindowPort.setContent('<div class="portInfo"><nobr>' + title + '</nobr></div>'); 
		infoWindowPort.open(map, ports[id]);  
	}); 
	google.maps.event.addListener(ports[id], 'mouseout', function() {
		infoWindowPort.close();  
	}); 
}
function getVesselInfoAsJson(mmsi) {
	jQuery.getJSON('/' + locale + '/vessels/get_vessel_by_mmsi_as_json_html/' + mmsi + '.json', function(response) {
		if (response.html != '') 
	  	  var html = response.html;
	  	else 
	  	  var html = "";
		
		//console.log(map);
		
		//map.zoomOut(vessels[mmsi].getLatLng(), 1);
		//map.panDirection(-1, 1);
		infoWindow.setContent(html);
		infoWindow.open(map, vessels[mmsi]); 
		//map.zoomIn(vessels[mmsi].getLatLng(), 1);
		try {
			map.panTo(vessels[mmsi].getPosition());
		} catch(e) {
			
		}
		trackHamburgDeIvw();
	});
}

// Track Function for hafenradar.hamburg.de
function trackHamburgDeIvw() {
	if (typeof(IVW) != 'undefined') {
			if (null == this.pStat) {
      	this.pStat = document.createElement('img');
      	jQuery(this.pStat).attr('width', 1)
      		.attr('height', 1)
      		.appendTo('body');
    	}
    	jQuery(this.pStat).attr('src', IVW + '?d=' + new Date().getTime());
		}
		if ((typeof sitestat == 'function') && (sitestatcounturl)){
    	sitestat(sitestatcounturl);
		}
}

function buildMMSIArray() {
	var out = new Array();
	for(i in vessels) {
	   // test auf numeric, da hamburg.de Fehler verursacht
		 if (/^-?(0|[1-9]\d*|(?=\.))(\.\d+)?$/.test(i)) {
        out.push(i);
		 }
	}
	return out;
}

// make MAP a little bit heigher

function bigMap() {
	if(document.getElementById("map").style.height == "100%") resize();
	var tmpCenter = map.getCenter();
	jQuery('#map > div').css("visibility", "hidden");
	jQuery('#map').animate({
		height: '700px'
  	}, 500, function() {
  		map.navigationControlOptions.style = google.maps.NavigationControlStyle.DEFAULT;
  		google.maps.event.trigger(map, 'resize');
  		map.setCenter(tmpCenter);
  		window.setTimeout('jQuery("#map > div").css("visibility", "visible")', 200);
  	});
}

// make MAP a little bit smaller

function smallMap() {
	if(document.getElementById("map").style.height == "100%") resize();
	var tmpCenter = map.getCenter();
	jQuery('#map > div').css("visibility", "hidden");
	jQuery('#map').animate({
		height: mapHeight
	}, 500, function() {
		map.navigationControlOptions.style = google.maps.NavigationControlStyle.SMALL;
		google.maps.event.trigger(map, 'resize');
		map.setCenter(tmpCenter);
		window.setTimeout('jQuery("#map > div").css("visibility", "visible")', 200);		
	});
}

function refreshMarkerPositions() {
	var params = buildMMSIArray().join(',');

	jQuery.post("/vessels/get_positions.json", { id: params}, function(response){
			jQuery.each(response, function(i, node) {
				//eval('vessels_' + node[0] + '.setPosition(new google.maps.LatLng(' + node[1] + ',' + node[2]'));');
				vessels[node[0]].setPosition(new google.maps.LatLng(node[1], node[2]));
				if (vessels[node[0]].speed > 0 && node[3] <= 0)	{
					vessels[node[0]].setIcon(generateIcon("vessels-stopped", node[4], vessels[node[0]].offset));
					vessels[node[0]].speed = node[3];
				} else if (vessels[node[0]].speed <= 0 && node[3] > 0) {
					vessels[node[0]].setIcon(generateIcon("vessels-moving", node[4], vessels[node[0]].offset));
					vessels[node[0]].speed = node[3];
				} else if (vessels[node[0]].course != node[4])	{
					if (vessels[node[0]].speed > 0) var tmpUrl = "vessels-moving";
						else var tmpUrl = "vessels-stopped";
					vessels[node[0]].setIcon(generateIcon(tmpUrl, node[4], vessels[node[0]].offset));
					vessels[node[0]].course = node[4];
				} else {
					
				}
			}); 
		}, "json"
	);
}

window.setInterval('refreshMarkerPositions()', 20000);

// Functions for Facebook

window.fbAsyncInit = function() {
	FB.init({
		appId: '151340231561660', // schon angepasst
		status: true,
		cookie: true,
		xfbml: true
	});
};
jQuery(document).ready(function() {
	var e = document.createElement('script');
	e.async = true;
	e.src = document.location.protocol + '//connect.facebook.net/de_DE/all.js';
	if(document.getElementById('fb-root')) 
		document.getElementById('fb-root').appendChild(e);
});
               

