/**************************************************************
Calendario con selector de día (fecha). Script creado por Tunait! (8/8/2004) Actualizado el 21-Dic.-04
Puedes usar este script en tu sitio mientras permanezcan intactas estas líneas, osea, los créditos.
No autorizo a distribuír el código en sitios de script sin previa autorización
Si quieres publicarlo, por favor, contacta conmigo.
Ver condiciones de uso en http://javascript.tunait.com/
tunait@yahoo.com 
****************************************************************/
var idContenedor = "miCalendario" //id del contenedor donde se insertará el calendario
var idCampofecha = "fechaCalendario" //id para el campo donde se mostrará la fecha
var fSalidaNombreMes = true //true escribe el mes por su nombre; false por su número
var fMesAbreviado = false // abrevia el nombre del mes a sus 3 primeras letras
var separadorFecha = "-" //separador para la fecha de salida
var celda = 16 //anchura en pixels para cada cuadro del calendario
var borde = 1 //anchura en pixels para los bordes 
var colorBorde = "#666666" //color de los bordes

/*No tocar nada a partir de aquí */
var hoy = new Date()
//var mesIni = hoy.getMonth()
//var mesFin = hoy.getMonth()
var mesIni = 4
var mesFin = 10
var diaIni = 1
var diaFin = 1
var dia_Ini = 1
var dia_Fin = 1
var anioIni = hoy.getFullYear()
var anioFin = hoy.getFullYear()
var sDeterminarIni = true
var sDeterminarFin = true
var diasSemana = new Array ('L','M','M','J','V','S','D')
var meses = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre')
var tunIex=navigator.appName=="Microsoft Internet Explorer"?true:false;
if(tunIex && navigator.userAgent.indexOf('Opera')>=0){tunIex = false}
tunOp = navigator.userAgent.indexOf('Opera')>=0 ? true: false;
var tunSelIni = false
var tunSelFin = false
var pIni = true
var pFin = true
function tunCalendario(suf){
document.getElementById('miCalendario' + suf).style.height = '153px';
dia2 = eval('dia' + suf)
var anCa = celda * 7
anCa += borde * 6 
if(tunIex || tunOp){anCa +=2}
tab = document.createElement('div')
tab.id = 'calendario' + suf
tab.style.width = anCa + "px"
tab.style.padding = "1px"
tab.style.backgroundColor = colorBorde
document.getElementById(idContenedor + suf).appendChild(tab)
//fCalendario = document.createElement('input')
//fCalendario.type = "text"
//fCalendario.className = "selectores"
//fCalendario.id = idCampofecha + suf
//fCalendario.name = idCampofecha + suf
//fCalendario.onfocus = function(){alert(this.value);this.blur()}
//document.getElementById(idContenedor + suf).appendChild(fCalendario)
fi2 = document.createElement('div')
fi2.id = 'mes' + suf
fi2.style.clear = "both"
fi2.style.height = celda + "px"
fi2.style.marginBottom = borde + "px"
fi2.appendChild(document.createTextNode(meses[eval('mes' + suf)] + "  -  " + eval('anio' + suf)))
fi = document.createElement('div')
fi.appendChild(fi2)
fi.className = 'fila'
fi.style.clear = "both"
tab.appendChild(fi)
fi.style.height = celda + "px"
fi.style.marginBottom = borde + "px"
for(m=0;m<7;m++){
	ce = document.createElement('div')
	ce.style.width = celda + "px"
	ce.style.height = celda + "px"
	ce.style.marginRight = borde + "px"
	ce.className = "diaS"
	tunIex ? ce.style.styleFloat = "left" : ce.style.cssFloat ="left"
	ce.appendChild(document.createTextNode(diasSemana[m]))
	fi.appendChild(ce)
	if(m == 6){ce.style.marginRight = 0}
	}
	var escribe = false
	var escribe2 = true
fecha = new Date(eval('anio' + suf),eval('mes' + suf),eval('dia' + suf))
var d = fecha.getDay()-1 
if(d<0){d = 6}
while(escribe2){
fi = document.createElement('div')
fi.className = 'fila'
fi.style.clear = "both"
fi.style.marginBottom = borde + "px"
fi.style.height = celda + "px"
co = 0
	for(t=0;t<7;t++){
		ce = document.createElement('div')
		ce.style.width = celda + "px"
		ce.style.height = celda + "px"
		ce.style.marginRight = borde + "px"
		ce.style.position = "relative"
		if(escribe && escribe2){
		fecha2 = new Date(eval('anio' + suf),eval('mes' + suf),eval('dia' + suf))
			if(fecha2.getMonth() != eval('mes' + suf)){escribe2 = false;}
			else{
			ce.appendChild(document.createTextNode(eval('dia' + suf)));
			eval('dia' + suf + '++');
			co++;
			ce.onclick = function(){eval('sDeterminar' + suf + '= false'); marcaCalendario(suf,this.firstChild.nodeValue,this)}
			}
		}
		if(d == t && !escribe){
		ce.appendChild(document.createTextNode(eval('dia' + suf)))
		eval('dia' + suf + '++');co++
		escribe = true
		ce.onclick = function(){eval('sDeterminar' + suf + '= false');marcaCalendario(suf,this.firstChild.nodeValue,this)}
		}
		fi.appendChild(ce)
		if(hoy.getDate()+1 == eval('dia' + suf) && eval('mes' + suf) == hoy.getMonth() && eval('anio' + suf) == hoy.getFullYear()){ce.className = "Hoy"}
		else{ce.className = 'celda'}
		if(eval('p' + suf) && eval('dia' + suf) - 1 == eval('dia_' + suf)){eval('p' + suf + '= false'); marcaCalendario(suf,eval('dia_' + suf),ce)}
		tunIex ? ce.style.styleFloat = "left" : ce.style.cssFloat ="left"
		if(t == 6){ce.style.marginRight = 0}
		}
		
	if(co>0){tab.appendChild(fi)}
	
	}
eval('dia' + suf + '= dia2')
eval('p' + suf + '= true')
}
function marcaCalendario(suf,valor,obj){
eval('dia_' + suf + '=' + valor)
salidaMes = eval('mes' + suf) +1
if(fSalidaNombreMes){
	salidaMes = meses[eval('mes' + suf)] 
	if(fMesAbreviado){
		salidaMes = salidaMes.substring(0,3)
	}
}
document.getElementById('visor' + suf).value = eval('sDeterminar' + suf) ? textoseleccione : valor + separadorFecha + salidaMes + separadorFecha + eval('anio' + suf)
//document.getElementById(idCampofecha + suf).value = valor + separadorFecha + salidaMes + separadorFecha + eval('anio' + suf)
if((eval('mes' + suf) + 1) < 10){
	mesSalida = '0' + (eval('mes' + suf) + 1)
}
else{
	mesSalida = eval('mes' + suf) + 1
}
if(valor < 10){
	diaSalida = '0' + valor
}
else{
	diaSalida = valor
}

document.getElementById('fecha' + suf).value =  eval('sDeterminar' + suf) ? 0 : eval('anio' + suf) + "" + mesSalida + "" + diaSalida
//alert(document.getElementById(idCampofecha + suf).value)
ceSe = document.createElement('div')
if(!eval('sDeterminar' + suf)){
	ceSe.id = "tunSeleccionado" + suf
	with(ceSe.style){
		borderWidth = "1px"
		borderStyle = "solid"
		borderColor = "#ff0000"
		width = celda -2 + "px"
		height = celda -2 + "px"
		position = "absolute"
		left = 0
		top = 0
		zIndex = "200"
		}
		tunSel = eval('tunSel' + suf)
		//alert('tunSel' + suf)
		if(eval('tunSel' + suf)){
			eval('tunSel' + suf).removeChild(eval('tunSel' + suf).firstChild.nextSibling)
		}
	eval('tunSel' + suf +' = obj')
	obj.appendChild(ceSe)
	}
}

function borra(suf){
document.getElementById(idContenedor + suf).removeChild(document.getElementById('calendario' + suf))
}
function establecerFecha(suf){
tunFe = new Date()
document.getElementById('tunMes' + suf).options[tunFe.getMonth()].selected = true
document.getElementById('tunAnio' + suf).value = tunFe.getFullYear()
}
function establecerFecha2(suf){
//tunFe = new Date()
//document.getElementById('tunMes' + suf).options[eval('mes' + suf)].selected = true
//document.getElementById('tunAnio' + suf).value = tunFe.getFullYear()
document.getElementById('visor' + suf).value = textoseleccione;
}
function avanzaMes(suf){
	if(eval('mes' + suf) < 11){
		eval('mes' + suf + '++')
	}
	else{
		eval('mes' + suf + ' = 0')
		eval('anio' + suf + ' ++')
	}
	borra(suf);
	tunCalendario(suf);
}
function retroMes(suf){
	if(eval('mes' + suf) > 0){
		eval('mes' + suf + '--')
	}
	else{
		eval('mes' + suf + ' = 11')
		eval('anio' + suf + ' --')
	}
	borra(suf);
	tunCalendario(suf);
}
function fechaSinDeterminar(suf,obj){
	//obj.firstChild.nodeValue = 'sin determinar'
	eval('mes' + suf +'= hoy.getMonth()')
	eval('dia' + suf + '= 1')
	eval('anio' + suf +'= hoy.getFullYear()')
	eval('sDeterminar' + suf + '= true')
	borra(suf);
	tunCalendario(suf);
}
