$('#modalTitulos').on('shown.bs.modal', function () {
	tituloController = new TituloController();
});


function TituloController() {
	this.grid     = new TituloGrid("tituloGrid");
};

function TituloGrid(gridId) {
	this.gridId = gridId;
	this.grid = null ;
	var me  = this;
	if ($("#tipoContrato").val() == 1){
		console.log("tipo contrato: 1" );
		this.columnsFijas = [
			{ label: 'Validaciones',			name: 'validaciones', width: 100,		hidden:false },
	        { label: 'Id BroadView',			name: 'idBv', width: 100,			hidden:false }, 	                    									
	        { label: 'Nombre unico',			name: 'nombreUnico', width: 200,	hidden:false },
	        { label: 'Nombre T&iacute;tulo',	name: 'nombreTitulo', width: 200,	hidden:false },
	        { label: 'Temporada',				name: 'temporada', width: 100,		hidden:false },
	        { label: 'Episodio',				name: 'episodio', width: 100,		hidden:false },
	        { label: 'Clasificaci&oacute;n',	name: 'clasificacion', width: 50,	hidden:false },
	        { label: 'Categor&iacute;a',		name: 'categoria', width: 150,		hidden:false },
	        { label: 'Inicio Deal',				name: 'fechaInicioDeal', width: 100,	formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Fin Deal',				name: 'fechaFinDeal', width: 100,		formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Inicio local',			name: 'fechaInicioLocal', width: 100,	formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Fin local',				name: 'fechaFinLocal', width: 100,		formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Box office',				name: 'boxOffice', width: 100,		hidden:false },
	        { label: 'Fecha liberacion',		name: 'fechaRelease', width: 100,	formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Nombre Espanol',			name: 'nombreEsp', width: 100,		hidden:false },
	        { label: 'Nombre Portugues',		name: 'nombrePor', width: 100,		hidden:false },
	        { label: 'Nombre Ingles',			name: 'nombreIng', width: 100,		hidden:false },
	        { label: 'Episodio Espanol',		name: 'episodioEsp', width: 100,	hidden:false },
	        { label: 'Episodio Portugues',		name: 'episodioPor', width: 100,	hidden:false },
	        { label: 'Episodio Ingles',			name: 'episodioIng', width: 100,	hidden:false },
	        { label: 'Fecha registro',			name: 'fechaRegistro', width: 100,		formatter:'date', formatoptions: {  newformat: 'm/d/Y'} }
		];
	} else {
		console.log("tipo contrato: 2" );
		this.columnsFijas = [
			{ label: 'Validaciones',			name: 'validaciones', width: 100,		hidden:false },
	        { label: 'Id BroadView',			name: 'idBv', width: 100,			hidden:false }, 	                    									
	        { label: 'Nombre unico',			name: 'nombreUnico', width: 200,	hidden:false },
	        { label: 'Nombre T&iacute;tulo',	name: 'nombreTitulo', width: 200,	hidden:false },
	        { label: 'Temporada',				name: 'temporada', width: 100,		hidden:false },
	        { label: 'Episodio',				name: 'episodio', width: 100,		hidden:false },
	        { label: 'Categor&iacute;a',		name: 'categoria', width: 150,		hidden:false },
	        { label: 'Inicio local',			name: 'fechaInicioLocal', width: 100,	formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Fin local',				name: 'fechaFinLocal', width: 100,		formatter:'date', formatoptions: {  newformat: 'm/d/Y'} },
	        { label: 'Box office',				name: 'boxOffice', width: 100,		hidden:false },
	        { label: 'Nombre Espanol',			name: 'nombreEsp', width: 100,		hidden:false },
	        { label: 'Nombre Portugues',		name: 'nombrePor', width: 100,		hidden:false },
	        { label: 'Nombre Ingles',			name: 'nombreIng', width: 100,		hidden:false }
		];
	}
	this.columns = this.columnsFijas.concat([]);
	var con = $("#campoContratoBV").val();
	if(con == "")
	{
		$("#modalTitulos").modal('hide');
		showError("El n\u00FAmero de contrato BroadView esta vac\u00EDo");
	}
	this.reload();
}

TituloGrid.prototype.getColumns = function() {
	return this.columns;
};

TituloGrid.prototype.reload = function() {
	this.genericLoadData( this.getData );
};


TituloGrid.prototype.reloadDetails = function(nu) {
	this.genericLoadData( this.getDetails, nu );	
};

function cargarTitulos () {
	var response = "";
	var jsonString = '{"contratoDda" : "' + $("#idContrato").val() + '",'+
					 '"contratoBv":"' + $("#campoContratoBV").val() + '",'+
					 '"tipoContrato":"' + $("#tipoContrato").val() + '"}';
	var stringJson = JSON.parse(jsonString);
	$.ajax({ 
		url : contextPath +'/contrato/generales/insertarTitulosBroadView',
		type : "POST",
		data : stringJson,
		async : false,
		success : function (ret) { 
			response = ret.insertResponse; 
			showMessage("Los titulos se cargaron exitosamente.");
			},
		error: function () { 
			showError("Error al cargar los titulos");
			}
	});
	console.log(response);
};

function cerrarElementos(){
	$("#warningDiv").hide();
	$("#loadingDiv").show();
	$("#dynTitulosGrid").hide();
}


TituloGrid.prototype.genericLoadData = function( loadData  , nu) {
	var me = this;
	$("#dynTitulosGrid").html("<table id='tituloGrid'></table><div id='tituloGridPager'></div>");
	var items = loadData(nu);
	$("#loadingDiv").hide();
	if (items != null && items.length > 0)
	{
		console.log("Entra con objetos");
		$("#dynTitulosGrid").show();
		this.init(items);	
	} else 
	{
		//$("#warningDiv").show();
		console.log("Entra sin objetos");
		$("#warningDiv").show();
	}
}

TituloGrid.prototype.getData =function(  ) { 
	var items = {};
	var jsonString = '{"contratoDda" : "' + $("#idContrato").val() + '",'+
					 '"contratoBv":"' + $("#campoContratoBV").val() + '",'+
					 '"tipoContrato":"' + $("#tipoContrato").val() + '"}';
	var stringJson = JSON.parse(jsonString);
	$.ajax({ 
		url : contextPath +'/contrato/generales/buscarTitulosBroadView',
		type : "POST",
		data : stringJson,
		async : false,
		success : function (ret) { 
				items = ret.titulosBv; 
				$("#lblNumContrato").text(ret.numContrato);
			}
	});
	console.log("Items: " + items);
	return items;
};

TituloGrid.prototype.init = function(items) {
	var me = this;
	me.grid = $("#"+me.gridId).jqGrid({
		data: items,
        datatype: "local",
        loadonce : true,
        colModel: me.columns,
		viewrecords: false,
		shrinkToFit:false,
		width: 885,
        height: 250,
        multiselect : false,
        rowNum: 30000,
        /*onSelectRow : function (id)
        {
        	var _t = jQuery("#"+me.gridId).getRowData(id);
        	if(_t.idTituloCnt == '')
        	{
        		$("#"+me.gridId).jqGrid('setSelection', id, false);
        	}
        },*/
        loadComplete: function(data) {
        	$( "#"+me.gridId + ' tbody  tr#1 > td').css( { 'font-weight':'bold', 'background-color':'#ffffcc' } );
        	$( "#"+me.gridId + '_frozen tbody  tr#1 > td').css( { 'font-weight':'bold', 'background-color':'#ffffcc' } );
			$( "#"+me.gridId + ' tbody  tr#1 > td').css( { 'font-weight':'bold', 'padding-left':'1px' } );
			$( "#"+me.gridId + '_frozen tbody  tr#1 > td').css( { 'font-weight':'bold', 'padding-left':'1px' } );														
        }
    });
	$("#"+me.gridId).jqGrid('setFrozenColumns');
};
