// JavaScript Document

var onresizeCallBack = window.onresize;
window.onresize = function() {
	onresizeCallBack();
	var map = gebi("map");
	map.style.display = 'none';
	map.style.display = 'block';
}

var overlays = {
	accepted: {image: 'accepted.png', x: 65, y: 60, width: 88, height: 63, lat: 38.05405151742206, lng: 23.80336582660675},
	station: {image: 'metro.png', x: 55, y: 70, width: 88, height: 63, lat: 38.05612552190001, lng: 23.804819583892822},
	townhall: {image: 'townhall.png', x: 55, y: 55, width: 88, height: 63, lat: 38.05256461857194, lng: 23.80833327770233},
	route1AthensViaKifisias: {color: "#ff0000", opacity: 10, spots: [
		{lat: 38.04409885759478, lng: 23.805189728736877},
		{lat: 38.044880418461055, lng: 23.806048035621643},
		{lat: 38.045556356266204, lng: 23.806976079940796},
		{lat: 38.04591122111584, lng: 23.807244300842285},
		{lat: 38.04623862465993, lng: 23.80741059780121},
		{lat: 38.04658292487204, lng: 23.806697130203247},
		{lat: 38.046798375714886, lng: 23.806235790252686},
		{lat: 38.04704339747151, lng: 23.805699348449707},
		{lat: 38.04770241743762, lng: 23.804444074630737},
		{lat: 38.048800770864794, lng: 23.802073001861572},
		{lat: 38.049392185115416, lng: 23.799691200256348},
		{lat: 38.050735522589896, lng: 23.80037784576416},
		{lat: 38.05212107755474, lng: 23.80109667778015},
		{lat: 38.05250125573404, lng: 23.80109667778015},
		{lat: 38.05267867154196, lng: 23.80139708518982},
		{lat: 38.05474004273705, lng: 23.802427053451538},
		{lat: 38.05518779192028, lng: 23.803178071975708},
		{lat: 38.05493434932278, lng: 23.80386471748352},
		{lat: 38.053988155871295, lng: 23.80340337753296}
	]},
	route2AthensViaKifisias: {color: "#00ff00", opacity: 10, spots: [
		{lat: 38.04409885759478, lng: 23.805189728736877},
		{lat: 38.044880418461055, lng: 23.806048035621643},
		{lat: 38.045556356266204, lng: 23.806976079940796},
		{lat: 38.04591122111584, lng: 23.807244300842285},
		{lat: 38.04623862465993, lng: 23.80741059780121},
		{lat: 38.04684906993872, lng: 23.807694911956787},
		{lat: 38.04900354200326, lng: 23.808231353759766},
		{lat: 38.04952736484472, lng: 23.808531761169434},
		{lat: 38.04981462094061, lng: 23.808789253234863},
		{lat: 38.05164796417398, lng: 23.80886435508728},
		{lat: 38.052002799496236, lng: 23.808799982070923},
		{lat: 38.052433668646486, lng: 23.80684733390808},
		{lat: 38.05327005446265, lng: 23.80388617515564},
		{lat: 38.05338833047341, lng: 23.803553581237793},
		{lat: 38.05406418972562, lng: 23.802083730697632},
		{lat: 38.05474004273705, lng: 23.802427053451538},
		{lat: 38.05518779192028, lng: 23.803178071975708},
		{lat: 38.05493434932278, lng: 23.80386471748352},
		{lat: 38.053988155871295, lng: 23.80340337753296}
	]},
	routeKifisiaViaKifisias: {color: "#0000ff", opacity: 10, spots: [
		{lat: 38.057029448435316, lng: 23.80961537361145},
		{lat: 38.05636206450177, lng: 23.811492919921875},
		{lat: 38.05606638613012, lng: 23.81183624267578},
		{lat: 38.05561864232182, lng: 23.811932802200317},
		{lat: 38.054866764481915, lng: 23.811664581298828},
		{lat: 38.05163951569296, lng: 23.810065984725952},
		{lat: 38.052002799496236, lng: 23.808799982070923},
		{lat: 38.052433668646486, lng: 23.80684733390808},
		{lat: 38.05327005446265, lng: 23.80388617515564},
		{lat: 38.05338833047341, lng: 23.803553581237793},
		{lat: 38.05406418972562, lng: 23.802083730697632},
		{lat: 38.05474004273705, lng: 23.802427053451538},
		{lat: 38.05518779192028, lng: 23.803178071975708},
		{lat: 38.05493434932278, lng: 23.80386471748352},
		{lat: 38.053988155871295, lng: 23.80340337753296}
	]}
};

var map = null;
function initialize() {
	map = new google.maps.Map2(gebi("map"));
	map.setCenter(new google.maps.LatLng(38.05441901333479, 23.805055618286133), 16);
	map.enableScrollWheelZoom();
	map.enableContinuousZoom();
	map.enableDoubleClickZoom();	
	map.setMapType(G_NORMAL_MAP);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	GEvent.addListener(map, "click", function(marker, point) {
										if (marker) {
											map.removeOverlay(marker);
											marker.checkbox.checked = null;
										}
									});
	map.load = new function() {
		gebi("acceptedCheckbox").checked = "checked";
		gebi("stationCheckbox").checked = null;
		gebi("townhallCheckbox").checked = null;
		gebi("route1Checkbox").checked = null;
		gebi("route2Checkbox").checked = null;
		gebi("routeKifisiaCheckbox").checked = null;
		
		gebi("acceptedCheckbox").onclick();
	}
}

function createMarker(markerData) {
	var markerIcon = new GIcon();
	markerIcon.image = "../images/" + markerData.image;
	markerIcon.iconSize = new GSize(markerData.width, markerData.height);
	markerIcon.iconAnchor = new GPoint(markerData.x, markerData.y);
	return new GMarker(new GLatLng(markerData.lat, markerData.lng), { icon:markerIcon });
}

function createPolyline(polylineData) {
	var glatlngs = [];
	for (i in polylineData.spots) {
		glatlngs[i] = new GLatLng(polylineData.spots[i].lat, polylineData.spots[i].lng);
	}
	return new GPolyline(glatlngs, polylineData.color, polylineData.opacity);
}

function createOverlay(checkbox, type, overlayData) {
	if (type == 'marker') {
		checkbox.overlay = createMarker(overlayData);
	} else if (type == 'polyline') {
		checkbox.overlay = createPolyline(overlayData);
	}
	checkbox.overlay.checkbox = checkbox;
}

function tongleOverlay(checkbox, type, overlayData) {
	if (checkbox.checked) {
		if (!checkbox.overlay) {
			createOverlay(checkbox, type, overlayData);
		}
		map.addOverlay(checkbox.overlay);
	} else if (checkbox.overlay) {
		map.removeOverlay(checkbox.overlay);
	}
}

function gebi(id) {
	return document.getElementById(id);
}
