//FUNCIONES PARA ESCRIBIR LOS COMBOS DE LAS FECHAS
//Esto ya se hizo en incEconomicosHistoricos.asp
//var min_year = 2000; // defines lowest year in year menu
//var max_year = 2020; // defines highest year in the year menu

// make this false to prevent the weekday element from being displayed
var weekday_showing = false;

// make this true to make dayofweek return a number (0-6)
var dayofweek_returned_as_number = true;

// make this true to make month return a number (0-11)
var month_returned_as_number = true;

if (min_year <= 400)
	alert("Minimum year must be higher than 400 for this algorithm to work.");
	
// The following code adds three methods to the built-in Date object
function _strMonth() {
	var months = new Array("January", "February", "March", "April",
	   "May", "June", "July", "August", "September", "October", 
	   "November", "December");
return months[this.getMonth()];
}

function _strDay() {
	var days= new Array("Sunday", "Monday", "Tuesday", "Wednesday", 
	    "Thursday", "Friday", "Saturday");
return days[this.getDay()];
}

function _weekOf() {
	sunday = ((arguments[0]==null) || (!arguments[0])); // Check for optional argument
return (new Date(this - ((this.getDay() - ((sunday) ? 0 : 1)) *24*60*60*1000)));
}

// Add these methods to all dates
Date.prototype.weekOf = _weekOf;
Date.prototype.strMonth = _strMonth;
Date.prototype.strDay = _strDay;

function changeDays(numb,date_form,aname) {
	MonthCtrl = eval("date_form." + aname +"month");
	DayCtrl = eval("date_form." + aname +"day");
	YearCtrl = eval("date_form." + aname +"year");
	
	mth = eval(MonthCtrl.selectedIndex);
	sel = eval(YearCtrl.selectedIndex);
	yr = eval(YearCtrl.options[sel].text);

	if (numb != 1) {
		numDays = numDaysIn(mth,yr);
		eval("date_form." + aname +"day.options.length="+numDays) ;
		for (i=27;i<numDays;i++) {
			j=i+1;
			eval("date_form." + aname +"day.options["+i+"].text = "+j);
		}
	}
}
	
function numDaysIn(mth,yr) {
	if (mth==3 || mth==5 || mth==8 || mth==10) return 30;
	else if ((mth==1) && leapYear(yr)) return 29;
	else if (mth==1) return 28;
	else return 31;
}

function leapYear(yr) {
	if (((yr % 4 == 0) && yr % 100 != 0) || yr % 400 == 0)
		return true;
	else
		return false;
}

function arr() {
	this.length=arr.arguments.length;
	for (n=0;n<arr.arguments.length;n++) {
		this[n] = arr.arguments[n];
	}
}

weekdays = new arr("Sun.","Mon.","Tues.","Wed.", "Thurs.","Fri.","Sat.");
 
months = new arr("Ene.","Feb.","Mar.","Abr.","May","Jun.","Jul.","Ago.","Sep.","Oct.","Nov.","Dic.");
 
var cur = new Date();

function getWeekDay(mth,day,yr) {
	first_day = firstDayOfYear(yr);
	for (num=0;num<mth;num++) {
		first_day += numDaysIn(num,yr);
	}
	first_day += day-1;
return first_day%7;
}

function firstDayOfYear(yr) {
	diff = yr - 401;
	return parseInt((1 + diff + (diff / 4) - (diff / 100) + (diff / 400)) % 7);
}

// fixes a Netscape 2 and 3 bug
function getFullYear(d) { // d is a date object
	yr = d.getYear();
	if (yr < 1000)
		yr+=1900;
	return yr;
}


function datedrop(myname,feeddate,numForma){
	//alert (feeddate);
	if(!feeddate)
	{
		d=new Date();
		edmonth=d.getMonth();
		edday=d.getDate();
		edyear=d.getFullYear();
	}
	else
	{
		d=new Date(feeddate)
		edmonth=d.getMonth();
		edday=d.getDate();
		edyear=d.getFullYear();
	}

	// write month element
	
	document.write("<select class='foot' style='font-size: 8pt;' id="+myname+"month name="+myname+"month size=1 onChange='changeDays(0,this.form,"+'"'+myname+'"'+")'>");
	for (i=1;i<13;i++)
	 document.write("<option"+(month_returned_as_number?" value="+i:"")
	  +(edmonth==i-1?" selected":"")+">"+months[i-1]+"\n");

	// write day element
	document.write("</select><select class='foot' style='font-size: 8pt;' id="+myname+"day name="+myname+"day size=1 onChange='changeDays(0,this.form,"+'"'+myname+'"'+")'>\n");
	for (i=1;i<=numDaysIn(d.getMonth(),getFullYear(d));i++)
	 document.write("<option"+(edday==i?" selected":"")+">"+i+"\n");

	// write year element
	document.write("</select><select class='foot' style='font-size: 8pt;' id="+myname+"year name="+myname+"year size=1 onChange='changeDays(0,this.form,"+'"'+myname+'"'+")'>\n");
	for (i=min_year;i<max_year;i++)
	  document.write("<option"+(edyear==i?" selected":"")+">"+i+"\n");
	document.write("</select>");
}

function funRevisarFormaHistoricos ( frmHistoricos )  {
  var blnRetornar   = false ;
	
  // Estoy en consulta básica - Revisar Fechas
	var numAnioDesde = frmHistoricos.ConsultaFechasDesdeyear.selectedIndex + min_year ;
	var numAnioHasta = frmHistoricos.ConsultaFechasHastayear.selectedIndex + min_year ;
	if  ( frmHistoricos.sinDias.value == '0' || frmHistoricos.sinMeses.value != '1' )  {
	  var numMonthDesde = frmHistoricos.ConsultaFechasDesdemonth.selectedIndex + 1 - 1 ; // Resto 1 porque meses en JS van de 0 a 11
	  var numMonthHasta = frmHistoricos.ConsultaFechasHastamonth.selectedIndex + 1 - 1 ;
	}
	if  ( frmHistoricos.sinDias.value == '0' )  {	
	  var numDayDesde   = frmHistoricos.ConsultaFechasDesdeday.selectedIndex + 1 ;
	  var numDayHasta   = frmHistoricos.ConsultaFechasHastaday.selectedIndex + 1 ;
	}
	
  if  ( frmHistoricos.sinDias.value == '0' )  {
	  datFechaIni = new Date ( numAnioDesde, numMonthDesde, numDayDesde ) ;
	  datFechaFin = new Date ( numAnioHasta, numMonthHasta, numDayHasta ) ;
  } else {
    if  ( frmHistoricos.sinMeses.value == '1' )  {
	    datFechaIni = new Date ( numAnioDesde, 01, 01 ) ;
	    datFechaFin = new Date ( numAnioHasta, 01, 01 ) ;
    } else {
		  datFechaIni = new Date ( numAnioDesde, numMonthDesde, 01 ) ;
	    datFechaFin = new Date ( numAnioHasta, numMonthHasta, 01 ) ;
    }
  }
	if  (  datFechaIni < datFechaFin  )  {
    blnRetornar = true ;
  } else {
	    diferenciaDias=Math.round((datFechaFin-datFechaFin)/864e5);
		if  (  diferenciaDias==0  &&  frmHistoricos.generar[1].checked  )  {
		  blnRetornar = true ;
		} else {
		  blnRetornar = false ;
		  if  (  diferenciaDias==0  )  {
			alert ( "Por favor revise las fechas seleccionadas. Estás no pueden ser iguales." ) ;
		  } else {
			alert ( "Por favor revise las fechas seleccionadas. Este no es un rango válido." ) ;
		  }
		}
  }
  if  (  !frmHistoricos.generar1.checked  &&  !frmHistoricos.generar2.checked  &&  !frmHistoricos.generar3.checked  )  {
    alert ( "Por favor seleccione un tipo de búsqueda." ) ;
    blnRetornar = false ;
  }
  return blnRetornar ;
}


function funRevisarFormaHistoricosAvanzada ( frmHistoricos )  {
  var blnRetornar = false
  
  //Estoy en consulta avanzada
  if  ( frmHistoricos.tipoConsulta2.checked ) {
    // Consultar por Rango de Valores
    numValorIni = new String (frmHistoricos.ConsultaValoresIni.value)
    numValorFin = new String (frmHistoricos.ConsultaValoresFin.value)
    numValorIni = numValorIni.replace ( ',', '.' )
    numValorFin = numValorFin.replace ( ',', '.' )
    if  ( ( isNaN ( numValorIni )  || ( numValorIni == "" )
       || isNaN ( numValorFin )  || ( numValorFin == "" ) )
       ||  ( Number ( numValorIni ) >= Number ( numValorFin ) ) ) {
      alert ( "CONSULTA POR RANGO DE VALORES: Por favor revise que los valores digitados sean válidos." ) ;
    } else {
      blnRetornar = true ;
    }
  } else {
    if  ( frmHistoricos.tipoConsulta3.checked )  {
      // Consultar por Funciones Comparativas
     numValor = new String (frmHistoricos.ConsultaFuncionesValor.value)
     numValor = numValor.replace ( ',', '.' )
      if  ( isNaN ( numValor ) || ( numValor == "" ) )  {
        alert ( "CONSULTA POR FUNCIONES COMPARATIVAS: Por favor revise que el valor digitado sea válido." ) ;
      } else {
        blnRetornar = true ;
      }
    } else {
      if  ( !frmHistoricos.tipoConsulta4.checked )
        alert ( "Necesita seleccionar un tipo de consulta." ) ;
      else
        blnRetornar = true ;
    }
  }
  
  // Revisar Fechas
  if  (  blnRetornar == true  )  {
		var numAnioDesde = frmHistoricos.ConsultaFechasDesdeyear.selectedIndex + min_year ;
		var numAnioHasta = frmHistoricos.ConsultaFechasHastayear.selectedIndex + min_year ;
		if  ( frmHistoricos.sinDias.value == '0' || frmHistoricos.sinMeses.value != '1' )  {
			var numMonthDesde = frmHistoricos.ConsultaFechasDesdemonth.selectedIndex + 1 - 1 ; // Resto 1 porque meses en JS van de 0 a 11
			var numMonthHasta = frmHistoricos.ConsultaFechasHastamonth.selectedIndex + 1 - 1 ;
		}
		if  ( frmHistoricos.sinDias.value == '0' )  {	
			var numDayDesde   = frmHistoricos.ConsultaFechasDesdeday.selectedIndex + 1 ;
			var numDayHasta   = frmHistoricos.ConsultaFechasHastaday.selectedIndex + 1 ;
		}
	
    if  ( frmHistoricos.sinDias.value == '0' )  {
	    datFechaIni = new Date ( numAnioDesde, numMonthDesde, numDayDesde ) ;
	    datFechaFin = new Date ( numAnioHasta, numMonthHasta, numDayHasta ) ;
    } else {
      if  ( frmHistoricos.sinMeses.value == '1' )  {
	      datFechaIni = new Date ( numAnioDesde, 01, 01 ) ;
	      datFechaFin = new Date ( numAnioHasta, 01, 01 ) ;
      } else {
		    datFechaIni = new Date ( numAnioDesde, numMonthDesde, 01 ) ;
	      datFechaFin = new Date ( numAnioHasta, numMonthHasta, 01 ) ;
      }
    }
    if  (  datFechaIni <= datFechaFin  )  {
      blnRetornar = true ;
    } else {
      blnRetornar = false ;
      alert ( "Por favor revise las fechas seleccionadas. Estas no son válidas." ) ;
    }
  }
  if  (  !frmHistoricos.generar1.checked  &&  !frmHistoricos.generar3.checked  )  {
    alert ( "Por favor seleccione un tipo de búsqueda." ) ;
    blnRetornar = false ;
  }
  return blnRetornar ;
}


function funClicTipo ( numElemento ) {
  frmHistoricos.tipoConsulta[numElemento-1].checked = 1 ;
  if  ( numElemento == 1 )  {
    frmHistoricos.ConsultaFuncionesValor.value = ""
  } else {
    if  ( numElemento == 2 )  {
      frmHistoricos.ConsultaValoresIni.value = ""
      frmHistoricos.ConsultaValoresFin.value = ""
    } else {
      frmHistoricos.ConsultaFuncionesValor.value = ""
      frmHistoricos.ConsultaValoresIni.value = ""
      frmHistoricos.ConsultaValoresFin.value = ""
    }
  }
}


function funPressSoloNumeros ()  {
  //Acepta números, comas y puntos y guiones (para negativos)
  if ( ( event.keyCode < 43 || event.keyCode > 57 ) || ( event.keyCode == 47 ) )
    event.returnValue = false ;
}


