// Unset all toggle buttons
function updateBtns() {
for (var i=1; i <= 4; i++) { dijit.byId("btn_"+i).attr("checked", false); }
	var trueID = dijit.byId("slideshow").selectedChildWidget.id;
	var trueID = trueID.substr(4);
	dijit.byId("btn_"+trueID).attr("checked", true);
	return true;
}

// Focuses on the tab with the ID of "name", by fading out the ENTIRE STACK container, switching, then fading back in.
function goToPageAlt(idNum) {
	console.log("Focusing on '"+idNum+"'");
	var slideshow = dijit.byId("slideshow"); // What is the container dijit?
	var nextPage = dijit.byId("tab_"+idNum);
	if (idNum != "next") {
		var anim = dojo.fx.chain([
			dojo.fadeOut({
				node:slideshow.domNode,
				duration:200,
				onEnd:function(){slideshow.selectChild(nextPage);}
			}),
			dojo.fadeIn({
				node:slideshow.domNode,
				duration:200,
				onEnd:function(){updateBtns();}
			})
		]); // Set up the order of events
	} else {
		// Special case for "next" auto-advancing
		var anim = dojo.fx.chain([
			dojo.fadeOut({
				node:slideshow.domNode,
				duration:200,
				onEnd:function(){slideshow.forward();}
			}),
			dojo.fadeIn({
				node:slideshow.domNode,
				duration:200,
				onEnd:function(){updateBtns();}
			})
		]); // Set up the order of events
	}
	anim.play(); // Do the fade
	var now = new Date();
	lastChange = now.getTime(); // Update last change
}

// Enable auto-advancing of the slideshow
var lastChange = 0; // When was the last slideshow shift?
var slideshowTimeout = 10 * 1000; // How many MS to wait before auto-advancing?
var autoAdvanceOn = true;
var pauseBtnHandle;
function autoAdvance() {
	if (autoAdvanceOn == false) { return false; }
	var now = new Date();
	var curMS = now.getTime();
	if (curMS > lastChange+slideshowTimeout) {
		// Time to change!
		goToPageAlt("next");
		lastChange = curMS;
	}
	setTimeout(autoAdvance, 3000); // Call again in 3 seconds
	return true;
}

function disableAdvance() {
	autoAdvanceOn = false;
	console.info("Autoplay is off");
	var btn = dijit.byId("pause"); // Pause button object
	btn.attr("iconClass", "playIcon");
	btn.attr("label", "Play");
	dojo.disconnect(pauseBtnHandle);
	pauseBtnHandle = dojo.connect(btn, "onClick", function(evt) {enableAdvance();});
}

function enableAdvance() {
	var now = new Date();
	lastChange = now.getTime();
	autoAdvanceOn = true;
	if (console.info) { console.info("Autoplay is on") }
	setTimeout(autoAdvance, 1000);	
	var btn = dijit.byId("pause"); // Pause button object
	btn.attr("iconClass", "pauseIcon");
	btn.attr("label", "Pause");
	dojo.disconnect(pauseBtnHandle);
	pauseBtnHandle = dojo.connect(btn, "onClick", function(evt) {disableAdvance();});
}

// Startup/setup function
var slideshowInit = function() {
	if (console.info) { console.info("Setting up Slideshow") } // Announce that we're working

	var slideshowStack = new dijit.layout.StackContainer({}, "slideshow"); // Stack container of slideshow Panes
	slideshowStack.addChild(new dijit.layout.ContentPane({}, "tab_1"));
	slideshowStack.addChild(new dijit.layout.ContentPane({}, "tab_2"));
	slideshowStack.addChild(new dijit.layout.ContentPane({}, "tab_3"));
	slideshowStack.addChild(new dijit.layout.ContentPane({}, "tab_4"));

	var btn = new dijit.form.ToggleButton({"iconClass":"bulIcon1 png", "showLabel":false}, "btn_1");
	dojo.addClass(btn.domNode, "btnTrans");
	var btn = new dijit.form.ToggleButton({"iconClass":"bulIcon2 png", "showLabel":false}, "btn_2");
	dojo.addClass(btn.domNode, "btnTrans");
	var btn = new dijit.form.ToggleButton({"iconClass":"bulIcon3 png", "showLabel":false}, "btn_3");
	dojo.addClass(btn.domNode, "btnTrans");
	var btn = new dijit.form.ToggleButton({"iconClass":"bulIcon4 png", "showLabel":false}, "btn_4");
	dojo.addClass(btn.domNode, "btnTrans");
	var btn = new dijit.form.Button({"iconClass":"pauseIcon png", "showLabel":false}, "pause");
	dojo.addClass(btn.domNode, "btnTrans");

	// Wire up the buttons to the page turns
	dojo.connect(dijit.byId("btn_1"), "onClick", function(evt) {goToPageAlt("1");});
	dojo.connect(dijit.byId("btn_2"), "onClick", function(evt) {goToPageAlt("2");});
	dojo.connect(dijit.byId("btn_3"), "onClick", function(evt) {goToPageAlt("3");});
	dojo.connect(dijit.byId("btn_4"), "onClick", function(evt) {goToPageAlt("4");});
	pauseBtnHandle = dojo.connect(dijit.byId("pause"), "onClick", function(evt) {disableAdvance();});

	slideshowStack.startup(); // Activate the whole unit
	var now = new Date();
	lastChange = now.getTime(); // Update current time
	setTimeout(autoAdvance, 1000); // start the auto-advancement script

	updateBtns(); // Set the proper selected button
}
dojo.require("dojo.fx");
dojo.require("dojo.fx.easing");
dojo.require("dijit.form.Button");
dojo.require("dijit.Toolbar");
dojo.require("dijit.layout.StackContainer");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");

dojo.addOnLoad(slideshowInit); // Initialization function
