function rotate() {
  if( nextprevhit == 0 ) {	
  var delay = 7;
  if (!document.getElementById) {
    return;
  }
  var divToRotate = document.getElementById("rotatingpuff");
  var divs = divToRotate.getElementsByTagName("div");
  var validDivs = 0;
  for (var i=0; i < divs.length; i++ ) {
    var div = divs[i];
    if ( (div.id != "") && (div.nodeType == 1) ) {
        div.style.display = "none";
		validDivs++;
    }
  }
  if (rotationCount > validDivs) {
        rotationCount = 1;
  }
  if (rotationCount > 0) {
    var divIdToReveal  = rotationCount;
    var divToRevealObj = document.getElementById("rotwof"+divIdToReveal);
	fadeToDiv(divToRevealObj);
    rotationCount++;
  } else {
    var randDivId = Math.ceil( Math.random() * (validDivs) );
	var firstDivToRevealObj = document.getElementById("rotwof"+randDivId);
    firstDivToRevealObj.style.display = "block";
	rotationCount = randDivId;
	rotationCount++;
  }
  timeout = setTimeout('rotate()', delay*1000);
  }
}
function fadeToDiv(divToRevealObj) {
  setOpacity(divToRevealObj.id, 0);
  divToRevealObj.style.display = "block";
  fadeInDiv(divToRevealObj.id,0);
}
function fadeInDiv(divId, opacity) {
  if (opacity <= 100) {
	setOpacity(divId, opacity);
	opacity += 5;
	fade = window.setTimeout("fadeInDiv('"+divId+"',"+opacity+")", 100);
  }
}
function setOpacity(divId, opacity) {
  var div = document.getElementById(divId);
  opacity = (opacity == 100)?99.999:opacity;
  div.style.filter = "alpha(opacity:"+opacity+")";
  div.style.KHTMLOpacity = opacity/100;
  div.style.MozOpacity = opacity/100;
  div.style.opacity = opacity/100;
}
function nextRotWof() {
  var delay = 7;
  if (!document.getElementById) {
    return;
  }
  var divToRotate = document.getElementById("rotatingpuff");
  var divs = divToRotate.getElementsByTagName("div");
  var validDivs = 0;
  for (var i=0; i < divs.length; i++ ) {
    var div = divs[i];
    if ( (div.id != "") && (div.nodeType == 1) ) {
        div.style.display = "none";
                validDivs++;
    }
  }
  rotationCount++;
  if (rotationCount > validDivs) {
        rotationCount = 1;
  }
  if (rotationCount > 0) {
    var divIdToReveal  = rotationCount;
    var divToRevealObj = document.getElementById("rotwof"+divIdToReveal);
        fadeToDiv(divToRevealObj);
  } else {
    var randDivId = Math.ceil( Math.random() * (validDivs) );
        var firstDivToRevealObj = document.getElementById("rotwof"+randDivId);
    firstDivToRevealObj.style.display = "block";
        rotationCount = randDivId;
  }
  nextprevhit = 1;
}
function prevRotWof() {
  var delay = 7;
  if (!document.getElementById) {
    return;
  }
  var divToRotate = document.getElementById("rotatingpuff");
  var divs = divToRotate.getElementsByTagName("div");
  var validDivs = 0;
  for (var i=0; i < divs.length; i++ ) {
    var div = divs[i];
    if ( (div.id != "") && (div.nodeType == 1) ) {
        div.style.display = "none";
                validDivs++;
    }
  }
  if(nextprevhit == 0) {
	  rotationCount--;
  }
  rotationCount--;
  if (rotationCount < 1) {
        rotationCount = validDivs;
  }
  if (rotationCount > 0) {
    var divIdToReveal  = rotationCount;
    var divToRevealObj = document.getElementById("rotwof"+divIdToReveal);
        fadeToDiv(divToRevealObj);
  } else {
    var randDivId = Math.ceil( Math.random() * (validDivs) );
        var firstDivToRevealObj = document.getElementById("rotwof"+randDivId);
    firstDivToRevealObj.style.display = "block";
        rotationCount = randDivId;
  }
  nextprevhit = 1;
}

	var rotationCount = 0;				// Global var for tracking how many rotations have been done
	var nextprevhit = 0;
	var timeout;
	var fade;
	rotate();							// Do the work

//Code to stop rotation onmouseover and start again onmouseout
//AJB 20/07/06
function stopRotate(e){
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;	
	var rotwof;
	while ((tg.id.indexOf("rotwof")!=-1 || tg.id=='' || tg.id=='undefined') && tg.nodeName != 'BODY'){
		rotwof = tg;
		tg = tg.parentNode;
	}	
	if (tg.id == "rotatingpuff"){
		clearTimeout(timeout);
		clearTimeout(fade);
		setOpacity(rotwof.id, 100);	
	}
}
function startRotate(e){
	if (!e) var e = window.event;	
	var tg = (window.event) ? e.srcElement : e.target;				
	var goTo = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	var rotno=0;
	try{
		while (tg.id.indexOf("rotwof")!=-1 || tg.id=='' || tg.id=='undefined'){
			rotwof = tg;
			tg = tg.parentNode;
		}		
		rotno = parseInt(rotwof.id.substring(6));			
		if (goTo.id == "rotatingpuff" || goTo.id == "prevnext") throw ""
		while ((goTo.id != "rotatingpuff" || goTo.id=='' || goTo.id=='undefined') && goTo.nodeName != 'HTML'){	
			goTo = goTo.parentNode;			
		}
		if (goTo.id != "rotatingpuff"){
			rotationCount = rotno + 1;				// Global var for tracking how many rotations have been done
			nextprevhit = 0;	
			delay=2;
			rotate();	
		}
	} catch(e){		
		rotationCount = rotno + 1;				// Global var for tracking how many rotations have been done
		nextprevhit = 0;	
		delay=2;
		rotate();
	}
}
function loadRotator(){
	var rotwofs = document.getElementsByTagName("div");
	for (var i = 0; i < rotwofs.length; i++){		
		if (rotwofs[i].id.indexOf("rotwof")==-1)continue;		
		rotwofs[i].onmouseover = stopRotate;
		rotwofs[i].onmouseout = startRotate;
	}
}