// Bazillyo's Spiffy DHTML Popup Calendar v. 1.0 © 2000 S. Ousta (http://www.geocities.com/bazillyo/calendar/calendarTest.htm)
// initialiZe variables... 




var ppcIE=((navigator.appName == "Microsoft Internet Explorer") || ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5)));
var ppcNN6=((navigator.appName == "Netscape") && (parseInt(navigator.appVersion)==5));
//var ppcIE=(navigator.appName == "Microsoft Internet Explorer");
var ppcNN=((navigator.appName == "Netscape")&&(document.layers));



var ppcX = 4;
var ppcY = 4;
var IsCalendarVisible;
var calfrmName;
var maxYearList;
var minYearList;
var todayDate = new Date; 
var curDate = new Date; 
var curImg;
var curDateBox;
var minDate = new Date;
var maxDate = new Date;
var hideDropDowns;
var IsUsingMinMax;
var FuncsToRun;
var img_del;
var img_close;
var mantenimiento=false;

es_mantenimiento();


var arraymeses=new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');


img_del=new Image();
img_del.src="btn_del_small.gif";
img_close=new Image();
img_close.src="btn_close_small.gif";

minYearList=todayDate.getFullYear()-10;
maxYearList=todayDate.getFullYear()+10;
IsCalendarVisible=false;

img_Date_UP=new Image();
img_Date_UP.src="btnbuscar.gif";

img_Date_OVER=new Image();
img_Date_OVER.src="btn_date_over.gif";

img_Date_DOWN=new Image();
img_Date_DOWN.src="btn_date_down.gif";
function calSwapImg(whatID, NewImg,override) {
    if (document.images) {
     if (!( IsCalendarVisible && override )) {
        document.images[whatID].src = eval(NewImg + ".src");
     }
    }
    window.status=' ';
    return true;
}

function getOffsetLeft (el) {
    var ol = el.offsetLeft;
    while ((el = el.offsetParent) != null)
        ol += el.offsetLeft;
    return ol;
}

function getOffsetTop (el) {
    var ot = el.offsetTop;
    while((el = el.offsetParent) != null)
        ot += el.offsetTop;
    return ot;
}

function showCalendar(frmName, dteBox,btnImg, hideDrops, MnDt, MnMo, MnYr, MxDt, MxMo, MxYr,runFuncs) {    
    
    hideDropDowns = hideDrops;
    FuncsToRun = runFuncs;
    calfrmName = frmName;

    //if (IsCalendarVisible) hideCalendar();
    //else
	{
        if (document.images['calbtn1']!=null ) document.images['calbtn1'].src=img_del.src;
        if (document.images['calbtn2']!=null ) document.images['calbtn2'].src=img_close.src;
        
        if (hideDropDowns) {toggleDropDowns('hidden');}
        if ((MnDt!=null) && (MnMo!=null) && (MnYr!=null) && (MxDt!=null) && (MxMo!=null) && (MxYr!=null)) {
            IsUsingMinMax = true;
            minDate.setDate(MnDt);
            minDate.setMonth(MnMo-1);
            minDate.setFullYear(MnYr);
            maxDate.setDate(MxDt);
            maxDate.setMonth(MxMo-1);
            maxDate.setFullYear(MxYr);
        }
        else {
            IsUsingMinMax = false;
        }
        
        curImg = btnImg;
        curDateBox = dteBox;
/*        if ( ppcIE ) {
            ppcX = getOffsetLeft(document.images[btnImg]);    
            ppcY = getOffsetTop(document.images[btnImg]) + document.images[btnImg].height;
        }
        else if (ppcNN){
            ppcX = document.images[btnImg].x; 
            ppcY = document.images[btnImg].y + document.images[btnImg].height;
        }*/
        
        //////************************************************************************
        //*************************************** COORDENADAS **************************
		ppcX = Relocate();
		
		if (mantenimiento==true)
			ppcY = 150;
		else
			ppcY = 180;
			

        domlay('popupcalendar',1,ppcX,ppcY,Calendar(todayDate.getMonth(),todayDate.getFullYear()));       

        //domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));

        IsCalendarVisible = true;
    }
}

function toggleDropDowns(showHow){
    var i; var j;
    for (i=0;i<document.forms.length;i++) {
        for (j=0;j<document.forms[i].elements.length;j++) {
            if (document.forms[i].elements[j].tagName == "SELECT") {
                if (document.forms[i].name != "Cal")
                    document.forms[i].elements[j].style.visibility=showHow;
            }
        }
    }
}

function hideCalendar(){
	return;
    domlay('popupcalendar',0,ppcX,ppcY);
    calSwapImg(curImg, 'img_Date_UP');    
    IsCalendarVisible = false;
    if (hideDropDowns) {toggleDropDowns('visible');}
}

function calClick() {
        window.focus();
}

function domlay(id,trigger,lax,lay,content) {
    /*
     * Cross browser Layer visibility / Placement Routine
     * Done by Chris Heilmann (mail@ichwill.net)
     * Feel free to use with these lines included!
     * Created with help from Scott Andrews.
     * The marked part of the content change routine is taken
     * from a script by Reyn posted in the DHTML
     * Forum at Website Attraction and changed to work with
     * any layername. Cheers to that!
     * Welcome DOM-1, about time you got included... :)
     */
    // Layer visible
    if (trigger=="1"){
        if (document.layers) document.layers[''+id+''].visibility = "show"
        else if (document.all) document.all[''+id+''].style.visibility = "visible"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "visible"                
        }
    // Layer hidden
    else if (trigger=="0"){
        if (document.layers) document.layers[''+id+''].visibility = "hide"
        else if (document.all) document.all[''+id+''].style.visibility = "hidden"
        else if (document.getElementById) document.getElementById(''+id+'').style.visibility = "hidden"             
        }
    // Set horizontal position  
    if (lax){
        if (document.layers){document.layers[''+id+''].left = lax}
        else if (document.all){document.all[''+id+''].style.left=lax}
        else if (document.getElementById){document.getElementById(''+id+'').style.left=lax+"px"}
        }
    // Set vertical position
    if (lay){
        if (document.layers){document.layers[''+id+''].top = lay}
        else if (document.all){document.all[''+id+''].style.top=lay}
        else if (document.getElementById){document.getElementById(''+id+'').style.top=lay+"px"}
        }
    // change content

    if (content){
    if (document.layers){
        sprite=document.layers[''+id+''].document;
        // add father layers if needed! document.layers[''+father+'']...
        sprite.open();
        sprite.write(content);
        sprite.close();
        }
    else if (document.all) document.all[''+id+''].innerHTML = content;  
    else if (document.getElementById){
        //Thanx Reyn!
        rng = document.createRange();
        el = document.getElementById(''+id+'');
        rng.setStartBefore(el);
        htmlFrag = rng.createContextualFragment(content)
        while(el.hasChildNodes()) el.removeChild(el.lastChild);
        el.appendChild(htmlFrag);
        // end of Reyn ;)
        }
    }
}

function Calendar(whatMonth,whatYear) {
    var output = '';
    var datecolwidth;
    var startMonth;
    var startYear;
	var prueba;
	var prueba2;
	
    startMonth=whatMonth;
    startYear=whatYear;

	
	
    curDate.setMonth(whatMonth);
    curDate.setFullYear(whatYear);
    curDate.setDate(todayDate.getDate());
    
    if (ppcNN6) {
        output += '<form name="Cal"><table width="400" border="1" bordercolor="#D3E0F7" class="cal-Table" cellspacing="0" cellpadding="0"><tr>';
    }
    else {
        output += '<table width="400" border="1"  bordercolor="#D3E0F7" class="cal-Table" cellspacing="0" cellpadding="0"><form name="Cal"><tr>';
    }
     
    output += '<td colspan="2" class="cal-HeadCell" align="center" width="100%"><font class="texto_nuevo">Seleccione el mes:</font>&nbsp;&nbsp;<SELECT class="cal-TextBox" NAME="cboMonth" onChange="changeMonth();">';
	
    for (month=0; month<12; month++) {
        if (month == whatMonth) output += '<OPTION VALUE="' + month + '" SELECTED>' + names[month] + '<\/OPTION>';
        else                output += '<OPTION VALUE="' + month + '">'          + names[month] + '<\/OPTION>';
				

		
    }

    output += '<\/SELECT>&nbsp;&nbsp;<SELECT class="cal-TextBox" NAME="cboYear" onChange="changeYear();">';

    for (year=minYearList; year<maxYearList; year++) {
        if (year == whatYear) output += '<OPTION VALUE="' + year + '" SELECTED>' + year + '<\/OPTION>';
        else              output += '<OPTION VALUE="' + year + '">'          + year + '<\/OPTION>';
		
    }

    output += '<\/SELECT>&nbsp;&nbsp;&nbsp;<\/td><\/tr>';
    
    output += '<tr><td width="100%" align="left"  valign="top">';    
        
    
    
	//***********************************************
	//AQUI COMIENZAN LAS FILAS DEL CALENDARIO
	//***********************************************
	
	
	firstDay = new Date(whatYear,whatMonth,1);
    startDay = firstDay.getDay();
	
	//alert(startDay);
	if (startDay==0) startDay=7;
	
    if (((whatYear % 4 == 0) && (whatYear % 100 != 0)) || (whatYear % 400 == 0))
         days[1] = 29;
    else
         days[1] = 28;

    
	
	//max=(whatMonth+1);
	
	
    output += '<table width="200" cellspacing="1" cellpadding="2" border="0"><tr>';
    
    output += '<td colspan="7" class="cal-HeadCell" valign="middle"><a href="javascript:scrollMonth(-1);" class="cal-DayLink"><img src="images/flechita_izda_age.gif" border="0"></a><font class="texto">&nbsp;&nbsp;'+arraymeses[whatMonth]+' del '+whatYear+'</font></td><tr>';
    
    for (i=0; i<7; i++) {
        if (i==0 || i==6) {
            datecolwidth="15%";
        }
        else
        {
            datecolwidth="14%"
        }
        output += '<td height="30" class="cal-HeadCell2" width="' + datecolwidth + '" align="center" valign="middle">'+ dow[i] +'<\/td>';

    }
    
    output += '<\/tr><tr>';
    
    
    var column = 0;
    var lastMonth = whatMonth - 1;
    var lastYear = whatYear;
    if (lastMonth == -1) { lastMonth = 11; lastYear=lastYear-1;}

    //numeros de dias correspondientes al mes anterior ( no llevan enlace y van en otro color)
    for (i=1; i<startDay; i++, column++) {
        output += getDayLink((days[lastMonth]-startDay+i+1),true,lastMonth,lastYear,0);
    }

    for (i=1; i<=days[whatMonth]; i++, column++) {
        output += getDayLink(i,false,whatMonth,whatYear,0);
        if (column == 6) {
            output += '<\/tr><tr>';
            column = -1;
        }
    }
    var nextMonth = whatMonth+1;
    var nextYear = whatYear;
    if (nextMonth==12) { nextMonth=0; nextYear=nextYear+1;}
    
    if (column > 0) {
        for (i=1; column<7; i++, column++) {
            output +=  getDayLink(i,true,nextMonth,nextYear,0);
        }
        output += '<\/tr><\/table>';
    }
    else {
        output = output.substr(0,output.length-4); // remove the <tr> from the end if there's no last row
        output += '<\/table>';
    }	    	    	

   
   
   
   
   ///////////////  MES 2  \\\\\\\\\\\\\\\\\
   
   

	whatMonth = whatMonth+1;
	
	firstDay = new Date(whatYear,whatMonth,1);
    startDay = firstDay.getDay();
	
	if (startDay==0) startDay=7;
	
    if (((whatYear % 4 == 0) && (whatYear % 100 != 0)) || (whatYear % 400 == 0))
         days[1] = 29;
    else
         days[1] = 28;

    
	if (whatMonth == 12) { whatMonth = 0; whatYear=whatYear+1;}
	
	
    output += '</td><td valign="top"><table width="200" cellspacing="1" cellpadding="2" border="0"><tr>';
    
    output += '<td valign="top" colspan="7" class="cal-HeadCell" align="right"><font class="texto">'+arraymeses[whatMonth]+' del '+whatYear+'</font>&nbsp;&nbsp;<a href="javascript:scrollMonth(1);" class="cal-DayLink"><img src="images/flechita_dcha_age.gif" border="0"></a></td><tr>';
    
    for (i=0; i<7; i++) {
        if (i==0 || i==6) {
            datecolwidth="15%";
        }
        else
        {
            datecolwidth="14%"
        }
        
        output += '<td height="30" class="cal-HeadCell2" width="' + datecolwidth + '" align="center" valign="middle">'+ dow[i] +'<\/td>';

    }
    
    output += '<\/tr><tr>';
    
    
    var column = 0;
    var lastMonth = whatMonth - 1;
    var lastYear = whatYear;
    if (lastMonth == -1) { lastMonth = 11; lastYear=lastYear-1;}


	//numeros de dias correspondientes al mes anterior ( no llevan enlace y van en otro color)
    for (i=1; i<startDay; i++, column++) {
        output += getDayLink((days[lastMonth]-startDay+i+1),true,lastMonth,lastYear,1);
    }

    for (i=1; i<=days[whatMonth]; i++, column++) {
        output += getDayLink(i,false,whatMonth,whatYear,1);
        if (column == 6) {
            output += '<\/tr><tr>';
            column = -1;
        }
    }
    var nextMonth = whatMonth+1;
    var nextYear = whatYear;
    if (nextMonth==12) { nextMonth=0; nextYear=nextYear+1;}
    
    if (column > 0) {
        for (i=1; column<7; i++, column++) {
            output +=  getDayLink(i,true,nextMonth,nextYear,1);
        }
        output += '<\/tr><\/table>';
    }
    else {
        output = output.substr(0,output.length-4); // remove the <tr> from the end if there's no last row
        output += '<\/table>';
    }
	    	    
    
    

    //************************************************************************
    /*	    
      if (ppcNN6) {
	        output += '<\/table>';
	    }
	    else {
	        output += '<\/table>';
	    }
    
    */
    output += '<\/td><\/tr></table><table width="400" cellpadding="0" cellspacing="0" border="0" align="center"><tr><td height="5"><img src="images/spacer.gif"></td></tr></table><table width="407" border="1" bordercolor="#D3E0F7" class="cal-Table" cellspacing="0" cellpadding="0"><tr><td>'+cadEventos+'</td></tr></table>';
    output +='<\/form>';
    
    curDate.setDate(1);
    curDate.setMonth(startMonth);
    curDate.setFullYear(startYear);
    
    
    return output;
}


//********************************* DEFINICION DE LOS ENLACES DE LOS DIAS *************************************
//esta funcion esta modificada para en el onclick del dia, comprobar si hay elemento del arraydata para esa clave
//(formada por la fecha) y se llama a la funcion que genera la pagina dinamica con el contenido html que esta en el array

//11 Octubre 2004:Nueva modificacion, añadimos un parametro a la funcion: el mes (porque ahora manejamos 2 meses
function changeDayShowEvent(whatDay,whatMonth) {    
    curDate.setDate(whatDay);
    eval('document.' + calfrmName + '.' + curDateBox + '.value = "'+ padout(curDate.getDate()) + '-' + names[curDate.getMonth()] + '-' + curDate.getFullYear() + '"');
	
	//fecha=meteceros(curDate.getDate())+'/'+ meteceros(curDate.getMonth()+1) + '/'+ curDate.getFullYear();		
	fecha=meteceros(curDate.getDate())+'/'+ meteceros(whatMonth) + '/'+ curDate.getFullYear();			
		
    hideCalendar();
    if (FuncsToRun!=null)
        eval(FuncsToRun); 		
							
	//comprobamos y mostramos ambos tipos de evento
	if (typeof(arraydata)!="undefined"){
		tipo=typeof(arraydata [fecha]);				
		if (tipo == "string") {	
			if (arraydata [fecha]!=""){				
			  	showevent(arraydata[fecha],fecha,'programados');
			}else{
				showevent('',fecha,'programados');
			}
		}else{
				showevent('',fecha,'programados');
			}		
	}
	
	if (typeof(arraydata_destacados)!="undefined"){
		cont_html = JuntarContenidoMes(arraydata_destacados, fecha);
		showevent(cont_html, fecha, 'destacados');
		/*
		tipo=typeof(arraydata_destacados [fecha]);
		if (tipo == "string") {
			if (arraydata_destacados [fecha]!=""){ 
				showevent(arraydata_destacados[fecha],fecha,'destacados');
			}else{	
				showevent('',fecha,'destacados');
			}
		}else{	
				showevent('',fecha,'destacados');
		}
		*/
	}
}
function es_mantenimiento(){

	
	if (typeof(arraymaint)!="undefined"){		
		mantenimiento=true;
	}
	
	
}

//devuelve true o false en funcion de si hay evento para esa fecha o no
//modificada: ahora en funcion de si hay eventos en el dia y del tipo, devuelve el estilo a aplicar
function checkevento(fecha){
 	
 	var ninguno=true;
 	var tres=false; 	
 			
							
	//mantenimiento
	if (typeof(arraymaint)!="undefined"){		
		tipo=typeof(arraymaint [fecha]);						
		if (tipo == "string") {
			if (arraymaint [fecha] !="") 
				return('cal-evento');
		}	
	}				
	
	if (typeof(arrayeventos)!="undefined"){
		tipo=typeof(arrayeventos[fecha]);				
		if (tipo == "string") {
			if (arrayeventos[fecha] !=""){
				ninguno=false;
				tres=true;
			}	
		}	
	}
		
	
	if (ninguno) 
		return('cal-DayCell')
	else{		
		return(arrayeventos[fecha]);			
	}	
	    
}

//función para reemplazar los caracteres especiales
function sustituircaresp(cadena)
{	
	var caresp;
	var car_sust;

	caresp= new Array("ó","á","Á","Â","À","Å","Ã","Ä","Ç","Ð","É","Ê","È","Ë","Í","Î","Ì","Ï","Ñ","Ó","Ô","Ò","Ø","Õ","Ö","Þ","Ú","Û","Ù","Ü","Ý","â","æ","à","å","ã","ä","ç","é","ê","è","ð","ë","í","î","ì","ï","ñ","ô","ò","ø","õ","ö","ß","þ","ú","û","ù","ü","ý","ÿ","´","|","¸","¢","©","¤","°","÷","½","¼","¾","¡","¿","«","¯","µ","·","¬","ª","º","¶","±","£","»","®","§","¹","²","³","×","¨","¥")
	car_sust=new Array("&oacute;","&aacute;","&Aacute;","&Acirc;","&Agrave;","&Aring;","&Atilde;","&Auml;","&Ccedil","&ETH;","&Eacute;","&Ecirc;","&Egrave;","&Euml;","&Iacute;","&Icirc;","&Igrave;","&Iuml;","&Ntilde;","&Oacute;","&Ocirc;","&Ograve;","&Oslash;","&Otilde;","&Ouml;","&THORN;","&Uacute;","&Ucirc;","&Ugrave;","&Uuml;","&Yacute;","&acirc;","&aelig;","&agrave;","&aring;","&atilde;","&auml;","&ccedil;","&eacute;","&ecirc;","&egrave;","0&eth;","&euml;","&iacute;","&icirc;","&igrave;","&iuml;","&ntilde;","&ocirc;","&ograve;","&oslash;","&otilde;","&ouml;","&szlig;","&thorn;","&uacute;","&ucirc;","&ugrave;","&uuml;","&yacute;","&yuml;","&acute;","&brvbar;","&cedil;","&cent;","&copy;","&curren;","&deg;","&divide;","&frac12;","&frac14;","&frac34;","&iexcl;","&iquest;","&laquo;","&macr;","&micro;","&middot;","&not;","&ordf;","&ordm;","&para;","&plusmn;","&pound;","&raquo;","&reg;","&sect;","&sup1;","&sup2;","&sup3;","&times;","&uml;","&yen;")

	for (k=0;k<caresp.length;k++)
	{
		cadena= replaceChars(cadena,caresp[k],car_sust[k]);
	}
	
	return cadena;
}

function replaceChars(entry,out,add)
{
  temp = "" + entry;
  while (temp.indexOf(out)>-1) 
	{
    pos= temp.indexOf(out);
    temp = "" + (temp.substring(0, pos) + add + 
    temp.substring((pos + out.length), temp.length));
	}
	return temp;
}


//función para reemplazar los caracteres especiales
function sustituircaresp_ant(cadena){
//cadena  = cadena, "Ú", "U"), "Ó", "O"), "Í", "I"), "É", "E"), "Á", "A"), "ú", "u"), "ó", "o"), "í", "i"), "é", "e"), "á", "a")
//cadena  = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(cadena, "Ù", "U"), "Ò", "O"), "Ì", "I"), "È", "E"), "À", "A"), "ù", "u"), "ò", "o"), "ì", "i"), "è", "e"), "à", "a")
//cadena  = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(cadena, "&", " "), ";", " "), ",", " "), ".", " "), ")", " "), "(", " "), "'", ""), "*", " "), ":", " "), "-", "")


	//cadena=cadena.replace("Æ","&AElig;").replace("Á","&Aacute;").replace("Â","&Acirc;").replace("À","&Agrave;").replace("Å","&Aring;").replace("Ã","&Atilde;").replace("Ä","&Auml;").replace("Ç","&Ccedil").replace("Ð","&ETH;").replace("É","&Eacute;").replace("Ê","&Ecirc;").replace("È","&Egrave;").replace("Ë","&Euml;").replace("Í","&Iacute;").replace("Î","&Icirc;").replace("Ì","&Igrave;").replace("Ï","&Iuml;").replace("Ñ","&Ntilde;").replace("Ó","&Oacute;").replace("Ô","&Ocirc;").replace("Ò","&Ograve;").replace("Ø","&Oslash;").replace("Õ","&Otilde;").replace("Ö","&Ouml;").replace("Þ","&THORN;").replace("Ú","&Uacute;").replace("Û","&Ucirc;").replace("Ù","&Ugrave;").replace("Ü","&Uuml;").replace("Ý","&Yacute;").replace("á","&aacute;").replace("â","&acirc;").replace("æ","&aelig;").replace("à","&agrave;").replace("å","&aring;").replace("ã","&atilde;").replace("ä","&auml;").replace("ç","&ccedil;").replace("é","&eacute;").replace("ê","&ecirc;").replace("è","&egrave;").replace("ð","0&eth;").replace("ë","&euml;").replace("í","&iacute;").replace("î","&icirc;").replace("ì","&igrave;").replace("ï","&iuml;").replace("ñ","&ntilde;").replace("ó","&oacute;").replace("ô","&ocirc;").replace("ò","&ograve;").replace("ø","&oslash;").replace("õ","&otilde;").replace("ö","&ouml;").replace("ß","&szlig;").replace("þ","&thorn;").replace("ú","&uacute;").replace("û","&ucirc;").replace("ù","&ugrave;").replace("ü","&uuml;").replace("ý","&yacute;").replace("ÿ","&yuml;").replace("´","&acute;").replace("|","&brvbar;").replace("¸","&cedil;").replace("¢","&cent;").replace("©","&copy;").replace("¤","&curren;").replace("°","&deg;").replace("÷","&divide;").replace("½","&frac12;").replace("¼","&frac14;").replace("¾","&frac34;").replace("¡","&iexcl;").replace("¿","&iquest;").replace("«","&laquo;").replace("¯","&macr;").replace("µ","&micro;").replace("·","&middot;").replace("¬","&not;").replace("ª","&ordf;").replace("º","&ordm;").replace("¶","&para;").replace("±","&plusmn;").replace("£","&pound;").replace("»","&raquo;").replace("®","&reg;").replace("§","&sect;").replace("¹","&sup1;").replace("²","&sup2;").replace("³","&sup3;").replace("×","&times;").replace("¨","&uml;").replace("¥","&yen;");
	//cadena=cadena....replace("¥","&yen;");

	var caresp;
	var car_sust;
	//var long;

	caresp= new Array("ó","á","Á","Â","À","Å","Ã","Ä","Ç","Ð","É","Ê","È","Ë","Í","Î","Ì","Ï","Ñ","Ó","Ô","Ò","Ø","Õ","Ö","Þ","Ú","Û","Ù","Ü","Ý","â","æ","à","å","ã","ä","ç","é","ê","è","ð","ë","í","î","ì","ï","ñ","ô","ò","ø","õ","ö","ß","þ","ú","û","ù","ü","ý","ÿ","´","|","¸","¢","©","¤","°","÷","½","¼","¾","¡","¿","«","¯","µ","·","¬","ª","º","¶","±","£","»","®","§","¹","²","³","×","¨","¥")
	car_sust=new Array("&oacute;","&aacute;","&Aacute;","&Acirc;","&Agrave;","&Aring;","&Atilde;","&Auml;","&Ccedil","&ETH;","&Eacute;","&Ecirc;","&Egrave;","&Euml;","&Iacute;","&Icirc;","&Igrave;","&Iuml;","&Ntilde;","&Oacute;","&Ocirc;","&Ograve;","&Oslash;","&Otilde;","&Ouml;","&THORN;","&Uacute;","&Ucirc;","&Ugrave;","&Uuml;","&Yacute;","&acirc;","&aelig;","&agrave;","&aring;","&atilde;","&auml;","&ccedil;","&eacute;","&ecirc;","&egrave;","0&eth;","&euml;","&iacute;","&icirc;","&igrave;","&iuml;","&ntilde;","&ocirc;","&ograve;","&oslash;","&otilde;","&ouml;","&szlig;","&thorn;","&uacute;","&ucirc;","&ugrave;","&uuml;","&yacute;","&yuml;","&acute;","&brvbar;","&cedil;","&cent;","&copy;","&curren;","&deg;","&divide;","&frac12;","&frac14;","&frac34;","&iexcl;","&iquest;","&laquo;","&macr;","&micro;","&middot;","&not;","&ordf;","&ordm;","&para;","&plusmn;","&pound;","&raquo;","&reg;","&sect;","&sup1;","&sup2;","&sup3;","&times;","&uml;","&yen;")

	for (i=0;i<cadena.length;i++ )
	{
	
		for (k=0;k<caresp.length;k++)
			{

				cadena=cadena.replace(caresp[k],car_sust[k]);
			}

	}
	return cadena;

}


var NS4=document.layers?1:0;
var MSIE=document.all?1:0;
var DOM=(document.getElementById)&&(!MSIE);
		
//Obtener nombre de capa:
function GetLayer(name) {
  var obj=DOM?document.getElementById(name):(MSIE?document.all[name]:document[name]);		  
  return obj;
}



//Modifico la funcion: añadimos otro parametro que indica si se trata de un evento programado (arraydata)
//o bien de un evento destacado (arraydata_destacados)
function showevent(htmlcontent,fecha,tipo){
  
 capa=document.getElementById(tipo);  
 capa.innerHTML=sustituircaresp(htmlcontent);  
	
}

	

//********************************* DEFINICION DE LOS ENLACES DE LOS DIAS *************************************
function changeDay(whatDay,whatMonth,whatYear) {

    //curDate.setDate(whatDay);
    //eval('document.' + calfrmName + '.' + curDateBox + '.value = "'+ padout(curDate.getDate()) + '-' + names[curDate.getMonth()] + '-' + curDate.getFullYear() + '"');	
	//fecha=meteceros(curDate.getDate())+'/'+ meteceros(curDate.getMonth()+1) + '/'+ curDate.getFullYear();		
	
	fecha=meteceros(whatDay)+'/'+ meteceros(whatMonth) + '/'+ whatYear;			
	
	//modificamos: fecha ahora se compone a partir del dia, mes y año pasados como parametros
	
	var agenda=window.open('editorcalendario_2.asp?fecha='+fecha+'&tipoevento='+tipoevento,'calendario','width=750,height=500,left=50,top=50');
	agenda.focus();
	
}



 //***************************************************************************\\
// *******************  ENLACE DE CADA DIA DEL CALENDARIO   ****************** \\

//Modificada: añadimos parametro moreMonth, esto indica que estamos en el calendario de la derecha y que 
//es 1 mes más del mes de la fecha actual
//esta funcion devuelve la celda que contiene cada numero del mes con enlace al evento, previa comprobacion
//de si hay evento en cada dia
function getDayLink(linkDay,isGreyDate,linkMonth,linkYear,moreMonth) {
    var templink;
    var bgcolor="";
    var estilo="";
	
	
	linkMonth=linkMonth+1;
	
	fecha = meteceros(linkDay)+'/'+ meteceros(linkMonth) + '/'+ linkYear;		
			
	
	//funcion checkevento que indica si hay evento en ese dia, hay que modificarla, de forma que devuelva el 
	//estilo a aplicar, ahora hay 4 posibles estilos, en funcion de si no hay evento hay de un tipo hay de otro 
	//o ambos. Antes solo devolvia true o false
	
	estilo = checkevento(fecha);
	if (estilo=="cal-evento" || estilo=="cal-DayCell"){
		estilo=' class="'+estilo+'"';
	}else{
		estilo=' class="cal-evento" style="background-color:'+estilo+';"';
	}	
	
	/*
	if (checkevento(fecha))	  	
	  	estilo='cal-evento';
	else
	  	estilo='cal-DayCell';
    */          
    
                  
    if (!(IsUsingMinMax)) {
        if (isGreyDate) {
            templink='<td align="center" class="cal-GreyDate">' + linkDay + '<\/td>';
        }
        else {
            if (isDayToday(linkDay,moreMonth)) {
			
           // *******  AQUI COMPROBAMOS SI ESTA DEFINIDO EL ARRAY DE DATOS, SI NO ESTA DEFINIDO, ESTAMOS EN MANTENIMIENTO
           // *******  SI ESTA DEFINIDO ESTAMOS EN ZONA CLIENTE Y SE LLAMA A LA FUNCION QUE MUESTRA EVENTOS EN LUGAR DE
           // *******  ABRIR EL HTMLAREA DE MANTEMINIMIENTO                                	                              
              
                if (typeof(arraydata)!="undefined"){//cliente
                	templink='<td height="25" align="center" '+estilo+'>' + '<a class="cal-TodayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDayShowEvent(' + linkDay + ','+ linkMonth +');">' + linkDay + '<\/a>' +'<\/td>';
                }else{//mantenimiento	
					templink='<td height="25" align="center" '+estilo+'>' + '<a class="cal-TodayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ','+ linkMonth +','+linkYear+');">' + linkDay + '<\/a>' +'<\/td>';
				}	
            }
            else {
            	if (typeof(arraydata)!="undefined"){//si hay array de datos al hacer click se muestran los eventos en la funcion changeDayShowEvent
                	templink='<td height="25" align="center" '+estilo+'>' + '<a class="cal-DayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDayShowEvent(' + linkDay + ','+ linkMonth +');">' + linkDay + '<\/a>' +'<\/td>';
                }else{//si no, no se muestran los eventos, se llama a la funcion changeDay
                	templink='<td height="25" align="center" '+estilo+'>' + '<a class="cal-DayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDay(' + linkDay + ','+ linkMonth +','+linkYear+');">' + linkDay + '<\/a>' +'<\/td>';
                }	
                
            }           
        }
		
    }
    
    
    else {
        if (isDayValid(linkDay,linkMonth,linkYear)) {

            if (isGreyDate){
                templink='<td align="center" class="cal-GreyDate">' + linkDay + '<\/td>';
            }
            else {
                if (isDayToday(linkDay)) {
                    templink='<td align="center" '+estilo+'>' + '<a class="cal-TodayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDayShowEvent(' + linkDay + ');">' + linkDay + '<\/a>' +'<\/td>';
                }
                else {
                    templink='<td align="center" '+estilo+'>' + '<a class="cal-DayLink" onmouseover="self.status=\' \';return true" href="javascript:changeDayShowEvent(' + linkDay + ');">' + linkDay + '<\/a>' +'<\/td>';
                }
            }
        }
        else {
            templink='<td align="center" class="cal-GreyInvalidDate">'+ linkDay + '<\/td>';
        }
    }
    
    
    return templink;
}

//modifico la funcion, añadimos un nuevo parametro, que indica si hay que sumarle un mes o no (hay que sumarle si hemos
//hecho click en el calendario de la derecha

function isDayToday(isDay,moreMonth) {    
    
    if ((curDate.getFullYear() == todayDate.getFullYear()) && ((curDate.getMonth()+moreMonth) == todayDate.getMonth()) && (isDay == todayDate.getDate())) {
        return true;
    }
    else {
        return false;
    }
}

function isDayValid(validDay, validMonth, validYear){
    
    curDate.setDate(validDay);
    curDate.setMonth(validMonth);
    curDate.setFullYear(validYear);
    
    if ((curDate>=minDate) && (curDate<=maxDate)) {
        return true;
    }
    else {
        return false;
    }
}

function padout(number) { return (number < 10) ? '0' + number : number; }

function clearDay() {
    eval('document.' + calfrmName + '.' + curDateBox + '.value = \'\'');
    hideCalendar();
    if (FuncsToRun!=null)
        eval(FuncsToRun); 
}


function meteceros(numero){

	if (numero<10) numero='0'+numero;
	return(numero);
}



function scrollMonth(amount) {
    var monthCheck;
    var yearCheck;

    
    if (ppcIE) {
        monthCheck = document.forms["Cal"].cboMonth.selectedIndex + amount;
    }
    else if (ppcNN) {
        monthCheck = document.popupcalendar.document.forms["Cal"].cboMonth.selectedIndex + amount;    
    }
    if (monthCheck < 0) {
        yearCheck = curDate.getFullYear() - 1;
        if ( yearCheck < minYearList ) {
            yearCheck = minYearList;
            monthCheck = 0;
        }
        else {
            monthCheck = 11;
        }
        curDate.setFullYear(yearCheck);
		
    }
    else if (monthCheck >11) {
        yearCheck = curDate.getFullYear() + 1;
        if ( yearCheck > maxYearList-1 ) {
            yearCheck = maxYearList-1;
            monthCheck = 11;
			
        }
        else {
            monthCheck = 0;
        }      
        curDate.setFullYear(yearCheck);
		
    }
    
    if (ppcIE) {
        curDate.setMonth(document.forms["Cal"].cboMonth.options[monthCheck].value);
    }
    else if (ppcNN) {
        curDate.setMonth(document.popupcalendar.document.forms["Cal"].cboMonth.options[monthCheck].value );
    }
    
    domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));

}

function changeMonth() {

    if (ppcIE) {        
        curDate.setMonth(document.forms["Cal"].cboMonth.options[document.forms["Cal"].cboMonth.selectedIndex].value);
        domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
    }
    else if (ppcNN) {

        curDate.setMonth(document.popupcalendar.document.forms["Cal"].cboMonth.options[document.popupcalendar.document.forms["Cal"].cboMonth.selectedIndex].value);
        domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
    }

}

function changeYear() {
    if (ppcIE) {

        curDate.setFullYear(document.forms["Cal"].cboYear.options[document.forms["Cal"].cboYear.selectedIndex].value);
        domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
    }
    else if (ppcNN) {

        curDate.setFullYear(document.popupcalendar.document.forms["Cal"].cboYear.options[document.popupcalendar.document.forms["Cal"].cboYear.selectedIndex].value);
        domlay('popupcalendar',1,ppcX,ppcY,Calendar(curDate.getMonth(),curDate.getFullYear()));
    }

}

function makeArray0() {
    for (i = 0; i<makeArray0.arguments.length; i++)
        this[i] = makeArray0.arguments[i];
}

var names     = new makeArray0('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
var days      = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var dow       = new makeArray0('L','M','M','J','V','S','D');

var canvas_height;
var canvas_width;
//Deteccion de navegador:
var NS4=document.layers?1:0;
var MSIE=document.all?1:0;
var DOM=(document.getElementById)&&(!MSIE);

function ReadSurfaceSpace() {
	if (MSIE) {
		canvas_height = document.body.offsetHeight;
		canvas_width = document.body.offsetWidth;
	}
	else { // NS4 o DOM
		canvas_height = window.innerHeight;
		canvas_width = window.innerWidth;
	}	
}


//Obtener nombre de capa:
function GetLayer(name) {
	var obj;
	//var x = document.layers;
	
	if (document.layers){
		var x = document.layers;
		for (var i=0;i<x.length;i++){
			if (x[i].id == name) return x[i];
			else if (x[i].layers.length) {
				var tmp = getObjNN4(x[i],name);
				if (tmp) return tmp;
			}
		}
	} 
	else {
		obj=DOM?document.getElementById(name).style:document.all[name].style;	 		    
		return obj;
	}
}



//Recolocar el contenido si hay un cambio en el tamaño de la pagina
function Relocate() {
	var newxpos=0;
	ReadSurfaceSpace();

	var DIVWIDTH = 365; //en vez de 770 que era con los cuadrados rectangulares
	var MINIMO_X = Math.round(canvas_width/2 - DIVWIDTH/2)-16; //para intentar que se ajuste al tamaño de ventana
		

	newxpos = Math.round(canvas_width/2 - DIVWIDTH/2 -40);//que nadie me pregunte por qué puse + 12 
	if ((newxpos>=DIVWIDTH) || (newxpos<MINIMO_X)) newxpos = MINIMO_X;

	GetLayer("popupcalendar").left = newxpos;
	



	return newxpos;
}

// JuntarContenidoMes: recorrer el array con los datos de eventos
// y devolver todos los eventos encontrados en cada fecha.
function JuntarContenidoMes(arraydata, fecha) {
	var desglose_fecha, dia, mes, anio, fecha_compuesta;
	var eventos_en_fecha;
	var html='';

	desglose_fecha = fecha.split('/');
	//mes = padout(fecha.getMonth()); // poner 0 por delante si el mes es menor que 10
	//anio = fecha.getFullYear();
	//mes = padout(desglose_fecha[1]);
	//el mes viene ya con 03, nunca es necesario añadir un 0
	mes = desglose_fecha[1];
	anio = desglose_fecha[2];
	for (dia=1; dia<32; dia++) {
		fecha_compuesta = padout(dia) + '/' + mes + '/' + anio;
		if (typeof(arraydata[fecha_compuesta]) == "string") {
			eventos_en_fecha = arraydata[fecha_compuesta];
			if (eventos_en_fecha!='') {
				if (html.search(eventos_en_fecha)<0) // si no está ya incluido
					html = '<br><br>' + eventos_en_fecha + '\n' + html;
			}
		}
	}
	if (html!='') html = html.slice(4); //quitar el <br> inicial
	return html;
}

