var smooth_timer;

function ShowTip(fArg) {
  var tooltipOBJ = (document.getElementById) ? document.getElementById('ih' + fArg) : eval("document.all['ih" + fArg + "']");
  if (tooltipOBJ != null) {
    var tooltipLft = (document.body.offsetWidth?document.body.offsetWidth:document.body.style.pixelWidth) - (tooltipOBJ.offsetWidth?tooltipOBJ.offsetWidth:(tooltipOBJ.style.pixelWidth?tooltipOBJ.style.pixelWidth:$TOOLTIPWIDTH)) - 5;    var tooltipTop = 10;

    if (navigator.appName == 'Netscape') {
      if (parseFloat(navigator.appVersion) >= 5) tooltipTop = (document.body.scrollTop>=0?document.body.scrollTop+10:event.clientY+10);
      tooltipOBJ.style.left = tooltipLft; tooltipOBJ.style.top = tooltipTop;
    }
    else {
      tooltipLft -= 30;
      tooltipTop = (document.body.scrollTop?document.body.scrollTop:document.body.offsetTop) + event.clientY - (tooltipOBJ.scrollHeight?tooltipOBJ.scrollHeight:tooltipOBJ.style.pixelHeight) - 30;
      if (tooltipTop < (document.body.scrollTop?document.body.scrollTop:document.body.offsetTop) + 10) {
        if (event.clientX > tooltipLft) tooltipTop = (document.body.scrollTop?document.body.scrollTop:document.body.offsetTop) + event.clientY + 30;
        else tooltipTop = (document.body.scrollTop?document.body.scrollTop:document.body.offsetTop) + 10;
      }
      tooltipOBJ.style.pixelLeft = tooltipLft; tooltipOBJ.style.pixelTop = tooltipTop;
    }
    tooltipOBJ.style.visibility = "visible";
  }
}

function HideTip(fArg) {
  var tooltipOBJ = (document.getElementById) ? document.getElementById('ih' + fArg) : eval("document.all['ih" + fArg + "']");
  if (tooltipOBJ != null) tooltipOBJ.style.visibility = "hidden";
}

function smoothHeight(id, curH, targetH, stepH, mode) {
  diff = targetH - curH;
  if (diff != 0) {
    newH = (diff > 0) ? curH + stepH : curH - stepH;
    ((document.getElementById) ? document.getElementById(id) : eval("document.all['" + id + "']")).style.height = newH + "px";
    if (smooth_timer) window.clearTimeout(smooth_timer);
    smooth_timer = window.setTimeout( "smoothHeight('" + id + "'," + newH + "," + targetH + "," + stepH + ",'" + mode + "')", 2 );
  }
  else if (mode != "o") ((document.getElementById) ? document.getElementById(mode) : eval("document.all['" + mode + "']")).style.display="none";
}

function rowOver(i, nColor) {
  if (!nColor) nColor = "#ECECD9";
  var nameObj = (document.getElementById) ? document.getElementById('name' + i) : eval("document.all['name" + i + "']");
  if (nameObj != null) nameObj.style.background=nColor;
}

function getBrowser(){
	var BrowserDetect = {
	  init:
	  function () {
	    this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
	    this.version = this.searchVersion(navigator.userAgent)
	            || this.searchVersion(navigator.appVersion)
	            || "an unknown version";
	    this.OS = this.searchString(this.dataOS) || "an unknown OS";
	  },
	  searchString: function (data) {
	    for (var i=0;i<data.length;i++) {
	      var dataString = data[i].string;
	      var dataProp = data[i].prop;
	      this.versionSearchString = data[i].versionSearch || data[i].identity;
	      if (dataString) {
	        if (dataString.indexOf(data[i].subString) != -1)
	          return data[i].identity;
	      }
	      else if (dataProp)
	      return data[i].identity;
	    }
	  },
	  searchVersion: function (dataString) {
	    var index = dataString.indexOf(this.versionSearchString);
	    if (index == -1) return;
	    return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	  },
	  dataBrowser: [
	          {       string: navigator.userAgent,
	                  subString: "OmniWeb",
	                  versionSearch: "OmniWeb/",
	                  identity: "OmniWeb"
	          },
	          {
	                  string: navigator.vendor,
	                  subString: "Apple",
	                  identity: "Safari"
	          },
	          {
	                  prop: window.opera,
	                  identity: "Opera"
	          },
	          {
	                  string: navigator.vendor,
	                  subString: "iCab",
	                  identity: "iCab"
	          },
	          {
	                  string: navigator.vendor,
	                  subString: "KDE",
	                  identity: "Konqueror"
	          },
	          {
	                  string: navigator.userAgent,
	                  subString: "Firefox",
	                  identity: "Firefox"
	          },
	          {
	                  string: navigator.vendor,
	                  subString: "Camino",
	                  identity: "Camino"
	          },
	          {               // for newer Netscapes (6+)
	                  string: navigator.userAgent,
	                  subString: "Netscape",
	                  identity: "Netscape"
	          },
	          {
	                  string: navigator.userAgent,
	                  subString: "MSIE",
	                  identity: "Explorer",
	                  versionSearch: "MSIE"
	          },
	          {
	                  string: navigator.userAgent,
	                  subString: "Gecko",
	                  identity: "Mozilla",
	                  versionSearch: "rv"
	          },
	          {               // for older Netscapes (4-)
	                  string: navigator.userAgent,
	                  subString: "Mozilla",
	                  identity: "Netscape",
	                  versionSearch: "Mozilla"
	          }
	  ],
	  dataOS : [
	          {
	                  string: navigator.platform,
	                  subString: "Win",
	                  identity: "Windows"
	          },
	          {
	                  string: navigator.platform,
	                  subString: "Mac",
	                  identity: "Mac"
	          },
	          {
	                  string: navigator.platform,
	                  subString: "Linux",
	                  identity: "Linux"
	          }
	  ]
	};
  BrowserDetect.init();
  return BrowserDetect.browser;
}

function rowOut(i, nColor) {
  var trObj = (document.getElementById) ? document.getElementById('ihtr' + i) : eval("document.all['ihtr" + i + "']");
  var nameObj = (document.getElementById) ? document.getElementById('name' + i) : eval("document.all['name" + i + "']");
  if (trObj == null || trObj.style.display=="none") nameObj.style.background=nColor;
}

function servOC(i, href, nColor, triangleID, itemCount) {
  var itemHeight = 65;

  var trObj = (document.getElementById) ? document.getElementById('ihtr' + i) : eval("document.all['ihtr" + i + "']");
  var nameObj = (document.getElementById) ? document.getElementById('name' + i) : eval("document.all['name" + i + "']");
  var ifObj = (document.getElementById) ? document.getElementById('ihif' + i) : eval("document.all['ihif" + i + "']");

  var browser = getBrowser();

  if (browser == "Firefox"){
    trObj.addEventListener("click", stopEvent, false);
    nameObj.addEventListener("click", stopEvent, false);
    nameObj.addEventListener("click", stopEvent, false);
  }
  else {
    window.event.cancelBubble = true;
  };
 if (trObj != null) {
    if (trObj.style.display=="none") {
      ifObj.style.height = "0px";
      trObj.style.display="";
      nameObj.style.background="#FFFFFF";
      if (browser == "Safari" || browser == "Konquerors"){
         setTimeout("toggleDownUp('triangle_"+i+"','down');",1);
      }   else {
        toggleDownUp('triangle_'+i,'down');
      }
      //if (!ifObj.src)
      ifObj.src = href;
      //smoothHeight('ihif' + i, 0, 210, 42, 'o');
      smoothHeight('ihif' + i, 0, itemCount*itemHeight, itemHeight, 'o');
    }
    else {
      nameObj.style.background=nColor;
      //smoothHeight('ihif' + i, 210, 0, 42, 'ihtr' + i);
      smoothHeight('ihif' + i, itemCount*itemHeight, 0, itemHeight, 'ihtr' + i);
      if (browser == "Safari" || browser == "Konquerors"){
      setTimeout("toggleDownUp('triangle_"+i+"','up');",1);
      } else {
        toggleDownUp('triangle_'+i,'up');
      }
     /* triangleID.setAttribute('src', '/img/serp-toggle-up.gif');*/
    }
  }
}



function stopEvent(ev) {
  // this ought to keep t-daddy from getting the click.
  ev.stopPropagation();
//return false;
// alert("event propagation halted.");
//  ev.cancelBubble = true;
}

function toggleDownUp(ele,pos){
	var ele = document.getElementById(ele);
	if (pos.toLowerCase() == "up"){
		ele.setAttribute('src', 'images/expand.png');
	}else if(pos.toLowerCase() == "down"){
		ele.setAttribute('src', 'images/collapse.png');
	}else{
		ele.setAttribute('src', 'images/expand.png');
	}
}

