// Rollover/preload script by Matt Ditter (Nov. 2007)
// version 1.6 (August 2008)
var prePaths = [], preImages = [], rollImages = [];
function addEvent(evt,func,obj) {
 obj = obj ? obj : window;
 if (obj.addEventListener) { obj.addEventListener(evt,func,false); return true; }
 else if (obj.attachEvent) { var ev = obj.attachEvent('on'+evt,func,event); return ev; }
 else return false;
}
function preload() {
 for (var i=0, path; path = prePaths[i]; i++) {
  var l = preImages.length;
  preImages[l] = new Image();
  preImages[l].src = path;
}}
function preroll() {
 var imgs, flag, path, dot, d = document, links = d.getElementsByTagName('a'), inps = d.getElementsByTagName('input');
 for (var i=0, a; a = links[i]; i++) {
  imgs = a.getElementsByTagName('img');
  flag = 0;
	if (a.onmouseover && imgs.length) a.onfocus = a.onmouseover;
  for (var j=0, img; img = imgs[j]; j++) {
   if (img.className.match(/(?:^|\s)over(?:\s|$)/i)) {
    path = img.src;
    dot = path.lastIndexOf('.');
    prePaths[prePaths.length] = path.substring(0,dot)+'-o'+path.substring(dot,path.length);
    flag = 1;
  }}
  if (flag) {
   addEvent('mouseover',imageRoll,a);
   addEvent('mouseout',imageRoll,a);
   addEvent('focus',imageRoll,a);
   addEvent('blur',imageRoll,a);
 }}
 for (var i=0, inp; inp = inps[i]; i++) {
  if (inp.type == 'image' && inp.className.match(/(?:^|\s)over(?:\s|$)/i)) {
   addEvent('mouseover',inputRoll,inp);
   addEvent('mouseout',inputRoll,inp);
   addEvent('focus',inputRoll,inp);
   addEvent('blur',inputRoll,inp);
 }}
 for (var i=0, arg; arg = arguments[i]; i++) prePaths[prePaths.length] = arg;
 addEvent('load',preload);
}
function imageRoll(e) {
 var imgs, path, dot, a = this.tagName ? this : e.srcElement;
 while (a.tagName != 'A' && a.parentNode) a = a.parentNode;
 if (a.tagName != 'A') return;
 imgs = a.getElementsByTagName('img');
 for (var i=0, img; img = imgs[i]; i++) {
  if (img.className.match(/(?:^|\s)over(?:\s|$)/i)) {
   path = img.src;
   dot = path.lastIndexOf('.');
   if (img.className.indexOf('activeimg') == -1)
    img.src = path.indexOf('-o.') == -1 ? path.substring(0,dot)+'-o'+path.substring(dot,path.length) : path.replace('-o.','.');
   else img.src = path.indexOf('-a.') == -1 ? path.replace('-o.','-a.') : path.replace('-a.','-o.');
}}}
function inputRoll(e) {
 var inp = this.type ? this : e.srcElement, path = inp.src, dot = path.lastIndexOf('.');
 inp.src = path.indexOf('-o.') == -1 ? path.substring(0,dot)+'-o'+path.substring(dot,path.length) : path.replace('-o.','.'); 
}
function roll(e) {
 var args = arguments;
 if (args.length < 2) for (var i=0, img; img = rollImages[i]; i++) img.src = img.old;
 else {
  var flag, path, ev, a;
  for (var i=0, img; img = document.getElementById(args[i]); i=i+2) {
   flag = 0;
   path = args[i+1];
   if (!i) {
    ev = window.event ? window.event : e;
    a = ev.target ? ev.target : ev.srcElement;
    if (!path || !ev) return;
    addEvent('mouseout',roll,a);
    addEvent('blur',roll,a);
   }
   for (var j=0, rollImg; rollImg = rollImages[j]; j++)
    if (img == rollImg) { flag = 1; break; }
   if (!flag) rollImages[rollImages.length] = img;
   if (!img.old) img.old = img.src;
   img.src = path;
}}}