// JavaScript Document

var pindrop = 0;
var map = null;
var geocoder = null;

function MusEntityCheck() {
	var value = document.getElementById("FORM_MusEntity").value;
	if ((value != "SOL") && (value != "XXXXXX")) {
		$("#FSGroup").removeClass("hideme");
	} else {
		$("#FSGroup").addClass("hideme");
	}
}

function QDonateCheck() {
	var checked = document.getElementById("FORM_QDonate").checked;
	if (checked) {
		$("#DonateSection").removeClass("hideme");
	} else {
		$("#DonateSection").addClass("hideme");
	}
}

function QGroupCheck() {
	var checked = document.getElementById("FORM_QGroup").checked;
	if (checked) {
		$("#GroupSection").removeClass("hideme");
	} else {
		$("#GroupSection").addClass("hideme");
	}
}

function PinDropStatus(newstate) {
	if (newstate == 0)
	{
		$("#FORMH_Lat").val("");
		$("#FORMH_Long").val("");
		map.clearOverlays();
		$("#pindropbox").addClass("pinstate0");
		$("#pindropbox").removeClass("pinstate1");
		$("#pindropbox").html("Zoom in as close as you need to, using the navigation controls on the left.<br />Then double-click the spot you want to mark on the map.");
	} else if (newstate == 1) {
		$("#pindropbox").addClass("pinstate1");
		$("#pindropbox").removeClass("pinstate0");
		$("#pindropbox").html("We have marked your busk location for our map, thank you.<br />If you want to clear this pin, just click on it or click here.");
	}
	pindrop = newstate;
}

function MapSearch() {
  var zoom = 10;
  var country = $("#FORM_ActCountry").val();
  if (country == "XXXXXX") country = "";
  var town = $("#FORM_ActTown").val();
  var postcode = $("#FORM_ActPostcode").val();
  var street = $("#FORM_ActStreet").val();
  if (street) zoom = 14;
  if (postcode) zoom = 15;
  var address =   street + " " + town + " " + postcode + " " + country;
  if ((geocoder) && (address)) {
	geocoder.getLatLng(
	  address,
	  function(point) {
		if (point) {
		  map.setCenter(point, zoom);
		}
	  }
	)
  }
}

$(document).ready(function(){

	function createMarker(point,icon) {
		var marker = new GMarker(point);
		return marker;
	}

	if ( $("#FORM_QGroup").length > 0 )
	{
		QGroupCheck();
	}

	if ( $("#FORM_QDonate").length > 0 )
	{
		QDonateCheck();
	}

	$('.rounded').corners();

	if ( $("#map_canvas").length > 0 )
	{
		
		var baseIcon = new GIcon();
			baseIcon.iconSize=new GSize(16,16);
			baseIcon.shadowSize=new GSize(16,16);
			baseIcon.iconAnchor=new GPoint(8,8);
			baseIcon.infoWindowAnchor=new GPoint(8,8);
		  
		var redicon = new GIcon(baseIcon, "http://worldbusk.org/mapicons/red.png");
		var blueicon = new GIcon(baseIcon, "http://worldbusk.org/mapicons/blue.png");
		var orangeicon = new GIcon(baseIcon, "http://worldbusk.org/mapicons/orange.png");
	
		var lat = $("#FORMH_ActLat").val();
		var long = $("#FORMH_ActLong").val();
		
		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("map_canvas"));
			map.setCenter(new GLatLng(38.272689,2.8125), 1);
			var customUI = map.getDefaultUI();
			customUI.zoom.doubleclick  = false;
			map.setUI(customUI);
			geocoder = new GClientGeocoder();
		}
		
		if ((long) && (lat))
		{
			var latlng = new GLatLng(lat,long);
			map.addOverlay(createMarker(latlng, orangeicon));
			map.setCenter(latlng, 13);
			PinDropStatus(1);
		} else {
			MapSearch();
			PinDropStatus(0);
		}
		
		GEvent.addListener(map, 'dblclick', function(overlay, latlng) {
			if (overlay)
			{
				map.clearOverlays();
				PinDropStatus(0);
			} else if (latlng) {
				map.clearOverlays();
				map.addOverlay(createMarker(latlng, orangeicon));
				PinDropStatus(1);
				$("#FORMH_ActLong").val(latlng.lng());
				$("#FORMH_ActLat").val(latlng.lat());
			}
		});
		
		GEvent.addListener(map, 'click', function(overlay, latlng) {
			if (overlay)
			{
				map.clearOverlays();
				PinDropStatus(0);
			}
		});
		
		$("#pindropbox").click(function(event){
			if (pindrop) PinDropStatus(0);
		});
		
		$("#FORM_ActCountry").change(function(event){
			MapSearch();
		});
		
		$("#FORM_ActTown").change(function(event){
			MapSearch();
		});
		
		$("#FORM_ActStreet").change(function(event){
			MapSearch();
		});
		
		$("#FORM_ActPostcode").change(function(event){
			MapSearch();
		});
	
	}
	
});
