/**
 * @see Contiene todas las llamadas ajax
 */
var contenido = /^-?\d*(\.\d+)?$/;
var catalogos;
function validaPorcentaje(tabla,clase,renglon){
	var bandera=true;
	var porcentajes=$("#"+tabla+" tbody tr#"+clase+" td input");
	for(var kRev=0;kRev<porcentajes.length;kRev+=2){
		if(porcentajes[kRev].value!=""&&porcentajes[kRev+1].value!=""){
			if((parseInt(porcentajes[kRev].value)+parseInt(porcentajes[kRev+1].value))>100){
				bandera=false;
			}
		}else{
			bandera = false;
		}
		
	}
	return true;
}

function Minimo(idCategoria,annio,minimo,seccion){
	this.idCategoria=idCategoria;
	this.annio=annio;
	this.minimo=minimo;
	this.seccion=seccion;
}

function PtAnnio(annio,titulos,precio,minimo,seccion){
	this.annio=annio;
	this.titulos=titulos;
	this.precio=precio;
	this.minimo=minimo;
	this.seccion=seccion;	
	
}

function Catalogos(idCatalogo,tipo,valor,tipoTitulo){
	this.idCatalogo=idCatalogo;
	this.tipo=tipo;
	this.valor=valor;
	this.tipoTitulo=tipoTitulo;
}
function PtPrecio(idCategoria,precio){
	this.idCategoria=idCategoria;
	this.precio=precio;
}
function obtenerCatalogos(){

	var idContrato=$("#idContrato").val();
	var url=contextPath + "/contrato/condicionesTransaccion/obtenerCatalogosCondicionesTransaccion?idContrato="+idContrato
	$.ajax({ 
		 
		 type: "get",
		 dataType: "json",
		 
		  contentType:"application/json;charset=utf-8",	  
		  url: url,
		  success: function(data) {
			  catalogos=data;
			  pintaTablas();
			  cargaInfo(catalogos);

		  
		  }, complete: function (xhrObj, status, jqXHR) {
			 
		  },
		  error: function (jqXhr, textStatus, errorThrown) {
			  showError("Ocurrio un error al cargar los catalogos:"+textStatus);
		  } });
}

function valida(){

	debugger;;	
	var bandera=true
	
	// VALIDACION DE CAMPOS VACIOS
	 $( "input.campo:visible" ).each(function() {
	       if($( this ).val().trim()==""){
	       }else if(!contenido.test($( this ).val())){
		    		  bandera=false;
		    			showWarn("Contenido no valido");
		    			$( this ).css("color","red");
		    			$('html,body').animate({scrollTop:0},{duration:"slow"})
		    	  }
	      
	     });
	$( "select:visible" ).each(function() {
	      
	    	  if($( this ).val()==0){
	  	       	bandera=false;
	  	       	
	  	      	showWarn("Falta seleccionar combos");
	  	      $('html,body').animate({scrollTop:0},{duration:"slow"})
	  	       }
	     });
	//SECCION PARA VALIDAR QUE LOS PORCENTAJES DLA+ESTUDIO NO SOBREPASEN EL 100%
	var nombreTablas=["tablaReleaseP","tablaReleaseL"];
	var nombreClases=["idRenglon","idRenglon"];
		for(var renglon=0;renglon<nombreTablas.length;renglon++){
			bandera=validaPorcentaje(nombreTablas[renglon],nombreClases[renglon],renglon);
			if(!bandera){
				
				switch (renglon){
				case 0:   showWarn("La suma de Revenue Share supera el 100% en Renta Premire");
				  	      $('html,body').animate({scrollTop:0},{duration:"slow"})
				  	      renglon=10;
				  	      break;
				case 1:   showWarn("La suma de Revenue Share supera el 100% en Renta Libreria");
		  	      			$('html,body').animate({scrollTop:0},{duration:"slow"})
		  	      			renglon=10;
		  	      			break;	      
				}
			}
		}
	//TERMINA SSECCION   
	   
	
	if(bandera){
		guardarCambios();
		$('html,body').animate({scrollTop:0},{duration:"slow"})
	}
		
	
}

function guardarCambios(){
	debugger;

	var idContrato=$("#idContrato").val();
	var justificacion=$("#justificacion").val();
	var expediente=$("#expediente").val();	
	
	var optionsLista=[];
	var combosLista=[];
	var tabla=["categoriasP","categoriasL"];
	var tablaSecundaria=["tablaReleaseP","tablaReleaseL"];
	var tablaCategoriasClase=["release","categoria"];	
	var tablaSeccion=[p,l];
	
	var optionsRadiosP=$('input:radio[name=optionsRadiosP]:checked').val();
	var optionsRadiosL=$('input:radio[name=optionsRadiosL]:checked').val();
	
	var contractualP=$("#idContractualP option:selected").text();
	var contractualL=$("#idContractualL option:selected").text();
		
	var seccionPtAnnio=[];
	var seccionMinimo=[];	
	var secciontablaCatalogos=[];
	var seccionPtPrecio=[];
	
	for(var indexSeccion=0;indexSeccion<tabla.length;indexSeccion++){
		
		
		var ptAnnioLista=[];
		
		var minimoLista=[];
		var tablaRelease=[];
		var tablaReleaseOtros=[];
		var tablaPrecios=[];
		
		//SECCION PARA CARGAR LAS TABLAS PRINCIPALES
		var titulosLista=$("#"+tabla[indexSeccion]+" tbody tr#trTitulo td input");
		var preciosLista=$("#"+tabla[indexSeccion]+" tbody tr#trPrecio td input");
		
		//carga los valores minimo cuando son muchos
		var cmgLista=$("#"+tabla[indexSeccion]+" tbody tr#categoriaRenglon td input");
		
		var minimoPt=$("#"+tabla[indexSeccion]+" tbody tr#trMinimoSingle td input");
		$("#"+tabla[indexSeccion]+" tbody tr#trMinimoSingle td input").css;
		//recoge los valores del renglon titulos y precios creando objetos 
		for(var index=0;index<titulosLista.length;index++){
			if(minimoPt.length>0){
				var arrAux=titulosLista[index].id.split("_");
				var ptAnnio=new PtAnnio((index+1),titulosLista[index].value,preciosLista[index].value,minimoPt[0].value,arrAux[1]);
				ptAnnioLista.push(ptAnnio);
			}else{
				var arrAux=titulosLista[index].id.split("_");
				var ptAnnio=new PtAnnio((index+1),titulosLista[index].value,preciosLista[index].value,"",arrAux[1]);
				ptAnnioLista.push(ptAnnio);
			}
			
		}
		
		
		if(cmgLista.length>0){
			//cuando existe, recoge los valores del renglon minimo
			for(var index=0;index<cmgLista.length;index++){
				var arrAux=cmgLista[index].id.split("_");
				
				var minimo=new Minimo(arrAux[0],arrAux[2],cmgLista[index].value,arrAux[3]);
				minimoLista.push(minimo);
			}
		}
				
		
		
	
		seccionPtAnnio.push(ptAnnioLista);
		seccionMinimo.push(minimoLista);
		
		//SECCION PARA CARGAR LAS TABLAS SECUNDARIAS
		if(indexSeccion==2){
			var catalogoCategoria=$("#"+tablaSecundaria[indexSeccion]+" tbody tr#idRenglon td input."+tablaCategoriasClase[1]);
			for(var index=0;index<catalogoCategoria.length;index++){
				var auxArr=catalogoCategoria[index].id.split("_");
				var release = new Catalogos(auxArr[0],auxArr[1],catalogoCategoria[index].value,tablaCategoriasClase[1]);
				tablaRelease.push(release);
			}
			var catalogoCategoria=$("#"+tablaSecundaria[indexSeccion]+" tbody tr#idRenglonOtros td input."+tablaCategoriasClase[indexSeccion]);
			for(var index=0;index<catalogoCategoria.length;index++){
				var auxArr=catalogoCategoria[index].id.split("_");
				var release = new Catalogos(auxArr[0],auxArr[1],catalogoCategoria[index].value,tablaCategoriasClase[indexSeccion]);
				tablaReleaseOtros.push(release);
			}
			secciontablaCatalogos.push(tablaRelease);
			secciontablaCatalogos.push(tablaReleaseOtros);
		}else{
			var catalogoCategoria=$("#"+tablaSecundaria[indexSeccion]+" tbody tr#idRenglon td input."+tablaCategoriasClase[indexSeccion]);
			for(var index=0;index<catalogoCategoria.length;index++){
				var auxArr=catalogoCategoria[index].id.split("_");
				var release = new Catalogos(auxArr[0],auxArr[1],catalogoCategoria[index].value,tablaCategoriasClase[indexSeccion]);
				tablaRelease.push(release);
			}
			
			secciontablaCatalogos.push(tablaRelease);
		}
		
		
		$("#tablaCategoria"+tablaSeccion[indexSeccion]+" tbody tr td input").each(function(){
			var precio = new PtPrecio($(this).attr("id"),$(this).val());
			tablaPrecios.push(precio);
		});
		seccionPtPrecio.push(tablaPrecios);
		
	}
	
	optionsLista.push(optionsRadiosP);
	optionsLista.push(optionsRadiosL);
	
	combosLista.push(contractualP);
	combosLista.push(contractualL);
	var data={
			"idContrato":idContrato,
			"justificacion":justificacion,
			"expediente":expediente,
			
			"optionsLista":optionsLista,
			
			"combosLista":combosLista,
		
			"seccionPtAnnio":seccionPtAnnio,
			"seccionMinimo":seccionMinimo,
			"secciontablaCatalogos":secciontablaCatalogos,
			"seccionPtPrecio":seccionPtPrecio
			
		
	};
	
	var aux=JSON.stringify(data);
	
	console.log(aux);
	 
	var url=contextPath + "/contrato/condicionesTransaccion/condicionesTransaccionGuardar.action"+"?data="+JSON.stringify(data);

debugger;

	 $.ajax({ 
		
		  type: "post",
		  dataType: "text",		 
		  contentType:"application/json;charset=utf-8",	  
		  url: contextPath + "/contrato/condicionesTransaccion/condicionesTransaccionGuardar.action?data=" + JSON.stringify(data),
		  cache:false,
		  success: function(response) {
		  
		  }, complete: function (xhrObj, status, jqXHR) {
			  showMessage("Los datos fueron guardados con exito");
		  },
		  error: function (jqXhr, textStatus, errorThrown) {
			 showError("Ocurrio un error al guardar los datos:"+textStatus);
		  } });
		  
		  
		  
}


