/*
 * HighLights Manager Controller
 */
var highContainer = new Array(); 

function changeHighlightHide(wid, num){
	clearInterval(highContainer[wid].getTimer());
	highContainer[wid].setTimer(
		setTimeout("changeHighlightHtml('"+wid+"',"+num+")", 1000)
	);
	_contID = highContainer[wid].getContainerID();
	if(highContainer[wid].getHighlights()[num].viewType=='basic') {
		$("#"+_contID+" > a, #"+_contID+" > h3, #"+_contID+" > p").fadeOut(1000);
	} else if(highContainer[wid].getHighlights()[num].viewType=='advanced') {
		$("#"+_contID+" div.box_hightlight a, #"+_contID+" div.box_hightlight div, #"+_contID+" div.box_hightlight div ul").fadeOut(1000);
	}
	return false;
}

function changeHighlightHtml(wid, num){
	clearInterval(highContainer[wid].getTimer());
	highContainer[wid].setTimer(
		setTimeout("changeHighlight('"+wid+"',"+num+")", 500)
	);
	_contID = highContainer[wid].getContainerID();
	$("#" + _contID).html(highContainer[wid].getHighlights()[num].createView(wid));
	return false;
}

function changeHighlight(wid, num){
	clearInterval(highContainer[wid].getTimer());
	highContainer[wid].setTimer(
		setTimeout(
			"changeHighlightHide('"+wid+"',"+((num+1) % highContainer[wid].getHighlights().length)+")"
			, highContainer[wid].getTimerInterval())
	);
	_contID = highContainer[wid].getContainerID();
	if(highContainer[wid].getHighlights()[num].viewType=='basic') {
		$("#"+_contID+" > a, #"+_contID+" > h3, #"+_contID+" > p").fadeIn(1000);
	} else if(highContainer[wid].getHighlights()[num].viewType=='advanced') {
		$("#"+_contID+" div.box_hightlight a, #"+_contID+" div.box_hightlight div, #"+_contID+" div.box_hightlight div ul").fadeIn(1000);
	}
	return false;
}


/*
 * HighLights Manager Entity
 */
HighlightManager.prototype.build = buildHighlightManager;
HighlightManager.prototype.setID = setIDHighlightManager;
HighlightManager.prototype.getID = getIDHighlightManager;
HighlightManager.prototype.setContainerID = setContainerIDHighlightManager;
HighlightManager.prototype.getContainerID = getContainerIDHighlightManager;
HighlightManager.prototype.setHighlights = setHighlightsHighlightManager;
HighlightManager.prototype.getHighlights = getHighlightsHighlightManager;
HighlightManager.prototype.setTimerInterval = setTimerIntervalHighlightManager;
HighlightManager.prototype.getTimerInterval = getTimerIntervalHighlightManager;
HighlightManager.prototype.setTimer = setTimerHighlightManager;
HighlightManager.prototype.getTimer = getTimerHighlightManager;

//Constructor
function HighlightManager(ID, contID, highlights, timerInterval) {
	this.setID(ID);
	this.setContainerID(contID);
	this.setHighlights(highlights);
	this.setTimerInterval(timerInterval);
}

function buildHighlightManager() {
	if(this.getHighlights()[0] != undefined){
		_html = this.getHighlights()[0].createView(this.getID());
		$("#" + this.getContainerID()).html(_html);
		if(this.getHighlights()[0].viewType=='basic') {
			$("#"+this.getContainerID()+" > a, #"+this.getContainerID()+" > h3, #"+this.getContainerID()+" > p").show("slow");
		} else if(this.getHighlights()[0].viewType=='advanced') {
			$("#"+this.getContainerID()+" div.box_hightlight a, #"+this.getContainerID()+" div.box_hightlight div, #"+this.getContainerID()+" div.box_hightlight div ul").show();
		}
		if(this.getHighlights().length > 1){
			highContainer[this.getID()].setTimer(
				setTimeout("changeHighlightHide('"+this.getID()+"',"+1+")", this.getTimerInterval())
			);
		}
	}
}

function setIDHighlightManager(ID) {
	this._ID = ID;
}
function setContainerIDHighlightManager(containerID) {
	this._containerID = containerID;
}
function setHighlightsHighlightManager(highlights) {
	this._highlights = highlights;
}
function setTimerIntervalHighlightManager(timerInterval) {
	this._timerInterval = timerInterval;
}
function setTimerHighlightManager(timer) {
	this._timer = timer;	
}
function getIDHighlightManager() {
	return this._ID;
}
function getContainerIDHighlightManager() {
	return this._containerID;
}
function getHighlightsHighlightManager() {
	return this._highlights;
}
function getTimerIntervalHighlightManager() {
	return this._timerInterval;
}
function getTimerHighlightManager() {
	return this._timer;
}