//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) 
	{
		now = new Date();
		if (now.getTime() > exitTime)
		{	
				return;
		}
	}
}

PeriodicalExecuter.prototype.registerCallback = function() {
this.intervalId = setInterval(this.onTimerEvent.bind(this), this.frequency * 500);
}


PeriodicalExecuter.prototype.stop = function() {
clearInterval(this.intervalId);
}
Effect.divSwap = function(element,container){
    var div = document.getElementById(container);
    var nodeList = div.childNodes;
    var queue = Effect.Queues.get('menuScope');

    if(queue.toArray().length<1){
        if(Element.visible(element)==false) {
            for(i=0;i<nodeList.length;i++) {
                if(nodeList.item(i).nodeName=="DIV" && nodeList.item(i).id!=element) {
                    if(Element.visible(nodeList.item(i))==true) {
                        // Effect.SlideUp(nodeList.item(i),{queue:{position:'end',scope:'menuScope',limit:2}})
			    Effect.Fade(nodeList.item(i),{scope:'menuScope',limit:2,duration:1}); 
                    }
                }
            }
                        // Effect.SlideDown(element,{queue:{position:'end',scope:'menuScope',limit:2}})
	    // Effect.Appear(element, {scope:'menuScope',limit:2}); 
	    Effect.Appear(element, {delay: '1',scope:'menuScope',limit:2}); 
       }
   }
}
var maxCycles = 14; var divsShown = 0; var j = 2; var pause = 0; var dir = 1; 
var divCount = 5; // replace this with a function to count all divs with article ...

function setDir(val) { dir = val; setPause(0); }
function setPause(val) { pause = val;  var c = document.getElementById('ctrl'); c.innerHTML = (pause) ? 'play' : 'pause'; }
function togglePause() { setPause(!pause);  }
function cycleDivs(divCount)
{
	if (divsShown > maxCycles) { pe.stop(); }
	if (!pause)
	{
		if (j > divCount) { j = 1; }
		if (j < 1) { j = divCount; }
		var divName = 'article' + j;
		if (document.getElementById(divName))
		{
		Effect.divSwap(divName,'banner',{scope:'menuScope'});
		if (dir) 
		{
			j++;
		}
		else
		{
			j--;
		}
		}
		else
		{
			j=1;
		}
	}
	divsShown++;
}


function changeDivPause(divName)
{
	// swap the div
	setPause(1);
	Effect.divSwap(divName,'banner');
	i++;
}
