
	var map = null; //gmaps - handle to the map
    var geocoder = null; //gmaps - handle to searc object
	var regions = new Array(); // array of regions data
	var countries = new Array(); // array of countries data
	var countries_data; //content for callout and main text
	var diseases_data; // content for main text
	var markers = new Array(); //list of markers on the map
	
	//define the marke icon
	var icon = new GIcon();
	icon.image = pin_img;
	//icon.shadow = "./img/shadow.png";
	//icon.shadowSize = new GSize(22,20);
	icon.iconSize = new GSize(16,16);
	icon.iconAnchor = new GPoint(8,12);
	//icon.infoWindowAnchor = new GPoint(16,32);
	
	function initialize() //initialise map and all the info
	{
		if (!GBrowserIsCompatible()) 
		{  
			document.getElementById("map_canvas").innerHTML = text7;
			return;
		}

		//create the map
		map = new GMap2(document.getElementById("map_canvas"),{size:new GSize(map_width,map_height)}); 
		map.setCenter(new GLatLng(map_start_x, map_start_y), map_zoom, map_type);
		map.setUIToDefault(); 
		
		
		//crete the search object
		geocoder = new GClientGeocoder();
		
		//let's fill the regions
		GDownloadUrl(data_path + "regions.xml", function(data, responseCode) 
			{
				var xml = GXml.parse(data);
				var list = xml.documentElement.getElementsByTagName("Region");
				
				//add first option in combo
				//addOption( 'regions', -1, text3); 
				addOption( 'regions', 0, text2);
				regions[0] = new Object();
				regions[0].point = new GLatLng(map_start_x, map_start_y);
				regions[0].zoom = map_zoom;
				
				//add all regions in combo
				for (var i = 0; i < list.length; i++) 
				{
					var value = GXml.value(list[i].getElementsByTagName("id")[0]);
					var text = GXml.value(list[i].getElementsByTagName("region")[0]);
					addOption( 'regions', value, text);
					regions[value] = new Object();
					regions[value].point = new GLatLng(GXml.value(list[i].getElementsByTagName("lat")[0]), GXml.value(list[i].getElementsByTagName("lng")[0]));
					regions[value].zoom=GXml.value(list[i].getElementsByTagName("zoom")[0]);

		  		}
			}
		);
		
		//let's get the content for each country 
		//must be before countries because on loading a default country
		//thsi data has to be available
		GDownloadUrl(data_path + "data.xml", function(data, responseCode) 
			{
				countries_data = GXml.parse(data);
			}
		);
		

		LoadCountries('all');
		
		LoadDiseases(0);
		
		
		//let's get the text for each disease
		GDownloadUrl(data_path + "diseases_content.xml", function(data, responseCode) 
			{
				diseases_data = GXml.parse(data);
			}
		);
	}

		//let's fill the countries in combo and add markers on map
	
	
	function LoadCountries(s_region)
	{
		//alert(s_region);
		GDownloadUrl(data_path + "countries.xml", function(data, responseCode) 
			{
				var xml = GXml.parse(data);
				var list = xml.documentElement.getElementsByTagName("Country");
				
				//clear existing select options
				document.getElementById("countries").options.length = 0;
				
				//add first option in combo
				addOption( 'countries', 0, text5);
				
				//add countries in combo
				for (var i = 0; i < list.length; i++) 
				{
					var value = GXml.value(list[i].getElementsByTagName("id")[0]);
					var text = GXml.value(list[i].getElementsByTagName("country")[0]);
					var region = GXml.value(list[i].getElementsByTagName("region")[0]);
					var lat = GXml.value(list[i].getElementsByTagName("lat")[0]);
					var lng = GXml.value(list[i].getElementsByTagName("lng")[0]);
					var dss =  GXml.value(list[i].getElementsByTagName("diseases")[0]).split(",");
					
					if ((s_region == 'all') || (s_region == region))
					{
						addOption( 'countries', value, text);
						countries[value] = new Object();
						countries[value].id = value;
						countries[value].point = new GLatLng(lat,lng);
						countries[value].text = text;
						countries[value].zoom=GXml.value(list[i].getElementsByTagName("zoom")[0]);
						countries[value].diseases = new Array();
						countries[value].diseases[0] = true;
						for(j = 0; j < dss.length; j++){
							countries[value].diseases[dss[j]]=true;
						}
					}
					//now add markers
					createMarker(value, text);
		  		}
				
				//if this is a country page and not the main page
				SetDefaultCountry();
			}
		);
	}
		
		//let's fill the diseases
	function LoadDiseases(id_country) 
	{

		GDownloadUrl(data_path + "diseases.xml", function(data, responseCode) 
			{
				var xml = GXml.parse(data);
				var list = xml.documentElement.getElementsByTagName("Disease");
				
				//clear existing select options
				document.getElementById("diseases").options.length = 0;
				
				//addOption( 'diseases', -1, text6);
				addOption( 'diseases', 0, text4);
				
				for (var i = 0; i < list.length; i++) 
				{
					var value = GXml.value(list[i].getElementsByTagName("id")[0]);
					var text = GXml.value(list[i].getElementsByTagName("disease")[0])
					
					if (id_country != 0)
					{
						if (countries[id_country].diseases[value] == true) 
						{
								addOption( 'diseases', value, text);
						}
					}
					else
					{
						addOption( 'diseases', value, text);
					}
		  		}
			}
		);
	}

	function addOption( cboname, value, text)
	{
		var elementRef = document.getElementById(cboname);
		var newOption = new Option(text, value);
	  	elementRef.options[elementRef.options.length] = newOption;
	}

	//creates a marker point
	function createMarker(id_country, country) {
		var marker = new GMarker(countries[id_country].point,{'icon': icon, 'title': country});
		GEvent.addListener(marker, "click", function() {
			//let's get the content
			map.setCenter(countries[id_country].point, parseInt(countries[id_country].zoom));
			map.openInfoWindowHtml(countries[id_country].point, getCountryShortDescription(id_country));
			document.getElementById('country_text_container').innerHTML = getCountryDescription(id_country);
			document.title = text13 + country + text14;
			
			var country_combo = document.getElementById("countries");
		
			for (var i = 0; i < country_combo.options.length; i++) {
				if (country_combo.options[i].text == country)
					break;
			}
			if (i<country_combo.options.length)
			{
				document.getElementById("countries").selectedIndex = i;
			}
		});
		map.addOverlay(marker);
		markers[id_country] = new Object();
		markers[id_country].marker=marker;
		markers[id_country].visible=true;
		return marker;
	}
	
	//retrieve the callout text for the country
	function getCountryShortDescription(id_country)
	{
		var country_node = countries_data.documentElement.getElementsByTagName('id'+id_country)[0];
		var title = GXml.value(country_node.getElementsByTagName('title')[0]);
		title = title + text1;
		var content1 = GXml.value(country_node.getElementsByTagName('shortcontent1')[0]);
		var content2 = GXml.value(country_node.getElementsByTagName('shortcontent2')[0]);
		
		var result='';
		
		result = result + '<div id="callout_div">';
		result = result + '<div id="callout_title">' + title + '</div>';
		
		if (content1!='')
			if (id_country != 396) //Norge
				result = result + '<div id="callout_text"><strong>' + country_shortdesc_gruppe1 + '</strong>' + content1 + '</div>';
			else
				result = result + '<div id="callout_text">' + content1 + '</div>';
		if (content2!='')
			result = result + '<div id="callout_text"><strong>' + country_shortdesc_gruppe2 + '</strong>' + content2 + '</div>';
		result = result + '<div id="callout_link_div"><a href="#country_content">full tekst</a></div>';
		result = result + '</div>';
		
		return result;
	}
	
	//retrieve the content text for the country
	function getCountryDescription(id_country)
	{
		var country_node = countries_data.documentElement.getElementsByTagName('id'+id_country)[0];
		var title = GXml.value(country_node.getElementsByTagName('title')[0]);
		var ids1 = GXml.value(country_node.getElementsByTagName('diseases_ids1')[0]);
		var titles1 = GXml.value(country_node.getElementsByTagName('diseases_titles1')[0]);
		var ids2 = GXml.value(country_node.getElementsByTagName('diseases_ids2')[0]);
		var titles2 = GXml.value(country_node.getElementsByTagName('diseases_titles2')[0]);
		
		var result='';
		
		result = result + '<div id="country_div">'
		result = result + '<div id="country_title">' + title + '</div><br>';
		//if (ids1!='') result = result + '<div id="country_header">' + country_desc_gruppe1 + '</div><br>';
	
		//if (ids2!='')	result = result + '<div id="country_header">' + country_desc_gruppe2 + '</div><br>';
		
		if (ids1!='') 
		{
			result = result + '<div id="country_text">';
			//split ids and titles
			if (id_country != 396) //Norge
				result = result + '<strong>' +  text10 + '</strong><br><br>';
			else 
				result = result + '<strong>' +  text9 + '</strong><br><br>';
			var id = ids1.split(", ");
			var d_title = titles1.split("--- ");
			for(j = 0; j < id.length; j++){
				result = result + '<div id="disease_title">' +  d_title[j] + '</div>';
				var disease_node = diseases_data.documentElement.getElementsByTagName('id'+id[j])[0];
				var desc = GXml.value(disease_node.getElementsByTagName('description')[0]);
				var source = GXml.value(disease_node.getElementsByTagName('source')[0]);
				
				result = result + desc + '<br>';
				result = result + source + '<br><br>';

			}
			result = result + '</div>';
		}
		
		if (ids2!='')	
		{
			result = result + '<div id="country_text">';
			result = result + '<strong>' +  text11 + '</strong><br><br>';
			var id = ids2.split(", ");
			var d_title = titles2.split("--- ");
			for(j = 0; j < id.length; j++){
				result = result + '<div id="disease_title">' +  d_title[j] + '</div>';
				var disease_node = diseases_data.documentElement.getElementsByTagName('id'+id[j])[0];
				var desc = GXml.value(disease_node.getElementsByTagName('description')[0]);
				var source = GXml.value(disease_node.getElementsByTagName('source')[0]);
				
				result = result + desc + '<br>';
				result = result + source + '<br><br>';
			}
			result = result + '</div>';
		}
		result = result + '<\div>';

		return result;
	}
	
	function SetDefaultCountry()
	{
		var sPath = window.location.pathname;
		var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
		sPage = sPage.substring(0,sPage.lastIndexOf('.'));
		
		var country_combo = document.getElementById("countries");
		
		for (var i = 0; i < country_combo.options.length; i++) {
			if (SafeText(country_combo.options[i].text) == sPage)
				break;
			//else
				//alert(SafeText(country_combo.options[i].text) +" -- " + sPage);
		}
		if (i<country_combo.options.length)
		{
			document.getElementById("countries").selectedIndex = i;
			ChangeCountry();
		}
	}

//search function
function showAddress(address) 
{
	if (geocoder) 
	{
		geocoder.getLatLng(address,
			function(point) 
			{
				if (!point) 
				{
		  			alert(address + " not found");
				} 
				else 
				{
					map.setCenter(point);
					//let's parse all countries
					for(j = 0; j < countries.length; j++){
						if(countries[j])
						{
							if (countries[j].point.equals(point))
							{
								map.setCenter(countries[j].point, parseInt(countries[j].zoom));
								map.openInfoWindowHtml(countries[j].point, getCountryShortDescription(j));
								document.getElementById('country_text_container').innerHTML = getCountryDescription(j);
								return;
							}
						}
					}
				}
	  		}
		)
	}
}
