// Este método es el encargado de volcar al documento un elemento de tipo area de texto de edicion avanzada... en inglés es
// más sencillo.. un RichText.
var tDate= new Date();
var iRealDay = tDate.getDate();
var iRealMonth = tDate.getMonth();
var iRealYear = tDate.getFullYear();
var iCurrentMonth=tDate.getMonth(); 
var iCurrentYear=tDate.getFullYear(); 

var calendarios = new Array();
var calNombres = new Array();
var calBotones = new Array();
var calAgendas = new Array();

var isIE; //Variable que identifica si es un navegador Internet Explorer.
var isGecko; //Variable que identifica si es un navegador Gecko.
var isSafari; //Variable que identifica si es un navegador Safari.
var isKonqueror; //Variable que identifica si es un navegador Konqueror.
var btCalActivo = true;
var btFechaActivo = true;

var dialogoActual;
var campoActual;
var botonActual;

function initCalendario() {
	//Actualiza las variables de los navegadores.
	var ua = navigator.userAgent.toLowerCase();
	isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)); 
	isGecko = (ua.indexOf("gecko") != -1);
	isSafari = (ua.indexOf("safari") != -1);
	isKonqueror = (ua.indexOf("konqueror") != -1);
}




function PreviousMonth(calendario){
	ClearCalendar(calendario);
	var elCalendario = getCalendarioNombre(calendario);
	if ( elCalendario != null){
		var mes = elCalendario[1]; 
		--mes;
		if (mes<0) {
			mes=11;
			var ano = elCalendario[2];
			--ano;
			elCalendario[2]= ano;
		}
		elCalendario[1]= mes;
	}

	SetCalendar(calendario);
}

function NextMonth(calendario){
	ClearCalendar(calendario);
	
	var elCalendario = getCalendarioNombre(calendario);
	if ( elCalendario != null){
		var mes = elCalendario[1]; 
		++mes;
		if (mes==12) {
			mes=0;
			var ano = elCalendario[2];
			++ano;
			elCalendario[2]= ano;
		}
		elCalendario[1]= mes;
	}
	
	SetCalendar(calendario);
}

function PreviousYear(calendario){
	ClearCalendar(calendario);
	var elCalendario = getCalendarioNombre(calendario);
	if ( elCalendario != null){
		var ano = elCalendario[2]; 
		--ano;
		elCalendario[2]= ano;
	}
	SetCalendar(calendario);
}

function NextYear(calendario){
	ClearCalendar(calendario);
	
	var elCalendario = getCalendarioNombre(calendario);
	if ( elCalendario != null){
		var ano = elCalendario[2]; 
		++ano;
		elCalendario[2]= ano;
	}

	
	SetCalendar(calendario);
}

function ClearCalendar(calendario){
	var i=0;
	var j=0;	
	var oCurRow;
	var oCell;
	var oTable=document.getElementById("cal_"+calendario);

	for (i=2;i<8;i++){
		oCurRow = oTable.rows[i];
		for (j=0;j<7;j++){
			oCell=oCurRow.cells[j];
			oCell.innerHTML = "<font face='Verdana, Arial, Helvetica, sans-serif' size='1'>&nbsp;</font>";
		}
	}
}

function GetDaysPerMonth(iMonth, iYear){
	switch (iMonth){
		case 0: return 31; break;
		case 1: 
			if (iYear % 4 == 0){
				if (iYear % 400 == 0){
					return 29;
				}
				else {
					if (iYear % 100 == 0){
						return 28;
					}
					else {
						return 29;
					}
				}
			}
			else {
				return 28;			
			}; 
			break;
		case 2: return 31; break;
		case 3: return 30; break;
		case 4: return 31; break;
		case 5: return 30; break;
		case 6: return 31; break;
		case 7: return 31; break;
		case 8: return 30; break;
		case 9: return 31; break;
		case 10: return 30; break;
		case 11: return 31; break;
		
	}
}
function SetCalendarFecha(calendario, ano, mes){
	
	var elCalendario = getCalendarioNombre(calendario);
	if (elCalendario != null){
		elCalendario[1] = --mes; 
		elCalendario[2] = ano; 
	}
	SetCalendar(calendario);
}
function SetCalendarLinks(elCalendario){
	var iDay=0;
	var tFirstDayDate = new Date(iCurrentYear,iCurrentMonth,1);
	var iLastDayMonth=GetDaysPerMonth(iCurrentMonth, iCurrentYear);
	var iCol=tFirstDayDate.getDay(); //0-Diumenge ... 6-Dissabte	
	--iCol;
	if (iCol <0) {
		iCol = 6;
	}
	
	var calendario = elCalendario[0];
	var agenda = elCalendario[4];
	var informacion = elCalendario[5];
	var formatos = elCalendario[6];
	var fecha = elCalendario[7];
	var iRow=2;
	var oTable=document.getElementById("cal_"+calendario);
	var oCurRow;
	var oCell;
	if ((iCurrentYear == iRealYear)&&(iCurrentMonth == iRealMonth)){
		for (iDay=1;iDay<=iLastDayMonth;iDay++){
			oCurRow = oTable.rows[iRow];
			oCell=oCurRow.cells[iCol];
			if ((formatos != null)&&(formatos[iDay-1] != null)){
				var accionDia = "javascript:void(0);"
				if (agenda[iDay-1] != null) accionDia = agenda[iDay-1];
				if (informacion[iDay-1] != null) {
					oCell.innerHTML = "<div class=\""+formatos[iDay-1]+"\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\""+formatos[iDay-1]+"\" href='"+accionDia +"'>"+iDay+"</a></div>";
				} else {
					oCell.innerHTML = "<div class=\""+formatos[iDay-1]+"\" align='center'><a class=\""+formatos[iDay-1]+"\" href='"+accionDia +"'>"+iDay+"</a></div>";
				}
			} else 	if (iDay == iRealDay) {
				if (agenda[iDay-1] != null) {
					if (informacion[iDay-1] != null) {
							oCell.innerHTML = "<div class=\"calDiaActInfoTarea\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\"calDiaActInfoTarea\" href='"+agenda[iDay-1] +"'>["+iDay+"]</a></div>";
					} else {
							oCell.innerHTML = "<div class=\"calDiaActTarea\" align='center'><a class=\"calDiaActTarea\" href='"+agenda[iDay-1] +"'>["+iDay+"]</a></div>";
					}
					
					
				} else {
					if (informacion[iDay-1] != null) {
						oCell.innerHTML = "<div class=\"calDiaActInfoSinTarea\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\"calDiaActInfoSinTarea\" href='javascript:void(0);'>["+iDay+"]</a></div>";
					} else {
						oCell.innerHTML = "<div class=\"calDiaActSinTarea\" align='center'><a class=\"calDiaActSinTarea\" href='javascript:void(0);'>["+iDay+"]</a></div>";
					}
				}
				
			} else {
				if (agenda[iDay-1] != null) {
					if (informacion[iDay-1] != null) {
						oCell.innerHTML = "<div class=\"calDiaInfoTarea\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\"calDiaInfoTarea\" href='"+agenda[iDay-1]+"'>"+iDay+"</a></div>";
					} else {
						oCell.innerHTML = "<div class=\"calDiaTarea\" align='center'><a class=\"calDiaTarea\" href='"+agenda[iDay-1]+"'>"+iDay+"</a></div>";
					}
					
				} else {
					if (informacion[iDay-1] != null) {
						oCell.innerHTML = "<div class=\"calDiaInfoSinTarea\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\"calDiaInfoSinTarea\" href='javascript:void(0);'>"+iDay+"</a></div>";
					} else {
						oCell.innerHTML = "<div class=\"calDiaSinTarea\" align='center'><a class=\"calDiaSinTarea\" href='javascript:void(0);'>"+iDay+"</a></div>";
					}
				}
			}
			iCol++;
			if (iCol>6) {
				iCol=0;
				iRow++;
			}
		}
	} else {
		for (iDay=1;iDay<=iLastDayMonth;iDay++){
			oCurRow = oTable.rows[iRow];
			oCell=oCurRow.cells[iCol];
			if ((formatos != null)&&(formatos[iDay-1] != null)){
				var accionDia = "javascript:void(0);"
				if (agenda[iDay-1] != null) accionDia = agenda[iDay-1];
				if (informacion[iDay-1] != null) {
					//oCell.className = formatos[iDay-1];
					oCell.innerHTML = "<div class=\""+formatos[iDay-1]+"\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\""+formatos[iDay-1]+"\" href='"+accionDia +"'>"+iDay+"</a></div>";
				} else {
					oCell.innerHTML = "<div class=\""+formatos[iDay-1]+"\" align='center'><a class=\""+formatos[iDay-1]+"\" href='"+accionDia +"'>"+iDay+"</a></div>";
				}
			} else if (agenda[iDay-1] != null) {
				if (informacion[iDay-1] != null) {
						oCell.innerHTML = "<div class=\"calDiaInfoTarea\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\"calDiaInfoTarea\" href='"+agenda[iDay-1]+"'>"+iDay+"</a></div>";
					} else {
						oCell.innerHTML = "<div class=\"calDiaTarea\" align='center'><a class=\"calDiaTarea\" href='"+agenda[iDay-1]+"'>"+iDay+"</a></div>";
					}
			} else {
				if (informacion[iDay-1] != null) {
						oCell.innerHTML = "<div class=\"calDiaInfoSinTarea\" onMouseOver=\"javascript:verInfo('"+calendario+"',"+iDay+");\" onMouseOut=\"javascript:ocultaInfo('"+calendario+"');\" align='center'><a class=\"calDiaInfoSinTarea\" href='javascript:void(0);'>"+iDay+"</a></div>";
					} else {
						oCell.innerHTML = "<div class=\"calDiaSinTarea\" align='center'><a class=\"calDiaSinTarea\" href='javascript:void(0);'>"+iDay+"</a></div>";
					}
			}
			iCol++;
			if (iCol>6) {
				iCol=0;
				iRow++;
			}
		}
	}
	oCurRow= oTable.rows[0];
	oCell=oCurRow.cells[2];
	if (fecha){ 
			//alert("Ponemos la fecha");

		oCell.innerHTML = "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>"+(iCurrentMonth+1)+"/"+iCurrentYear+"</font></div>";
	} else {
		//No hacemos nada
			//alert("No hacemos nada");
	}
}
function SetCalendarSelector(elCalendario){
	var iDay=0;
	var tFirstDayDate = new Date(iCurrentYear,iCurrentMonth,1);
	var iLastDayMonth=GetDaysPerMonth(iCurrentMonth, iCurrentYear);
	var iCol=tFirstDayDate.getDay(); //0-Diumenge ... 6-Dissabte	
	--iCol;
	if (iCol <0) {
		iCol = 6;
	}

	var calendario = elCalendario[0];
	var fecha = elCalendario[7];

	//alert("calendario actualizando: "+calendario);
 	var iRow=2;
	var oTable=document.getElementById("cal_"+calendario);
	var oCurRow;
	var oCell;
	if ((iCurrentYear == iRealYear)&&(iCurrentMonth == iRealMonth)){
		for (iDay=1;iDay<=iLastDayMonth;iDay++){
			oCurRow = oTable.rows[iRow];
			//alert(oCurRow.cells.length);
			oCell=oCurRow.cells[iCol];
			if (iDay == iRealDay) {
				oCell.innerHTML = "<div align='center'><a class=\"calDiaAct\" href='JavaScript:parent.devuelveFecha("+iCurrentYear+", "+(iCurrentMonth+1)+","+iDay+")'>"+"["+iDay+"]"+"</a></div>";
			} else {
				oCell.innerHTML = "<div align='center'><a class=\"calDia\" href='JavaScript:parent.devuelveFecha("+iCurrentYear+", "+(iCurrentMonth+1)+","+iDay+")'>"+iDay+"</a></div>";
			}
			iCol++;
			if (iCol>6) {
				iCol=0;
				iRow++;
			}
		}
	} else {
		for (iDay=1;iDay<=iLastDayMonth;iDay++){
			oCurRow = oTable.rows[iRow];
			//alert(oCurRow.cells.length);
			oCell=oCurRow.cells[iCol];
			oCell.innerHTML = "<div align='center'><a class=\"calDia\" href='JavaScript:parent.devuelveFecha("+iCurrentYear+", "+(iCurrentMonth+1)+","+iDay+")'>"+iDay+"</a></div>";
			iCol++;
			if (iCol>6) {
				iCol=0;
				iRow++;
			}
		}
	}
	oCurRow= oTable.rows[0];
	oCell=oCurRow.cells[2];
	if (fecha) {
		//alert("Ponemos la fecha");
		oCell.innerHTML = "<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif' size='1'>"+(iCurrentMonth+1)+"/"+iCurrentYear+"</font></div>";
	} else {
			// No hacemos nada
			//alert("No hacemos nada");
	}
}

function getCalendarioNombre(calendario){
	var elCalendario = null;
	
	for (i=0;i<calendarios.length;i++){ 
    	elCalendario = calendarios[i];
		if (elCalendario[0]==calendario) break;
	}
	
	return elCalendario;

}

function SetCalendar(calendario){
		
		var elCalendario = getCalendarioNombre(calendario);
		if (elCalendario != null){
			//alert("Encontrado: "+elCalendario[0]);
			var selector = elCalendario[3];
			if (selector) btCalActivo = false;
			
			iCurrentMonth=elCalendario[1]; 
			iCurrentYear=elCalendario[2]; 
			
			if (btCalActivo) {
				SetCalendarSelector(elCalendario);
			} else {
				SetCalendarLinks(elCalendario);
			}	
			
		}
}

function setTarea(calendario, dia, accion){
	var elCalendario = getCalendarioNombre(calendario);

	var agenda;
	if (elCalendario != null){
		if (elCalendario[4] == null) elCalendario[4] = new Array(31);
		
		agenda = elCalendario[4];
	}
	agenda[dia-1] = accion;
}

function getTarea(calendario, dia){
	var elCalendario = getCalendarioNombre(calendario);
	
	var agenda;
	if (elCalendario != null) agenda = elCalendario[4];

	var accion = null;
	if (agenda != null)	accion = agenda[dia-1];
	return accion;	
}

function setTareas(calendario, agenda){
	var elCalendario = getCalendarioNombre(calendario);
	if (elCalendario != null) elCalendario[4] = agenda;
}

function getTareas(calendario){
	var elCalendario = getCalendarioNombre(calendario);
	
	var agenda= null;
	if (elCalendario != null) agenda = elCalendario[4];
	return agenda;
}
// 28-07-2005 Añadido para poder ver un cuadro flotante con información del día.

function setInfo(calendario, dia, info){
	var elCalendario = getCalendarioNombre(calendario);

	var informacion;
	if (elCalendario != null){
		if (elCalendario[5] == null) elCalendario[5] = new Array(31);
		informacion = elCalendario[5];
	}
	informacion[dia-1] = info;
}

function getInfo(calendario, dia){
	var elCalendario = getCalendarioNombre(calendario);
	
	var informacion;
	if (elCalendario != null) informacion = elCalendario[5];

	var info = null;
	if (informacion != null)	info = informacion[dia-1];
	return info;	
}

function verInfo(calendario, dia){
	ContentInfo = getInfo(calendario,dia);
	//alert("Contenido: "+ContentInfo);
	if (ContentInfo != null) {
		ReplaceContent("TT"+calendario);
		ActivateTT();
	}
}

function ocultaInfo(calendario, dia){
	deActivateTT();
}

function setInformaciones(calendario, informacion){
	var elCalendario = getCalendarioNombre(calendario);
	if (elCalendario != null) elCalendario[5] = informacion;
}

function getInformaciones(calendario){
	var elCalendario = getCalendarioNombre(calendario);
	
	var informacion= null;
	if (elCalendario != null) informacion = elCalendario[5];
	return informacion;
}

function setFormato(calendario, dia, formato){
	var elCalendario = getCalendarioNombre(calendario);

	var formatos;
	if (elCalendario != null){ 
		if (elCalendario[6] == null) elCalendario[6] = new Array(31);

		formatos = elCalendario[6];
	}
	formatos[dia-1] = formato;
}

function getFormato(calendario, dia){
	var elCalendario = getCalendarioNombre(calendario);
	
	var formatos;
	if (elCalendario != null) formatos = elCalendario[4];

	var formato = null;
	if (formatos != null)	formato = formatos[dia-1];
	return formato;	
}

function setTareas(calendario, formatos){
	var elCalendario = getCalendarioNombre(calendario);
	if (elCalendario != null) elCalendario[4] = formatos;
}

function getTareas(calendario){
	var elCalendario = getCalendarioNombre(calendario);
	
	var formatos= null;
	if (elCalendario != null) formatos = elCalendario[4];
	return formatos;
}

//Fin añadido 31-07-2005

// Precisa de conocer el nombre del campo, el texto html que tiene al inicio (puede no tener nada claro), altura, anchura
// y si dispone de los botones para edición además de si se permite que pueda escribir o tan solo leer.
//
function creaCalendario(calendario, width, height, selector, clase, mes, ano, agenda, informacion, formato) {
		btCalActivo = true;
		//alert("clase: "+clase);
		if (selector) btCalActivo = false;
		// Ajusta la anchura de tabla mínima para IE y el resto. Si tienen botones tendrán que poder entrar.
		// Si el tamaño de los botones cambia, esta función deberá adaptarse en consecuencia.
		if (isIE) {
			if (width < 128) width = 128;
			var tablewidth = width;
		} else { // CURIOSO: Para el resto de navegadores se debe anchar 4 pixeles más...
			if (width < 128) width = 128;
			var tablewidth = width + 4;
		}
		var maxCalendarios = calendarios.length;
		var entradaCal = new Array(7);
		
		entradaCal[0] = calendario;
		if (mes != null) entradaCal[1] = iCurrentMonth = --mes;
			else entradaCal[1] = iRealMonth = tDate.getMonth();
		if (ano != null) entradaCal[2] = iCurrentYear = ano;
			else entradaCal[2] = iRealYear = tDate.getFullYear();
		entradaCal[3] = selector;
		entradaCal[4] = agenda;
		entradaCal[5] = informacion;
		entradaCal[6] = formato;
		entradaCal[7] = true;
		calendarios[maxCalendarios] = entradaCal;
			
		// VOLCADO DE LA TABLA DE EDICIÓN DE FUENTES
		document.writeln('<table class="calMain'+clase+'" id="cal_'+calendario+'" width="'+tablewidth+'" height="'+height+'" cellspacing="0" cellpadding="0">');
		if (btCalActivo) {
			document.writeln('  <tr class="calBotonera'+clase+'"> ');
			document.writeln('    <td height="1"> ');
			document.writeln('      <div align="center"><a href="JavaScript:PreviousYear(\''+calendario+'\');"><img src="retA'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1"> ');
			document.writeln('      <div align="center"><a href="JavaScript:PreviousMonth(\''+calendario+'\');"><img src="ret'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('    <td height="1" colspan="3" ></td>');
			document.writeln('    <td height="1" > ');
			document.writeln('      <div align="center"><a href="JavaScript:NextMonth(\''+calendario+'\');"><img src="ava'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1" > ');
			document.writeln('      <div align="center"><a href="JavaScript:NextYear(\''+calendario+'\');"><img src="avaA'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('  </tr>');
		}else{
			document.writeln('  <tr class="calBotonera'+clase+'"> ');
			document.writeln('    <td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('    <td height="1" colspan="3"></td>');
			document.writeln('    <td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('  </tr>');
		}
		document.writeln('  <tr class="calSemana'+clase+'"> ');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">L</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">M</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">X</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">J</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">V</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">S</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">D</div>');
		document.writeln('    </td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1">&nbsp;</td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr height="*"> ');
		document.writeln('  <td height="*" colspan="7">&nbsp;');
		document.writeln('  </td>');
		document.writeln('  </tr>');
		document.writeln('</table>');
		//alert("Selector: "+selector)
		if (selector) insertaToolTip("TT"+calendario);
		
		//alert("Escrito: "+calendario);
		SetCalendar(calendario);
}

function creaCalendarioCabecera(calendario, width, height, cabecera, selector, clase, mes, ano, agenda, informacion, formato) {
		btCalActivo = true;
		//alert("clase: "+clase);
		if (cabecera) {
			if (selector) btCalActivo = false;
		} else {
			btCalActivo = false;
			btFechaActivo = false;
		}
		// Ajusta la anchura de tabla mínima para IE y el resto. Si tienen botones tendrán que poder entrar.
		// Si el tamaño de los botones cambia, esta función deberá adaptarse en consecuencia.
		if (isIE) {
			if (width < 128) width = 128;
			var tablewidth = width;
		} else { // CURIOSO: Para el resto de navegadores se debe anchar 4 pixeles más...
			if (width < 128) width = 128;
			var tablewidth = width + 4;
		}
		var maxCalendarios = calendarios.length;
		var entradaCal = new Array(7);
		
		entradaCal[0] = calendario;
		if (mes != null) entradaCal[1] = iCurrentMonth = --mes;
			else entradaCal[1] = iRealMonth = tDate.getMonth();
		if (ano != null) entradaCal[2] = iCurrentYear = ano;
			else entradaCal[2] = iRealYear = tDate.getFullYear();
		entradaCal[3] = selector;
		entradaCal[4] = agenda;
		entradaCal[5] = informacion;
		entradaCal[6] = formato;
		entradaCal[7] = cabecera;
		calendarios[maxCalendarios] = entradaCal;
			
		// VOLCADO DE LA TABLA DE EDICIÓN DE FUENTES
		document.writeln('<table class="calMain'+clase+'" id="cal_'+calendario+'" width="'+tablewidth+'" height="'+height+'" cellspacing="0" cellpadding="0">');
	if (cabecera) {
		if (btCalActivo) {
			document.writeln('  <tr class="calBotonera'+clase+'"> ');
			document.writeln('    <td height="1"> ');
			document.writeln('      <div align="center"><a href="JavaScript:PreviousYear(\''+calendario+'\');"><img src="retA'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1"> ');
			document.writeln('      <div align="center"><a href="JavaScript:PreviousMonth(\''+calendario+'\');"><img src="ret'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('    <td height="1" colspan="3" ></td>');
			document.writeln('    <td height="1" > ');
			document.writeln('      <div align="center"><a href="JavaScript:NextMonth(\''+calendario+'\');"><img src="ava'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1" > ');
			document.writeln('      <div align="center"><a href="JavaScript:NextYear(\''+calendario+'\');"><img src="avaA'+clase+'.gif" width="7" height="7" border="0"></a></div>');
			document.writeln('    </td>');
			document.writeln('  </tr>');
		}else{
			document.writeln('  <tr class="calBotonera'+clase+'"> ');
			document.writeln('    <td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('    <td height="1" colspan="3"></td>');
			document.writeln('    <td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('	<td height="1"> ');
			document.writeln('      <div align="center">&nbsp;</div>');
			document.writeln('    </td>');
			document.writeln('  </tr>');
		}
	}
		document.writeln('  <tr class="calSemana'+clase+'"> ');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">L</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">M</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">X</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">J</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">V</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">S</div>');
		document.writeln('    </td>');
		document.writeln('    <td height="1"> ');
		document.writeln('      <div align="center">D</div>');
		document.writeln('    </td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1">&nbsp;</td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr> ');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('    <td height="1"><font face="Verdana, Arial, Helvetica, sans-serif" size="1"></font></td>');
		document.writeln('  </tr>');
		document.writeln('  <tr height="*"> ');
		document.writeln('  <td height="*" colspan="7">&nbsp;');
		document.writeln('  </td>');
		document.writeln('  </tr>');
		document.writeln('</table>');
		//alert("Selector: "+selector)
		if (selector) insertaToolTip("TT"+calendario);
		
		//alert("Escrito: "+calendario);
		SetCalendar(calendario);
}

function dlgCalendario(dialogo, campo, boton, offLeft, offTop) {
	
	//get dialog position
	//alert("dialogo :"+dialogo+" campo: "+campo+" boton:"+boton);
	var oDialog = document.getElementById(dialogo); //Mete en la variable oDialog el iframe con la paleta de elección de color.
	//alert("alerta 1");
	var buttonElement = document.getElementById(boton); // Usa el comando para identificar el boton que se pulsaría.
	//alert("alerta 2");
	var iLeftPos = getOffsetLeft(buttonElement)+8+offLeft; //Obtiene la posición de izda a drcha del boton pulsado
	//alert("alerta 3");
	var iTopPos = getOffsetTop(buttonElement) + (buttonElement.offsetHeight + (buttonElement.offsetHeight / 2))+offTop; // Obtiene la posición de arriba a abajo.
	oDialog.style.left = (iLeftPos) + "px"; // Le añade la posición de visualización de iframe al estilo de este.
	oDialog.style.top = (iTopPos) + "px";
	if (dialogoActual == null) {
		dialogoActual = dialogo;
		campoActual = campo;
		botonActual = boton;
	}
	if ((dialogo == dialogoActual) && (boton == botonActual)) { //Comprueba si está aun abierto y esta pulsación es para cerrarlo.
		//if current command dialog is currently open, close it
		//alert("Dialogo: "+dialogo);
		if (oDialog.style.visibility == "hidden") {
			showHideElement(oDialog, 'show');
		} else {
			showHideElement(oDialog, 'hide');
		}
	} else { // Si hay otros abiertos los cierra.
		//if opening a new dialog, close all others
		//alert("DialogoActual: "+dialogoActual);
		var oDialogoActual = document.getElementById(dialogoActual); //Mete en la variable oDialog el iframe con la paleta de elección de color.
		showHideElement(oDialogoActual, 'hide');
		showHideElement(oDialog, 'show');
	}
	
	//Salvar datos actuales
	dialogoActual = dialogo;
	campoActual = campo;
	botonActual = boton;
}



function showHideElement(element, showHide) {
	//function to show or hide elements
	//element variable can be string or object
	if (document.getElementById(element)) {
		element = document.getElementById(element);
	}
	
	if (showHide == "show") {
		element.style.visibility = "visible";
	} else if (showHide == "hide") {
		element.style.visibility = "hidden";
	}
}
// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
// KJR 11/12/2004 Changed to position palette based on parent div, so palette will always appear in proper location regardless of nested divs
function getOffsetTop(elm) {
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	var parents_up = 1; //the positioning div is 2 elements up the tree
	
	while(parents_up > 0) {
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;
		parents_up--;
	}
	
	return mOffsetTop;
}

// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
// KJR 11/12/2004 Changed to position palette based on parent div, so palette will always appear in proper location regardless of nested divs
function getOffsetLeft(elm) {
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	var parents_up = 1;
	//alert("Entra offsetLeft");
	while(parents_up > 0) {
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;
		parents_up--;
	}
	
	return mOffsetLeft;
}
function getCampoActual(){
 var campo = document.getElementById(campoActual);
 return campo;
}
function ocultaCalendarioActual(){
if (dialogoActual != null) {
		var oDialogoActual = document.getElementById(dialogoActual); //Mete en la variable oDialog el iframe con la paleta de elección de color.
		showHideElement(oDialogoActual, 'hide');
	}
}
function setVisibilidadFecha(calendario, esVisible){
	var elCalendario = getCalendarioNombre(calendario);
	if (elCalendario != null) elCalendario[7] = esVisible;
}