// JavaScript Document

var RTE = function(sObjname,sFieldId,aOtherElements,sToggleId)
{
	this.sFieldId = sFieldId;
	this.bInited = bInited = false;
	this.oTA = document.getElementById(this.sFieldId);
	this.sObjname = sObjname;
	var obj = this.sObjname
	this.fToggleSwitchCallback = function(){ eval(obj).toggle(); }
	this.aOtherElements = aOtherElements; // array of other elements to toggle with the RTE: 0 = element name; 1 = state of element when RTE is on
	this.sToggleId = sToggleId;
}

RTE.prototype.toggle = function()
{
	if(!this.bInited) {
		this.initRTE(1);
	} else {
		this.destroyRTE();
		return;
	}	
}

RTE.prototype.initRTE = function(doOtherElements)
{
	if(doOtherElements) {
		this.toggleOtherElements(1);
	}
	tinyMCE.execCommand("mceAddControl", false, this.sFieldId);
	this.bInited = true;
}

RTE.prototype.destroyRTE = function()
{
	this.toggleOtherElements(0);
	tinyMCE.execCommand("mceRemoveControl", false, this.sFieldId);
	this.bInited = false;
}

RTE.prototype.toggleOtherElements = function(state)
{
	switch(state) {
		case 1:
			for(i=0; i<this.aOtherElements.length; i++){
				if(this.aOtherElements[i][1] == 0){
					document.getElementById(this.aOtherElements[i][0]).style.display = "none";
				} else {
					document.getElementById(this.aOtherElements[i][0]).style.display = "block";
				}
			}
			break;
			
		case 0:
			for(i=0;i<this.aOtherElements.length;i++){
				if(this.aOtherElements[i][1] == 0){
					document.getElementById(this.aOtherElements[i][0]).style.display = "block";
				} else {
					document.getElementById(this.aOtherElements[i][0]).style.display = "none";
				}
			}			
			break;
	}
}

RTE.prototype.checkToggle = function()
{
	if(this.bInited && document.getElementById(this.sToggleId).checked == false) {
		document.getElementById(this.sToggleId).checked = true;
	}
}
