
function init() {
		   
		}
		
	// Calcula la fecha

	function tabla(n) {
        this.length = n
        for (var i=1; i <= n; i++)
                this[i] = null
                return this
	}


var adddays = new tabla(7)

adddays[1] = 14
adddays[2] = 35
adddays[3] = 70
adddays[4] = 84
adddays[5] = 161
adddays[6] = 189
adddays[7] = 280


	function calcNewDate(month,day,year,ciclo) {
		var maxday = new tabla(12)
		maxday[1] = 31
		maxday[2] = 28
		maxday[3] = 31
		maxday[4] = 30
		maxday[5] = 31
		maxday[6] = 30
		maxday[7] = 31
		maxday[8] = 31
		maxday[9] = 30
		maxday[10] = 31
		maxday[11] = 30
		maxday[12] = 31
		
		var monthname = new tabla(12)
		monthname[1] = 'Enero'
		monthname[2] = 'Febrero'
		monthname[3] = 'Marzo'
		monthname[4] = 'Abril'
		monthname[5] = 'Mayo'
		monthname[6] = 'Junio'
		monthname[7] = 'Julio'
		monthname[8] = 'Agosto'
		monthname[9] = 'Septiembre'
		monthname[10] = 'Octubre'
		monthname[11] = 'Noviembre'
		monthname[12] = 'Diciembre'
		
        newday = eval(day) + (ciclo - 14)		
        newmonth = month + 1
        newyear = eval(year)
        var max

        for (var i = 0; i < 12; i++) {
          if (newmonth == 2 && (newyear % 4) == 0) {
            max = 29
          } else
            max = maxday[newmonth]
          	if (newday > max) {
            	newday = newday - max
            	newmonth = newmonth + 1

	            if (newmonth > 12) {
              		newyear = newyear + 1
	              	newmonth = 1
            	}
          	}
          else
            break
        }
        var datestring = newday + ' de ' + monthname[newmonth]  +  ', ' + newyear
        return datestring
	}

	// 

	function vacio(inputStr) {
        if (inputStr == '' || inputStr == null) {
                return true
        }
        return false
	}

	// funcion numero entero positivo

	function esnumero(inputStr) {
        for (var i = 0; i < inputStr.length; i++) {
                var oneChar = inputStr.charAt(i)
                if (oneChar < '0' || oneChar > '9') {
                        return false
                }
        }
        return true
	}

	// rango dia
	function rangodia(inputStr) {
        num = parseInt(inputStr)
        if (num < 1 || num > 31) {
                return false
        }
        return true
	}

	// rango anio
	function rangoanio(inputStr) {
        num = parseInt(inputStr)
        if (num < 1900 || num > 3000) {
                return false
        }
        return true
	}	


	function diavalido(inputStr) {
        if (vacio(inputStr)) {
	        alert('Debe ingresar el día')
    		return false
        } else {
                if (!esnumero(inputStr)) {
	                alert('El día debe ser un número')
                    return false
	            } else {
                    if (!rangodia(inputStr)) {
                        alert('Ingrese un día válido.')
                        return false
                    }
                }
        }
        return true
	}	



	// valida anio
	function aniovalido(inputStr) {
        if (vacio(inputStr)) {
                alert('Debe ingresar el año')
                return false
        } else {
                if (!esnumero(inputStr)) {
                        alert('El año debe ser un número')
                        return false
                } else {
                        if (!rangoanio(inputStr)) {
                                alert('Ingrese un año válido')
                                return false
                        }
                }
        }
        return true
	}


function calcDayParto(month,day,year,adddays) {
		var maxday = new tabla(12)
		maxday[1] = 31
		maxday[2] = 28
		maxday[3] = 31
		maxday[4] = 30
		maxday[5] = 31
		maxday[6] = 30
		maxday[7] = 31
		maxday[8] = 31
		maxday[9] = 30
		maxday[10] = 31
		maxday[11] = 30
		maxday[12] = 31
		
		var monthname = new tabla(12)
		monthname[1] = 'Enero'
		monthname[2] = 'Febrero'
		monthname[3] = 'Marzo'
		monthname[4] = 'Abril'
		monthname[5] = 'Mayo'
		monthname[6] = 'Junio'
		monthname[7] = 'Julio'
		monthname[8] = 'Agosto'
		monthname[9] = 'Septiembre'
		monthname[10] = 'Octubre'
		monthname[11] = 'Noviembre'
		monthname[12] = 'Diciembre'
		
        newday = eval(day) + adddays
        newmonth = month + 1
        newyear = eval(year)
        var max

       for (var i = 0; i < 12; i++) {
          if (newmonth == 2 && (newyear % 4) == 0) {
            max = 29
          } else
            max = maxday[newmonth]

          if (newday > max) {
            newday = newday - max
            newmonth = newmonth + 1
            if (newmonth > 12) {
              newyear = newyear + 1
              newmonth = 1
            }
          }
          else
            break
        }
        var datestring = newday + ' de ' + monthname[newmonth] +  ', ' + newyear
        return datestring
}

	function calcParto(form) {
        day = form.day.value
        year = form.year.value
        monthnum = form.month.selectedIndex
        if (diavalido(day)) {
          if (aniovalido(year)){                       
            form.duedate.value = calcDayParto(monthnum,day,year,adddays[7])
          }
        } 
    }



	// calcula fechas
	function calc(form) {
        day = form.day.value;
        year = form.year.value;
		desde = (eval(form.ciclo.value) - 3);
		hasta = (eval(form.ciclo.value) + 1);
		
        monthnum = form.month.selectedIndex
        
        if (diavalido(day)) {
          if (aniovalido(year)){
            form.fertildesde.value = calcNewDate(monthnum,day,year,desde)
			form.fertilhasta.value = calcNewDate(monthnum,day,year,hasta)
          }
        } 
	}

