//Determinamos la fecha actual
	var hoy = new Date();

	//Determinamos el d�a de la semana
	var diauno = new Date();
	diauno.setDate(7);

function imprimeCalendarioLim(identificador){
	var diasem = diauno.getDay();
    var comprobar = document.getElementById('calendario2');
    if(comprobar==null){
	var w = document.createElement('div');
	w.setAttribute('id','calendario2');
	var t = document.createElement('table');
	w.appendChild(t);
	t.setAttribute('border',1);
	var z = t.insertRow(0);
	var g = t.insertRow(1);
	var r = t.insertRow(2);

	//Cabecera del a�o y el mes
	var meses=new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
	var a = document.createElement('th');
	var b = document.createElement('th');
	var d = document.createElement('td');
	var e = document.createElement('td');
	var f = document.createElement('td');
	var h = document.createElement('td');
	a.setAttribute("colspan", 5);
        a.colSpan=5;
	b.setAttribute("colspan", 5);
        b.colSpan=5;
	var AnyoMenos = document.createTextNode("<<");
	var AnyoMas = document.createTextNode(">>");
	var MesMenos = document.createTextNode("<<");
	var MesMas = document.createTextNode(">>");
	var txtAnyo = document.createTextNode(diauno.getFullYear());
	var txtMes = document.createTextNode(meses[diauno.getMonth()]);
	a.appendChild(txtAnyo);
	b.appendChild(txtMes);
	d.appendChild(AnyoMenos);
	e.appendChild(AnyoMas);
	f.appendChild(MesMenos);
	h.appendChild(MesMas);
	z.appendChild(d);
	z.appendChild(a);
	z.appendChild(e);
	g.appendChild(f);
	g.appendChild(b);
	g.appendChild(h);

	//Al hacer click en << o >> cambiar a�o o mes
	d.setAttribute('onclick', 'actualizarLim("'+identificador+'",'+(diauno.getFullYear()-1)+','+diauno.getMonth()+')');
        //d.onclick = new Function('actualizar("'+identificador+'",'+(diauno.getFullYear()-1)+','+diauno.getMonth()+')'); // {actualizar(identificador,(diauno.getFullYear()-1),diauno.getMonth());};
	d.onclick = new Function('actualizarLim("'+identificador+'",'+(diauno.getFullYear()-1)+','+diauno.getMonth()+')');
        e.setAttribute('onclick', 'actualizarLim("'+identificador+'",'+(diauno.getFullYear()+1)+','+diauno.getMonth()+')');
        //e.onclick = function() {actualizar(identificador,(diauno.getFullYear()+1),diauno.getMonth());};
        e.onclick = new Function('actualizarLim("'+identificador+'",'+(diauno.getFullYear()+1)+','+diauno.getMonth()+')');
        
	d.setAttribute('id', 'botonescal');
        d.id = 'botonescal';
	e.setAttribute('id', 'botonescal');
        e.id = 'botonescal';
	if(diauno.getMonth()==0){
		f.setAttribute('onclick', 'actualizarLim("'+identificador+'",'+(diauno.getFullYear()-1)+','+(diauno.getMonth()-1)+')');
                //f.onclick = function() {actualizar(identificador,(diauno.getFullYear()-1),(diauno.getMonth()-1));};
                f.onclick = new Function('actualizarLim("'+identificador+'",'+(diauno.getFullYear()-1)+','+(diauno.getMonth()-1)+')');
        }
	else{
		f.setAttribute('onclick', 'actualizarLim("'+identificador+'",'+diauno.getFullYear()+','+(diauno.getMonth()-1)+')');
                //f.onclick = function() {actualizar(identificador,diauno.getFullYear(),(diauno.getMonth()-1));};
                f.onclick = new Function('actualizarLim("'+identificador+'",'+diauno.getFullYear()+','+(diauno.getMonth()-1)+')');
        }
	if(diauno.getMonth()==11){
		h.setAttribute('onclick', 'actualizarLim("'+identificador+'",'+(diauno.getFullYear()+1)+','+(diauno.getMonth()+1)+')');
                //h.onclick = function() {actualizar(identificador,(diauno.getFullYear()+1),(diauno.getMonth()+1));};
                h.onclick = new Function('actualizarLim("'+identificador+'",'+(diauno.getFullYear()+1)+','+(diauno.getMonth()+1)+')');
        }
	else{
		h.setAttribute('onclick', 'actualizarLim("'+identificador+'",'+diauno.getFullYear()+','+(diauno.getMonth()+1)+')');
                //h.onclick = function() {actualizar(identificador,diauno.getFullYear(),(diauno.getMonth()+1));};
                h.onclick = new Function('actualizarLim("'+identificador+'",'+diauno.getFullYear()+','+(diauno.getMonth()+1)+')');
        }
		
        f.setAttribute('id', 'botonescal');
        f.id = 'botonescal';
	h.setAttribute('id', 'botonescal');
        h.id = 'botonescal';
				
	//Introducimos la cabecera
	var cabecera=new Array('L','M','X','J','V','S','D');
	for(var i=0;i<7;i++){
		var c = document.createElement('th');
		var txt = document.createTextNode(cabecera[i]);
		c.appendChild(txt);
		r.appendChild(c);
		}

	//Relleno inicial
	r = t.insertRow(3);
	for(var i=0;i<diasem;i++)
		r.insertCell(i);

	//Determinar el n�mero de d�as del mes
	var diasmes = calcularDiasMesLim(diauno.getMonth()+1,diauno.getFullYear());

	//Comenzamos a imprimir los d�as
	for(var i=1;i<=diasmes;i++){
		var c = r.insertCell(diasem);
		var txt = document.createTextNode(i);
		if(i!=hoy.getDate())
			c.appendChild(txt);
		else{
			var s = document.createElement('strong');
			s.appendChild(txt);
			c.appendChild(s);
			}
		c.setAttribute('onclick','devuelveFechaLim("'+identificador+'",'+i+','+(diauno.getMonth()+1)+','+diauno.getFullYear()+')');
                //c.onclick = function() {devuelveFecha(identificador,i,(diauno.getMonth()+1),diauno.getFullYear());};
                c.onclick = new Function('devuelveFechaLim("'+identificador+'",'+i+','+(diauno.getMonth()+1)+','+diauno.getFullYear()+')');

		diasem++;
		if(diasem==7){
			diasem=0;
			r = t.insertRow(t.rows.length);
			}
		}
	//Finalizacion
	document.getElementById('calendario_lim').appendChild(w);

	//Estilo
	//document.body.style.background = "blue";
	w.style.fontFamily = "Verdana";
	//w.style.color="white";
	a.style.color="#C22222";
	b.style.color="#C22222";
	d.style.color="#C22222";
	e.style.color="#C22222";
	f.style.color="#C22222";
	h.style.color="#C22222";
	t.style.zindex=+1;
    }
}

function calcularDiasMesLim(mes,anyo){
	switch(mes){
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			return 31;
			break;

		case 4:
		case 6:
		case 9:
		case 11:
			return 30;
			break;

		case 2:
			if( anyo%4==0 && anyo%100!=0 || anyo%400==0 )
				return 29;
			else
				return 28;
			break;
		}
}

function devuelveFechaLim(identificador,dia,mes,anyo){
	var ent = document.getElementById(identificador);
        if(dia.toString().length==1){
            dia = "0"+dia;
        }
        if(mes.toString().length==1){
            mes = "0"+mes;
        }
	ent.value = dia + '/' + mes + '/' + anyo;
	var cal = document.getElementById('calendario2');
	document.getElementById('calendario_lim').removeChild(cal);
        //imprimeCalendarioLim(identificador);
}

function actualizarLim(identificador, anyo, mes){
	diauno.setMonth(mes);
	diauno.setFullYear(anyo);
	var cal = document.getElementById('calendario2');
	document.getElementById('calendario_lim').removeChild(cal);
	imprimeCalendarioLim(identificador);
}
