var dynlist_request = false;
var mplayer_request = false;

function makeDynlistRequest(url, parameters) {
  var inIframe = 1;
   if (inIframe)
   {
     window.parent.document.myform.search.value = "Searching...";
   }
   else
   {
     document.myform.search.value = "Searching...";
   }

// alert("makeDynlistRequest: " + parameters);
   dynlist_request = false;
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      dynlist_request = new XMLHttpRequest();
      if (dynlist_request.overrideMimeType) {
         // set type accordingly to anticipated content type
         //dynlist_request.overrideMimeType('text/xml');
         dynlist_request.overrideMimeType('text/html');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         dynlist_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            dynlist_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }
   if (!dynlist_request) {
      alert('Cannot create XMLHTTP instance');
      return false;
   }

   if (inIframe == 1)
   {
     dynlist_request.onreadystatechange = updateDynlistIframe;
   }
   else
   {
     dynlist_request.onreadystatechange = updateDynlist;
   }

   dynlist_request.open('GET', url + parameters, true);
   dynlist_request.send(null);
}

function updateDynlist() {
   if (checkReadyState(dynlist_request))
   {
     //alert(dynlist_request.responseText);
     result = dynlist_request.responseText;
     document.getElementById('dynamic_list').innerHTML = result;            
     document.myform.search.value = "";
   }
}

function updateDynlistIframe() {
   if (checkReadyState(dynlist_request))
   {
//   alert(dynlist_request.responseText);
     result = dynlist_request.responseText;
     window.parent.document.getElementById('dynamic_list').innerHTML = result;            
     window.parent.document.myform.search.value = "";
   }
}

function makeMplayerRequest(url, parameters, inIframe) {
// alert("makeMplayerRequest: " + parameters);
   mplayer_request = false;
   if (window.XMLHttpRequest) { // Mozilla, Safari,...
      mplayer_request = new XMLHttpRequest();
      if (mplayer_request.overrideMimeType) {
         // set type accordingly to anticipated content type
         //mplayer_request.overrideMimeType('text/xml');
         mplayer_request.overrideMimeType('text/html');
      }
   } else if (window.ActiveXObject) { // IE
      try {
         mplayer_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
         try {
            mplayer_request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e) {}
      }
   }
   if (!mplayer_request) {
      alert('Cannot create XMLHTTP instance');
      return false;
   }

   if (inIframe)
   {
     mplayer_request.onreadystatechange = updateMplayerIframe;
   }
   else
   {
     mplayer_request.onreadystatechange = updateMplayer;
   }

   mplayer_request.open('GET', url + parameters, true);
   mplayer_request.send(null);
}

function updateMplayer() {
   if (checkReadyState(mplayer_request)) {
         //alert(mplayer_request.responseText);
         result = mplayer_request.responseText;
         document.getElementById('musicplayer').innerHTML = result;            
   }
}

function updateMplayerIframe() {
   if (checkReadyState(mplayer_request)) {
         //alert(mplayer_request.responseText);
         result = mplayer_request.responseText;
         window.parent.document.getElementById('musicplayer').innerHTML = result;            
   }
}

function checkReadyState(obj)
{
  if(obj.readyState == 4) {
    if(obj.status == 200) {
      return true;
    }
    else {
      alert("Problem retrieving XML data");
    }
  }
}

function getDynlist(obj) {
   var getstr = "?";
   for (i=0; i<obj.childNodes.length; i++) {
        // alert("Found node\n"
        //     + "Name:  " + obj.childNodes[i].name
        //     + "Value: " + obj.childNodes[i].value);
      if (obj.childNodes[i].tagName == "INPUT") {
         if (obj.childNodes[i].type == "text") {
            getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
         }
         if (obj.childNodes[i].type == "checkbox") {
            if (obj.childNodes[i].checked) {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            } else {
               getstr += obj.childNodes[i].name + "=&";
            }
         }
         if (obj.childNodes[i].type == "radio") {
            if (obj.childNodes[i].checked) {
               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
         }
      }   
      if (obj.childNodes[i].tagName == "SELECT") {
         var sel = obj.childNodes[i];
         getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
      }
      
   }
//alert("calling makeDynlistRequest: " + getstr);
  makeDynlistRequest('b3query.cgi', getstr);
}

function getDocHeight(doc) {
  var docHt = 0, sh, oh;
  if (doc.height) docHt = doc.height;
  else if (doc.body) {
    if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight;
    if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight;
    if (sh && oh) docHt = Math.max(sh, oh);
  }
  return docHt;
}

function setIframeHeight() {
  var iframeEl = document.getElementById("ifrm");

//var myWidth = 630, myHeight = 460;
  var myWidth = 0, myHeight = 0;

  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }

  iframeEl.style.height = myHeight - 70 + "px";
  iframeEl.style.width  = myWidth - 300 + "px";
}

function loadIframe(iframeName, url) {
  if ( window.frames[iframeName] ) {
    window.frames[iframeName].location = url;   
    return false;
  }
  else return true;
}

function goSetHeight() {
  if (parent == window) return;
  // no way to obtain id of iframe object doc loaded into? no parentNode or parentElement or ...
  else parent.setIframeHeight('ifrm');
}



