function PerfilController() {
	this.perfilService = new PerfilService();
	
	//*****perfiles contrato suscriptor*****
	this.activarPerfilListado = function(permiso) {
		if(permiso.idMenu == 61)				
		   $('#nuevo').prop("disabled", false);
		
		if(permiso.idMenu == 147)
		{											
			$('#listadoContratos tbody tr').find("td:nth-child(7)").find("a").each(function(){		
				
				   if($(this).text() == "Enmienda") 
				     $(this).show();		   		   		  
			});
		}											   	
		
		if(permiso.idMenu == 148)
		{
			$('#listadoContratos tbody tr').find("td:nth-child(7)").find("a").each(function(){		
				
				   if($(this).text() == "Addendum") 
				     $(this).show();		   		   		  
			});
		}									   
		
		if(permiso.idMenu == 149)	
			$("#dialogoDocs").find("div.row").find("a:last").show();						   									   						   		
	};

	this.activarPerfilGenerales = function(permisos, area, usuario, pmn, tipoContrato) {

		for (var i = 0; i < permisos.length; i++) {

			if (permisos[i].idMenuPadre == pmn) {

				$("#" + permisos[i].parametros).prop("disabled", false);

				if (permisos[i].parametros == "bCancelar") {
					if (area.idArea == 5) {
						$("#" + permisos[i].parametros).prop("disabled", false);
					} else {
						$("#" + permisos[i].parametros).prop("disabled", true);
					}
				}

				if (permisos[i].parametros == "bFinalizar"
						&& area.autorizaContrato == 0) {
					$("#" + permisos[i].parametros).prop("disabled", true);// ocultaba el boton de finaliza registro
				}
				
				if(permisos[i].parametros == "bSkipWorkflow" && tipoContrato == 5 && area.idArea == 2){
					$("#" + permisos[i].parametros).show();
					$("#" + permisos[i].parametros).prop("disabled", false);
				}
				
			}
			
			if(permisos[i].idMenu == 72 && tipoContrato == 4)
				$("#" + permisos[i].parametros).prop("disabled", false);
			if(permisos[i].idMenu == 116 && tipoContrato == 5)
				$("#" + permisos[i].parametros).prop("disabled", false);
			if(permisos[i].idMenu == 117 && tipoContrato == 6)
				$("#" + permisos[i].parametros).prop("disabled", false);
		
			
			
		}
	};
			
	this.activarPerfilFees = function(permiso) {		
		if(permiso.idMenu == 75)
		{			
			$('form :input')  .prop( "disabled", false );
			$('#nuevoPeriodo').prop( "disabled", true);
			$('form div.divtabla :input')   .prop( "readonly", false );
			$('form table.bono   :input')   .prop( "readonly", false );
			$('div[id="divBotones"] button:nth-child(1)').prop( "disabled", false );
			$('div[id="divBotones"] button:nth-child(3)').prop( "disabled", false );
			$('form select')  .prop( "disabled", false);		
			$('form > select').prop( "readonly", false );
			$('span').show();
		}		
		
		if(permiso.idMenu == 76)
		   $('#nuevoPeriodo').prop( "disabled", false);
			
		if(permiso.idMenu == 150)
		   $('#subirDoc').prop( "disabled", false );								
	};

	this.activarPerfilTitulos = function(permiso) {		
		if(permiso.idMenu == 77)				
		{						
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('button[id="bExportarLista"]').prop("disabled", false);
		}					   

		if(permiso.idMenu == 78)		
		{			
			$('#operaciones').append($('<option>', {
			    value: "agregar",
			    text : "Agregar T\u00EDtulo"
			}));			
		}				   		
		
		if(permiso.idMenu == 79)		
		{
			$('#operaciones').append($('<option>', {
			    value: "editar",
			    text : "Editar T\u00EDtulo"
			}));
		}				   	
		
		if(permiso.idMenu == 80)		
		{
			$('#operaciones').append($('<option>', {
			    value: "eliminar",
			    text : "Eliminar T\u00EDtulo"
			}));
		}		   	
		
		if(permiso.idMenu == 81)		
		{
			$('#operaciones').append($('<option>', {
			    value: "ventana",
			    text : "Ajustar Ventana"
			}));			
		}				   	
		
		if(permiso.idMenu == 82)		
		{
			$('#operaciones').append($('<option>', {
			    value: "categoria",
			    text : "Ajustar Categor\u00EDa"
			}));			
		}
				
		if(permiso.idMenu == 166)		
		{
			$('#operaciones').append($('<option>', {
			    value: "costo",
			    text : "Ajustar Costo"
			}));			
		}
						
		if(permiso.idMenu == 168)		
		{
			$('#operaciones').append($('<option>', {
			    value: "trasladar",
			    text : "Trasladar T\u00EDtulo"
			}));			
		}
		
		if(permiso.idMenu == 83)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bSubir"]').prop("disabled", false);
		}				   						   		
	};

	this.activarPerfilTerminos = function(permiso) {		
		if(permiso.idMenu == 85)
		{			
			$('form input')   .prop( "disabled", false);
			$('form  button') .prop( "disabled", false);
			$('#subirDoc')    .prop( "disabled", true);			
			$('#comment')     .prop( "disabled", false);										
		}											
	};
	
	this.activarPerfilDeal = function(permisos, pmn) {
		for(var i = 0; i < permisos.length; i++)
    		if(permisos[i].idMenuPadre == pmn)
    			$( "#" + permisos[i].parametros ).prop( "disabled", false );
	};
	
	//*****perfiles contrato fee*****
	this.activarPerfilListadoFee = function(permiso) {				
		if(permiso.idMenu == 118)				
		   $('#nuevo').prop("disabled", false);
			
		if(permiso.idMenu == 156)
		{
			$('#listadoContratos tbody tr').find("td:nth-child(7)").find("a").each(function(){						
				   if($(this).text() == "Enmienda") 
				     $(this).show();		   		   		  
			});
		}				   						   	
			
		if(permiso.idMenu == 157)
		{
			$('#listadoContratos tbody tr').find("td:nth-child(7)").find("a").each(function(){						
				   if($(this).text() == "Addendum") 
				     $(this).show();		   		   		  
			});
		}		   						   	
			
		if(permiso.idMenu == 158)	
		   $("#dialogoDocs").find("div.row").find("a:last").show();						   									   						   		
	};
	
	this.activarPerfilTitulosFee = function(permiso) {		
		if(permiso.idMenu == 137)				
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('button[id="bExportarLista"]').prop("disabled", false);
		}					   

		if(permiso.idMenu == 131)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bAgregar"]').prop("disabled", false);
		}				   		
		
		if(permiso.idMenu == 132)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bEditar"]').prop("disabled", false);
		}				   	
		
		if(permiso.idMenu == 133)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bEliminar"]').prop("disabled", false);
		}		   	
		
		if(permiso.idMenu == 135)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bAjustarVentana"]').prop("disabled", false);
		}				   	
		
		if(permiso.idMenu == 136)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bAjustarCategoria"]').prop("disabled", false);
		}				   		
		
		if(permiso.idMenu == 134)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bSubir"]').prop("disabled", false);
		}				   						   		
	};

	this.activarPerfilTerminosFee = function(permiso) {		
		if(permiso.idMenu == 130)
		{			
			$('form input')      .prop( "disabled", false);
			$('form  button')    .prop( "disabled", false);
			$('#subirDoc')       .prop( "disabled", false);			
			$('#comment')        .prop( "disabled", false);
			$('div.modal input') .prop( "disabled", false);			
			$('div.modal button').prop( "disabled", false);			
		}											
	};
	
	//*****perfiles contrato transaccion********************************************************************
	this.activarPerfilListadoTransaccion = function(permiso) {
	
		
		if(permiso.idMenu == 104)				
		   $('#nuevo').prop("disabled", false);
		
		if(permiso.idMenu == 151)
		{
			$('#listadoContratos tbody tr').find("td:nth-child(7)").find("a").each(function(){						
				   if($(this).text() == "Enmienda") 
				     $(this).show();		   		   		  
			});
		}											   	
		
		if(permiso.idMenu == 152)
		{
			$('#listadoContratos tbody tr').find("td:nth-child(7)").find("a").each(function(){						
				   if($(this).text() == "Addendum") 
				     $(this).show();		   		   		  
			});
		}									   
		
		if(permiso.idMenu == 153)	
			$("#dialogoDocs").find("div.row").find("a:last").show();						   									   						   		
	};
	
	this.activarPerfilFeesTransaccion = function(permiso) {		
		if(permiso.idMenu == 101)
		{						
			$('table i').show();
			$('button.btn-guardar').prop( "disabled", false);
		}		
		
		if(permiso.idMenu == 102)		
		  $('.btn-agregar').prop( "disabled", false);
			
		if(permiso.idMenu == 160)
		  $('.btn-exportar').prop( "disabled", false);			
		
		if(permiso.idMenu == 161)
		  $('.btn-importar').prop( "disabled", false);
	};

	this.activarPerfilTitulosTransaccion = function(permiso) {
		
		$('div[id="divBotonesTitulo"] button[id="bAceptar"]').prop("disabled", false);

		if(permiso.idMenu == 94)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('#operacionesTitulosTransaccional option[value="agregar"]').remove();
			$('#operacionesTitulosTransaccional').append($('<option>', {
			    value: "agregar",
			    text : "Agregar T\u00EDtulo"
			}));		
		}				   		
		
		if(permiso.idMenu == 95)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('#operacionesTitulosTransaccional option[value="editar"]').remove();
			$('#operacionesTitulosTransaccional').append($('<option>', {
			    value: "editar",
			    text : "Editar T\u00EDtulo"
			}));		
		}				   	
		
		if(permiso.idMenu == 96)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('#operacionesTitulosTransaccional option[value="eliminar"]').remove();
			$('#operacionesTitulosTransaccional').append($('<option>', {
			    value: "eliminar",
			    text : "Eliminar T\u00EDtulo"
			}));		
		}	   	
		
		if(permiso.idMenu == 97)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('div[id="divBotonesTitulo"] button[id="bSubir"]').prop("disabled", false);
		}
								
		if(permiso.idMenu == 98)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('#operacionesTitulosTransaccional option[value="ventana"]').remove();
			$('#operacionesTitulosTransaccional').append($('<option>', {
			    value: "ventana",
			    text : "Ajustar Ventana"
			}));
		}				   	
		
		if(permiso.idMenu == 99)		
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('#operacionesTitulosTransaccional option[value="categoria"]').remove();
			$('#operacionesTitulosTransaccional').append($('<option>', {
			    value: "categoria",
			    text : "Ajustar Categor\u00EDa"
			}));		
		}				   		
		
		if(permiso.idMenu == 100)				
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('button[id="bDescarga"]').prop("disabled", false);
		}
		
		if(permiso.idMenu == 162)				
		{
			$('div[id="divBotonesTitulo"] button[id="bGuardar"]').prop("disabled", false);
			$('#operacionesTitulosTransaccional option[value="hvrd"]').remove();
			$('#operacionesTitulosTransaccional').append($('<option>', {
			    value: "hvrd",
			    text : "Ajustar HVRD"
			}));	
		}

	};
	
	//******Perfiles facturacion******	
	this.activarPerfilListadoFacturas = function(permiso) {		
		if(permiso.idMenu == 180)				
			$('#nuevo').prop("disabled", false);		
						
		if(permiso.idMenu == 181)		
			$('table tbody tr').find("td:nth-child(7)").find("a:first").show();						   	
		
		if(permiso.idMenu == 159)
			$('table tbody tr').find("td:nth-child(7)").find("a:last").show();						   										   									   						   		
	};	
	
	//******Perfiles notas de credito******	
	this.activarPerfilListadoNotasCredito = function(permiso) {		
		if(permiso.idMenu == 171)				
			$('#nuevo').prop("disabled", false);		
						
		if(permiso.idMenu == 172)		
			$('table tbody tr').find("td:nth-child(7)").find("a:first").show();						   	
		
		if(permiso.idMenu == 173)
			$('table tbody tr').find("td:nth-child(7)").find("a:last").show();						   										   									   						   		
	};
			
	//******Perfiles Comunes******
	this.activarPerfilComun = function(accion) {		
		if(accion == "subirDocumento")
		   $('#subirDoc').prop( "disabled", false );
	};
					
	this.activaDatosPersonales = function(permisos, pmn) {
		for(var i = 0; i < permisos.length; i++)
			if(permisos[i].idMenu == pmn)
				$("#perfilLink").show();
	};
	
}
//ejecuta obtenerprmisos.action_________________________________
PerfilController.prototype.ejecutarPerfil = function(pmn) {	
	var data = this.perfilService.obtenerPermisos(pmn);
	var vpermisos = data.permisos;
	var varea     = data.area;
	var vusuario  = data.usuario;
	var permisoSi = data.permisoSi;
	var uri = data.uri;
	
	//INICIAN permisos para Carga Transacciones y Promociones...
	
    $('#bValidar').hide();
    $('#bRecalculo').hide();
    $('#bAsociar').hide();
    $('#bSubirTransaccion').hide();
    
    $('#btnAgregarPromo').hide();
    $('#btnActualizaPromo').hide();
    $("#pEliminarTrue").css("display", "none");
	$("#pEliminarFalse").css("display", "block");
	$("#pDetalleTrue").css("display", "none");
	$("#pDetalleFalse").css("display", "block");
	if(permisoSi === 0){
		window.location.href = '/' + uri + '/jsp/errorPermiso.jsp';
	}
   
             for(var A=0; A < vpermisos.length; A++ ){
            	    //transacciones
            	    if(vpermisos[A].idMenu === 176){
            	    	   $('#bSubirTransaccion').show();
            	    }
            	    if(vpermisos[A].idMenu === 177){
            	    		$('#bAsociar').show();
            	    }
            	    if(vpermisos[A].idMenu === 178){
        	    			$('#bValidar').show();
            	    }
            	    if(vpermisos[A].idMenu === 179){
        	    			$('#bRecalculo').show();
            	    }
            	    //promociones
            	    if(vpermisos[A].idMenu === 185){
            	    	    $('#btnAgregarPromo').show();
            	    }
            	    if(vpermisos[A].idMenu === 187){
           	    	        $('#btnActualizaPromo').show();
           	        }
            	    if(vpermisos[A].idMenu === 188){	
            	    	$("#pEliminarTrue").css("display", "block");
            	    	$("#pEliminarFalse").css("display", "none");
            	    }
            	    if(vpermisos[A].idMenu === 186){
            	    	$("#pDetalleTrue").css("display", "block");
            	    	$("#pDetalleFalse").css("display", "none");
            	    }
             }
	 //fin permisos para carga de transacciones y promociones...
             
             
             
	switch(pmn)
	{
		case 1:
			this.activaDatosPersonales(vpermisos, pmn);
			break;
		case 15://listado suscriptor
			for(var i = 0; i < vpermisos.length; i++)
			{
				if(vpermisos[i].idMenu === 61)	    			    			
	    			this.activarPerfilListado(vpermisos[i]);
	    		
				if(vpermisos[i].idMenuPadre == pmn)
					this.activarPerfilListado(vpermisos[i]);
			}						    			    				    		  
			break;
		case 16:			
			this.activarPerfilGenerales(vpermisos, varea, vusuario, pmn, 4);
			break;
	    case 24: // Generales	    	
	    	this.activarPerfilGenerales(vpermisos, varea, vusuario, pmn, 5);
	    	break;
	    case 31: //Listado fee
			for(var i = 0; i < vpermisos.length; i++)
			{				
				if(vpermisos[i].idMenu === 118)					
				   this.activarPerfilListadoFee(vpermisos[i]);
	    		
				if(vpermisos[i].idMenuPadre == pmn)
				   this.activarPerfilListadoFee(vpermisos[i]);
			}						    			    				    		  
			break;
	    case 38: //titulos fee 		    		    		    		    
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn)
	    		   this.activarPerfilTitulosFee(vpermisos[i]);
	    break;
	    case 33: //terminos	Fee   		    	
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn) 
	    		   this.activarPerfilTerminosFee(vpermisos[i]);
	    break;
	    case 32: //Generales Suscriptor	    	
	    	this.activarPerfilGenerales(vpermisos, varea, vusuario, pmn, 6);
	    	break;
	    case 18: //fees	Suscriptor 		    	
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn)
	    		   this.activarPerfilFees(vpermisos[i]);
	    break;
	    case 22: //titulos Suscriptor 		    		    		    		    
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn)
	    		   this.activarPerfilTitulos(vpermisos[i]);
	    break;
	    case 17: //terminos	Suscriptor   		    	
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn) 	    			
	    		   this.activarPerfilTerminos(vpermisos[i]);
	    break;
	    case 52:  //listado facturas
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn) 
	    		   this.activarPerfilListadoFacturas(vpermisos[i]);
	    break;
	    case 53:	    	
	    	for(var i = 0; i < vpermisos.length; i++)
	    		if(vpermisos[i].idMenuPadre == pmn)
	    			$( "#" + vpermisos[i].parametros ).prop( "disabled", false );
	    break;
	    case 55:	    	
	    	this.activarPerfilDeal(vpermisos,  pmn);
	    break;
	    case 35:	    	
	    	this.activarPerfilDeal(vpermisos,  pmn);
	    break;
	    case 27:	    	
	    	this.activarPerfilDeal(vpermisos,  pmn);
	    break;	    
	    case 23: //listado transaccion
			for(var i = 0; i < vpermisos.length; i++)
			{
				if(vpermisos[i].idMenu === 104)	    			    			
	    		    this.activarPerfilListadoTransaccion(vpermisos[i]);
	    		
				if(vpermisos[i].idMenuPadre == pmn)
					this.activarPerfilListadoTransaccion(vpermisos[i]);
			}						    			    				    		  
		break;
	    case 26:     		    		    	
	    break;
	    case 29: //titulos transaccion   

	    	for(var i = 0; i < vpermisos.length; i++){    	
	    		if(vpermisos[i].idMenuPadre == pmn){
	    		   this.activarPerfilTitulosTransaccion(vpermisos[i]);
	    		}
	     }
	    break;
	    case 170:
	    	for(var i = 0; i < vpermisos.length; i++)	    	
	    		if(vpermisos[i].idMenuPadre == pmn) 
	    		   this.activarPerfilListadoNotasCredito(vpermisos[i]);
	    break;	    
	}
	
	for(var i = 0; i < vpermisos.length; i++)	    	
		if(vpermisos[i].idMenuPadre == 4)
		   this.activarPerfilComun(vpermisos[i].script);
}