// JavaScript functions used by the Gazetteer module
var ajax_id='';
var ajax_name='';

// close popup+reload window.opener
//
function closeRefresh(){
 if (window.opener && !window.opener.closed) window.opener.location.href = window.opener.location.href;
 window.close();
}


//AJAX functionality
//
function createXmlHttpRequest(){
  var XmlHttpRequestObject;
  if (typeof XMLHttpRequest != "undefined"){
   XmlHttpRequestObject = new XMLHttpRequest();
  }
  else if (window.ActiveXObject){
   //look up the highest possible MSXML version
   var tryPossibleVersions=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

  for (i=0; i< tryPossibleVersions.length; i++){
   try{
      XmlHttpRequestObject = new ActiveXObject(tryPossibleVersions[i]);
      break;
   }
   catch (xmlHttpRequestObjectError){
   //ignore
   }
  }
 }
 return XmlHttpRequestObject;
}


//called by the user/page
//
function updateList(what,item,div){
 var requestObject = createXmlHttpRequest();
 var cacheBuster = new Date() * 1;
 var val=document.getElementById(item).value;
 requestObject.open("GET","gazetteer.php?p=ajax&a=list_"+what+"&val="+val+"&"+cacheBuster,true);
 requestObject.onreadystatechange = function ProcessRequest(){
  if (requestObject.readyState == 4)
    {
        if (requestObject.status == 200)
        {
          var result = requestObject.responseText;
          var cw = document.getElementById(item).clientWidth || 200;
		  document.getElementById(div).style.width=cw+'px';
          document.getElementById(div).innerHTML=result;
		  hide_suggestion(div,0);
        }
        else
        {
          document.getElementById(div).innerHTML='[xmlHttp Error]';
        }
    }
 }
 requestObject.send(null);
}

// show/hide an element
//
function hide_suggestion(object,hide) {
  if (document.getElementById) {
    if (hide==1)
      document.getElementById(object).style.visibility = 'hidden';
    else
      document.getElementById(object).style.visibility = '';
  }

  else if (document.layers && document.layers[object] != null) {
    if (hide==1)
      document.layers[object].visibility = 'hidden';
    else
      document.layers[object].visibility = '';
  }

  else if (document.all) {
    if (hide==1)
      document.all[object].style.visibility = 'hidden';
    else
      document.all[object].style.visibility = '';
  }

  //return false;
}