/**
 * @author Dan
 */
var bolGoogleActive		= false;
var map;
var scroll;
var requestedLat		="";
var requestedLon		="";

function showHideGeoLog(bolQuickGeo, lat, long)
{
	
	var geolog			= $('geolog');
	var geoCoor			= geolog.getCoordinates();
	var intDuration		= 1000;
	
	
	if (geoCoor.height < 10 || bolQuickGeo)
	{
		
		geolog.effect('height',{
		duration: intDuration,
		transition: Fx.Transitions.Quart.easeInOut	
		}).start(geoCoor.height,430).chain(function(){
			if (!bolGoogleActive)
		{
			load();			
		}	
		});
		
		$('geologclick').addClass('open');
		
	} else {
		geolog.effect('height',{
		duration: intDuration,
		transition: Fx.Transitions.Quart.easeInOut	
		}).start(geoCoor.height,0);	
		$('geologclick').removeClass('open');	
	}
	if (lat && long)
	{
		if (!bolGoogleActive)
		{
			requestedLat	= lat;
			requestedLon	= long;
		} else {
			moveMapTo(lat, long);
		}
		
	}
}

window.addEvent('domready', function()
{
	
	 scroll 			= new Fx.Scroll(window, {
	wait: false,
	duration: 500,
	transition: Fx.Transitions.Quad.easeOut
	});

  	if ($('popper1'))
	{
		$('popper1').addEvent('click', function(event) {
			event = new Event(event).stop();
			scroll.toElement('masthead');
		});
	}
	
	if ($('popper2'))
	{
		$('popper2').addEvent('click', function(event) {
			event = new Event(event).stop();
			scroll.toElement('masthead');
		});
	}
	if ($('popper3'))
	{
		$('popper3').addEvent('click', function(event) {
			event = new Event(event).stop();
			scroll.toElement('masthead');
		});
	}
	if ($('jumptocomments'))
	{
		$('jumptocomments').addEvent('click', function(event) {
			event = new Event(event).stop();
			if ($('commentbox'))
			{
				scroll.toElement('commentbox');
			} else {
				scroll.toElement('commentpost');
			}
			
		});
	}
	if ($('postcomment'))
	{
		$('postcomment').addEvent('click', function(event) {
			event = new Event(event).stop();
			scroll.toElement('commentpost');
		});
	}
	if ($('geologclick'))
	{
		$('geologclick').addEvent('click', function(event) {
			showHideGeoLog();
		});
	}
});


function moveMapTo(lat, long)
{
	map.setCenter(new GLatLng(parseFloat(lat),parseFloat(long)), 	    20);
}

function load() {
    if (GBrowserIsCompatible()) {
	var dLa;
	var dLo;
	map 							= new GMap2(document.getElementById("map"),{mapTypes:[G_SATELLITE_MAP]});
	map.addControl(new GSmallMapControl());
	map.setCenter(new GLatLng(1.300867,103.843557), 10);
	map.setMapType(G_SATELLITE_MAP);
	
	// Create a base icon for all of our markers that specifies the
	// shadow, icon dimensions, etc.
	var baseIcon 					= new GIcon();
	baseIcon.shadow 				= "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize 				= new GSize(20, 34);
	baseIcon.shadowSize 			= new GSize(37, 34);
	baseIcon.iconAnchor 			= new GPoint(9, 34);
	baseIcon.infoWindowAnchor 		= new GPoint(9, 2);
	baseIcon.infoShadowAnchor 		= new GPoint(18, 25);

	// Creates a marker whose info window displays the letter corresponding
	// to the given index.
	function createMarker(point, index, time, notes) {
	  // Create a lettered icon for this point using our icon class
	  var letter 					= String.fromCharCode("A".charCodeAt(0) + index);
	  var icon 						= new GIcon(baseIcon);
	 
	  icon.image 					= "http://www.google.com/mapfiles/marker" + ".png";
	  var marker 					= new GMarker(point, icon);
	 
	  GEvent.addListener(marker, "click", function() {
	    marker.openInfoWindowHtml("<b>Dan was here on the </b> " + time + ":<br/><i>" + notes + "</i>");
	  });
	  return marker;
	}

	// Get the Data from an XML File
       GDownloadUrl("http://www.district7.co.uk/gps/photos_xml.php", function(data) 
       {
       
		var xml 				= GXml.parse(data);
          	var markers 				= xml.documentElement.getElementsByTagName("m");
          	var arrPoints				= new Array();
		
		for (var i = 0; i < markers.length; i++) 
		{
            		if (parseFloat(markers[i].getAttribute("lo")) < 90)
            		{
            			var point 			= new GLatLng(parseFloat(markers[i].getAttribute("la")),
                                    				-parseFloat(markers[i].getAttribute("lo")));
            		} else {
            			var point 			= new GLatLng(parseFloat(markers[i].getAttribute("la")),
                                    				parseFloat(markers[i].getAttribute("lo")));
            		}
            		
            		
            	

                	
		arrPoints.push(point);
		
		// Setting the Centre of the Map to be the First Marker A
		if (i == markers.length-1) 
		{
		   	if (requestedLat == "" && requestedLon == "")
			{
					map.setCenter(new GLatLng(parseFloat(markers[i].getAttribute("la")),parseFloat(markers[i].getAttribute("lo"))), 	    18);
				} else {
					map.setCenter(new GLatLng(requestedLat,requestedLon), 	    18);
				}
		    }
            	map.addOverlay(createMarker(point, i, markers[i].getAttribute("t"), markers[i].getAttribute("c")));
          	}
		map.addOverlay(new GPolyline(arrPoints));
		bolGoogleActive				= true;
        });
      } 
    }
	
	
	function tbTest_focus(e,o)
	{
		if(o.firstTime){return}
		o.firstTime=true
		o.value=""
	}