function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function land(ref, target)
{
lowtarget=target.toLowerCase();
if (lowtarget=="_self") {window.location=loc;}
else {if (lowtarget=="_top") {top.location=loc;}
else {if (lowtarget=="_blank") {window.open(loc);}
else {if (lowtarget=="_parent") {parent.location=loc;}
else {parent.frames[target].location=loc;};
}}}
}

function jump(menu)
{
ref=menu.choice.options[menu.choice.selectedIndex].value;
splitc=ref.lastIndexOf("*");
target="";
if (splitc!=-1)
{loc=ref.substring(0,splitc);
target=ref.substring(splitc+1,1000);}
else {loc=ref; target="_self";};
if (ref != "") {land(loc,target);}
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function rowFilter() {
  var table = document.getElementById(arguments[0]);
  var show = true;
  
  //Process AND and OR operators
  //If no operators, default to AND
  //If 1 operator, use operator
  //If array of operators, use all operators
  var opArg = new Array();
  if (arguments.length != 4) {
    for (var a = 0; a < arguments[1].length-1; a++) {
      opArg[a] = 'AND';
    }
  }
  else {
    if (arguments[3].length == arguments[1].length-1) {
      for (var b = 0; b < arguments[1].length-1; b++) {
        opArg[b] = arguments[3][b];
      }
    }
    else {
      for (var c = 0; c < arguments[1].length-1; c++) {
        opArg[c] = arguments[3][0];
      }
    }  
  }
  //Process rows
  var tmp_show;
  for (var i = 1; i < table.rows.length; i++) {
    if (table.rows[i].cells[arguments[1][0]].childNodes[0].nodeValue.toString() == arguments[2][0] || arguments[2][0]=='RESET') {
      show = true;
    }
    else {
      show = false;
    }
    for (var j = 1; j < arguments[1].length; j++) {
      if (arguments[2][j]=='RESET') {
        tmp_show = true;
      } 
      else {
        if (table.rows[i].cells[arguments[1][j]].childNodes[0].nodeValue.toString() == arguments[2][j]) {
          tmp_show = true;
        }
        else {
          tmp_show = false;
        }
      }
      if (opArg[j-1] == 'AND') {
        //alert("arguments[3][j-1] > "+arguments[3][j-1]);
        if (tmp_show && show) {
          show = true;
        }
        else {
          show = false;
        }
      }
      else {
        if (tmp_show || show) {
          show = true;
        }
        else {
          show = false;
        }        
      }        
    }
    if (show) {
      table.rows[i].style.display = '';
    }
    else {
      table.rows[i].style.display = 'none';
    }
  }
}

function filterObj( oArg ) {
  var para = 'op' in oArg? oArg.op : "";
  if (para == "") {
    rowFilter( oArg.tableName , oArg.colIndex , oArg.frmValue);
  }
  else {
    rowFilter( oArg.tableName , oArg.colIndex , oArg.frmValue, oArg.op );
  }
}
