var req;
var fId;
function processAJAX(url,id,bust,dflt)
{
  fId = id;
  document.getElementById(fId).style.display = '';
  if (url.length > 0) {
    if (dflt.length > 0) {
      document.getElementById(fId).innerHTML = dflt;
    }
    if (bust) {
      if (url.indexOf("?") == -1) {
        url+="?ajaxusid="+Math.random();
      }
      else {
        url+="&ajaxusid="+Math.random();
      }
    }
    req = false;
    try { req = new XMLHttpRequest(); } catch(e) {
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {
    try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {
      alert("AJAX Error. Scripting for ActiveX might be disabled?");
      return;
    } } }
    req.onreadystatechange = processReqChange;
    req.open("GET", url , true);
    req.send(null);
  }
  else {
    document.getElementById(fId).innerHTML = "";
  }
}

function processReqChange()
{
  if (req.readyState == 4) {
    if (req.status == 200) {
      document.getElementById(fId).innerHTML = req.responseText;
    } else {
      document.getElementById(fId).innerHTML = "There was a problem retrieving the XML data:\n" + req.statusText;
    }
  }
}

function checkAll(field)
{
  if (typeof(field.length) == "undefined") {
    field.checked = true;
  }
  else {
    for (i=0; i<field.length; i++) {
      field[i].checked = true ;
    }
  }
}

function uncheckAll(field)
{
  if (typeof(field.length) == "undefined") {
    field.checked = false;
  }
  else {
    for (i = 0; i < field.length; i++) {
      field[i].checked = false ;
    }
  }
}

function siteRatings(act,rtg)
{
  var usrstrDiv = document.getElementById('usrstrDiv');
  switch(act) {
    case "click":
      processAJAX('/flag?rtg='+rtg,'objstrDiv',false,'');
      break;
    case "over":
      document.getElementById('allstrDiv').style.display='none';
      usrstrDiv.style.display='block';
      if (isNaN(rtg)) { rtg=0; }
      usrstrDiv.style.width=rtg*24+'px';
      switch(rtg) {
        case 1:
          usrstrDiv.style.backgroundColor="#ff0000";
          break;
        case 2:
          usrstrDiv.style.backgroundColor="#ff8f00";
          break;
        case 3:
          usrstrDiv.style.backgroundColor="#ffff00";
          break;
        case 4:
          usrstrDiv.style.backgroundColor="#a0ff00";
          break;
        case 5:
          usrstrDiv.style.backgroundColor="#00ff00";
          break;
        default:
          usrstrDiv.style.backgroundColor="#ccc";
          break;
      }
      break;
    case "out":
      document.getElementById('allstrDiv').style.display='block';
      usrstrDiv.style.display='none';
      usrstrDiv.style.width='0px';
      break;
  }
}

function reviewRatings(rid,rtg)
{
  processAJAX('/flag?rid='+rid+'&rtg='+rtg,'rvwrtg'+rid,false,'');
}

