// JavaScript Document

google.load("maps", "2.x");

$(document).ready(function() {

	/**
	* Google maps setup
	*/
	
	// Setup map on first #id found
	var map = new GMap2($("#map").get(0), { size: new GSize(920,400) } );
	
	// Remove controlls
	map.removeMapType(G_HYBRID_MAP);
	
	// Set LatLng and Zoom
	map.setCenter(new GLatLng(51.100073,0.037293), 13);
	
	// Set controls
	var mapControl = new GMapTypeControl();
	map.addControl(mapControl);
	map.addControl(new GSmallMapControl());
	
	// Add markers maybe loop array
	/*
	var rydonGroup = new GMarker( new GLatLng( 51.100073, 0.037293 ));
	GEvent.addListener(rydonGroup, 'click', function(){ rydonGroup.openInfoWindowHtml( '<p><strong>Rydon Group</strong><br>Rydon House, Forest Row<br>East Sussex RH18 5DW<br><strong>Telephone:</strong> 01342 825151<br><strong>Fax:</strong> 01342 824676</p>' ); });
	map.addOverlay(rydonGroup);
	
	var rydonHomes = new GMarker( new GLatLng( 51.125835, -0.007 ));
	GEvent.addListener(rydonHomes, 'click', function(){ rydonHomes.openInfoWindowHtml( '<p><strong>Rydon Homes</strong><br>Rydon House, Forest Row<br>East Sussex RH18 5DW<br><strong>Telephone:</strong> 01342 825151<br><strong>Fax:</strong> 01342 824676</p>' ); });
	map.addOverlay(rydonHomes);
	
	var rydonConstruction = new GMarker( new GLatLng( 51.100073, 0.037293 ));
	GEvent.addListener(rydonConstruction, 'click', function(){ rydonConstruction.openInfoWindowHtml( '<p><strong>Rydon Construction</strong><br>Rydon House, Forest Row<br>East Sussex RH18 5DW<br><strong>Telephone:</strong> 01342 825151<br><strong>Fax:</strong> 01342 824676</p>' ); });
	map.addOverlay(rydonConstruction);
	
	var rydonMaintenance = new GMarker( new GLatLng( 51.125835, -0.007 ));
	GEvent.addListener(rydonMaintenance, 'click', function(){ rydonMaintenance.openInfoWindowHtml( '<p><strong>Rydon Maintenance</strong><br>Rydon House, Forest Row<br>East Sussex RH18 5DW<br><strong>Telephone:</strong> 01342 825151<br><strong>Fax:</strong> 01342 824676</p>' ); });
	map.addOverlay(rydonMaintenance);

	var ryhurst = new GMarker( new GLatLng( 51.100073, 0.037293 ));
	GEvent.addListener(ryhurst, 'click', function(){ ryhurst.openInfoWindowHtml( '<p style="height:300px; background-color:#FF0000;"><strong>Ryhurst</strong><br>Rydon House, Forest Row<br>East Sussex RH18 5DW<br><strong>Telephone:</strong> 01342 825151<br><strong>Fax:</strong> 01342 824676</p>' ); });
	map.addOverlay(ryhurst);

	var swRegion = new GMarker( new GLatLng( 51.478509, -2.675213 ));
	GEvent.addListener(swRegion, 'click', function(){ swRegion.openInfoWindowHtml( '<p><strong>South West Region office</strong><br>66 Macrae Road<br>Eden Office Park<br>Ham Green<br>Bristol<br>BS20 0DD<strong>Telephone:</strong> 01234 567890<br><strong>Fax:</strong> 01234 567890</p>' ); });
	map.addOverlay(swRegion);

	var dartford = new GMarker( new GLatLng( 51.45307, 0.27127 ));
	GEvent.addListener(dartford, 'click', function(){ dartford.openInfoWindowHtml( '<p><strong>Dartford office</strong><br>Unit 14, Quadrant Court,<br>Charles Park,<br>Quadrant Business Park,<br />Dartford, Kent<br />DA9 9AY<strong>Telephone:</strong> 0845 269 2982<br></p>' ); });
	map.addOverlay(dartford);
	*/
	
	// Rydon Group
	var point = new GLatLng( 51.098085025558774, 0.03598451614379883 );
	var rydonGroup = createMarker(point,'rydonGroup','<p><strong>Rydon Group</strong></p><br><p style="line-height:1.4em;">Rydon House, Forest Row,<br>East Sussex RH18 5DW</p><br>');
	map.addOverlay(rydonGroup);
	
	// Rydon Homes
	var point = new GLatLng( 51.125835, -0.007 );
	var rydonHomes = createMarker(point,'rydonHomes','<p><strong>Rydon Homes</strong></p><br><p style="line-height:1.4em;">Rydon House, Forest Row,<br>East Sussex RH18 5DW</p><br>');
	map.addOverlay(rydonHomes);
	
	// Rydon Construction
	var point = new GLatLng( 51.098085025558774, 0.03598451614379883 );
	var rydonConstruction = createMarker(point,'rydonConstruction','<p><strong>Rydon Construction</strong></p><br><p style="line-height:1.4em;">Rydon House, Forest Row,<br>East Sussex RH18 5DW</p><br>');
	map.addOverlay(rydonConstruction);

	// Rydon Maintenance
	var point = new GLatLng( 51.125835, -0.007 );
	var rydonMaintenance = createMarker(point,'rydonMaintenance','<p><strong>Rydon Maintenance</strong></p><br><p style="line-height:1.4em;">Rydon House, Forest Row,<br>East Sussex RH18 5DW</p><br>');
	map.addOverlay(rydonMaintenance);
	
	// Ryhurst
	var point = new GLatLng( 51.098085025558774, 0.03598451614379883 );
	var ryhurst = createMarker(point,'ryhurst','<p><strong>Ryhurst</strong></p><br><p style="line-height:1.4em;">Rydon House, Forest Row,<br>East Sussex RH18 5DW</p><br>');
	map.addOverlay(ryhurst);
	
	// SW Region
	var point = new GLatLng( 51.478509, -2.675213 );
	var swRegion = createMarker(point,'swRegion','<p><strong>South West Region office</strong></p><br><p style="line-height:1.4em;">66 Macrae Road,<br>Eden Office Park,<br>Ham Green, Bristol<br>BS20 0DD</p><br>');
	map.addOverlay(swRegion);
	
	// Dartford
	var point = new GLatLng( 51.45307, 0.27127 );
	var dartford = createMarker(point,'dartford','<p><strong>Dartford office</strong></p><br><p style="line-height:1.4em;">Unit 14, Quadrant Court,<br>Charles Park,<br>Quadrant Business Park,<br>Dartford, Kent DA9 9AY</p><br>');
	map.addOverlay(dartford);
	
	
	/**
	* Jquery ui tabs setup check if location already set
	*/
	
	//$("#tabs").tabs({ fx: { opacity:'toggle'} } );
	$("#tabs").tabs({
			show: function(event, ui)
			{
				// Close all markers
				rydonGroup.closeInfoWindow();
				rydonHomes.closeInfoWindow();
				rydonConstruction.closeInfoWindow();
				rydonMaintenance.closeInfoWindow();
				ryhurst.closeInfoWindow();
				swRegion.closeInfoWindow();
				dartford.closeInfoWindow();
				
				if (ui.index === 0) {
					ryhurst.hide();
					rydonConstruction.hide();
					rydonGroup.show();
					map.panTo( rydonGroup.getLatLng() );
				}
				
				if (ui.index === 1) {
					rydonMaintenance.hide();
					map.panTo( rydonHomes.getLatLng() );
				}
				
				if (ui.index === 2) {
					ryhurst.hide();
					rydonGroup.hide();
					rydonConstruction.show();
					map.panTo( rydonConstruction.getLatLng() );
				}
				
				if (ui.index === 3) {
					rydonMaintenance.show();
					map.panTo( rydonMaintenance.getLatLng() );
				}
				
				if (ui.index === 4) {
					ryhurst.show();
					rydonGroup.hide();
					rydonConstruction.hide();
					map.panTo( ryhurst.getLatLng() );
				}
				
				if (ui.index === 5) {
					map.panTo( swRegion.getLatLng() );
				}
				
				if (ui.index === 6) {
					map.panTo( dartford.getLatLng() );
				}
			},
			select: function(event, ui){ 
					document.location.hash = $(ui.panel).attr("id"); 
			} 
		}
	);
	// If location select tab and move map
	var $tabs = $("#tabs").tabs('select', document.location.hash.slice(2));
	
});


// Maps marker Directions
var gmarkers = [];
var htmls = [];
var to_htmls = [];
var from_htmls = [];
var i=0;

// A function to create the marker and set up the event window
function createMarker(point, name, html) {
	var marker = new GMarker(point);
	
	htmlOpen = '<div class="bubble">';
	htmlClose = '<br></div>';
	
	// The info window version with the "to here" form open
	to_htmls[i] = htmlOpen + html + '<p>Directions: <b>To here</b> - <a href="javascript:fromhere(' + i + ')">From here</a>' +
	   '<br><br><strong>Start address:</strong></p><form action="http://maps.google.com/maps" method="get" target="_blank">' +
	   '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +
	   '<INPUT class="directionsBtn" value="" TYPE="SUBMIT">' +
	   '<input type="hidden" name="daddr" value="' + point.lat() + ',' + point.lng() + 
			  // "(" + name + ")" + 
	   '"/>' + '<br>' + htmlClose;
	// The info window version with the "to here" form open
	from_htmls[i] = htmlOpen + html + '<p>Directions: <a href="javascript:tohere(' + i + ')">To here</a> - <b>From here</b>' +
	   '<br><br><strong>End address:</strong></p><form action="http://maps.google.com/maps" method="get"" target="_blank">' +
	   '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +
	   '<INPUT class="directionsBtn" value="" TYPE="SUBMIT">' +
	   '<input type="hidden" name="saddr" value="' + point.lat() + ',' + point.lng() +
			  // "(" + name + ")" + 
	   '"/>' + '<br>' + htmlClose;
	// The inactive version of the direction info
	html = html + '<p>Directions: <a href="javascript:tohere('+i+')">To here</a> - <a href="javascript:fromhere('+i+')">From here</a><br></p>';
	
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(htmlOpen+html+htmlClose);
	});
	
	gmarkers[i] = marker;
	htmls[i] = html;
	i++;
	return marker;
}

// functions that open the directions forms
function tohere(i) {
	gmarkers[i].openInfoWindowHtml(to_htmls[i]);
}
function fromhere(i) {
	gmarkers[i].openInfoWindowHtml(from_htmls[i]);
}