//Google maps is rubbish
var map;
var lon = -0.083;
var lat = 51.533;
var z = 11;

var postcode;

var form;

function init(){
	
	$('jump_to').options[0].selected = true;
	postcode = '';
	
	map = new GMap2(document.getElementById('map'),  mapTypes = G_HYBRID_MAP);
	
	map.enableScrollWheelZoom();
	
	var loc = new GLatLng(lat,lon);
	
	map.setCenter(loc, z);
	
	topR = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
	
	map.addControl(new GSmallMapControl(), topR);
	
//	bikes = [];
	
	for(i in bikes){
		
		if(typeof(bikes[i].lat) != 'undefined'){
		
			mMarker(bikes[i].lat, bikes[i].lng, bikes[i].head, bikes[i].desc, bikes[i].image);
		
		}
		
	}

	
	GEvent.addListener(map, 'click', function(overlay, latlng){
		
		//map.clearOverlays();
		
		marker = new GMarker(latlng);
		infowindow = map.getInfoWindow();
		
		GEvent.addListener(infowindow, 'closeclick', function(){
			map.removeOverlay(marker);
		});
		
		map.openInfoWindowHtml(latlng,'<p>'+form+'</p>');
		map.addOverlay(marker);
		map.panTo(latlng);
		
		
		for(i in bikes){

			if(typeof(bikes[i].lat) != 'undefined'){

				mMarker(bikes[i].lat, bikes[i].lng, bikes[i].head, bikes[i].desc, bikes[i].image);

			}

		}
		
		$('lat').value = latlng.lat();
		$('lng').value = latlng.lng();
		
	});
	
	$('reset').checked = false;
	
}

//for postcode select
function geo(obj){
	
	map.closeInfoWindow();
	
	v = obj.value;
	
	postcode = v;
	
	g = new GClientGeocoder();
	
	g.setBaseCountryCode('.co.uk');
	
	g.getLatLng(v, function(point){
		
		if(!point || point == null){
			
			alert('Google is shit and couldn\'t geocode that, bugger.');
			
		}else{
			
			new Effect.toggle('opts', 'slide', {duration:0.3});
			map.setZoom(13);
			map.panTo(point);
			
			fil = $('filter');
			
			if(fil.checked == true){
				
				filter(fil);
				
			}
			
		}
		
	});
	
}

window.onload = init, getForm();
window.onunload = GUnload;


function filter(obj){

	if(obj.value == 'on' && postcode != ''){
	
		if(typeof(bikes) != 'undefined'){
			
			map.clearOverlays();
			
			for(i in bikes){
	
				if(typeof(bikes[i].postcode) != 'undefined' && bikes[i].postcode == postcode.toUpperCase()){
					
					mMarker(bikes[i].lat, bikes[i].lng, bikes[i].head, bikes[i].desc, bikes[i].image);
					
				}
				
			}
		
		}else{
		
			alert('I See no Bikes');
			
			
		}
		
		$('check_label').innerHTML = 'Only show bikes from '+postcode.toUpperCase();
		
	}else{
		
		$('check_label').innerHTML = 'Only show bikes from here';
		
	}
	
	
	
}

function getForm(){

	new Ajax.Request('templates/add.html', {method:'get', onSuccess:function(transport){
		
		form = transport.responseText;
		
	}});
	
}

function mMarker(lt, ln, t, d,i){
	//alert(i.length);
	var marker = new GMarker(new GLatLng(lt, ln));
	
	if(i.length != 0){
		
		loc = '<img src="pub/'+i+'" />';
		
	}else{
		
		loc = '';
		
	}
	//alert(loc);
	
	var content = '<p>'+t+'</p><p>'+loc+'</p><p>'+d+'</p>';
	
	
	
	GEvent.addListener(marker, 'click', function(){
		
		marker.openInfoWindowHtml(content);
		
	});
	
	map.addOverlay(marker);
	
}
