var defaultLatLng = new google.maps.LatLng('42.531641', '1.583572');
var map;
var tab_tracker = 'data';
var selected_marker_array = new Array();
var load_ex = '';
var kmlLayer;

function initialize() {
	var myOptions = {
	  zoom: 10,
	  center: defaultLatLng,
	  mapTypeId: google.maps.MapTypeId.SATELLITE,
	  mapTypeControlOptions: {  style: google.maps.MapTypeControlStyle.DROPDOWN_MENU  }      
	}
	map = new google.maps.Map(document.getElementById("map_default"), myOptions);
	load_ex = checkHashUrl();
	processMarkers();
	addRegionOverlay();
	
}


function addRegionOverlay() {
	kmlLayer = new google.maps.KmlLayer("http://www.aire.ad/andorra_overlay.kmz",{preserveViewport:true, suppressInfoWindows:true});
	kmlLayer.setMap(map);
}
  
function checkHashUrl() {
		var site_id = '';
		var t_action = 'data';
		
		//Check we have a # but not a ?
		if (location.href.lastIndexOf('#') !=-1 && location.href.lastIndexOf('?') ==-1) {
			var firstpos=location.href.lastIndexOf('#')+1;
			var lastpos=location.href.length;
			//Get the hash string
			var query_string=location.href.substring(firstpos,lastpos);
			
			//Create an array based on the amp
			var arr_vals = query_string.split("&");
			
			//Loop through each part of the string
			for (i=0;i<arr_vals.length;i++) {
				arr_vals[i] = arr_vals[i].replace("&", "");
				arr_vals[i] = arr_vals[i].replace("?", "");
	
				if (arr_vals[i].indexOf("site_id=") > -1) {
					arr_vals[i] = arr_vals[i].replace("site_id=", "");
					site_id = arr_vals[i];
				}//end if
				
				if (arr_vals[i].indexOf("t_action=") > -1) {
					arr_vals[i] = arr_vals[i].replace("t_action=", "");
					t_action = arr_vals[i];
				}//end if
		
			}//end for
			
			if (site_id != '') {
				//Assuming we have what we need, load up the page accordingly.
				showSiteTabs(site_id, t_action);
				return site_id;
			}
		} else {
			//no query string
			return;
		}//end if
}
  
function processMarkers() {
	//Loop through each site to get the markers
	for(id in aql_markers) {
		addMarker(aql_markers[id]);
	}	
}

function addMarker(pointData) {

		var current_site_id = pointData.site_id;

		var siteLatLng = new google.maps.LatLng(pointData.latitude, pointData.longitude);
		var marker = new google.maps.Marker({
				position: siteLatLng, 
				map: map,
				icon: 'images/map_markers/marker_'+pointData.overall_index+'.png',
				title:pointData.marker_title
			}); 
			
			if (load_ex != '' && load_ex == pointData.site_id) {
				createSelectedMarker(marker, pointData.overall_index);
			}
			
			google.maps.event.addListener(marker, 'click', function() {
				createSelectedMarker(marker, pointData.overall_index);
				showSiteTabs(pointData.site_id, tab_tracker);
				document.location = "#site_id="+pointData.site_id+"&t_action="+tab_tracker;
			});
}
 
function createSelectedMarker(marker, overall_index) {
	//Catch non-numeric content
	overall_index = overall_index.replace("_Selected", "");
	
	//Clear existing "selected" markers
	for (id in selected_marker_array) {
		//Reset Icon
		var restoreMarker = selected_marker_array[id]['marker'];
		var restoreIndex = selected_marker_array[id]['overall_index'];
		
		//Catch non-numeric content
		restoreIndex = restoreIndex.replace("_Selected", "");
		restoreMarker.setIcon('images/map_markers/marker_'+restoreIndex+'.png');
	}
	selected_marker_array = new Array();
	
	selected_marker_array[0] = new Array();
	selected_marker_array[0]['marker'] = marker;
	selected_marker_array[0]['overall_index'] = overall_index;

	marker.setIcon('images/map_markers/marker_'+overall_index+'_selected.png');

}


function showSiteTabs(site_id, t_action, pref) {
	tab_tracker = t_action;
	
	if (pref == null) {
		pref = '';
	}
	
	$.ajax({
		   type: "GET",
		   url: "ajax_process/show_site_tabs.php",
		   data: "doajax=true&site_id="+site_id+"&t_action="+t_action,
		   beforeSend:	function(){
				$("#loading_content_message_plain").show();
		   },
		   complete: function(){
				$("#loading_content_message_plain").fadeOut("fast");
		   },
		   success: function(html){
			 document.getElementById('site_tabs').innerHTML = html;
			document.location = "#site_id="+site_id+"&t_action="+tab_tracker;
		   }
		 });
}
  
window.onload =  initialize;
