var liveSearchReq = false;
var t = null;
	
var isIE = false;
// on !IE we only have to initialize it once
if (window.XMLHttpRequest)
{
	liveSearchReq = new XMLHttpRequest();
}

// +----------------------------------------------------------------------+
// | Zoom map on a certain region
// +----------------------------------------------------------------------+
function ZoomRegion(cbo)
{
  if(cbo.value>0)
  {
    var array_regions = [];
  
    array_regions[1] = [];
    array_regions[1]['x'] = '53.077527569052066'; // East Midlands
    array_regions[1]['y'] = '-1.09039306640625';
    array_regions[1]['zoom'] = 9;
    
    array_regions[2] = [];
    array_regions[2]['x'] = '52.328625488430184'; // East of England
    array_regions[2]['y'] = '0.70037841796875';
    array_regions[2]['zoom'] = 8;
    
    array_regions[3] = [];
    array_regions[3]['x'] = '51.514725174257'; // Greater London
    array_regions[3]['y'] = '-0.11037826538085938';
    array_regions[3]['zoom'] = 12;
    
    array_regions[4] = [];
    array_regions[4]['x'] = '54.826007999094955'; // North East England
    array_regions[4]['y'] = '-1.432342529296875';
    array_regions[4]['zoom'] = 10;
    
    array_regions[5] = [];
    array_regions[5]['x'] = '54.17529672404642'; // North West England
    array_regions[5]['y'] = '-2.68341064453125';
    array_regions[5]['zoom'] = 8;
    
    array_regions[6] = [];
    array_regions[6]['x'] = '51.19999983412068'; // South East England
    array_regions[6]['y'] = '-0.06866455078125';
    array_regions[6]['zoom'] = 8;
    
    array_regions[7] = [];
    array_regions[7]['x'] = '51.213765926935025'; // South West England
    array_regions[7]['y'] = '-3.0377197265625';
    array_regions[7]['zoom'] = 7;
    
    array_regions[8] = [];
    array_regions[8]['x'] = '52.63639665997182'; // West Midlands
    array_regions[8]['y'] = '-1.899261474609375';
    array_regions[8]['zoom'] = 8;
    
    array_regions[9] = [];
    array_regions[9]['x'] = '54.29088164657006'; // Yorkshire and the Humber
    array_regions[9]['y'] = '-0.99700927734375';
    array_regions[9]['zoom'] = 8;
    
    array_regions[10] = [];
    array_regions[10]['x'] = '56.7587456818148'; // Scotland
    array_regions[10]['y'] = '-3.4112548828125';
    array_regions[10]['zoom'] = 7;
    
    array_regions[11] = [];
    array_regions[11]['x'] = '52.38901106223455'; // Wales
    array_regions[11]['y'] = '-3.49639892578125';
    array_regions[11]['zoom'] = 8;        
    
    array_regions[12] = [];
    array_regions[12]['x'] = '54.87344609731539'; // Northen Irland
    array_regions[12]['y'] = '-6.266326904296875';
    array_regions[12]['zoom'] = 9;     
    
    map.setZoom(array_regions[cbo.value]['zoom']);
    map.panTo(new GLatLng(array_regions[cbo.value]['x'],array_regions[cbo.value]['y'])); 
    
    do_search_region();
  }
}

// +----------------------------------------------------------------------+
// | Init ajax object
// +----------------------------------------------------------------------+
function initliveSearchReq()
{
  if(window.XMLHttpRequest)
  {
    // Firefox et autres
  	liveSearchReq = new XMLHttpRequest();
  } 
  else if(window.ActiveXObject)
  {
    // Internet Explorer 
  	try
    {
  		liveSearchReq = new ActiveXObject("Msxml2.XMLHTTP");
  	}
    catch (e)
    {
      liveSearchReq = new ActiveXObject("Microsoft.XMLHTTP");
  	}
  } 
}
// +----------------------------------------------------------------------+
function do_search()
{
	if (t)
		window.clearTimeout(t);

	t = window.setTimeout("do_search2()",400);
}
// +----------------------------------------------------------------------+
function do_search2()
{
  // Get user input
  var user_text = document.getElementById("txtSearch");
  var keywords = user_text.value;
  
	// Check at least 3 characters
  if(keywords.length < 3 && keywords.length!=0)
    return false;  

  // Display please wait message
  var  sh = document.getElementById("search_result");
  //sh.style.textAlign="center";
  sh.innerHTML = "Please wait...";

	// Create http object
  initliveSearchReq();
	
	// Set what to do once data returned
	liveSearchReq.onreadystatechange = display_results;

	// Run query !
	var url = "c_ajax_search.php?keywords=" + keywords + "&rand=" + Date();
  liveSearchReq.open("GET", url);
	
  // Finish transaction
	liveSearchReq.send(null);

}
// +----------------------------------------------------------------------+
function do_search_region()
{
  // Get user input
  var user_text = document.getElementById("cboSearch").value;

  // Display please wait message
  var  sh = document.getElementById("search_result");
  sh.innerHTML = "Please wait...";

	// Create http object
  initliveSearchReq();
	
	// Set what to do once data returned
	liveSearchReq.onreadystatechange = display_results;

	// Run query !
	var url = "c_ajax_search.php?region=" + user_text + "&rand=" + Date();
  liveSearchReq.open("GET", url);
	
  // Finish transaction
	liveSearchReq.send(null);

}
// +----------------------------------------------------------------------+
function display_results()
{
  //alert(liveSearchReq.readyState);
  
	if (liveSearchReq.readyState == 4)
  {
		var  sh = document.getElementById("search_result");
		//sh.style.textAlign="left";
		sh.innerHTML = liveSearchReq.responseText;
	}
}
// +----------------------------------------------------------------------+
function do_select(id)
{
  // Display please wait message
  var  sh = document.getElementById("inst_details");
  //sh.style.textAlign="center";
  sh.innerHTML = "Please wait...";
  
	// Create http object
  initliveSearchReq();  
  
	// Set what to do once data returned
	liveSearchReq.onreadystatechange= display_select;  
	
	// Run query !
  liveSearchReq.open("GET", "c_ajax_select.php?id=" + id + "&rand=" + Date());
	
  // Finish transaction
	liveSearchReq.send(null);
	
	// Update map
	if(array_points[id]!=null)
	{
    // If we are selecting a London institution and zoom level insufficient
    if(array_points[id]['is_london']=="1" && map.getZoom()<london_zoom_level)
    {
      // Move to generic marker
      map.panTo(new GLatLng(51.509163,-0.115882));
      marker_london.openInfoWindowHtml("Please <a class=\"black\" href=\"#\" onClick=\"zoom_london();return false;\">zoom in</a> for London-based institutions");      
    }
    else
    {
      // Display marker
      map.panTo(array_points[id]['point']);
      array_markers[id].openInfoWindowHtml(array_points[id]['description']);
    }
    
    // Update page title
    /*var title = array_points[id]['description'].split('</h4>')[0];
    title = title.replace('<h4>', '');
    document.title = title;*/
  }
  else
  {
    map.getInfoWindow().hide();
  }		
  
}
// +----------------------------------------------------------------------+
function display_select()
{
	if (liveSearchReq.readyState == 4)
  {
		var  sh = document.getElementById("inst_details");
		//sh.style.textAlign="left";
		sh.innerHTML = liveSearchReq.responseText;
	}
}
// +----------------------------------------------------------------------+
function do_get_coordinates(id)
{
  // Display please wait message
  var  sh = document.getElementById("div_coordinates");
  sh.innerHTML = "Please wait...";
  
  // Get address check boxes
  var chkAdd1 = document.getElementById("chkAdd1");
  chkAdd1 = chkAdd1.checked;
  var chkAdd2 = document.getElementById("chkAdd2");
  chkAdd2 = chkAdd2.checked;
  var chkAdd3 = document.getElementById("chkAdd3");
  chkAdd3 = chkAdd3.checked;
  var chkAddTown = document.getElementById("chkAddTown");
  chkAddTown = chkAddTown.checked;
  var chkAddCounty = document.getElementById("chkAddCounty");
  chkAddCounty = chkAddCounty.checked;
  var chkAddPostcode = document.getElementById("chkAddPostcode");
  chkAddPostcode = chkAddPostcode.checked;
  
	// Create http object
  initliveSearchReq();  
  
	// Set what to do once data returned
	liveSearchReq.onreadystatechange= display_coordinates;  
	
	// Run query !
	var url = "c_ajax_coordinates.php?id=" + id + "&chkAdd1=" + chkAdd1 + "&chkAdd2=" + chkAdd2 + "&chkAdd3=" + chkAdd3 + "&chkAddTown=" + chkAddTown + "&chkAddCounty=" + chkAddCounty + "&chkAddPostcode=" + chkAddPostcode + "&rand=" + Date();
  liveSearchReq.open("GET", url);
	
  // Finish transaction
	liveSearchReq.send(null);
  
}
// +----------------------------------------------------------------------+
function display_coordinates()
{
	if (liveSearchReq.readyState == 4)
  {
		var  sh = document.getElementById("div_coordinates");
		sh.innerHTML = liveSearchReq.responseText;
	}
}

