////////////////////////////////////////////////////////////////////////////////////////////////
//	Created by Bill Hornbaker for the ASDM Sonoran Desert Digital Library - Jan 2007	
//	Revised November 2007, when ASDM took programming responsibility from the U of A
//	
//	Functions:
//		createXMLHttp()	-	creates the cross-browser XMLHttpRequest object
//		getIt(name)	-	calls ajax.php to fill in genus/species options
//	
////////////////////////////////////////////////////////////////////////////////////////////////

function createXMLHttp() {
 if (typeof XMLHttpRequest != "undefined") { 
  return new XMLHttpRequest();
 } else if (window.ActiveXObject) {
  var aVersions=["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
  for (i=0;i<aVersions.length;i++) {
   try {
    var oXMLHttp=new ActiveXObject(aVersions[i]);
    return oXMLHttp;
   } catch (oError) {
    //Do nothing 
   }
  }
 }
 throw new Error("XMLHttp object could not be created.");
}


function fixTerm(x) {
 var term=x.replace("&~8217;","'");
 for (i=0;i<term.length;i++) {
  if (term.charCodeAt(i)==8217) {
   term = "" + (term.substring(0, i) + "'" + term.substring((i + 1), term.length));
  }
 }
 document.getElementById('squery').value=term;
}

document.body.onclick=function() { document.getElementById('sg').style.display='none'; }
document.body.onkeyup=function(event) { e=(document.all) ? window.event : event; if (e.keyCode==9) document.getElementById('sg').style.display='none'; }

var selectionCount=0;
var sf=true;

function getIt(e,sc) {
 if (e.keyCode==13 || e.keyCode==9) {
  document.getElementById('sg').style.display!='none';
  return false;
 } else if ((e.keyCode==38 || e.keyCode==40) && (document.getElementById('sg').style.display!='none')) {
//  alert(e.keyCode);
  updown(e.keyCode,sc);
 } else {
  selectionCount=0;
  p1=document.getElementById('squery').value;
  p2=document.getElementById('autocheck').checked;
  document.getElementById('temp').value=p1;
  document.getElementById('sg').style.display='none';
  if (p2==true && p1.length>2) {
   var d=new Date();   
   var e=d.getTime(); 

   document.getElementById('sg').innerHTML='';
   var sWidth=document.getElementById('squery').offsetWidth;
   document.getElementById('sg').style.width=sWidth+'px';

   oXMLHttp=createXMLHttp();
   oXMLHttp.open("get","files/AJAX/ajax.php?p1="+p1+"&uniqueKey="+e,true);
   oXMLHttp.onreadystatechange=function () {
    if (oXMLHttp.readyState==4) {
     if (oXMLHttp.status==200) { 
      var output=oXMLHttp.responseText;
//      alert(output);
      if (output!="") {
 //      alert("sg width: "+document.getElementById('sg').style.width);
       document.getElementById('sg').innerHTML=output;
       document.getElementById('sg').style.display='block';
      }
     } else {
       document.getElementById('sg').style.display='none';
     }
    }
   };
   oXMLHttp.send(null);
  } else {
   return false;
  }
 }
}
function updown(e,sc) { 
 var tmp=document.getElementById('temp').value;
 if (e==38) {
  s1=sc-1;
  if (s1>=0) {
   resetDivs();
   if (s1!=0) {
    s=s1;
    document.getElementById('sgd'+s).className='sgSubDivHover';
    fixTerm(document.getElementById('sgd'+s).innerHTML);
   } else {
    document.getElementById('sg').style.display='none';
    document.getElementById('squery').value=tmp;
   }
  }
 }
 if (e==40) {
  s1=sc+1;
  if (s1>=0 && s1<6 && (document.getElementById('sgd'+s1))) {
   resetDivs();
   s=s1; 
   document.getElementById('sgd'+s).className='sgSubDivHover'; 
   fixTerm(document.getElementById('sgd'+s).innerHTML);
  }
 }
 selectionCount=s;
}
function resetDivs(x) {
  for (j=1;j<6;j++) {
   if (document.getElementById('sgd'+j)) document.getElementById('sgd'+j).className='sgSubDiv'; 
  }
  if (x=="hand") selectionCount=0;
}
function showQuery() {
 str=document.getElementById('squery').value;
 sOut="";
 for (i=0;i<str.length;i++) {
  sOut+="-"+str.charCodeAt(i);
 }
 alert(sOut);
}
function loadlist(stuff) {
  selectionCount=0;
  p1=document.getElementById('squery').value;
  p2=document.getElementById('autocheck').checked;
  document.getElementById('temp').value=p1;
  document.getElementById('sg').style.display='none';
   var d=new Date();   
   var e=d.getTime(); 
   oXMLHttp=createXMLHttp();
   oXMLHttp.open("get","files/AJAX/spOut.php"+stuff+"&t="+e,true);
   oXMLHttp.onreadystatechange=function () {
    if (oXMLHttp.readyState==4) {
     if (oXMLHttp.status==200) { 
      var output=oXMLHttp.responseText;
//      alert(output);
      if (output!="") {
       document.getElementById('speciesList').innerHTML=output;
      }
     } else {
       document.getElementById('speciesList').innerHTML="error";
     }
    }
   };
   oXMLHttp.send(null);
}