// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

sfHover = function() {
  var sfEls = document.getElementById("topNav").getElementsByTagName("LI");
  for (var i=0; i<sfEls.length; i++) {
    sfEls[i].onmouseover=function() {
      this.className+=" sfhover";
    }
    sfEls[i].onmouseout=function() {
      this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
    }
  }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

function toggleLiveChatMenu(){
    if($("aim_remote").style.display == 'none'){
        Effect.BlindDown("aim_remote");
        $("chat_toggle").src = '/images/banners/chat_on.png';
    }
    else{
        Effect.BlindUp("aim_remote");
        $("chat_toggle").src = '/images/banners/chat_off.png';
    }
}

/* Javascript to insert definitions. Must be called as the onComplete of a call to /definition/list */

defn_cache = {};

function updateDefinitions(request)
{
  var defns = eval("(" + request.responseText + ")");
  var elements = $$('.takesDefs');
  var i = 0;
  for (var idx=0; idx<elements.length; idx++) {
    var element = elements[idx];
    var subject = element.innerHTML;
    for (word in defns) {
      i += 1;
      subject = subject.replace(eval('/\\b('+word+')\\b/i'), '<a href="javascript:;" class="info" onmouseover="loadDefn(this)" name="defn_' + defns[word] + '">' +
                                                             '<span id="defn_tag_' + i + '">Loading...</span>$1</a>');
    }
    element.innerHTML = subject;
  }
}

function loadDefn(anchor)
{
  span = anchor.firstChild;
  defn = anchor.name.substr(5);
  anchor.onmouseover = null;
  if (defn_cache[defn]) {
    span.innerHTML = defn_cache[defn]
  } else {
    new Ajax.Updater(span.id, '/definition/meaning/' + defn, {
      onSuccess: function(request) { defn_cache[defn] = request.responseText }
    });
  }
}

