// form control helper function
var input = [true, true, true];
function formprepare(obj, name) {
	if(eval(name)) {
		obj.value = '';
		eval(
			name +
			' = false;'
		);
	}
	obj = Null;
	return false;
}

// google map helper functions
var map;
var sizeIcon = new google.maps.Size(20, 34);
var sizeShadow = new google.maps.Size(37, 34);
var pointOrigin = new google.maps.Point(0, 0);
var pointAnchor = new google.maps.Point(10, 34);
var iconDefault = new google.maps.MarkerImage(
	'http://localmaps.ch/images/marker_governement.png',
	sizeIcon,
	pointOrigin,
	pointAnchor
);
var iconFull = new google.maps.MarkerImage(
	'http://localmaps.ch/images/marker_full.png',
	sizeIcon,
	pointOrigin,
	pointAnchor
);
var iconShadow = new google.maps.MarkerImage(
	'http://localmaps.ch/images/marker_shadow.png',
	sizeShadow,
	pointOrigin,
	pointAnchor
);
var iconShape = {
	coord:	[
		10, 32,
		12, 20,
		18, 12,
		18, 6,
		13, 0,
		6, 0,
		1, 6,
		1, 12,
		7, 20
	],
	type:	'poly'
};
var info = new google.maps.InfoWindow();
function createMarker(params, i) {
	switch(params[4]) {
		case 'full':
		case 'extended':
		case 'basic':
			var icon = iconFull;
		break;
		default:
			var icon = iconDefault;
		break;
	}
	var position = new google.maps.LatLng(params[0], params[1]);
	var marker = new google.maps.Marker({
		position:	position,
		map:		map,
		icon:		icon,
		shadow:		iconShadow,
		shape:		iconShape,
		title:		params[2]
	});
	google.maps.event.addListener(marker, "click", function() {
		info.close();
		map.panTo(position);
		info.setContent(params[3]);
		info.open(map, marker);
		active = i;
	});
	return marker;
}
function initialize() {
	if(type) {
		type = google.maps.MapTypeId.HYBRID;
	} else {
		type = google.maps.MapTypeId.TERRAIN;
	}
	map = new google.maps.Map(
		document.getElementById("map"),
		{
			zoom:		zoom,
			center:		new google.maps.LatLng(center[0], center[1]),
			mapTypeControlOptions:	{
				style:	google.maps.MapTypeControlStyle.DROPDOWN_MENU
			},
			mapTypeId:	type,
			streetViewControl:	true
		}
	);

	google.maps.event.addListener(map, "zoom_changed", function() {
		var levelOld, levelNew;
		levelOld = zoom;
		levelNew = map.getZoom();
		if (levelOld < levelNew && levelNew > 12) {
			map.setMapTypeId(google.maps.MapTypeId.HYBRID);
		} else {
			if (levelOld > levelNew && levelNew < 13) {
				map.setMapTypeId(google.maps.MapTypeId.TERRAIN);
			}
		}
		zoom = levelNew;
	});

	for(var i = 0; i < locations.length; i++) {
		locations[i] = createMarker(locations[i], i);
	}
}
function showMarker(i, obj) {
	if (document.getElementById('activemarker')) {
		document.getElementById('activemarker').id = null;
	}
	obj.id = "activemarker";
	google.maps.event.trigger(locations[i], "click");
}
if(
	typeof zoom			== "number" &&
	typeof center		== "object" &&
	typeof type			== "boolean" &&
	typeof locations	== "object"
) {
	initialize();
}
