var vehicleON = true;
var groupsChecked = new Array();
var vehicleMarkers = new Array();
var vehicleInfoHandles = new Array();
var centerCode = '';
var filespath = 'http://www.alfalink.gr/test/sites/default/files';
var xmlhttp;
var lat1="36.450219";
var lon1="28.2275486666667";
var wtime1="2009-02-12 12:30:00";
var lat2="36.8963656666667";
var lon2="27.3216996666667";
var wtime2="2009-02-12 12:30:00";

function loadXMLDoc(url) {
	xmlhttp=null;
	if (window.XMLHttpRequest) {
		  xmlhttp=new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
    	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if (xmlhttp!=null) {
    	xmlhttp.onreadystatechange=onResponse;
		xmlhttp.open("GET",url,true);
		xmlhttp.send(null);
	}
	else {
    	alert("Your browser does not support XMLHTTP.");
	}
}

function onResponse() {
	if(xmlhttp.readyState!=4) return;
	if(xmlhttp.status!=200) {
    	alert("Problem retrieving XML data");
    	return;
    }
		
	var ships = xmlhttp.responseXML.documentElement.getElementsByTagName("ship");

	var ship1 = ships[0];
	var ship2 = ships[1];
	
	var x1 = ships[0].getElementsByTagName("lat") ;
	var x2 = ships[0].getElementsByTagName("lon") ;
	var x3 = ships[0].getElementsByTagName("wtime") ;
	
	var x4 = ships[1].getElementsByTagName("lat") ;
	var x5 = ships[1].getElementsByTagName("lon") ;
	var x6 = ships[1].getElementsByTagName("wtime") ;
	
	lat1 = x1[0].firstChild.nodeValue
	lon1 = x2[0].firstChild.nodeValue
	wtime1 = x3[0].firstChild.nodeValue

	lat2 = x4[0].firstChild.nodeValue
	lon2 = x5[0].firstChild.nodeValue
	wtime2 = x6[0].firstChild.nodeValue

}

function load_vehicles(addNew) {
	
	var i = 0;
	loadXMLDoc('http://www.alfalink.gr/test/ships1.xml?t=' + new Date().getTime());
	
			if (addNew==true) {
				addVehicle(lat1, lon1, "001", "PRIDE", wtime1, "c1.png");
				addVehicle(lat2, lon2, "002", "EXPRESS", wtime2, "c2.png");
			} else {
			
				updateVehicle(lat1, lon1, "001", "PRIDE", wtime1, "c1.png");
				updateVehicle(lat2, lon2, "002", "EXPRESS", wtime2, "c2.png");
			}
			
			if (centerCode != '') {
				var marker = vehicleMarkers[centerCode];
				map.setCenter(marker.getPoint());
			}

}

function addVehicle(lat, lon, code, description, lastconnect, icon) {
	var location = new GLatLng(lat, lon);
	
	var theDate = new Date(lastconnect.replace('-','/'));
	var nowMin = theDate.getMinutes();
	var nowSec = theDate.getSeconds();
	
	if (nowMin < 10)
		nowMin = '0' + nowMin;
	
	if (nowSec < 10)
		nowSec = '0' + nowSec;
	
	var iconVehicle = new GIcon();
	iconVehicle.image = 'http://www.alfalink.gr/test/sites/default/files/vehicleicons/' + icon;
	iconVehicle.iconSize = new GSize(32, 32);
	iconVehicle.iconAnchor = new GPoint(16, 16);
	iconVehicle.infoWindowAnchor = new GPoint(16, 16);
	
	var marker = new GMarker(location, iconVehicle);
		
	vehicleInfoHandles[code] = GEvent.addListener(marker, 'click',	function() {
		var infotext = '';
		
		infotext = '<strong>' + code + '<br/>' + description + '<br/>';
		infotext += theDate.getDate() + '/' + (theDate.getMonth()+1) + '/' + theDate.getFullYear();
		infotext += ' ' + theDate.getHours() + ':' + nowMin + ':' + nowSec + '<br/>';
		infotext += '<input type="checkbox" id=c"' + code + '" value="' + code + '" name="vehiclecheckme_' + code + '" ';
		if (code == centerCode)
			infotext += 'checked="checked" ';
		infotext += 'onClick="centeronme(this)" >';
		infotext += ' Center map on me';
		infotext += '</strong>';
		
		marker.openInfoWindowHtml(infotext);
	});
	
	vehicleMarkers[code] = marker;
	//var mark = new GMarker(location);
	//map.addOverlay(mark);
	map.addOverlay(marker);	
}

function updateVehicle(lat, lon, code, description, lastconnect, icon) {
	var location = new GLatLng(lat, lon);
	
	var theDate = new Date(lastconnect.replace('-','/'));
	var nowMin = theDate.getMinutes();
	var nowSec = theDate.getSeconds();
	
	if (nowMin < 10)
		nowMin = '0' + nowMin;
	
	if (nowSec < 10)
		nowSec = '0' + nowSec;
	
	var marker = vehicleMarkers[code];
	map.removeOverlay(marker);
	//marker.closeInfoWindow();
	marker.setPoint(location);
	GEvent.removeListener(vehicleInfoHandles[code]);
	
	GEvent.addListener(marker, 'click',	function() {
		var infotext = '';
		
		infotext = '<strong>' + code + '<br/>' + description + '<br/>';
		infotext += theDate.getDate() + '/' + (theDate.getMonth()+1) + '/' + theDate.getFullYear();
		infotext += ' ' + theDate.getHours() + ':' + nowMin + ':' + nowSec + '<br/>';
		infotext += '<input type="checkbox" id=c"' + code + '" value="' + code + '" name="vehiclecheckme_' + code + '" ';
		if (code == centerCode)
			infotext += 'checked="checked" ';
		infotext += 'onClick="centeronme(this)" >';
		infotext += ' Center map on me';
		infotext += '</strong>';
		
		marker.openInfoWindowHtml(infotext);
	});
	
	map.addOverlay(marker);
			
}

function checkChecked() {
	dml=document.getElementById("groupform");
	len = dml.elements.length;
	var i=0;
	for( i=0 ; i<len ; i++) {
		if (dml.elements[i].type == 'checkbox') {
			groupsChecked[dml.elements[i].value] = dml.elements[i].checked;
		}
	}
}

function checkVisible(groups) {
	var Bret = false;
	var grouparray = new Array();
	var i=0;
	
	grouparray = groups.split(',');
	
	for (i=0;i<grouparray.length;i++) {
		//alert (i + ' ' + grouparray[i] + ' ' + groupsChecked[grouparray[i]]);
		if (groupsChecked[grouparray[i]] == true)
			Bret = true;
	}
	
	return Bret;
}

function centermapcode() {
	code1=document.getElementById("centermap");

	try {
		var marker = vehicleMarkers[code1.value];
		var latlng = marker.getPoint();
		if (latlng.lat() != 0 && latlng.lng() != 0) {
			map.setCenter(marker.getPoint());
			centerCode = code1.value;
		} else {
			centerCode = '';
		}
	}
	catch(e) {
		centerCode = '';
		//alert ('Vehicle not found');
	}
}

function centeronme(check_object) {
	if (check_object.checked) {
		centerCode = check_object.value;
		code1=document.getElementById("centermap");
		code1.value = check_object.value;
		var marker = vehicleMarkers[code1.value];
		map.setCenter(marker.getPoint());
	}
	else {
		centerCode = '';
	}
}
