// JavaScript Document
var htmlRotator = function(){
	
	var isFunction = function(it){
		return it && (typeof it == "function" || it instanceof Function);
	};
	
	var vIE = function(){
		return (navigator.appName=='Microsoft Internet Explorer')?parseFloat((new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})")).exec(navigator.userAgent)[1]):-1;
	}
	
	var applyTrans = function(element,value){
		if(value>0){
			element.style.display = 'block';
		}else{
			element.style.display = 'none';
		}
		element.style.opacity = value/100;									//CSS3
		element.style.filter = 'alpha(opacity:'+value+')';	//IE
		element.style.KHTMLOpacity = value/100;							//Safari<1.2, Konqueror
		element.style.MozOpacity = value/100;								//Older Mozilla and Firefox
	}
	
	var drawHTML = function(dir){
		if(dir==undefined){
			dir=0;
		}
		contentId += dir;
		if(contentId == contents.length){
			contentId = 0;
		}
		if(isFunction(contents[contentId])){
			placeholder.innerHTML = contents[contentId]();
		}else{
			placeholder.innerHTML = contents[contentId];
		}
	}
	
	var changeFadeImage = function(){
		if(fadeImages.images.length>0){
			fadeImages.id++;
			if(fadeImages.id == fadeImages.images.length){
				fadeImages.id = 0;
			}
			if(fader.firstChild){fader.removeChild(fader.firstChild)};
			fader.appendChild(fadeImages.images[fadeImages.id].cloneNode(false));
		}
	}
	
	var contents = new Array();
	var placeholder = document.createElement('div');
	var fader = document.createElement('div');
	fader.style.position = 'absolute';
	fader.style.width = '100%';
	fader.style.top = '0px';
	if(vIE() == 6){
		fader.style.left = '-10px';
		fader.style.height = '230px';
	}else{
		fader.style.left = '0px';
		fader.style.height = '100%';
	}
	fader.style.zIndex = '1000';
	applyTrans(fader,0);
	var state = false;
	var contentId = 0;
	var faderId = null;
	var fadeImages = new Object({id:null,images:new Array()});
	window.htmlRotator = this;
	
	this.step = 5;
	this.speed = 2;
	this.displayTime = 9000;
	this.fadeColor = '#000000';
	
	
	this.addPage = function(html){
		if(html != ''){
			contents.push(html);
		}
	}
	
	this.setFadeImages = function(){
		for(var i=0;i<arguments.length;i++){
			fadeImages.images.push(new Image());
			fadeImages.id = fadeImages.images.length-1;
			fadeImages.images[fadeImages.id].src = arguments[i];
		}
	}
	
	this.insert = function(element){
		if(fadeImages.images.length>0){
			changeFadeImage();
		}else{
			fader.style.backgroundColor = this.fadeColor;
		}
		placeholder.appendChild(fader);
		element.style.position = 'relative';
		element.appendChild(fader);
		element.appendChild(placeholder);
		drawHTML(0);
		setTimeout('htmlRotator.startRotation();',this.displayTime);
	}
	
	this.fade = function(){
		var fadeVal = Number(fader.style.opacity)*100;
		var kill = false;
		if(state == true){
			fadeVal -= this.step;
			if(fadeVal <= 0){
				fadeVal = 0;
				changeFadeImage();
				state = false;
				kill = true;
			}
		}else if(state == false){
			fadeVal += this.step;
			if(fadeVal >= 100){
				fadeVal = 100;
				state = true;
				if(fadeImages.id!=null){
					kill = true;
				}
			}
		}
		applyTrans(fader,fadeVal);
		if(fadeVal == 100){
			drawHTML(1);
		}
		if(kill){
			
			clearInterval(faderId);
			setTimeout('htmlRotator.startRotation();',this.displayTime);
		}
	}
	
	this.startRotation = function(){
		faderId = setInterval('htmlRotator.fade();',this.speed);
	}
}