   /** add event
    *
    * by Scott Andrew LePera - modified
    * http://www.scottandrew.com/weblog/articles/cbs-events
    *
    */
function addEvent(obj, evType, fn){
  //if (obj.addEventListener){
  //  obj.addEventListener(evType, fn, false);
  //  return true;
  //} else
  if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}

var lastopen=null;

function getEventTarget(e){
//by Peter Paul Koch - http://www.quirksmode.org/js/events_compinfo.html#link7
return (e.target) ? e.target : e.srcElement
}

function initpopups()
{
    // Find all elements
    //searchHighlight();
    if (!document.getElementsByTagName) return;
    ul = document.getElementsByTagName("ul");
    for (ui=0;ui<ul.length;ui++) {
        var thisUl = ul[ui];
        if (thisUl.className && ((thisUl.className=="dropdown") || (thisUl.className=="repertory")))  {
            //initTable(thisTbl.id);
            li=thisUl.childNodes;
            for(var i=0;i<li.length;i++)
            {
                //alert(""+i+"="+li[i].nodeName);
                if(li[i].nodeName=="LI")
                {
                   addEvent(li[i],"mouseover",dropdown);
                   addEvent(li[i],"mouseout",undrop);
                }
            }
        }
    }
    enableAlphaImages();

}

function getDropParent(obj)
{
    if (obj.parentNode.nodeName=="UL" && ((obj.parentNode.className=="dropdown") || (obj.parentNode.className=="repertory")))
        return obj;
    return getDropParent(obj.parentNode);

}

function isInParents(eobj,tobj)
{
    if(eobj==tobj)
        return true;
    if(eobj.parentNode)
         return isInParents(eobj.parentNode,tobj);
    return false;
}

function showParents(obj)
{
    if(obj.parentNode)
        {
        if (lastopen && (lastopen == obj))
            return showParents(obj.parentNode)+"->"+obj.tagName+"("+obj.className+")*";
        else
            return showParents(obj.parentNode)+"->"+obj.tagName+"("+obj.className+")";
        }
    return "document ";
}

function dropdown(obj)
{
    var r=getDropParent(getEventTarget(obj));
   // if (lastopen && (lastopen !=getEventTarget(obj)))
     //   lastopen.className='';
    if (lastopen && (lastopen==r)) return;
    if (lastopen)
        lastopen.className='';
    r.className='opened';
    lastopen=r;

    //alert("drop "+getEventTarget(obj).tagName);
}
function undrop(ev)
{
    var r=getEventTarget(ev);
    // if (ev.toElement)
      //  status=showParents(ev.toElement)+isInParents(ev.toElement,lastopen);

    if (lastopen)
       if (ev.toElement && (!isInParents(ev.toElement,lastopen)))
      {
      lastopen.className='';
      lastopen=undefined;
      return false;
      }
    // alert("undrop");
    return true;
}

function enableAlphaImages(){
	var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
	var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
        // var s="";
	if (itsAllGood) {
                // status="IE "+rslt[1];
		for (var i=0; i<document.all.length; i++){
			var obj = document.all[i];
                        if (!obj) break;
                        if (!obj.currentStyle) break;
			var bg = obj.currentStyle.backgroundImage;
			var img = document.images[i];
                        // s=s+" "+img.src;
                        // status=s;
			if (img && img.className && img.className=="transparent") {
                                // status=img.src;
				var src = img.src;
				img.style.width = img.width + "px";
				img.style.height = img.height + "px";
				img.style.filter =
				"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='crop')"
				img.src = "/Images/Decor/transgif";

			}

		}
	}
}

function getAncestorByTagName(e, tagName) {
  tagName = tagName.toLowerCase();
  do {
    e = e.parentNode;
  } while ((e.nodeType == 1) && (e.tagName.toLowerCase() != tagName));
  return e;
}

// Adapted from http://www.kryogenix.org/code/browser/searchhi/
function searchHighlight() {
  status='Search High';

  //if (!document.createElement) return;

  //var div = document.getElementById("main");
  var div=document.getElementsByTagName("body")[0];
  status='Search Start: '+div;
  if (!div) return;

  function getSearchWords(url) {
    if (url.indexOf('?') == -1) return [];
    var queryString = url.substr(url.indexOf('?') + 1);
    var params = queryString.split('&');
    for (var p in params) {
      var param = params[p].split('=');
      if (param.length < 2) continue;
      if (param[0] == 'q' || param[0] == 'p' || param[0] == 'searchparam') { // q= for Google, p= for Yahoo
        return unescape(param[1].replace(/\+/g, ' ')).split(/\s+/);
      }
    }
    return [];
  }

  function highlightWord(node, word, searchwordindex) {
    // If this node is a text node and contains the search word, highlight it by
    // surrounding it with a span element
    if (node.nodeType == 3) { // Node.TEXT_NODE
      var pos = node.nodeValue.toLowerCase().indexOf(word.toLowerCase());
      if (pos >= 0 && !/^searchword\d$/.test(node.parentNode.className)) {
        var span = document.createElement("span");
        span.className = "searchword" + (searchwordindex % 5);
        span.appendChild(document.createTextNode(
            node.nodeValue.substr(pos, word.length)));
        var newNode = node.splitText(pos);
        newNode.nodeValue = newNode.nodeValue.substr(word.length);
        node.parentNode.insertBefore(span, newNode);
        return true;
      }
    } else if (!node.nodeName.match(/button|select|textarea/i)) {
      // Recurse into child nodes
      for (var i = 0; i < node.childNodes.length; i++) {
        if (highlightWord(node.childNodes[i], word, searchwordindex)) i++;
      }
    }
    return false;
  }

  var words = getSearchWords(document.URL);
  status='Search: '+words;
  if (!words.length) words = getSearchWords(document.referrer);
  if (words.length) {
    for (var w in words) {
      if (words[w].length) highlightWord(div, words[w], w);
    }
  }
}


