var IB_Blab; 
function IB_processReqChange() 
{ if(req.readyState == 4) { if(req.status == 200) { document.getElementById(IB_Blab).innerHTML = req.responseText; }
   else document.getElementById(IB_Blab).innerHTML = '<font color=red>Error 11 Failed to reach server.</font>'; }
}
// --------------------------------
// o is 'on': where on==3 is the full on (all results)
// al is the 'alignment' arg, selected from within the selected row
function swtdb(Ba,resid,o,al)
{
  IB_Blab = Ba;
  furl = "/Search/BLAST/Jobs/getdata.php";
  url = furl+"?loc="+Ba+"&resid="+resid+"&on="+o+"&al="+al;

  document.getElementById(IB_Blab).innerHTML = '<i>working</i>';
  // change the styles now
  if(o==1) document.getElementById(IB_Blab).setAttribute("class","blsfon");
  else document.getElementById(IB_Blab).setAttribute("class","blsfoff");

  if(window.XMLHttpRequest) 
  {
    req = new XMLHttpRequest();
    req.onreadystatechange = IB_processReqChange;
    req.open("GET", url, true);
    req.send(null);
  } 
  else if(window.ActiveXObject) 
  {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if(req) 
    {
      req.onreadystatechange = IB_processReqChange;
      req.open("GET", url, true);
      req.send();
    }
  }
}
//////////////////////////////////////////////////////////////////////////////////////////

function rowchoose(loc,db,resid)
{
  var ablk=document.getElementById('algnblk');
  var el = document.getElementById(loc);

  // first turn all rows off for row1-10_11-99
  for(var r=1;r<150;r++) { 
    for(var dd=1;dd<=41;dd++) { 
      var pos = "row"+r+"_"+dd;
      var o=document.getElementById(pos);
      if(o) { document.getElementById(pos).setAttribute("class","blsfoff"); }
    }
  }

  // now set the selected one
  var curclass = document.getElementById(loc).getAttribute("class");
  if(curclass=="rowhlt") el.setAttribute("class","blsfoff");
  else el.setAttribute("class","rowhlt");

  //alert("RESID:"+resid);

  // now for positions. we want to know the Y position of this click
  var yp=findPosY(el);
  var xp=685; // always the same from the left
  // so now we ajax at this position. we place a new object there and give it the rowsel class
  // empty the alignment block first
  if(ablk) {
    ablk.innerHTML="";
    ablk.setAttribute("class","algnblksty");
    ablk.style.position="absolute";
    ablk.style.top=yp-100; // reposition back up just a bit
    ablk.style.left=xp;
    ablk.style.width="500px";
    ablk.style.padding="10px";
    ablk.style.backgroundColor="#fff";
    ablk.style.border="5px #aaf solid";
    ablk.visibility="visible";
    swtdb('algnblk',resid,db,1);
  }
}


// see JS:positionings.php
function findPosY(obj)
{
  var curtop = 0;
  if(obj.offsetParent)
    while(1)
    {
      curtop += obj.offsetTop;
      if(!obj.offsetParent)
      break;
      obj = obj.offsetParent;
    }
    else if(obj.y)
    curtop += obj.y;
  return curtop;
}



//////////////////////////////////////////////////////////////////////////////////////////
function swtmode(umod)
{
  var hh=document.getElementById('db_blk');
  var baa=document.getElementById('aa');
  var bnn=document.getElementById('nn');

  if(umod==1) { 
    baa.checked=true;
    bnn.checked=false; 
    //hh.innerHTML = "<SELECT name=dbs[] multiple size=4><OPTION selected value=TB_H37Rv>H37Rv only</OPTION><OPTION value=nr>NCBI nr</OPTION><OPTION value=pdbaa>NCBI pdbaa</OPTION><OPTION value=all>All</OPTION></SELECT>";
  }
  else {
    bnn.checked=true;
    baa.checked=false;
    //hh.innerHTML="<SELECT name=dbs[] multiple size=4><OPTION selected value=H37Rv>H37Rv only</OPTION><OPTION value=strains>All strains</OPTION><OPTION value=nt>NCBI nt</OPTION><OPTION VALUE=all>All</OPTION></SELECT>";
  }
}
function chkentry()
{
  var tt=document.getElementById('inSeq').value;
  document.getElementById('inSeq').value=tt.toUpperCase(); // put it to upper case
  var useNN=true;

  // check any contents of the field
  if(tt) {
    var patt = new RegExp("M|K|L|Q|E|N|R|Y|W|I|F|V|D|S|H");
    if(patt.test(tt)) useNN=false;
  }
  if(useNN) { 
    document.getElementById('aa').checked=false;
    document.getElementById('nn').checked=true;
  }
  else {
    document.getElementById('aa').checked=true;
    document.getElementById('nn').checked=false;
  }
}

