function Fader(theLayer, timeInterval){
    this.currentLayer = 0;
    this.newLayer = 0;
    this.ItemsLayer = null;
    this.currentOpacity = 100;
    this.newOpacity = 0;
    this.fadeInterval = null;
    this.itemArray = null;
    initFade(this,theLayer, timeInterval);
}

function FadeThem(obj) {
	if (obj.currentOpacity > 0 && obj.newOpacity < 100) {
		obj.currentOpacity-=10;
		setOpacity(obj.itemArray[obj.currentLayer],obj.currentOpacity);
		obj.newOpacity+=10;
		setOpacity(obj.itemArray[obj.newLayer],obj.newOpacity);
		//document.getElementById("out").value += "Fading...\n\r";
	} else {
		window.clearInterval(obj.fadeInterval);
		obj.itemArray[obj.currentLayer].style.visibility="hidden";
		obj.currentLayer = obj.newLayer;
	}
}

function setOpacity(objectReference, newOpacity) {
	if (document.all) {
		//objectReference.filters.alpha.opacity=newOpacity;
        objectReference.style.filter = 'alpha(opacity='+newOpacity+')';
	} else {
		objectReference.style.MozOpacity=newOpacity/100;
		//alert(objectReference.style.MozOpacity);
	}
}

function ChangeLayer(obj) {
	obj.currentOpacity = 100;
	obj.newOpacity = 0;
	obj.newLayer = obj.currentLayer+1;

	if (obj.newLayer >= obj.itemArray.length) {
		obj.newLayer = 0;
	}
	//document.getElementById("out").value += itemArray[currentLayer].id+" > "+itemArray[newLayer].id+"\n\r";
	obj.fadeInterval = setInterval(FadeThem,20, obj);
	obj.itemArray[obj.currentLayer].style.visibility="visible";
	obj.itemArray[obj.newLayer].style.visibility="visible";
}
function countChildNodes(theElement) {
//	alert(theElement)
	returnValue = 0;
	for (var i = 0; i < theElement.childNodes.length; i++) {
		if (theElement.childNodes[i].nodeType == 1) {
			returnValue++;
		}
	}
	return returnValue;
}
function initFade(obj, theLayer, timeInterval) {
	var arrayCounter = 0;

	obj.itemArray = new Array();

	for (var i = 0; i < theLayer.childNodes.length; i++) {

		if (theLayer.childNodes[i].nodeType == 1) {
			obj.itemArray.push(theLayer.childNodes[i]);
        	arrayCounter++;
        }
	}
	obj.currentLayer = Math.floor(Math.random()*obj.itemArray.length);

	obj.itemArray[obj.currentLayer].style.visibility="visible";
    setOpacity(obj.itemArray[obj.currentLayer],100);
	//alert(itemArray.length);
	if (obj.itemArray.length > 1)
		setInterval(ChangeLayer, timeInterval, obj);
}
/*@cc_on
(function(f){
window.setTimeout = f(window.setTimeout);
window.setInterval = f(window.setInterval);
})(function(f){
return function(c,t){
var a = Array.prototype.slice.call(arguments,2);
if(typeof c != "function")
c = new Function(c);
return f(function(){
c.apply(this, a)
}, t)
}
});
@*/


