$().ready(function() {
	//console.log('Iniciando pantalla');
	colocaFechaFin();
});

function callActionAjax(actionRoute, jsonActionParameter, functionProcessor){
	
	 $.ajax({
	     url: contextPath + actionRoute,
	     type: 'POST',
	     data:  jsonActionParameter, 
		 dataType: "json",
	     success:function(response){ 
	    	 functionProcessor(response);    
	     },
	     error:function(jqXhr, textStatus, errorThrown){
	         console.error("Error: " + textStatus + " ::: " + errorThrown + " ::: " + jqXhr);
	     }
	 });
	
}

function procesaDetalleContratos(jsonData) {
	//console.info(JSON.stringify(jsonData));
	
	var contratos = jsonData.detalleContratos;
	
	if(contratos.length > 0){

		$("#campoContrato").prop( "disabled", false);
		$('#campoContrato').find('option').remove();
		$("#campoContrato").append('<option value="">Todos</option>');
		$("#botonConsultar").prop( "disabled", false);
		//$("#botonExportar").prop( "disabled", false);
		
		for(var i = 0; contratos.length; i++) {
			cnt = contratos[i];
			//console.log(''+cnt);
			$("#campoContrato").append('<option value="' + cnt.idContrato + '">' + cnt.numeroContrato + '</option>');
		}
		
		
		
	}else {
		$("#campoContrato").prop( "disabled", true);
		$("#botonConsultar").prop( "disabled", true);
		$("#botonExportar").prop( "disabled", true);
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', {colNames:[], colModel:[] ,data: [], datatype: 'local'}).trigger('reloadGrid');
		showError("El estudio seleccionado no tiene contratos asociados");
		console.log('Es nulo');
	}
	
}

function llamaObtenerDetalleContratos() {
	
	
	var jsonString = '{"idEstudio" : "' + $("#campoEstudio").val()+ '", "fechaInicio":"'+ $("#campoFechaInicio").val() + '", "fechaFin":"'+ $("#campoFechaFin").val() +'"}';
	//console.log(jsonString);
	var stringJson = JSON.parse(jsonString);
    callActionAjax( "/reporte/reportePago/detalleContrato", stringJson, procesaDetalleContratos);
    
}

var infoReporte = [];

function procesaReportePrincipal(jsonData) {

	//console.info(JSON.stringify(jsonData));
	
	var colNamesVar = [ 'Concepto', 'dic', 'en', 'febr', 'mzo', 'abr', 'my', 'jun', 'jul', 'agt', 'sept', 'oct', 'nov', 'dic', 'Total'];
	var colModelVar= [{name:'concepto',index:'concepto', width:150, frozen : true, sortable:false},
	                  {name:'m1',index:'m1', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m2',index:'m2', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m3',index:'m3', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m4',index:'m4', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m5',index:'m5', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m6',index:'m6', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m7',index:'m7', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m8',index:'m8', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m9',index:'m9', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m10',index:'m10', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m11',index:'m11', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m12',index:'m12', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'m13',index:'m13', width:80, align:"right", formatter:"number", sortable:false},
	                  {name:'total',index:'total', width:80, align:"right", formatter:"number", sortable:false}];
	
	var colModelNames = ['concepto', 'm1', 'm2', 'm3', 'm4', 'm5', 'm6', 'm7', 'm8', 'm9', 'm10', 'm11', 'm12', 'm13', 'total'];
	
	var datos = jsonData.reporte;
	var header = jsonData.encabezado;
	
	var imarcar = 0;
	var porMarcar = [];
	var patron = /^[A-Z]{4}\d{5}[A-Z]$/;
	
	
	if(datos.length > 0) {
		
		for(var i = 0; i < datos.length; i++){
			//console.log(datos[i].concepto);
			if(patron.test(datos[i].concepto))
				porMarcar[imarcar++] = (i + 1);
		}
		
		//console.log("por marcar : " + porMarcar);
		
		$("#botonExportar").prop( "disabled", false);
		
		jQuery("#reporteTable").jqGrid({
			datatype: "local",
		   	colNames:colNamesVar,
		   	colModel:colModelVar,
		   	width: '1000',
		    height: '300',
		    rowNum: 999999,
		    autowidth: false,
		    shrinkToFit: false,
		   	multiselect: false,
		   	loadComplete: function(){		   		 		
//		   		var nrows = this.rows.length;//no actualiza ciertos datos no funciono bien
//		   		console.log('noRows : ' + nrows);
//		   		var row;
//		   		
//		   		if(nrows > 1){
//		   			
//		   			row = this.rows[1];
//		   			row.className = row.className + ' totalContratoRowClass';
//		   				
//		   			console.log("tamano por marcar : " + porMarcar.length + " -- imarcar :" + imarcar + " -- por mcarcar :" + porMarcar);
//			   		for(var nmar = 0; nmar < porMarcar.length; nmar++) {
//			   			row = this.rows[porMarcar[nmar]];
//			   			console.log("ir : " + nmar + " --- class :" + row.className);
//			   			row.className = row.className + ' contratoRowClass';
//			   		}
//			   		
//		   		}
		   	}
		});
		
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', {colNames:colNamesVar, colModel:colModelVar ,data: datos, datatype: 'local'}).trigger('reloadGrid');
	
		for(var i = 0; i < colModelNames.length; i++) {
			jQuery("#reporteTable").jqGrid('setLabel', colModelNames[i], header[i]);
		}
		
		jQuery("#reporteTable").jqGrid('setRowData', 1, false, 'totalContratoRowClass');
		
		for(var i = 0; i < porMarcar.length; i++) {
			jQuery("#reporteTable").jqGrid('setRowData', porMarcar[i], false, 'contratoRowClass');
		}
		
//		var nrows = jQuery('#reporteTable').getDataIDs();
//		console.log("numero de rows : " + nrows);
		
		 jQuery( "#reporteTable").jqGrid('setFrozenColumns');
		
		 infoReporte = datos;
		 
	}else {
		showError("El contrato seleccionado no tiene titulos asociados.");
		console.log('Es nulo');
		jQuery('#reporteTable').jqGrid('clearGridData').jqGrid('setGridParam', {colNames:colNamesVar, colModel:colModelVar ,data: datos, datatype: 'local'}).trigger('reloadGrid');
		$("#botonExportar").prop( "disabled", true);
	}

}

function colocaFechaFin(){
	
	var fechaInicio = new Date($("#campoFechaInicio").val());
	
	var cdia = '';
	var cmes = '';
	
	if(fechaInicio != null) {
		cmes = fechaInicio.getMonth() < 10 ? '0' : '';
		cdia = fechaInicio.getDate() < 10 ? '0' : '';
	}
	
	$("#campoFechaFin").val( cmes + (fechaInicio.getMonth() + 1) + '/'+ cdia + fechaInicio.getDate() + '/' + (fechaInicio.getFullYear() + 1));
}

function llamaReporteInfoAction(){ 
	var jsonString = '{"idCon" : "' + $("#campoContrato").val() + '", "fechaInicio":"'+ $("#campoFechaInicio").val() + '", "fechaFin":"'+ $("#campoFechaFin").val()+ '", "idEstudio":"'+ $("#campoEstudio").val() +'"}'; 
	var stringJson = JSON.parse(jsonString);
    callActionAjax( "/reporte/reportePago/reportePagoInfo", stringJson, procesaReportePrincipal);
}

function descargarReporteEnExcel() {
	
	//console.log(JSON.stringify(infoReporte));
	
	//var url = contextPath +'/contrato/reportePago/reportePagoExcel.action?idCon=' + $("#campoContrato").val() + '&infoReporte=' + infoReporte;
	var url = contextPath +'/reporte/reportePago/reportePagoExcel.action?idCon=' + $("#campoContrato").val() + '&idEstudio=' + $("#campoEstudio").val() + '&fechaInicio=' + $("#campoFechaInicio").val();
   	window.open(url);
}





/*-----------------------Codigos de versiones previas--------------------------------------*/
//estas dos siguientes funciones fueron un intento para generar una tabla temporal de reporte pago 
//function procesallamarVaciaLlenaTemporal(jsonData) {
//	console.info(JSON.stringify(jsonData));
//}
//
//function llamarVaciaLlenaTemporal() { 
//	
//	var jsonString = '{"idEstudio" : "' + $("#campoEstudio").val()+ '", "fechaInicio":"'+ $("#campoFechaInicio").val()+ '", "fechaFin":"'+ $("#campoFechaFin").val() + '", "numeroContrato":"'+ $("#campoContrato option:selected").text() +'"}';
//	console.log(jsonString);
//	var stringJson = JSON.parse(jsonString);
//	callActionAjax( "/reporte/reportePago/vaciarLlenar", stringJson, procesallamarVaciaLlenaTemporal);este action se va a eliminar
//}

//function procesaReporteInfoDos(jsonData) {
//	
//	var llaves = jsonData.llaves;
//	var info = jsonData.infoReporte;
//	var meses = ["en", "febr", "mzo", "abr", "my", "jun", "jul", "agt", "sept", "oct", "nov", "dic"];
//	
//	var colNamesVar = new Array(llaves.length + 2);
//	var colModelVar = new Array(llaves.length + 2);
//	
//	var llave;
//	var splited = [];
//	
//	var colNamesVar = new Array(llaves.length + 2);
//	var colModelVar = new Array(llaves.length + 2);
//	
//	
//	colNamesVar[0] = "Id";
//	colNamesVar[1] = "Nombre";
//	
//	colModelVar[0] = {name:'id',index:'id', width:100, frozen : true};
//	colModelVar[1] = {name:'nombre',index:'nombre', width:100, frozen : true};
//	
//	for(var i = 0, j = 2; i <  llaves.length; i++, j++) {
//		llave = llaves[i];
//		splited = llave.split(" - ");
//		colNamesVar[j] = meses[parseInt(splited[0]) - 1] + " - " + splited[1];
//		colModelVar[j] = {name:llave, index:llave, width:100, align:"right", formatter:"number"};
//	}
//	
//	colNamesVar[colNamesVar.length] = "Total";
//	colModelVar[colModelVar.length] = {name:"total", index:"total", width:100, align:"right", formatter:"number"};
//	
//	console.log("colNamesVar : " + JSON.stringify(colNamesVar) );
//	console.log("colModelVar : " + JSON.stringify(colModelVar) );
//	
//	jQuery("#reporteTable").jqGrid({
//		datatype: "local",
//	   	colNames:colNamesVar,
//	   	colModel:colModelVar,
//	   	width: '800',
//        height: '200',
//        rowNum: 999999,
//        autowidth: false,
//        shrinkToFit: false,
//	   	multiselect: false
//	});
//	
//	 jQuery( "#reporteTable").jqGrid('setFrozenColumns');
//
//	
//	//{id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}
//	var cnt;
//	var objstr = '';
//	var sumaTitulo = 0;
//	var sumaMes = new Array(llaves.length);
//	var detalleTitulos;
//	var detalleTitulo;
//	
//	for(var i = 0; i < info.length; i++) { //sobre los contratos
//		cnt = info[i];
//		detalleTitulos = cnt.detalleTitulos;
//		
//		for(var j = 0; j < detalleTitulos.length; j++){
//			detalleTitulo = detalleTitulos[j];
//			objstr += '{"id":"' +  detalleTitulo.idTituloCntorig + '", "nombre":"'+ detalleTitulo.nombreEstandar +'", ';
//			
//			for(var k = 0; k < llaves.length; k++) {
//	
//				sumaMes[k] += detalleTitulo.detalleCompleto[llaves[k]];
//				sumaTitulo += detalleTitulo.detalleCompleto[llaves[k]];
//				objstr += '"' + llaves[k] + '" : "' + detalleTitulo.detalleCompleto[llaves[k]] + '", ';
//			}
//			objstr += '"total" : "'+ sumaTitulo +'"}';
//			
//			console.log(objstr);
//			
//			jQuery("#reporteTable").jqGrid('addRowData',j+1,JSON.parse(objstr));
//			
//			sumaTitulo = 0;
//			objstr = '';
//			
//			
//		}
//		
////		for(var k = 0; k < sumaMes.length; k++) {
////			trcnttotales += '<td>$' + sumaMes[k] + '</td>';
////		}
////		
////		trcnttotales += '<td>$' + cnt.total + '</td></tr>';
//		
//	}
//	
//}
//
//function procesaReporteInfo(jsonData){
//	//console.info(JSON.stringify(jsonData));
//	$("#divTable").empty();
//	//$("#divTable").append('<table id="tba" style="width:100%" class="table table-striped table-hover "><tr><td>nct</td></tr><tr><td>Jill</td><td>Smith</td><td>Smith</td><td>50</td></tr><tr><td>Eve</td><td>Jackson</td><td>Jackson</td><td>94</td></tr></table>');
//	
//	var t = ' <table id="example" class="stripe row-border order-column" cellspacing="0" width="100%">'+
//	 '<thead>'+ 
//       '<tr>'+ 
//            '<th>First name</th>'+ 
//            '<th>Last name</th>'+ 
//            '<th>Position</th>'+ 
//            '<th>Office</th>'+ 
//            '<th>Age</th>'+ 
//            '<th>Start date</th>'+ 
//            '<th>Salary</th>'+ 
//            '<th>Extn.</th>'+ 
//            '<th>E-mail</th>'+
//            '<th>Age</th>'+ 
//            '<th>Start date</th>'+ 
//            '<th>Salary</th>'+ 
//            '<th>Extn.</th>'+ 
//            '<th>E-mail</th>'+ 
//        '</tr>'+ 
//    '</thead>'+ 
//    '<tbody>'+ 
//        '<tr>'+ 
//            '<td>Tiger</td>'+ 
//            '<td>Nixon</td>'+ 
//            '<td>System Architect</td>'+ 
//            '<td>Edinburgh</td>'+ 
//            '<td>61</td>'+ 
//            '<td>2011/04/25</td>'+ 
//            '<td>$320,800</td>'+ 
//            '<td>5421</td>'+ 
//            '<td>t.nixon@datatables.net</td>'+
//            '<td>61</td>'+ 
//            '<td>2011/04/25</td>'+ 
//            '<td>$320,800</td>'+ 
//            '<td>5421</td>'+ 
//            '<td>t.nixon@datatables.net</td>'+
//        '</tr>'+ 
//        '<tr>'+ 
//            '<td>Garrett</td>'+ 
//            '<td>Winters</td>'+ 
//            '<td>Accountant</td>'+ 
//            '<td>Tokyo</td>'+ 
//            '<td>63</td>'+ 
//            '<td>2011/07/25</td>'+ 
//            '<td>$170,750</td>'+ 
//            '<td>8422</td>'+ 
//            '<td>g.winters@datatables.net</td>'+
//            '<td>63</td>'+ 
//            '<td>2011/07/25</td>'+ 
//            '<td>$170,750</td>'+ 
//            '<td>8422</td>'+ 
//            '<td>g.winters@datatables.net</td>'+
//        '</tr>'+
//     '</tbody>'+
//  '</table>';
//	
//	//$("#divTable").append(t);
//	
//	var llaves = jsonData.llaves;
//	var info = jsonData.infoReporte;
//	console.log(JSON.stringify(llaves));
//	console.log(llaves.length);
//	console.log(JSON.stringify(info));
//	console.log(info.length);
//	//var tabla = '<table id="example" class="display nowrap" cellspacing="0" width="100%"><thead><tr>';
//	var tabla = '<table id="fixed_hdr1"><thead><tr>';
//	tabla += '<th>Id</th>';
//	tabla += '<th>Nombre</th>';
//	var cnt;
//	var detalleTitulos;
//	var detalleTitulo;
//	var valores = '';
//	
//	var encabezadoDetalle = new Array(llaves.length);
//	var sumaMes = new Array(llaves.length);
//	var sumaTitulo = 0;
//	var sizecols = new Array(llaves.length);
//	var meses = ["en", "febr", "mzo", "abr", "my", "jun", "jul", "agt", "sept", "oct", "nov", "dic"];
//	
//	var llave;
//	var splited = [];
//	
//	
//	var colNamesVar = new Array(llaves.length + 2);
//	var colModelVar = new Array(llaves.length + 2);
//	
//	
//	colNamesVar[0] = "Id";
//	colNamesVar[1] = "Nombre";
//	
//	colModelVar[0] = {name:'id',index:'id', width:60};
//	colModelVar[1] = {name:'nombre',index:'nombre', width:60};
//	
//	for(var i = 0, j = 2; i <  llaves.length; i++, j++) {
//		llave = llaves[i];
//		splited = llave.split(" - ");
//		colNamesVar[j] = meses[parseInt(splited[0]) - 1] + " - " + splited[1];
//		colModelVar[j] = {name:llave, index:llave, width:60};
//	}
//	
//	console.log("colNamesVar : " + JSON.stringify(colNamesVar) );
//	console.log("colModelVar : " + JSON.stringify(colModelVar) );
//	
//	for(var it = 0; it < llaves.length; it++) {
//		llave = llaves[it];
//		//console.log(llave);
//		splited = llave.split(" - ");
//		console.log(meses[parseInt(splited[0]) - 1] + " - " + llave);
//		encabezadoDetalle[it] = meses[parseInt(splited[0]) - 1] + " - " + splited[1];
//		
//		tabla += '<th>' + meses[parseInt(splited[0]) - 1] + " - " + splited[1] + '</th>';
//		sumaMes[it] = 0;
//		sizecols[it] =  { width: 100, align: 'center' };
//	}
//	
//	console.log(JSON.stringify(sizecols));
//	
//	tabla += '<th>Total</th></tr></thead><tbody>';//  
//		
//	console.log(tabla);
//	
//	console.log(JSON.stringify(encabezadoDetalle));
//	console.log(JSON.stringify(sumaMes));
//	
//	var trcnttotales= '';
//	var trtemp = '';
//	
//	var objstr = '';
//	
//	for(var i = 0; i < info.length; i++) { //sobre los contratos
//		cnt = info[i];
//		console.log("numero contrato : " + cnt.numeroContrato + " --- total : " + cnt.total);
//		detalleTitulos = cnt.detalleTitulos;
//	
//		trcnttotales += '<tr><td>' + cnt.idContrato + '</td><td>' + cnt.numeroContrato + '</td>';
//		
//		for(var j = 0; j < detalleTitulos.length; j++){
//			detalleTitulo = detalleTitulos[j];
//			console.log("---> idTitulo : " + detalleTitulo.idTituloCntorig +" --- nombre estandar : " + detalleTitulo.nombreEstandar);
//			//console.log(JSON.stringify(detalleTitulo.detalleCompleto));
//			
//			objstr += "{"
//			
//			valores += '<tr><td>' + detalleTitulo.idTituloCntorig + '</td><td>' + detalleTitulo.nombreEstandar + '</td>';
//			for(var k = 0; k < llaves.length; k++) {
//				console.log("value : " + detalleTitulo.detalleCompleto[llaves[k]]);
//				//valores += ' "'+detalleTitulo.detalleCompleto[llaves[k]]+'" ';
//				sumaMes[k] += detalleTitulo.detalleCompleto[llaves[k]];
//				sumaTitulo += detalleTitulo.detalleCompleto[llaves[k]];
//				valores += '<td>$' + detalleTitulo.detalleCompleto[llaves[k]] + '</td>';
//			}
//			
//			//valores += ' "'+sumaTitulo+'" ';
//			valores += '<td>$' + sumaTitulo + '</td></tr>';
//			console.log(valores);
//			trtemp += valores;
//			valores = '';
//			sumaTitulo = 0;
//		}
//		
//		for(var k = 0; k < sumaMes.length; k++) {
//			trcnttotales += '<td>$' + sumaMes[k] + '</td>';
//		}
//		
//		trcnttotales += '<td>$' + cnt.total + '</td></tr>';
//		
//		tabla += trcnttotales;
//		tabla += trtemp;
//		trtemp = '';
//	}
//	
//	tabla += '</tbody></table>';
//	
//	$("#divTable").append(tabla);
//	
//	console.log(JSON.stringify(sumaMes));
//	console.log(tabla);
//	
//
//	
//
////	
//	
//}