// JavaScript Document
function addEvent(obj, evType, fn, useCapture){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be attached");
  }
}

function element(id) {
  var e = false;
  if (document.getElementById) { e = document.getElementById(id); }
  else if (document.all) { e = document.all(id); }
  return e;
}

/* Better(?) Image cross fader (C)2004 Patrick H. Lauke aka redux */
var previousImage, currentImage, galleryImages, gallery, galleryId = 'slideshow'; /* general variables */
function preInit() { /* hide the image gallery list before even onload is triggered */
 if ((document.getElementById)&&(gallery=document.getElementById(galleryId))) {
  gallery.style.visibility = "hidden";
  clearTimeout(preInitTimer);
 } else { preInitTimer = setTimeout("preInit()",5); }
}

function fader(imageNumber,opacity) {
 var obj=galleryImages[imageNumber];
 if (obj.style.MozOpacity!=null) { obj.style.MozOpacity = (opacity/100) - .001; } 
 else if (obj.style.opacity!=null) { obj.style.opacity = (opacity/100) - .001; } 
 else if (obj.style.filter!=null) { obj.style.filter = "alpha(opacity="+opacity+")"; }
}

function fadeInit() {
 if (document.getElementById) { //preInit(); /* shouldn't be necessary, but IE can sometimes get ahead of itself and trigger fadeInit first */
  gallery=document.getElementById(galleryId);
  if(gallery){
   galleryImages = gallery.childNodes; /* get all child nodes... */
   for(i=0;i<galleryImages.length;i++) {
    galleryImages[i].style.position='absolute';
    galleryImages[i].style.top=0;
    galleryImages[i].style.zIndex=0;
    fader(i,0); /* set their opacity to transparent */
   }
   gallery.style.visibility = 'visible'; /* make the list visible again */
   currentImage=0; /* initialise a few parameters to get the cycle going */
   previousImage=galleryImages.length-1;
   opacity=100;
   fader(currentImage,100);
   window.setTimeout("crossfade(200)", 1000); /* start the whole crossfade process after a second's pause */
   return void(0);
  }
  else { return false; }
 }
 else { return false; }
}

function crossfade(opacity) {
    if (opacity < 101) {
        fader(currentImage,opacity);
        opacity += 5;
        window.setTimeout("crossfade("+opacity+")", 75);
    } else {
        fader(previousImage,0);
        previousImage=currentImage;
        currentImage+=1;
        if (currentImage>=galleryImages.length) { currentImage=0; }
        galleryImages[previousImage].style.zIndex = 0;
        galleryImages[currentImage].style.zIndex = 100;
        opacity=0;
        window.setTimeout("crossfade("+opacity+")", 2000);
    } 
}
/* initialise fader by hiding image object first */
addEvent (window,'load',fadeInit);


