function addEvent(elm, evType, fn, useCapture) {
  // cross-browser event handling for IE5+, NS6 and Mozilla 
  // By Scott Andrew 
  if (elm.addEventListener) { 
    elm.addEventListener(evType, fn, useCapture); 
    return true; 
  } else if (elm.attachEvent) { 
    var r = elm.attachEvent('on' + evType, fn); 
    return r; 
  } else {
    elm['on' + evType] = fn;
  }
}

function ascendDOM(e, target) {
  while (e.nodeName.toLowerCase() != target && 
      e.nodeName.toLowerCase() != 'html')
    e = e.parentNode;  
  return (e.nodeName.toLowerCase() == 'html') ? null : e;
}

function nextElement(obj) {
  var obj = obj.nextSibling;
  while (obj.nodeType != 1)
    obj = obj.nextSibling;
  return obj;
}

var Teaser = {
  init: function() {
    var teaser = document.getElementById("teaser");
    if (!teaser) return false;
    var listItems = teaser.getElementsByTagName("ul")[0].getElementsByTagName("a");
    for (var i=0; i < listItems.length; i++)
    {
      var item = listItems[i];
      addEvent(item, "mouseover", Teaser.toggle, false);
    }
  },
  toggle: function(e)
  {
    var el;
    if (window.event && window.event.srcElement)
      el = window.event.srcElement;
    if (e && e.target)
      el = e.target;
    if (!el) return;
    Teaser.clearState();
    ascendDOM(el, "li").className = "selected";
  },
  clearState: function()
  {
    var teaser = document.getElementById("teaser");
    if (!teaser) return false;
    var listItems = teaser.getElementsByTagName("ul")[0].getElementsByTagName("a");
    for (var i=0; i < listItems.length; i++)
    {
      ascendDOM(listItems[i], "li").className = "";
    }
  }
}

var Ticker = {
    init: function()
    {
        ticker = document.getElementById("ticker");
        if (!ticker) return false;
        link = ticker.getElementsByTagName("a")[0].href;
        addEvent(ticker, "click", function(){ location.href = link;}, false)
    }
}

String.prototype.replaceAll = function(strTarget, strSubString)
{
    var strText = this;
    var intIndexOfMatch = strText.indexOf( strTarget );
    while (intIndexOfMatch != -1)
    {
        strText = strText.replace( strTarget, strSubString )
        intIndexOfMatch = strText.indexOf( strTarget );
    }
    return( strText );
}

addEvent(window, 'load', Teaser.init, false);

