var flashvars = {};
var params = {};
var attributes = {};
swfobject.embedSWF("/images/header.swf", "altContent", "610", "105", "9.0.0", false, flashvars, params, attributes);
swfobject.embedSWF("/flash/video.swf", "marathonPlayer", "500", "440", "9.0.0", false, flashvars, params, attributes);
/* Handle window onload events*/
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(load);

function getQVal(qStr)
{
	var returnVal = "home";
	var thisURL = window.location.toString();
	if(thisURL.indexOf("?")!=-1){
		var queryString = thisURL.split("?");
		queryString = queryString.length>0 ? queryString[1] : "";
		var queries = queryString.split("&");
		if(queries.length>0){
			for(var i=0; i<queries.length; i++){
				if(queries[i].split("=")[0]==qStr){
					returnVal = queries[i].split("=")[1];
				}
			}
		}
		else if(queryString.split("=")[0]==qStr)
		{
			returnVal = queryString.split("=")[1];
		}
	}
	return returnVal;
}

/* Google maps school linking code */
function school(name,address,telno,faxno,url,linkedto,latlong,id)
{
	this.name = name;
	this.address = address;
	this.telno = telno;
	this.faxno = faxno;
	this.url = url;
	this.linkedto = linkedto;
	this.latlong = latlong;
	this.amarker = null;
	this.id = id;
	for(var i=0; i<afrschoolArr.length; i++)
	{
		if(afrschoolArr[i].name==linkedto)
		{
			this.amarker = gmarkers[i];
			this.aindex = i;
		}
	}
	var div = document.createElement('div');
	div.className = "popWindow";
	var h3 = document.createElement('h3');
	var h3name = document.createTextNode(name);
	h3.appendChild(h3name);
	var p1 = document.createElement('p');
	var p1txt = document.createTextNode(address);
	p1.appendChild(p1txt);
	var p2 = document.createElement('p');
	var p2txt = document.createTextNode(telno);
	p2.appendChild(p2txt);
	var p3 = document.createElement('p');
	var p3txt = document.createTextNode(faxno);
	p3.appendChild(p3txt);
	var p4 = document.createElement('p');
	var p4a = document.createElement('a');
	var p4atxt = document.createTextNode(url);
	p4a.appendChild(p4atxt);
	p4a.href = url;
	p4.appendChild(p4a);
	var p5 = document.createElement('p');
	var p5txt = document.createTextNode('Linked to: '+linkedto);
	p5.appendChild(p5txt);
	var alatlong = this.amarker.getLatLng();
	if(alatlong.lat()!=0)
	{
		var p6 = document.createElement('p');
		var p6a = document.createElement('a');
		var p6atxt = document.createTextNode('View the link between these schools');
		p6a.appendChild(p6atxt);
		p6a.href="#";
		p6a.id = "a"+this.aindex+"a"+id;

		p6a.onclick = function()
		{
			if(currentOverlay){
			map.removeOverlay(currentOverlay);
			}
			var aid = this.id.split('a')[1];
			var ukid = this.id.split('a')[2];
			var all = gmarkers[aid].getLatLng();
			var ukll = gmarkers[ukid].getLatLng();
			gmarkers[ukid].closeInfoWindow();
			var polyOptions = {geodesic:true};
			var centerlat = ((ukll.lat()+all.lat())/2);
			var centerlong = ((ukll.lat()+all.lat())/2);
			var centerlatlong = new GLatLng(centerlat,centerlong);
			var polyline = new GPolyline([ukll,all], "#ff0000", 10, 1, polyOptions);
			map.addOverlay(polyline);
			currentOverlay = polyline;
			map.setCenter(centerlatlong,3);
			return false;
		}
		p6.appendChild(p6a);
	}
	
	div.appendChild(h3);
	div.appendChild(p1);
	div.appendChild(p2);
	div.appendChild(p3);
	div.appendChild(p4);
	div.appendChild(p5);
	if(alatlong.lat()!=0)
	{
	div.appendChild(p6);
	}
	
	this.html = div;
	//this.html = '<div class="popWindow"><h3>'+name+'</h3><p>'+address+'</p><p>'+telno+'</p><p>'+faxno+'</p><p><a href="'+url+'">'+url+'</a></p><p><br/>Linked with: <strong>'+linkedto+'</strong></p></div>';
}
function africanschool(name,latlong)
{
	this.name = name;
	this.latlong = latlong;
	this.html = '<div class="popWindow"><h3>'+name+'</h3></div>';
}
var geocoder;
var map;
var schoolArr = new Array();
var afrschoolArr = new Array();
var gmarkers = new Array();
var hmarkers = new Array();
var currentOverlay;

function createMarker(schoolObj,latlong2)
{
	
	// Retrieve the latitude and longitude
	point = new GLatLng(schoolObj.latlong[0],schoolObj.latlong[1]);
	
	// Create a marker
	var marker = new GMarker(point);
	marker.setLatLng(new GLatLng(schoolObj.latlong[0],schoolObj.latlong[1]));
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(schoolObj.html);
	});
	GEvent.addListener(marker, "dblclick", function() {
		map.setZoom(12);
		marker.openInfoWindowHtml(schoolObj.html);
	});
	gmarkers.push(marker);
	if(schoolObj.latlong[0]==0 && schoolObj.latlong[1]==0)
	{
		hmarkers.push(marker);
	}
	return marker;
}

function load() {
	if(document.getElementById("map"))
	{
      if (GBrowserIsCompatible()) {
		document.getElementById("rightDynamic").innerHTML = "";
        map = new GMap2(document.getElementById("map"));
		/*var boundaries = new GLatLngBounds(new GLatLng(49.38237278700955, -17.0947265625), new GLatLng(59.5343180010956, 12.216796875));
		var greenuk = new GGroundOverlay("/images/uk2.png", boundaries);
		map.addOverlay(greenuk);*/
		
		geocoder = new GClientGeocoder();
		geocoder.setBaseCountryCode("uk");

        map.setCenter(new GLatLng(51.61119461048402,-0.648193359375), 7);
		map.setMapType(G_HYBRID_MAP);
		map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		
		GDownloadUrl("/scripts/schools.xml", function(data, responseCode) {
		  var xml = GXml.parse(data);
		  /* Get and handle african schools */
		  var afrschools = xml.documentElement.getElementsByTagName("africanschool");
		  for (var i = 0; i < afrschools.length; i++) {
			var name = afrschools[i].getElementsByTagName("name")[0].childNodes.length>0 ? afrschools[i].getElementsByTagName("name")[0].childNodes[0].nodeValue : "";
			var latlong = afrschools[i].getElementsByTagName("latlong")[0].childNodes.length>0 ? afrschools[i].getElementsByTagName("latlong")[0].childNodes[0].nodeValue : "";
			latlong = [parseFloat(latlong.split(",")[0]),parseFloat(latlong.split(",")[1])];
			if(isNaN(latlong[0])){latlong[0]=0;}
			if(isNaN(latlong[1])){latlong[1]=0;}
			var afrSchoolObj = new africanschool(name,latlong);
			map.addOverlay(createMarker(afrSchoolObj,new GLatLng(latlong[0],latlong[1])));
			afrschoolArr.push(afrSchoolObj);
		  }
		  /* Get and handle UK schools */
		  var schools = xml.documentElement.getElementsByTagName("school");
		  for (var i = 0; i < schools.length; i++) {
			if(schools[i].getElementsByTagName("address")[0].childNodes.length>0)
			{
				var name = schools[i].getElementsByTagName("name")[0].childNodes.length>0 ? schools[i].getElementsByTagName("name")[0].childNodes[0].nodeValue : "";
				var address = schools[i].getElementsByTagName("address")[0].childNodes.length>0 ? schools[i].getElementsByTagName("address")[0].childNodes[0].nodeValue : "";
				var telephone = schools[i].getElementsByTagName("telephone")[0].childNodes.length>0 ? schools[i].getElementsByTagName("telephone")[0].childNodes[0].nodeValue : "";
				var fax = schools[i].getElementsByTagName("fax")[0].childNodes.length>0 ? schools[i].getElementsByTagName("fax")[0].childNodes[0].nodeValue : "";
				var url = schools[i].getElementsByTagName("url")[0].childNodes.length>0 ? schools[i].getElementsByTagName("url")[0].childNodes[0].nodeValue : "";
				var linkedto = schools[i].getElementsByTagName("linksto")[0].childNodes.length>0 ? schools[i].getElementsByTagName("linksto")[0].childNodes[0].nodeValue : "";
				var latlong = schools[i].getElementsByTagName("latlong")[0].childNodes.length>0 ? schools[i].getElementsByTagName("latlong")[0].childNodes[0].nodeValue : "";
				latlong = [parseFloat(latlong.split(",")[0]),parseFloat(latlong.split(",")[1])];
				var schoolObj = new school(name,address,telephone,fax,url,linkedto,latlong,i+afrschoolArr.length);
				// Add the marker to map
				map.addOverlay(createMarker(schoolObj,new GLatLng(latlong[0],latlong[1])));
				// Add the school object to the schools array
				schoolArr.push(schoolObj);
			}
		  }

			var rd = document.getElementById("rightDynamic");
			rd.innerHTML = "";
			var h2 = document.createElement('h2');
			var h2t = document.createTextNode('UK schools involved in the school linking programme');
			h2.appendChild(h2t);
			var ul = document.createElement('ul');
			ul.className = "schoolList";
			var africansxml = "";
			for(var i=0; i<schoolArr.length; i++)
			{
				var li = document.createElement('li');
				var a = document.createElement('a');
				var t = document.createTextNode(schoolArr[i].name);
				a.href="#";
				a.id="s"+(i+afrschoolArr.length);
				a.onclick = function(){
					var id = parseInt(this.id.split('s')[1],10);
					window.scrollTo(0,200);
					GEvent.trigger(gmarkers[id], "click");
					return false;
				}
				a.appendChild(t);
				li.appendChild(a);
				ul.appendChild(li);
				africansxml+="<africanschool><name>"+schoolArr[i].linkedto+"</name><latlong></latlong></africanschool>";
			}
			rd.appendChild(h2);
			rd.appendChild(ul);
			for(var i=0; i<hmarkers.length; i++)
			{
				hmarkers[i].hide();
			}
			//document.getElementById("footer").innerHTML = africansxml;
		    //document.getElementById("footer").innerHTML = '<a href="#" onclick="myclick(2);return false;">open info window</a>';
			//document.getElementById("rightDynamic").innerHTML = schoolList;
		});
		
		
      }
    }
	}
