﻿function showSubElements(sId) {
    // var elements = document.all(element);
    var htmlTable = document.getElementById("detalleSeries");
    var elements = htmlTable.getElementsByTagName("tr");

    if (elements != null) {
        for (i = 0; i < elements.length; i++) {
            if (sId == elements[i].getAttribute('id')) {
                if (elements[i].className == 'Tb_Series_Alto-6 Tb_Series_Display') {
                    elements[i].className = 'Tb_Series_Alto-6';                                 
                    
                }
                else{
                    elements[i].className = 'Tb_Series_Alto-6 Tb_Series_Display';
                    
                 }
            }
        }
    }
}

function showSubElementsAfores(sId) {
    // var elements = document.all(element);
    
    var htmlTable = document.getElementById("EnlacesContinuos");
    var elements = htmlTable.getElementsByTagName("tr");   

    if (elements != null) {     
            for (i = 0; i < elements.length; i++) {

                if (sId == elements[i].id) {
                    if (elements[i].className == 'tr_nodisplay' || elements[i].className == 'tr_ancho_grandeEC')
                        elements[i].className = '';
                    else
                        elements[i].className = 'tr_nodisplay';
                }

            } 
    }
}

function selectAll() {
    var htmlTable = document.getElementById("detalleSeries");
    var elements = htmlTable.getElementsByTagName("*");
    var headerCheck = document.getElementById('checkAll');
    if (headerCheck.checked)
        headerCheck.checked = true;
    else
        headerCheck.checked = false;
      
    for (i = 0; i < elements.length; i++) {
        if (elements[i].type == 'checkbox') {
            elements[i].checked = headerCheck.checked;
        }
    }
}

var b_showAll = false;
function showAll() {
    // var elements = detalleSeries.all
    var htmlTable = document.getElementById("detalleSeries");
    var elements = htmlTable.getElementsByTagName("*");
    if (!b_showAll) {
        b_showAll = true;
        for (i = 0; i < elements.length; i++) {
            if (elements[i].className == 'Tb_Series_Alto-6 Tb_Series_Display') {
                elements[i].className = 'Tb_Series_Alto-6';                
            }
        }
    }
    else {
        b_showAll = false;
        for (i = 0; i < elements.length; i++) {
            if (elements[i].id.match('P') != null || elements[i].id == '' || elements[i].id == 'chkSerie') {
                if (elements[i].className == 'Tb_Series_Alto-6 Tb_Series_Display') {
                    elements[i].className = 'Tb_Series_Alto-6';                   
                }
            }
            else {
                if (elements[i].className == 'Tb_Series_Alto-6')
                    elements[i].className = 'Tb_Series_Alto-6 Tb_Series_Display';
            }
        }
    }
}

function exportaSeries(obj) {
    // var elements = document.all('chkSerie');
    
    fechaInicialSeleccionada();
    fechaFinalSeleccionada();
    var htmlTable = document.getElementById("detalleSeries");
    var elements = htmlTable.getElementsByTagName("*");
    var series = "";
  
    if (obj.options[obj.selectedIndex].value == 1) { // Serie seleccionada
        for (i = 0; i < elements.length; i++) {
            if (elements[i].checked) {
                series += elements[i].value + ",";
            }
        }
    }

    if (obj.options[obj.selectedIndex].value == 2) { // Detalle por Afores
        for (i = 0; i < elements.length ; i++) {
                if (elements[i].checked) {
                    series += elements[i].value + ",";
                }
        }
    }
    
    if (series != "") {
        if (validaFechas()) {
        //if (true) {
            document.getElementById('ctl00_ContentPlaceHolder_seriesSeleccionadas').value = series;
            return true;
        }
        else {
            return false;
        }
    }
    else {
        alert('No ha seleccionado conceptos para exportar');
        return false;
    }
    
}

function setFecha(obj1, obj2) {
    
    var fechaInicial = $get('ctl00_ContentPlaceHolder_fechaInicial');
    var fechaFinal = $get('ctl00_ContentPlaceHolder_fechaFinal');

//    var fechaIni = 
//    var fechaFin = 

    fechaInicial.value = obj1.value;
    fechaFinal.value = obj2.value;

    
   
    
}

function setFechaLink() {

    
    var fechaFinal = $get('ctl00_ContentPlaceHolder_fechaFinal');
    var fechatxtFinal = $get('ctl00_ContentPlaceHolder_txtFechaFin');

    fechaFinal.value = fechatxtFinal.value;
    $get('ctl00_ContentPlaceHolder_isLinkClick').value = '1';
    __doPostBack('ctl00$ContentPlaceHolder$lnkBtn_FechaAPostBack', '');
       
}

function validaFechas() {
    var periodoMesInicial = $get('ctl00_ContentPlaceHolder_periodoMesI').value;
    var periodoAñoInicial = $get('ctl00_ContentPlaceHolder_periodoAñoI').value;
    var periodoMesFinal = $get('ctl00_ContentPlaceHolder_periodoMesF').value;
    var periodoAñoFinal = $get('ctl00_ContentPlaceHolder_periodoAñoF').value;
    
    var fechaPeriodoInicial = new Date(periodoAñoInicial, periodoMesInicial - 1, 1);
    var fechaPeriodoFinal = new Date(periodoAñoFinal, periodoMesFinal - 1, 1);

    
    var mesInicial = $get('ctl00_ContentPlaceHolder_mesInicialSeleccionado').value;
    var añoInicial = $get('ctl00_ContentPlaceHolder_añoInicialSeleccionado').value;
    var mesFinal = $get('ctl00_ContentPlaceHolder_mesFinalSeleccionado').value;
    var añoFinal = $get('ctl00_ContentPlaceHolder_añoFinalSeleccionado').value;
    
    var fechaInicial = new Date(añoInicial, mesInicial - 1, 1);
    var fechaFinal = new Date(añoFinal, mesFinal - 1, 1);


    if (fechaInicial >= fechaPeriodoInicial && fechaFinal <= fechaPeriodoFinal) {
        if (fechaInicial <= fechaFinal) {
            return true;
        }
        else {
            if (fechaInicial > fechaFinal)
                alert('La fecha inicial es mayor a la fecha final seleccionada');
            return false;
        }
    }
    else {
        if (fechaInicial < fechaPeriodoInicial) {
            alert('La fecha inicial del periodo de exportaci\u00f3n es menor que la fecha inicial del periodo disponible');
        }
        if (fechaFinal > fechaPeriodoFinal) {
            alert('La fecha final del periodo de exportaci\u00f3n es mayor que la fecha final del periodo disponible');
        }

        return false;
    }
}

function seriesEmergente(url) {
    window.open(url);
}

function CustomClickElementHandler() {

    var periodoMesInicial = $get('ctl00_ContentPlaceHolder_periodoMesI').value;
    var periodoAñoInicial = $get('ctl00_ContentPlaceHolder_periodoAñoI').value;
    var periodoMesFinal = $get('ctl00_ContentPlaceHolder_periodoMesF').value;
    var periodoAñoFinal = $get('ctl00_ContentPlaceHolder_periodoAñoF').value;
    
    var fechaAlterna = ($get('ctl00_ContentPlaceHolder_fAlterna').value).split("/");
    
    
    var mesA = mesPorNombre(fechaAlterna[0]);
    var añoA = fechaAlterna[1];

    var fechaPeriodoInicial = new Date(periodoAñoInicial, periodoMesInicial - 1, 1);
    var fechaPeriodoFinal = new Date(periodoAñoFinal, periodoMesFinal - 1, 1);
    var fechaAlternaSeleccionada = new Date(añoA, mesA - 1, 1);

    if (fechaAlternaSeleccionada >= fechaPeriodoInicial && fechaAlternaSeleccionada <= fechaPeriodoFinal) {
        $get('ctl00_ContentPlaceHolder_mesFechaAlterna').value = mesA;
        $get('ctl00_ContentPlaceHolder_añoFechaAlterna').value = añoA;
        
        var boton = $get('ctl00_ContentPlaceHolder_lnkBtn_FechaAPostBack');
        __doPostBack('ctl00_ContentPlaceHolder_lnkBtn_FechaAPostBack',''); 
        //alert('MesA:'+fechaAlterna[0]+',añoA:'+fechaAlterna[1]);
    }
    else {
        if (fechaAlternaSeleccionada < fechaPeriodoInicial) {
            alert('La fecha seleccionada es menor a la fecha inicial del periodo disponible');
        }
        if (fechaAlternaSeleccionada > fechaPeriodoFinal) {
            alert('la fecha seleccionada es mayor a la fecha final del periodo disponible');
        }
    }
}


//function modifyCalDelegates(cal) {
//	//we need to modify the original delegate of the month cell.
//	cal._cell$delegates = {
//			mouseover: Function.createDelegate(cal, cal._cell_onmouseover),
//			mouseout: Function.createDelegate(cal, cal._cell_onmouseout),

//			click: Function.createDelegate(cal, function(e) {
//				/// <summary> 
//				/// Handles the click event of a cell
//				/// </summary>
//				/// <param name="e" type="Sys.UI.DomEvent">The arguments for the event</param>

//				e.stopPropagation();
//				e.preventDefault();

//				if (!cal._enabled) return;

//				var target = e.target;
//				var visibleDate = cal._getEffectiveVisibleDate();
//				Sys.UI.DomElement.removeCssClass(target.parentNode, "ajax__calendar_hover");
//				switch (target.mode) {
//				case "prev":
//				case "next":
//					cal._switchMonth(target.date);
//					break;
//				case "title":
//					switch (cal._mode) {
//					case "days": cal._switchMode("months"); break;
//					case "months": cal._switchMode("years"); break;
//					}
//					break;
//				case "month":
//					//if the mode is month, then stop switching to day mode.
//					if (target.month == visibleDate.getMonth()) {
//						//this._switchMode("days");
//					} else {
//						cal._visibleDate = target.date;
//						//this._switchMode("days");
//					}
//					cal.set_selectedDate(target.date);
//					cal._switchMonth(target.date);
//					cal._blur.post(true);
//					cal.raiseDateSelectionChanged();
//					break;
//				case "year":
//					if (target.date.getFullYear() == visibleDate.getFullYear()) {
//						cal._switchMode("months");
//					} else {
//						cal._visibleDate = target.date;
//						cal._switchMode("months");
//					}
//					break;

//					//                case "day":                            
//					//                    this.set_selectedDate(target.date);                            
//					//                    this._switchMonth(target.date);                            
//					//                    this._blur.post(true);                            
//					//                    this.raiseDateSelectionChanged();                            
//					//                    break;                            
//				case "today":
//					cal.set_selectedDate(target.date);
//					cal._switchMonth(target.date);
//					cal._blur.post(true);
//					cal.raiseDateSelectionChanged();
//					break;
//				}

//			})
//	}

//}

//function onCalendarShown(sender, args) {
//	//set the default mode to month
//	sender._switchMode("months", true);
//	changeCellHandlers(cal1);
//}


//function changeCellHandlers(cal) {

//	if (cal._monthsBody) {

//		//remove the old handler of each month body.
//		for (var i = 0; i < cal._monthsBody.rows.length; i++) {
//			var row = cal._monthsBody.rows[i];
//			for (var j = 0; j < row.cells.length; j++) {
//				$common.removeHandlers(row.cells[j].firstChild, cal._cell$delegates);
//			}
//		}
//		//add the new handler of each month body.
//		for (var i = 0; i < cal._monthsBody.rows.length; i++) {
//			var row = cal._monthsBody.rows[i];
//			for (var j = 0; j < row.cells.length; j++) {
//				$addHandlers(row.cells[j].firstChild, cal._cell$delegates);
//			}
//		}

//	}
//}

//function onCalendarHidden(sender, args) {

//	if (sender.get_selectedDate()) {
//		if (cal1.get_selectedDate() && cal2.get_selectedDate() && cal1.get_selectedDate() > cal2.get_selectedDate()) {
//			alert('The "From" Date should smaller than the "To" Date, please reselect!');
//			sender.show();
//			return;
//		}
//		//get the final date
//		var finalDate = new Date(sender.get_selectedDate());
//		var selectedMonth = finalDate.getMonth();
//		finalDate.setDate(1);
//		if (sender == cal2) {
//			// set the calender2's default date as the last day
//			finalDate.setMonth(selectedMonth + 1);
//			finalDate = new Date(finalDate - 1);
//		}
//		//set the date to the TextBox
//		sender.get_element().value = finalDate.format(sender._format);
//	}
//}

function fechaInicialSeleccionada(){
   
    var fechaInicial = ($get('ctl00_ContentPlaceHolder_txtFechaIni').value).split("/");
    //alert(fechaInicial[0]);
    var mesInicialSeleccionado = $get('ctl00_ContentPlaceHolder_mesInicialSeleccionado');
    var añoInicialSeleccionado = $get('ctl00_ContentPlaceHolder_añoInicialSeleccionado');
    mesInicialSeleccionado.value= mesPorNombre(fechaInicial[0]);
    añoInicialSeleccionado.value= fechaInicial[1];
    return true;
}

function fechaFinalSeleccionada(){
    var fechaFinal = ($get('ctl00_ContentPlaceHolder_txtFechaFin').value).split("/");
    //alert(fechaFinal[0]);   
    var mesFinalSeleccionado = $get('ctl00_ContentPlaceHolder_mesFinalSeleccionado');
    var añoFinalSeleccionado = $get('ctl00_ContentPlaceHolder_añoFinalSeleccionado'); 
    mesFinalSeleccionado.value= mesPorNombre(fechaFinal[0]);
    añoFinalSeleccionado.value= fechaFinal[1];
    return true;
}


function mesPorNombre(month) {
    switch (month) {
        case 'Ene': return 1;
        case 'Feb': return 2;
        case 'Mar': return 3;
        case 'Abr': return 4;
        case 'May': return 5;
        case 'Jun': return 6;
        case 'Jul': return 7;
        case 'Ago': return 8;
        case 'Sep': return 9;
        case 'Oct': return 10;
        case 'Nov': return 11;
        case 'Dic': return 12;
        case 'ene': return 1;
        case 'feb': return 2;
        case 'mar': return 3;
        case 'abr': return 4;
        case 'may': return 5;
        case 'jun': return 6;
        case 'jul': return 7;
        case 'ago': return 8;
        case 'sep': return 9;
        case 'oct': return 10;
        case 'nov': return 11;
        case 'dic': return 12;
    }
}
function mesPorNumero(month) {
    switch (month) {
        case 1: return 'Ene';
        case 2: return 'Feb';
        case 3: return 'Mar';
        case 4: return 'Abr';
        case 5: return 'May';
        case 6: return 'Jun';
        case 7: return 'Jul';
        case 8: return 'Ago';
        case 9: return 'Sep';
        case 10: return 'Oct';
        case 11: return 'Nov';
        case 12: return 'Dic';
    }
}

function fullNameMonth(month){
    switch (month){
        case 'Ene': return 'Enero';
        case 'Feb': return 'Febrero';
        case 'Mar': return 'Marzo';
        case 'Abr': return 'Abril';
        case 'May': return 'Mayo';
        case 'Jun': return 'Junio';
        case 'Jul': return 'Julio';
        case 'Ago': return 'Agosto';
        case 'Sep': return 'Septiembre';
        case 'Oct': return 'Octubre';
        case 'Nov': return 'Noviembre';
        case 'Dic': return 'Diciembre';
        case 'ene': return 'Enero';
        case 'feb': return 'Febrero';
        case 'mar': return 'Marzo';
        case 'abr': return 'Abril';
        case 'may': return 'Mayo';
        case 'jun': return 'Junio';
        case 'jul': return 'Julio';
        case 'ago': return 'Agosto';
        case 'sep': return 'Septiembre';
        case 'oct': return 'Octubre';
        case 'nov': return 'Noviembre';
        case 'dic': return 'Diciembre';
    }
}


        function asignaFechaInicio()
        {
            var f = document.getElementById('ctl00_ContentPlaceHolder_txtFechaIniApoyo').value;
            var f1 = f.substring(0, 1);
            var f2 = f.substring(1);
            f1 = f1.toUpperCase();
            f = f1 + f2;
            //document.getElementById('ctl00_ContentPlaceHolder_txtFechaIni').value = document.getElementById('ctl00_ContentPlaceHolder_txtFechaIniApoyo').value;
            document.getElementById('ctl00_ContentPlaceHolder_txtFechaIni').value = f;
            return true;
        }
        
        function asignaFechaFin() {
            var t = document.getElementById('ctl00_ContentPlaceHolder_txtFechaFinApoyo').value;
            var t1 = t.substring(0, 1);
            var t2 = t.substring(1);
            t1 = t1.toUpperCase();
            t = t1 + t2;
            //document.getElementById('ctl00_ContentPlaceHolder_txtFechaFin').value = document.getElementById('ctl00_ContentPlaceHolder_txtFechaFinApoyo').value;
            document.getElementById('ctl00_ContentPlaceHolder_txtFechaFin').value = t;
            return true;
        }

     
        function onCalendarShown(sender, args) {
            
            var cal = sender;
            var cal1 = $find('calendar1');
            var cal2 = $find('calendar2');
            var cal3 = $find('calendar3');

            //Se establece el modo por default a meses
            cal._switchMode("months", true);
            //Itera cada elemento de mes y te adjunta un evento click a cada uno
            if (cal._monthsBody) {
                for (var i = 0; i < cal._monthsBody.rows.length; i++) {
                    var row = cal._monthsBody.rows[i];
                    for (var j = 0; j < row.cells.length; j++) {
                        if (sender._id == "calendar1"){
                            Sys.UI.DomEvent.addHandler(row.cells[j].firstChild, "click", mes);
                        }
                        if (sender._id == "calendar2"){
                            Sys.UI.DomEvent.addHandler(row.cells[j].firstChild, "click", mes2);
                        }
                        if (sender._id == "calendar3"){
                            Sys.UI.DomEvent.addHandler(row.cells[j].firstChild, "click", mes3);
                        }
                    }
                }
            }
            
            if (sender._id == "calendar1"){
                cal1._title.setAttribute("onpropertychange", "poder();", true);
				 var objeto = cal1._title;
				 if (objeto.addEventListener) {
				  objeto.addEventListener('DOMNodeInserted', poder, false);
				 }
            }
            
            if (sender._id == "calendar2"){
				cal2._title.setAttribute("onpropertychange", "poder2();", true);
				var objeto = cal2._title;
				 if (objeto.addEventListener) {
				  objeto.addEventListener('DOMNodeInserted', poder2, false);
				 }
                if (cal3._isOpen)
                {                				 
                hideCalendar(cal3);
                }
                
                
            }

            if (sender._id == "calendar3"){
				cal3._title.setAttribute("onpropertychange", "poder3();", true);
				var objeto = cal3._title;
				 if (objeto.addEventListener) {
				  objeto.addEventListener('DOMNodeInserted', poder3, false);
				 }
                if (cal2._isOpen)
                {                				 
                hideCalendar(cal2);
                }               
            }
            
            
            
            
        }
		
		
		function poder() {
        var nuevo = $find("calendar1");
        if (nuevo._mode == "years") {
            if (nuevo._title.firstChild) {
                nuevo._title.removeChild(nuevo._title.firstChild);
            }
            var visibleDate = nuevo._getEffectiveVisibleDate();
            var minYear = (Math.floor(visibleDate.getFullYear() / 10) * 10);
            nuevo._title.appendChild(document.createTextNode((minYear - 1).toString() + "-" + (minYear + 10).toString()));
        }
		}
		
		function poder2() {
        var nuevo = $find("calendar2");
        if (nuevo._mode == "years") {
            if (nuevo._title.firstChild) {
                nuevo._title.removeChild(nuevo._title.firstChild);
            }
            var visibleDate = nuevo._getEffectiveVisibleDate();
            var minYear = (Math.floor(visibleDate.getFullYear() / 10) * 10);
            nuevo._title.appendChild(document.createTextNode((minYear - 1).toString() + "-" + (minYear + 10).toString()));
        }
		}
		
		function poder3() {
        var nuevo = $find("calendar3");
        if (nuevo._mode == "years") {
            if (nuevo._title.firstChild) {
                nuevo._title.removeChild(nuevo._title.firstChild);
            }
            var visibleDate = nuevo._getEffectiveVisibleDate();
            var minYear = (Math.floor(visibleDate.getFullYear() / 10) * 10);
            nuevo._title.appendChild(document.createTextNode((minYear - 1).toString() + "-" + (minYear + 10).toString()));
        }
		}
        
        function hideCalendar(cal) {cal.hide(); }

        function onCalendarHidden(sender, args) 
        {
            var cal = sender;
            //Itera cada elemento de mes y te elimina el evento click a cada uno
              if (cal._monthsBody) {
                for (var i = 0; i < cal._monthsBody.rows.length; i++) {
                    var row = cal._monthsBody.rows[i];
                    for (var j = 0; j < row.cells.length; j++) {
                        if (sender._id == "calendar1")
                            Sys.UI.DomEvent.removeHandler(row.cells[j].firstChild, "click", mes );
                        if (sender._id == "calendar2")
                            Sys.UI.DomEvent.removeHandler(row.cells[j].firstChild, "click", mes2);
                        if (sender._id == "calendar3")
                            Sys.UI.DomEvent.removeHandler(row.cells[j].firstChild, "click", mes3);
                    }
                }
            }

        }
        
        function mes(eventElement)
        {
            var target = eventElement.target;
            switch (target.mode) {
                case "month":
                    var cal = $find("calendar1");
                    cal._visibleDate = target.date;
                    cal.set_selectedDate(target.date);
                    cal._switchMonth(target.date);
                    cal._blur.post(true);
                    cal.raiseDateSelectionChanged();
                    break;
            }
        }
        
        function mes2(eventElement) {
            var target = eventElement.target;
            switch (target.mode) {
                case "month":
                    var cal = $find("calendar2");
                    cal._visibleDate = target.date;
                    cal.set_selectedDate(target.date);
                    cal._switchMonth(target.date);
                    cal._blur.post(true);
                    cal.raiseDateSelectionChanged();
                    break;
            }
        }
        
         
        function mes3(eventElement) {
            var target = eventElement.target;
            switch (target.mode) {
                case "month":
                    var cal = $find("calendar3");
                    cal._visibleDate = target.date;
                    cal.set_selectedDate(target.date);
                    cal._switchMonth(target.date);
                    cal._blur.post(true);
                    cal.raiseDateSelectionChanged();
                    break;
            }
        }
 
