function actualizarcombossinanyo(date, month){

	var dia_antiguo=(date.selectedIndex+1);
	
	date.options[30]=null;
	date.options[29]=null;
	date.options[28]=null;


	for (i=1; getDays(month.selectedIndex, 2003) >= i; i++) {
		j = i;
		if (i < 10)
			j = "0" + j;
		var option = new Option(j, j);
		date.options[i-1]=option;
		if (i == dia_antiguo) {
			date.options[i-1].selected=true;
		}
	}

}


function inicializarcombossinanyo(auxdia, auxmes, date, month) {
	
	for (i=1; getDays(auxmes, 2003) >= i; i++) {
		j = i;
		if (j < 10)
			j = "0" + j;
		var option = new Option(j, j);
		date.options[i-1]=option;
		if (i == auxdia) {
			date.options[i-1].selected=true;
		}
	}
	month.selectedIndex=auxmes;
}

function actualizar_combo(date, month, year){

	var dia_antiguo=(date.selectedIndex+1);
	
	date.options[30]=null;
	date.options[29]=null;
	date.options[28]=null;
	for (i=1; getDays(month.selectedIndex, year.options[year.selectedIndex].value) >= i; i++) {
		j = i;
		if (i < 10)
			j = "0" + j;
		var option = new Option(j, j);
		date.options[i-1]=option;
		if (i == dia_antiguo) {
			date.options[i-1].selected=true;
		}
	}
}


function actualizar_combo2(campoDestino,date, month, year){

	var dia_antiguo=(date.selectedIndex+1);
	
	date.options[30]=null;
	date.options[29]=null;
	date.options[28]=null;
	for (i=1; getDays(month.selectedIndex, year.options[year.selectedIndex].value) >= i; i++) {
		j = i;
		if (i < 10)
			j = "0" + j;
		var option = new Option(j, j);
		date.options[i-1]=option;
		if (i == dia_antiguo) {
			date.options[i-1].selected=true;
		}
	}

	document.getElementById(campoDestino).value = date.options[date.selectedIndex].value+"/"+month.options[month.selectedIndex].value+"/"+year.options[year.selectedIndex].value;
//	alert (document.getElementById(campoDestino).value);
}



function inicializar_combos(hoy, date, month, year, minano, maxano, hora,minuto) {
	var auxano = hoy.getFullYear();
	var auxmes = hoy.getMonth();
	var auxhora = hoy.getHours();
	var auxdia = hoy.getDate();
	var auxminuto=hoy.getMinutes();

	hoy = null;
	for (i=1; getDays(auxmes, auxano) >= i; i++) {
		j = i;
		if (j < 10)
			j = "0" + j;
		var option = new Option(j, j);
		date.options[i-1]=option;
		if (i == auxdia) {
			date.options[i-1].selected=true;
		}
	}
	month.selectedIndex=auxmes;
	for (j=minano; maxano >= j; j++) {
		var option2 = new Option(j, j);
		year.options[j-minano]=option2;
		if (j == auxano) {
			year.options[j-minano].selected=true;
		}
	}
	if (inicializar_combos.arguments.length == 8){	
		for (var i = 0; i < hora.length; i++){
			if (hora.options[i].value == auxhora)
				hora.options[i].selected=true;
		}
	minuto.selectedIndex=auxminuto;
		for (var i = 0; i < minuto.length; i++){
			if (minuto.options[i].value == auxminuto)
				minuto.options[i].selected=true;
		}

	}
}


<!--

// Copyright 1996 - Tomer and Yehuda Shiran
// This example will appear in our forthcoming book on JavaScript.
// Feel free to "steal" this code provided that you leave this notice as is.
// Additional examples from the book can be found at http://www.geocities.com/SiliconValley/9000/
// For more information contact Tomer or Yehuda Shiran <yshiran@iil.intel.com>

//setCal()

function getTime() {
	// initialize time-related variables with current time settings
	var now = new Date()
	var hour = now.getHours()
	var minute = now.getMinutes()
	now = null
	var ampm = "" 

	// validate hour values	and set value of ampm
	if (hour >= 12) {
		hour -= 12
		ampm = "PM"
	} else
		ampm = "AM"
	hour = (hour == 0) ? 12 : hour

	// add zero digit to a one digit minute
	if (minute < 10)
		minute = "0" + minute // do not parse this number!

	// return time string
	return hour + ":" + minute + " " + ampm
}

function LeapYear(intYear) {
if (intYear % 100 == 0) {
	if (intYear % 400 == 0) { return true; }
}
else {
	if ((intYear % 4) == 0) { return true; }
}
return false;
}

function getDays(month, year) {
	// create array to hold number of days in each month
	var ar = new Array(12)
	ar[0] = 31 // January
	ar[1] = (LeapYear(year)) ? 29 : 28 // February
	ar[2] = 31 // March
	ar[3] = 30 // April
	ar[4] = 31 // May
	ar[5] = 30 // June
	ar[6] = 31 // July
	ar[7] = 31 // August
	ar[8] = 30 // September
	ar[9] = 31 // October
	ar[10] = 30 // November
	ar[11] = 31 // December

	// return number of days in the specified month (parameter)
	return ar[month]
}

function getMonthName(month) {
	// create array to hold name of each month
	var ar = new Array(12)
	ar[0] = "January"
	ar[1] = "February"
	ar[2] = "March"
	ar[3] = "April"
	ar[4] = "May"
	ar[5] = "June"
	ar[6] = "July"
	ar[7] = "August"
	ar[8] = "September"
	ar[9] = "October"
	ar[10] = "November"
	ar[11] = "December"

	// return name of specified month (parameter)
	return ar[month]
}

function setCal() {
	// standard time attributes
	var now = new Date()
	var year = now.getYear()
	var month = now.getMonth()
	var monthName = getMonthName(month)
	var date = now.getDate()
	now = null

	// create instance of first day of month, and extract the day on which it occurs
	var firstDayInstance = new Date(year, month, 1)
	var firstDay = firstDayInstance.getDay()
	firstDayInstance = null

	// number of days in current month
	var days = getDays(month, year)

	// call function to draw calendar
	drawCal(firstDay + 1, days, date, monthName, year)
}

function drawCal(firstDay, lastDate, date, monthName, year) {
	// constant table settings
	var headerHeight = 50 // height of the table's header cell
	var border = 2 // 3D height of table's border
	var cellspacing = 4 // width of table's border
	var headerColor = "midnightblue" // color of table's header
	var headerSize = "+3" // size of tables header font
	var colWidth = 60 // width of columns in table
	var dayCellHeight = 25 // height of cells containing days of the week
	var dayColor = "darkblue" // color of font representing week days
	var cellHeight = 40 // height of cells representing dates in the calendar
	var todayColor = "red" // color specifying today's date in the calendar
	var timeColor = "purple" // color of font representing current time

	// create basic table structure
	var text = "" // initialize accumulative variable to empty string
	text += '<CENTER>'
	text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing
+ '>' // table settings
	text += 	'<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
	text += 		'<FONT COLOR="' + headerColor + '" SIZE='
+ headerSize + '>' // set font for table header
	text += 			monthName + ' ' + year 
	text += 		'</FONT>' // close table header's font settings
	text += 	'</TH>' // close header cell

	// variables to hold constant settings
	var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight
+ '>'
	openCol += '<FONT COLOR="' + dayColor + '">'
	var closeCol = '</FONT></TD>'

	// create array of abbreviated day names
	var weekDay = new Array(7)
	weekDay[0] = "Sun"
	weekDay[1] = "Mon"
	weekDay[2] = "Tues"
	weekDay[3] = "Wed"
	weekDay[4] = "Thu"
	weekDay[5] = "Fri"
	weekDay[6] = "Sat"
	
	// create first row of table to set column width and specify week day
	text += '<TR ALIGN="center" VALIGN="center">'
	for (var dayNum = 0; dayNum < 7; ++dayNum) {
		text += openCol + weekDay[dayNum] + closeCol 
	}
	text += '</TR>'
	
	// declaration and initialization of two variables to help with tables
	var digit = 1
	var curCell = 1
	
	for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7);
++row) {
		text += '<TR ALIGN="right" VALIGN="top">'
		for (var col = 1; col <= 7; ++col) {
			if (digit > lastDate)
				break
			if (curCell < firstDay) {
				text += '<TD></TD>';
				curCell++
			} else {
				if (digit == date) { // current cell represent today's date
					text += '<TD HEIGHT=' + cellHeight
+ '>'
					text += '<FONT COLOR="' +
todayColor + '">'
					text += digit
					text += '</FONT><BR>'
					text += '<FONT COLOR="' +
timeColor + '" SIZE=2>'
					text += '<CENTER>' + getTime() +
'</CENTER>'
					text += '</FONT>'
					text += '</TD>'
				} else
					text += '<TD HEIGHT=' + cellHeight
+ '>' + digit + '</TD>'
				digit++
			}
		}
		text += '</TR>'
	}
	
	// close all basic table tags
	text += '</TABLE>'
	text += '</CENTER>'

	// print accumulative HTML string
	document.write(text) 
}



// -->


/*********************************************************************************/
/**************** COMPROBAR QUE UNA FECHA ES VALIDA ****************************/
function chkdate(intYear,intMonth,intday) {
var err = 0;

if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
	if (intday < 1) {
		err = 8;
		return false;
	}
	if (LeapYear(intYear) == true) {
		if (intday > 29) {
			err = 9;
			return false;
		}
	}
	else {
		if (intday > 28) {
			err = 10;
			return false;
		}
	}
}
return true;
}


function LeapYear(intYear) {
if (intYear % 100 == 0) {
	if (intYear % 400 == 0) { return true; }
}
else {
	if ((intYear % 4) == 0) { return true; }
}
return false;
}

// Pasandole como parametro (fecha) la fecha en formato yyyy-mm-dd lo visualiza en pantalla en formato
// dd/mm/yyyy
function FormatoFecha(fecha)
{
	if ((fecha=="null") || (fecha==""))
		document.write("-");
	else
	{
		var cadena = fecha.split('-');
		var hora = cadena[2].split(' ');
		if (hora[1])
			document.write(hora[0] + '/' + cadena[1] + '/' + cadena[0] + " " + hora[1]);
		else
			document.write(hora[0] + '/' + cadena[1] + '/' + cadena[0]);
	}
}

function FormatoFechaInicioFin(fechainicio,fechafin)
{
	/*if ((fecha=="null") || (fecha==""))
		document.write("-");
	else
	{*/
		var cadenainicio = fechainicio.split('-');
		var cadenafin = fechafin.split('-');
		var horainicio = cadenainicio[2].split(' ');
		var horafin = cadenafin[2].split(' ');
		
			document.write(horainicio[0] + '/' + cadenainicio[1] + '/' + cadenainicio[0]+ ' - ' );
			document.write(horafin[0] + '/' + cadenafin[1] + '/' + cadenafin[0] +'<br>');
			document.write(horainicio[1] + ' - ');
			document.write(horafin[1]);


	//}
}





function FormatoFechaSinHora(fecha)
{
	if ((fecha=="null") || (fecha==""))
		document.write("-");
	else
	{
		var cadena = fecha.split('-');
		var hora = cadena[2].split(' ');
		document.write(hora[0] + '/' + cadena[1] + '/' + cadena[0]);
	}
}


// Pasandole como parametro (fecha) la fecha en formato ddmmyyyy lo visualiza en pantalla en formato
// dd/mm/yyyy
function FormatoFecha2(fecha)
{
	if ((fecha=="null") || (fecha==""))
		document.write("-");
	else
	{
		document.write(fecha.substring(0,2) + "/" + fecha.substring(2,4) + "/" + fecha.substring(4,8));
	}
}



function rangofechas (diaini,mesini,anoini,horaini,minutoini,diafin,mesfin,anofin,horafin,minutofin){



if ((anofin < anoini) || ((anofin==anoini) && (mesfin*1 < mesini*1)) || ((anofin==anoini) && (mesfin == mesini) && (diafin*1 < diaini*1)))

return true;



else 
return false;


}

