var FromDay    = new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
var FromMonth  = new Array(1,2,3,4,5,6,7,8,9,10,11,12);

var FromDayWeek  = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
var FromMonthDesc = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July','August','September','October','November','December');

var Day_1  = '01';
var Day_2  = '02';
var Day_3  = '03';
var Day_4  = '04';
var Day_5  = '05';
var Day_6  = '06';
var Day_7  = '07';
var Day_8  = '08';
var Day_9  = '09';
var Day_10 = '10';
var Day_11 = '11';
var Day_12 = '12';
var Day_13 = '13';
var Day_14 = '14';
var Day_15 = '15';
var Day_16 = '16';
var Day_17 = '17';
var Day_18 = '18';
var Day_19 = '19';
var Day_20 = '20';
var Day_21 = '21';
var Day_22 = '22';
var Day_23 = '23';
var Day_24 = '24';
var Day_25 = '25';
var Day_26 = '26';
var Day_27 = '27';
var Day_28 = '28';
var Day_29 = '29';
var Day_30 = '30';
var Day_31 = '31';

var Month_1  = 'January';
var Month_2  = 'February';
var Month_3  = 'March';
var Month_4  = 'April';
var Month_5  = 'May';
var Month_6  = 'June';
var Month_7  = 'July';
var Month_8  = 'August';
var Month_9  = 'September';
var Month_10 = 'October';
var Month_11 = 'November';
var Month_12 = 'December';

var estoyEnCalendario = 0;

function muestraCalendario(i, dt) {
    if (document.getElementById) {
//        if (dt == 1 && document.getElementById('fbuscador2')) {
//            document.getElementById('D').style.visibility = 'hidden';
//            document.getElementById('D2').style.visibility = 'hidden';
//            document.getElementById('MA2').style.visibility = 'hidden';
//        }
        var c = document.getElementById('calendar');
        if (c.style.display != 'block') {
            if (i == document.getElementById('bc1')) {
                estoyEnCalendario = 1;
            }
            else if (i == document.getElementById('bc2')) {
                estoyEnCalendario = 2;
            }
            var ma = document.getElementById('MA' + dt).value.split('_');
            var d = document.getElementById('D' + dt).value;
            td = new Date(ma[1], ma[0] - 1, d);
            creaCalendario(ma[1], ma[0], d, dt);
            //var left= -160;
            var left = i.offsetLeft - 335;
            var top = i.offsetHeight;
            if (document.getBoxObjectFor)
                left += document.getBoxObjectFor(i).x,
			top += document.getBoxObjectFor(i).y;
            else if (i.getBoundingClientRect) {
                var boxRef = i.getBoundingClientRect();
                left += boxRef.left;
                top += boxRef.top;
                if (document.compatMode && document.compatMode != 'BackCompat')
                    left += document.documentElement.scrollLeft - 2,
				top += document.documentElement.scrollTop - 2;
                else if (!(document.all && /MSIE 5\.0/.test(navigator.appVersion)))
                    left += document.body.scrollLeft - 2,
				top += document.body.scrollTop - 2;
            }
            else
                while (i) {
                left += i.offsetLeft;
                top += i.offsetTop;
                if (i.offsetParent)
                    i = i.offsetParent;
                else
                    break;
            }
            c.style.left = left + 'px';
            c.style.top = top + 'px';
            c.style.display = 'block';
        }
    }
}

function cierraCalendario() {
    document.getElementById('D').style.visibility = 'visible';
    document.getElementById('D2').style.visibility = 'visible';
    document.getElementById('MA2').style.visibility = 'visible';
    document.getElementById('calendar').style.display = 'none';
}

function creaCalendario(y, m, d, dt) {
    var months = ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre', ];
    var diasEnMes = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    var mDate = new Date(y, m - 1, 1);
    var primerDiaMes = mDate.getDay();
    if (((mDate.getFullYear() % 100 != 0) && (mDate.getFullYear() % 4 == 0)) || (mDate.getFullYear() % 400 == 0))
        diasEnMes[1] = 29;
    var t = '<table class="calen" cellspacing="0"><tr><td class="calcab" colspan="7">';
    if (y == hoy.getFullYear() && m == hoy.getMonth() + 1)
        t += '<img class="calNomesAnterior" src="transparent.png" width="24" height="24" alt="Mes anterior">';
    else
        t += '<a class="calmesAnterior" href="" onclick="mesAnterior(' + y + ',' + m + ',' + d + ',' + dt + '); return false;" title="Mes anterior"><img src="transparent.png" width="24" height="24" alt="Mes anterior"></a>';
    t += '<select name="ym" onchange="irMesAno(this.options[this.selectedIndex].value,' + dt + ')">';
    var mn = hoy.getMonth() + 1;
    var yr = hoy.getFullYear();
    var last_month = 0;
    for (n = 0; n <= 10 + dt; n++) {
        t += '<option value="' + mn + '_' + yr + '"';
        last_month = 0;
        if (mn == m && yr == y)
            t += 'selected="selected"',
      last_month = 1;
        t += '>' + months[mn - 1] + ' ' + yr + '</option>';
        mn++;
        if (mn > 12)
            mn = 1,
      yr++;
    }
    t += '</select>';
    if (last_month)
        t += '<img class="calNomesSiguiente" src="transparent.png" width="24" height="24" alt="Mes siguiente">';
    else
        t += '<a class="calmesSiguiente" href="" onclick="mesSiguiente(' + y + ',' + m + ',' + d + ',' + dt + '); return false;" title="Mes siguiente"><img src="transparent.png" width="24" height="24" alt="Mes siguiente"></a>';
    t += '</td></tr><tr class="nombreDias">';
    for (var dn = 0; dn < 7; dn++)
        t += '<td>' + 'LMXJVSD'.charAt(dn) + '</td>';
    t += '</tr><tr class="dias">';
    for (i = 1; i <= 42; i++) {
        var x = i - (primerDiaMes + 6) % 7;
        if (x > diasEnMes[m - 1] && i == 36)
            break;
        if (x > diasEnMes[m - 1] || x < 1)
            x = '&nbsp;';
        var cl = '';
        var href = 0;
        if ((i - 1) % 7 > 4)
            cl = 'finSemana';
        if (x > 0) {
            var xDay = new Date(y, m - 1, x);
            if (xDay.getFullYear() == td.getFullYear() && xDay.getMonth() == td.getMonth() && xDay.getDate() == td.getDate())
                cl += ' sel',
        href = 1;
            if (xDay < hoy)
                cl += ' pasado';
            else
                href = 1;
        };
        t += '<td class="' + cl + '">';
        if (href)
            t += '<a href="#" onclick="clickDia(' + y + ',' + m + ',' + x + ',' + dt + '); return false;">' + x + '</a>';
        else
            t += x;
        t += '</td>';
        if (((i) % 7 == 0) && (i < 36))
            t += '</tr><tr class="dias">';
    }
    t += '</tr><tr><td class="calpie" colspan="7"><a href="#" onclick="cierraCalendario();return false;">Cerrar calendario</a></td></tr></table>';
    document.getElementById("calendar").innerHTML = t;
}

function mesAnterior(a, m, d, dt) {
    if (m > 1)
        m--;
    else
        m = 12,
    a--;
    creaCalendario(a, m, 32, dt);
}

function mesSiguiente(a, m, d, dt) {
    if (m < 12)
        m++;
    else
        m = 1,
    a++;
    creaCalendario(a, m, 32, dt);
}

function irMesAno(ma, dt) {
    var i = ma.split("_");
    creaCalendario(i[1], i[0], 1, dt);
}

function clickDia(a, m, d, dt) {
    for (var i = 0; i < 11 + dt; i++)
        if (document.getElementById('MA' + dt).options[i].value == sprint0(2, m) + "_" + a) {
        document.getElementById('MA' + dt).selectedIndex = i;
        break;
    }
    document.getElementById('D' + dt).value = sprint0(2, d);
    cierraCalendario();
    if (dt == '1') {
        PonerSalida(); PonerNoches('FechaInicio');
    }
    else {
        PonerNoches('FechaFin');
    }
}

function sprint0(a, b) {
    var i = Math.abs(a);
    b = b.toString();
    b = b.substr(0, i);
    i -= b.length;
    if (a > 0)
        while (i-- > 0)
        b = '0' + b;
    else
        while (i-- > 0)
        b += '0';
    return b;
}
function raton(event) {
    var i = document.all ? event.srcElement : event.target;
    while (i.id != 'calendar' && i != document.body) {
        if ((i.id == 'bc1' && estoyEnCalendario == 1) || (i.id == 'bc2' && estoyEnCalendario == 2)) {
            return 0;
        }
        i = i.parentNode;
    }
    if (!i.id) {
        cierraCalendario();
    }
}