// Based on the old moo tools, this script flips views of a list based on the Fx.Height object
//author Deji Aladejebi (dabar.cowblock.net)
// to use this script, create a settings object based on the specs, pass it to init() via body.onLoad
bind = function(object, gh) {
	return function() {
		StartTheTimer(gh);
	}
}
function TogglePanel(settings,elementId){
	if(!elementId.match(settings.presentToggled)){
		settings.presentToggled = elementId;
		var myelement = document.getElementById(elementId);
		var myEffect = new fx.Height(myelement , {duration: 1000, opacity: true});
		myEffect.toggle();
	}	
}
function resetToggle(settings){
	settings.presentToggled = settings.baseID + settings.toggleIndex;
}
function TogglePresent(settings,pele){
	if(settings.presentToggled != null){
		if(!pele.match(settings.presentToggled)){
			var myelement = document.getElementById(settings.presentToggled);
			var myEffect = new fx.Height(myelement , {duration: 700, opacity: true});
			myEffect.toggle();
		}
	}
}
function showInfoBox(id){
	var ele = document.getElementById(id);
	ele.style.display="block";
	ele.style.visibility="visible";
}
function hideBox(id){
	var ele = document.getElementById(id);
	ele.style.display="none";
	ele.style.visibility="hidden";
}
function init(settings){
	for(t = 1; t <= settings.slidecount ; t++){
            if(t != settings.toggleIndex)
		TogglePanel(settings,settings.baseID +t);
	}
	resetToggle(settings);	
	InitializeTimer(settings);
}
function InitializeTimer(settings)
{
    settings.seconds = settings.ptime;
    StopTheClock(settings);
	var arr = [settings];
    StartTheTimer(arr);
}
function StopTheClock(settings)
{
    if(settings.timerRunning)
        clearTimeout(settings.timerID);
    settings.timerRunning = false;
}
function swapItems(settings){
    StopTheClock(settings);
    settings.toggleIndex++;
    if(settings.toggleIndex <= settings.slidecount) {
        TogglePresent(settings,settings.baseID+settings.toggleIndex);
	showInfoBox(settings.baseID+settings.toggleIndex); 
	TogglePanel(settings,settings.baseID+settings.toggleIndex); 
	InitializeTimer(settings);
    }
    else{
	settings.toggleIndex = 1;
	TogglePresent(settings,settings.baseID+settings.toggleIndex);
	showInfoBox(settings.baseID+settings.toggleIndex);
	TogglePanel(settings,settings.baseID+settings.toggleIndex); 
	InitializeTimer(settings);
    }	
}
function StartTheTimer(arr)
{
    var settings = arr[0];
    if (settings.seconds==0)
    {
	swapItems(settings);
    }
    else
    {
        settings.seconds = settings.seconds - 1;
        settings.timerRunning = true;
        settings.timerID = self.setTimeout(bind(this.StartTheTimer,arr), settings.delay);
		
    }
}