// Google Maps UK Traffic Overlay
// version 0.2 BETA!
// 21-12-2005
// Copyright (c) 2005, Michael Pritchard
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "Google Maps UK Traffic Overlay", and click Uninstall.
//
// Made thanks to http://diveintogreasemonkey.org/
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name          Google Maps UK Traffic Overlay
// @namespace     http://www.blueghost.co.uk/gmaps_uk_traffic.html
// @description   Adds UK Traffic Overlay
// @include       http://maps.google.*
// @include		  http://local.google.*
// @include       http://www.google.co.uk/maps*
// @include       http://www.google.com/maps*
// @include       http://www.google.co.uk/local*
// @include       http://www.google.com/local*
// @exclude		  http://maps.google.com/maps?output=js
// @exclude		  http://maps.google.co.uk/maps?output=js
// @exclude		  http://maps.google.com/mapfiles/maps.*
// ==/UserScript==

	var mapObj;
	var img_url			= 'http://www.blueghost.pwp.blueyonder.co.uk/bg_site/';
	var search_url		= 'http://bbc.blueghost.co.uk/doSearchForGM.php';
	var main_site		= 'http://bbc.blueghost.co.uk/';
	var wICon;
	unsafeWindow.tICon;
	unsafeWindow.loc;
	unsafeWindow.cen;
	var traffic_markers = [];
	var county_markers 	= [];
	var t_markers 		= [];
	var traffic_data	= [];
	var traffic_start	= [];
	var traffic_end		= [];
	var wMarker;
	var m_move;
	var m_moveend;
	var m_zoom;
	var traffic_setup	= false;
	var traffic_loaded  = false;
	var tPlace;
	var tLat;
	var tLon;
	
	window.addEventListener('load', onLoad, false);

	function onLoad(){
  		window.removeEventListener('load', onLoad, false);
  		mapObj = unsafeWindow._m || unsafeWindow.application;
		init();
		showLink();
	}
	
	function init(){
		
	}
	
	function showLink(){
		var lttp	= document.getElementById('linktopage');
		var ocl 	= document.createElement('a');
		ocl.id		= "BlueGhost.co.uk_ocl";
		ocl.innerHTML	= "<img src=\"http://www.blueghost.pwp.blueyonder.co.uk/bg_site/google.png\" width=\"8\" height=\"16\" alt=\"Traffic Icon\" />&nbsp;<span>Show UK Traffic Overlay Controls</span>";
		ocl.title	= "Load UK Traffic Data Overlay";
		ocl.href	= "#";
		ocl.addEventListener('click',function () {
			activate();
		},false);
		lttp.parentNode.insertBefore(ocl, lttp.nextSibling);
	 }
	 
	 function activate(){
		var panel 	= document.getElementById('panel');
		var html 	= "<div style=\"margin: 0px; padding: 0px; display: none;\"></div>";
		html 		+= "<div style=\"margin: 0px; padding: 0px;\"><div style=\"margin-right: 0.2em;\">";
		html 		+= "<div style=\"margin: 0em 0.2em 0.2em 0em; font-weight: bold;\" class=\"noprint\">"
		 			+ "UK Traffic &amp; Travel Overlay";
					+ "</div>";
		html 		+= "<div>"
		html 		+=	"<input name=\"BlueGhost.co.uk_search_form_box\" id=\"BlueGhost.co.uk_search_form_box\" type=\"text\""
					+ " onKeyUp=\"javascript:doSearch(this.value);\" onBlur=\"javascript:redo(this);\""
					+ " onFocus=\"javascript:clearS(this);\" value=\"Enter Search Query\""
					+ " size=\"20\" maxlength=\"50\""
					+ " style=\"display:inline; height:16px; font-size:x-small; font-family:Arial, Helvetica, sans-serif; font-weight: normal;\">";
		html 		+= "</div>";
		html		+= "<div id=\"BlueGhost.co.uk_s_results\">"
					+ "</div>";
		html 		+= "<div style=\"padding: 0.5em 0em 0.2em; font-size: small; font-weight: bold;\">"
		 			+ "powered by <a href=\"http://bbc.blueghost.co.uk/\" target=\"_blank\" title=\"Go to the BlueGhost.co.uk Website (new window)\">bbc.blueghost.co.uk</a>";
					+ "</div>";
		html 		+= "<div style=\"padding: 0.5em 0em 0.2em; font-size: small; font-weight: bold;\">"
		 			+ "check <a href=\"http://www.blueghost.co.uk/gmaps_uk_traffic.html\" target=\"_blank\" title=\"Go to the BlueGhost.co.uk Website (new window)\">http://www.blueghost.co.uk/gmaps_uk_traffic.html</a> for updates";
					+ "</div>";			
		html 		+= "<div style=\"padding: 0.5em 0em 0.2em; font-size: small; font-weight: bold;\">"
		 			+ "supported by <a href=\"http://backstage.bbc.co.uk/\" target=\"_blank\" title=\"Go to the BBC Backstage Website (new window)\">bbc.blueghost.co.uk</a>";
					+ "</div>";
		html += "</div></div>";
		
		panel.innerHTML = html;
		var act = document.getElementById('BlueGhost.co.uk_ocl');
		if (panel.style.display == "none"){
			act.innerHTML	= "<img src=\"http://www.blueghost.pwp.blueyonder.co.uk/bg_site/google.png\" width=\"8\" height=\"16\" alt=\"Traffic Icon\" />&nbsp;<span>Hide UK Traffic Overlay Controls</span>";
			panel.style.display = "block";
			panel.style.border = "thin solid #000000";
			showData();
		}else{
			if (panel.style.display == "block"){
				panel.style.display = "none";
				act.innerHTML	= "<img src=\"http://www.blueghost.pwp.blueyonder.co.uk/bg_site/google.png\" width=\"8\" height=\"16\" alt=\"Traffic Icon\" />&nbsp;<span>Show UK Traffic Overlay Controls</span>";
				removeTrafficMarkers();
			}else{
				var ai = "<img src=\"http://www.blueghost.pwp.blueyonder.co.uk/bg_site/google.png\" width=\"8\" height=\"16\" alt=\"Traffic Icon\" />&nbsp;<span>Hide UK Traffic Overlay Markers</span>";
				if (traffic_setup){
					if (traffic_loaded){
						act.innerHTML	= "<img src=\"http://www.blueghost.pwp.blueyonder.co.uk/bg_site/google.png\" width=\"8\" height=\"16\" alt=\"Traffic Icon\" />&nbsp;<span>Show UK Traffic Overlay Markers</span>";
						removeTrafficMarkers();
					}else{
						act.innerHTML	= ai;
						showAllTrafficMarkers()
					}
				}else{
					act.innerHTML	= ai;
					showData();
				}
			}
		}
	}
	
	function removeTrafficMarkers(){
		traffic_loaded = false;
		for (var i = 0; i < t_markers.length; i++)
			mapObj.map.removeOverlay(t_markers[i]);
	}
	
	function showAllTrafficMarkers(){
		traffic_loaded = true;
		for (var i = 0; i < t_markers.length; i++)
			mapObj.map.addOverlay(t_markers[i]);
	}
	 
	function showData(){
		setupTraffic();
		reload();
	}
	
	function reload(){
		
	}
	 
	function setupTraffic(){		
		var img 	= 'bbc_v2.png';
		var size_x 	= 350;
		var size_y 	= 30;
		var html 	= '<div class="weather_link">supported by<br /><a href="http://backstage.bbc.co.uk" target="_blank">backstage.bbc.co.uk</a></div>';
		var move	= false;
		var moveend	= true;
		var clicker	= true;
		var reloader= false;
		var zoom	= true;
		placeCopyLogo(wICon, wMarker, img, size_x, size_y, html, move, moveend, clicker, reloader, zoom);
		
		//add each county
		if (traffic_setup){
			for(var i = 0; i< t_markers.length; i++)
				mapObj.map.addOverlay(t_markers[i]);
		}else{
			//icon for each county
			if (!unsafeWindow.tICon){
				var timg_url 	= img_url+'mm_20_white.png';
				var img_shadow	= img_url+'mm_20_shadow.png';
				unsafeWindow.tICon	= makeIcon(timg_url, 12, 20);
				unsafeWindow.tICon.shadow = img_shadow;
			}
			var url		= main_site + 'travel_data/locations.xml';
			var status	= 'Loading Traffic Data ...';
			unsafeWindow.doXMLHTTPRequest(unsafeWindow.setupTrafficXML, url, status);
			
			//set footer
			var id = county_markers.length;
			mw 	= document.createElement("div");
			mw.id = 'traffic_motorways';
			mw.className = 'weather_link';
			mw.innerHTML = '<a id="m_link" href="javascript:goToTraffic(\'motorways\', \'0\', \'0\', '+id+', \'UK Motorways\');" title="See Delays on the Motorways">Show Motorway Delays</a>';
			county_markers.push(mw);
			
			traffic_setup = true;
			traffic_loaded = true;
		}
	}
	 
	function logoEventHandler(wMarker, logo, reloader, clicker, html){
		if (reloader)
			reload();
		mapObj.map.removeOverlay(wMarker);
		var bounds = mapObj.map.getBoundsLatLng();
		var width = bounds.maxX - bounds.minX;
		var height = bounds.maxY - bounds.minY;
		//if (widescreen)
			//var point = new GPoint(bounds.maxX-(width/2), bounds.maxY-(height*0.87));
		//else
			var point = new unsafeWindow.GPoint(bounds.maxX-(width/2), bounds.maxY-(height*0.87));
		wMarker = new unsafeWindow.GMarker(point,logo);
		mapObj.map.addOverlay(wMarker);
		if (clicker){
			unsafeWindow.GEvent.addListener(wMarker, "click", function() {
				wMarker.openInfoWindowHtml(html);
			});
		}
		return wMarker;
	}
	
	function makeIcon(img, size_x, size_y){
		var mi 	= new unsafeWindow.GIcon();
		mi.image = img;
		mi.shadow = img_url+'weather/trans.png';
		mi.iconSize = new unsafeWindow.GSize(size_x, size_y);
		mi.shadowSize = new unsafeWindow.GSize(1, 1);
		mi.iconAnchor = new unsafeWindow.GPoint((size_x/2), (size_y/2));
		mi.infoWindowAnchor = new unsafeWindow.GPoint((size_x/2), 0);
		return mi;
	}
	
	function placeCopyLogo(logo, wMarker, img, size_x, size_y, html, move, moveend, clicker, reloader, zoom){
		if (!logo){
			logo			= makeIcon(img_url+img, size_x, size_y);
			logo.iconAnchor	= new unsafeWindow.GPoint((size_x/2), 0); //center img
		}
		var bounds = mapObj.map.getBoundsLatLng();
		var width = bounds.maxX - bounds.minX;
		var height = bounds.maxY - bounds.minY;
		var point = new unsafeWindow.GPoint(bounds.maxX-(width/2), bounds.maxY-(height*0.87));
		wMarker = new unsafeWindow.GMarker(point,logo);
		mapObj.map.addOverlay(wMarker);
		if (m_move){
			try{
				unsafeWindow.GEvent.removeListener(m_move);
			}catch(e){
				//alert('error occured: ' +e);
			}
		}
		if (m_moveend){
			try{
				unsafeWindow.GEvent.removeListener(m_moveend);
			}catch(e){
				//alert('error occured: ' +e);
			}
		}
		if (m_zoom){
			try{
				unsafeWindow.GEvent.removeListener(m_zoom);
			}catch(e){
				//alert('error occured: ' +e);
			}
		}
		unsafeWindow.GEvent.clearListeners(wMarker, "click");
		if (clicker){
			unsafeWindow.GEvent.addListener(wMarker, "click", function() {
				wMarker.openInfoWindowHtml(html);
			});
		}
		if (move){
			m_move	= unsafeWindow.GEvent.addListener(mapObj.map, "move", function() {
				wMarker = logoEventHandler(wMarker, logo, false, clicker, html);
  			});
		}
		if (moveend){
			m_moveend	= unsafeWindow.GEvent.addListener(mapObj.map, "moveend", function(){
				wMarker = logoEventHandler(wMarker, logo, reloader, clicker, html);
			});
		}
		if (zoom){
			m_zoom		= unsafeWindow.GEvent.addListener(mapObj.map, "zoom", function() {
				wMarker = logoEventHandler(wMarker, logo, reloader, clicker, html);
  			});
		}
	}
	 
	unsafeWindow.doSearch = function(query){
		mode = "traffic";
		var url = search_url+'?mode='+mode+'&query='+query;
		unsafeWindow.doXMLHTTPRequest(unsafeWindow.showSearchResults, url, "Searching");
	};
	 
	unsafeWindow.doXMLHTTPRequest = function(fname, url, status){
		var s_box = document.getElementById('toggle');
		s_box.innerHTML = status;
		GM_xmlhttpRequest({
    			method: 'GET',
    			url: url,
    			headers: {
        			'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey/0.3',
        			'Accept': 'application/atom+xml,application/xml,text/xml',
    			},
   				onload: function(responseDetails) {
					fname(responseDetails);
					var s_box = document.getElementById('toggle');
					s_box.innerHTML = "";
    			}
			});	
	};
	
	unsafeWindow.setupTrafficXML = function(responseDetails){
		var dp = new XPCNativeWrapper(window, "DOMParser()");
		var parser = new dp.DOMParser();
		var xmlDoc = parser.parseFromString(responseDetails.responseText, "application/xml");
		var markers = xmlDoc.documentElement.getElementsByTagName("t_alert");
		for (var i=0; i< markers.length ; i++){
			var lat = markers[i].getAttribute("lat");
			var lon = markers[i].getAttribute("lon");
			var id = markers[i].getAttribute("id");
			var marker = createTrafficCountyMarker(markers[i].getAttribute("location"), markers[i].getAttribute("title"), lat, lon, t_markers.length, id);
			mapObj.map.addOverlay(marker);
			t_markers.push(marker);
		}
	};
	
	function createTrafficCountyMarker(html, title, lat, lon, id, id2){
		var point = new unsafeWindow.GPoint(lon,lat);
		var marker = new unsafeWindow.GMarker(point,unsafeWindow.tICon);
		var id = county_markers.length;
		var info_html 	= document.createElement("div");
		info_html.id = 'traffic_'+html+'';
		info_html.innerHTML = '<div style="white-space: nowrap; font-size: small;font-weight: bold;color: #000000;">'+title+'<br/><a style="font-size: small;color: #000000;" href="javascript:goToTraffic(\''+html+'\', '+lat+', '+lon+', '+id2+', \''+title+'\', '+id+');" title="See Delays in '+title+'">Show Delays</a><br/><a style="font-size: small;color: #000000;" href="javascript:zoomOut();" title="Zoom Out">Zoom Out</a></div>';
		county_markers.push(info_html);
		
		unsafeWindow.GEvent.addListener(marker, "click", function() {
			//if (show_pop_ups)
    			marker.openInfoWindow(county_markers[id]);
			setDesc(title, text);
			last_open = id2; //refers to t_markers
  		});
		return marker;
	};
	
	unsafeWindow.createTrafficMarker = function(lat, lon, html, src, type, start, stp,  image, alat, alon, id) {
		var timg_url = img_url+image+".png";
		var icon	= makeIcon(timg_url, 19, 40);
		var point = new unsafeWindow.GPoint(lon, lat);
  		var marker = new unsafeWindow.GMarker(point,icon);
		var title 	= '<img style="float:left" src="'+main_site+type+'.png" alt="img" />';
		var text	= html+'<a href="http://bbc.co.uk/travel" target="_blank" title="Go to the '+src+' website">Source:'+src+'</a>';
		text		+='<div>Started @ '+start+'</div><div>End @ '+stp+'</div>';
		var links	='<a href="javascript:zoomTo('+lat+','+lon+', 3);">Zoom In</a>';
		links		+='<a href="javascript:zoomTo('+alat+','+alon+', 7);">Zoom Out to Area</a>';
		links		+='<a href="javascript:zoomOut();">Zoom Out Fully</a>';
		
		var html = '<div style="width: 200px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:small;"><img style="float:left" src="'+img_url+type+'.png" alt="img" />'+html+'</div><strong>Source:'+src+'</strong>';
  		html += '<div>Started @ '+start+'</div><div>End @ '+stp+'</div>';
		html += '<div class="weather_link"><a href="javascript:zoomTo('+lat+','+lon+', 3);">Zoom In</a></div>';
		html += '<div class="weather_link"><a href="javascript:zoomTo('+alat+','+alon+', 7);">Zoom Out to Area</a></div>';
		html += '<div class="weather_link"><a href="javascript:zoomOut();">Zoom Out Fully</a></div>';
		
		unsafeWindow.GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(html);
  		});
		return marker;
	};
	
	unsafeWindow.showSearchResults = function(responseDetails){
		var dp = new XPCNativeWrapper(window, "DOMParser()");
		var parser = new dp.DOMParser();
		var xmlDoc = parser.parseFromString(responseDetails.responseText, "application/xml");
		var resultText = "";
		var results	= xmlDoc.documentElement.getElementsByTagName("result");
		for (var i = 0; i < results.length; i++) {
			var l_text = results[i].getAttribute("l_text");
			var lat  = results[i].getAttribute("lat");
			var lon  = results[i].getAttribute("lon");
			//if (!traffic)
				//resultText +="<br /><a href=\"javascript:zoomTo("+lat+", "+lon+", 4);\">"+l_text+"</a>";
			//else{
				var fname = results[i].getAttribute("fname");
				var id = results[i].getAttribute("id");
				resultText +="<br /><a href=\"javascript:goToTraffic('"+fname+"', "+lat+", "+lon+", "+id+", '"+l_text+"');\">"+l_text+"</a>";
			//}
		}
		resultText +="<br/><br/><a href=\"javascript:newSearch();\">Clear Search Results</a>";
		if (results.length <= 0){
			resultText = "<strong>No Results Found</strong>";
			resultText +="<br/><br/><a href=\"javascript:newSearch();\">Clear Search Results</a>";
		}
		resultText 	= "<hr style=\"border: thin solid #000000;\">"
					+ "<strong>Search Results</strong><br />"
					+ resultText
					+ "<hr style=\"border: thin solid #000000;\">";
		var sb = document.getElementById('BlueGhost.co.uk_s_results');
		sb.innerHTML = resultText;
	};
	
	unsafeWindow.goToTraffic = function(loc, lat, lon, id, title, id2){
		if (!id2)
			id2 = id;
		var href = 'javascript:parent.removeTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\');';
		if (id == 0){/*MOTORWAYS*/
			var m_link = document.getElementById('m_link');
			m_link.innerHTML 	=  'Hide Motorway Delays';
			m_link.href			=  'javascript:removeTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\', '+id2+');';
			m_link.title		=	'Hide Delays in '+title;
			county_markers[id2].innerHTML =  '<a style="font-size: small;color: #000000;" id="m_link" href="javascript:removeTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\', '+id2+');" title="Hide Delays in '+title+'">Hide Motorway Delays</a>';
			m_visible = true;
		}else{
			county_markers[id2].innerHTML =  '<div style="white-space: nowrap; font-size: small;font-weight: bold;color: #000000;">'+title+'<br/><a style="font-size: small;color: #000000;" href="javascript:removeTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\', '+id2+');" title="Hide Delays in '+title+'">Hide Delays</a><br/><a style="font-size: small;color: #000000;" href="javascript:zoomOut();" title="Show Delays in '+title+'">Zoom Out</a>';
			var point = new unsafeWindow.GPoint(lon,lat);
			mapObj.map.centerAndZoom(point, 7);
		}
		tPlace 	= loc;
		tLat	= lat;
		tLon	= lon;
		unsafeWindow.reloadTraffic();
	};
	
	unsafeWindow.removeTraffic = function(loc, lat, lon, id, title, id2){
		if (!id2)
			id2 = id;
		var index = 0;
		for (var i = 0; i < traffic_data.length; i++){
			if (traffic_data[i] == loc){
				index = i;
				i = traffic_data.length + 1;
			}
		}
		for (var start = traffic_start[index]; start < traffic_end[index]; start++)
			mapObj.map.removeOverlay(traffic_markers[start]);
			
		if (id == 0){/*MOTORWAYS*/
			var m_link = document.getElementById('m_link');
			m_link.innerHTML 	=  'Show Motorway Delays';
			m_link.href			=  'javascript:goToTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\', '+id2+');';
			m_link.title		=	'Show Delays in '+title;
			county_markers[id2].innerHTML =  '<a style="font-size: small;color: #000000;" id="m_link" href="javascript:goToTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\', '+id2+');" title="Show Delays in '+title+'">Show Motorway Delays</a>';
			m_visible = false;
		}else{
			county_markers[id2].innerHTML =  '<div style="white-space: nowrap; font-size: small;font-weight: bold;color: #000000;">'+title+'<br/><a style="font-size: small;color: #000000;" href="javascript:goToTraffic(\''+loc+'\', '+lat+', '+lon+', '+id+', \''+title+'\', '+id2+');" title="Show Delays in '+title+'">Show Delays</a><br/><a style="font-size: small;color: #000000;" href="javascript:zoomOut();" title="Zoom Out">Zoom Out</a>';
		}
	};
	
	unsafeWindow.reloadTraffic = function(){
		var index = -1;
		for (var i = 0; i < traffic_data.length; i++){
			if (traffic_data[i] == tPlace){
				index = i;
				i = traffic_data.length + 1;
			}
		}
		if (index != -1){
			for (var start = traffic_start[index]; start < traffic_end[index]; start++)
				mapObj.map.addOverlay(traffic_markers[start]);
		}else{
			var url	= main_site+'includes/travel_new.php?area='+tPlace;
			var status	= 'Loading Traffic Data';
			unsafeWindow.doXMLHTTPRequest(unsafeWindow.reloadTrafficXML, url, status);
		}
	};
	
	unsafeWindow.reloadTrafficXML = function(responseDetails){
		var dp = new XPCNativeWrapper(window, "DOMParser()");
		var parser = new dp.DOMParser();
		var xmlDoc = parser.parseFromString(responseDetails.responseText, "application/xml");
		traffic_data.push(tPlace);
		traffic_start.push(traffic_markers.length);
		var markers	= xmlDoc.documentElement.getElementsByTagName("t_alert");
		for (var i = 0; i < markers.length; i++) {
			var places = 0;
			var lat = markers[i].getAttribute("lat");
			var lon = markers[i].getAttribute("lon");
			var logo = markers[i].getAttribute("severity");
			var marker = unsafeWindow.createTrafficMarker(lat, lon , markers[i].getAttribute("summary"), markers[i].getAttribute("src"), markers[i].getAttribute("type"), markers[i].getAttribute("start"), markers[i].getAttribute("stop"), logo, tLat, tLon, traffic_markers.length);
			mapObj.map.addOverlay(marker);
			traffic_markers.push(marker);
		}
		traffic_end.push(traffic_markers.length);
	}
	
	unsafeWindow.zoomOut = function(){
		if (!unsafeWindow.cen)
			unsafeWindow.cen	= new unsafeWindow.GPoint(-2.37305,54.31652);
		mapObj.map.centerAndZoom(unsafeWindow.cen, 11);
	};
	
	unsafeWindow.zoomTo = function(lat, lon, size){
		if (lat == 0 && lon == 0){
			mapObj.map.centerAndZoom(unsafeWindow.cen, 11);
		}else{
			var p = new unsafeWindow.GPoint(lon,lat);
			mapObj.map.centerAndZoom(p, size);
		}
	};
	
	unsafeWindow.clearS = function(obj){
		if (obj.value == "Enter Search Query")
			obj.value= "";
	};
	
	unsafeWindow.redo = function(obj){
		if (obj.value == ""){
			obj.value= "Enter Search Query";
			var sb = document.getElementById('BlueGhost.co.uk_s_results');
			sb.innerHTML = "";
		}
	};
	
	unsafeWindow.newSearch = function(obj){
		var sbt = document.getElementById('BlueGhost.co.uk_search_form_box');
		sbt.value= "Enter Search Query";
		var sb = document.getElementById('BlueGhost.co.uk_s_results');
		sb.innerHTML = "";
	};