var $ = function(id) {
    if (typeof(id) == "string")
  return document.getElementById(id);
    return id;
}

var extend = function(dict1, dict2) {
  for (key in dict2) {
    dict1[key] = dict2[key];
  }
}

var blessObject = function(obj, proto) {
  var initializeArgs = [];
  for (var i=2; i<arguments.length; i++) initializeArgs[i-2] = arguments[i];
  extend(obj, proto);
  obj.initialize.apply(obj, initializeArgs);
  return obj;
}

var addClassName = function(elt, classname) {
  elt.className += " "+classname;
}
var removeClassName = function(elt, classname) {
  var classnames = elt.className.toString().split(/\s+/);
  var oknames = Array();
  for (var i=0; i<classnames.length; i++)
    if (classnames[i] != classname)
      oknames.push(classnames[i]);
  elt.className = oknames.join(' ');
}

var hasClassName = function(elt, classname) {
  var classnames = elt.className.toString().split(/\s+/);
  for (var i=0; i<classnames.length; i++)
    if (classnames[i] == classname)
      return true;
  return false;
}

var show = function(elt) {
  elt = $(elt);
  elt.style.display='';
}
var hide = function(elt) {
  elt = $(elt);
  elt.style.display='none';
}
var toggle = function(elt) {
  elt = $(elt);
  if (elt.style.display == 'none')
    return show(elt);
  return hide(elt);
}
var _toggle = toggle;

var observeEvent = function(element, eventName, handler, useCapture) {
  element = $(element);

  if (eventName == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.attachEvent))
    eventName = 'keydown';

  if (element.addEventListener) {
    element.addEventListener(eventName, handler, false, useCapture);
  } else {
    element.attachEvent("on" + eventName, handler);
  }

  return element;
}

var stopObservingEvent = function(element, eventName, handler) {
  if (eventName == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.attachEvent))
    eventName = 'keydown';

  if (element.removeEventListener)
    element.removeEventListener(eventName, handler, false);
  else
    element.detachEvent('on' + eventName, handler);

  return element;
}
function nodeText(node) {
  if (undefined != node.innerText)
    return node.innerText.toString();
  return node.textContent.toString();
}


var eventElement = function(event) {
  return event.target || event.srcElement;
}

function onloadHome() {
  // Turn event links into google maps links
  var eventsList = $('events');
  if (eventsList) {
    var links = eventsList.getElementsByTagName("a");
    for (var i=0; i<links.length; i++) {
      var link = links[i];
      if (!link.href) {
        link.href = "http://maps.google.com/?q="+encodeURIComponent(nodeText(link));
      } 
    } 


  } 
} 

