﻿// JavaScript Document

// ********************************************* 
// LIB: Description 
// ********************************************* 
// --------------------------------------------- 
// Class: ClassName 
// --------------------------------------------- 
// Description 
// --------------------------------------------- 
// Author: Name Lastname 
// Version: 0.x 
// Last Changed: DD.MM.YYYY 
// --------------------------------------------- 
// Version History 
// 0.x   History Milestone 
// Further Steps 
// - None so far. 
// ---------------------------------------------

function omoImageStacker(stageID /* String */, stackID /* String, [navID] String, [image_hint] String */) {

	// private props
	
	var myStage = document.getElementById(stageID);
	var myStack = document.getElementById(stackID);
	var myNav = arguments[2];	
	var myHintName = arguments[3];	

	// public props
	
	/* none so far */
	
	// construction
	
	removeAllButElements(myStage);
	removeAllButElements(myStack);
	myStack.style.display = "none";
	window.setTimeout("document.getElementById(\"" + myHintName + "\").style.display = \"none\";", 3000);
	
	if (myNav != null)
		window.setTimeout("document.getElementById(\"" + myNav + "\").style.visibility = \"visible\";", 3000);
	
	// public methods registry
	
	this.nextImage = nextImage;
	this.prevImage = prevImage;
	
	// description
	
	function nextImage() {
		
		if (myStack.hasChildNodes()) {
			
			if (myStage.hasChildNodes()) {
				
				myStack.appendChild(myStage.firstChild);
				
			}
			
			myStage.appendChild(myStack.firstChild);
			
		}
		
	}
	
	function prevImage() {
		
		if (myStack.hasChildNodes()) {
			
			if (myStage.hasChildNodes()) {
				
				myStack.insertBefore(myStage.firstChild, myStack.firstChild);
				
			}
			
			myStage.appendChild(myStack.lastChild);
			
		}
		
	}
	
	// private methods
	
	function removeAllButElements(parentElement) {
	
		var removeAfter = new Array();
	
		for (var i = 0 ; i < parentElement.childNodes.length; i++) {
			
			if (parentElement.childNodes[i].nodeType != 1 /* ELEMENT NODES */)  {
				removeAfter.push(parentElement.childNodes[i]); }
		
		}
		
		while(removeAfter.length > 0) {
			
			parentElement.removeChild(removeAfter.pop());
			
		}
		
	}

}

