function TitulosService() { 	}

TitulosService.prototype.buscarCatalogoTitulos = function() {
	var _item = {};
	this.ajax("buscarCatTitulos", { } , function (ret)
						{
							_item = ret.catTitulos;
						}, function (ret)
						{
							showError(ret.error);
						});
	return _item;
};


TitulosService.prototype.buscarTitulosPorFiltro = function(item) {
	var _item = {};
	var pagoCateg;
	
	if(typeof item.pagoCateg != 'undefined') 
	   pagoCateg = item.pagoCateg.value;	
	
	this.ajax("buscarPorFiltro", { 
		"titulo.idLista"        : $("#idLista").val() ,
		"titulo.descTitulo"     : item.descTitulo,
		"titulo.fechaInicio"    : item.fechaInicio,
		"titulo.pagoCateg.desc" : pagoCateg,
		"titulo.briefcase"      : item.briefcase,
		"titulo.dto"            : item.dto,
		"titulo.dtr"            : item.dtr,
		"titulo.sd"             : item.sd,
		"titulo.hd"             : item.hd,
		"titulo.threed"         : item.threed
		
	} ,
	    function (ret) { _item = ret.titulos;  } ,
	    function (ret) { showError(ret.error); }
	);
	return _item;
};

TitulosService.prototype.descargarArchivo = function() {
	var url = contextPath +'/contrato/titulos/descarArchivoTituloAjax.action?titulo.idLista=' + $("#idLista").val();
    window.open(url);
};

TitulosService.prototype.descargarArchivoErrores = function() {
	this.ajax("buscaArchivoErrores", { 
		
	} , function (ret)
						{
							var url = contextPath +'/contrato/titulos/descarArchivoErroresTituloAjax.action';
							window.open(url);
						}, function (ret)
						{
							showError(ret.error);
						});
};


TitulosService.prototype.guardarTitulos = function(tipoCambio,item,indexes,func) {
	
	var pagoCateg;
	var pagodesc;
	if(typeof item.pagoCateg != 'undefined') {
		pagoCateg = item.pagoCateg.value;
		pagodesc = item.pagoCateg.desc;
	}
	
	
	var categoria= (typeof item.categoriaTit != 'undefined') ?  item.categoriaTit.value: "";
	
	this.ajax("guardarTitulos", { 
		"titulo.idLista" : item.idLista ,
		"titulo.idTituloCnt" : item.idTituloCnt,
		"titulo.descTitulo" : item.descTitulo,
		"titulo.fechaInicio" : item.fechaInicio,
		"titulo.fechaFin" : item.fechaFin,
		"titulo.pagoCateg.value" : pagoCateg,
		"titulo.pagoCateg.desc" : pagodesc,
		"titulo.briefcase" : item.briefcase,
		"titulo.dto" : item.dto,
		"titulo.dtr" : item.dtr,
		"titulo.sd" : item.sd,
		"titulo.hd" : item.hd,
		"titulo.threed" : item.threed,
		"idTitulos" : indexes,
		"tipoCambio" : tipoCambio,
		"titulo.nombreUnico": item.nombreUnico,
		"titulo.episodio": item.episodio,
		"titulo.categoriaTit.value": categoria,
		"titulo.precioAnual": item.precioAnual,
		"titulo.amortizacion": item.amortizacion,
		"titulo.temporada" : item.temporada
		
	} , function (ret)
						{
							func(ret);
						}, function (ret)
						{
							showError(ret.error);
						});
};

TitulosService.prototype.eliminarTitulos = function(item,func) {
	this.ajax("eliminarTitulo", { 
		"titulo.idLista" 		: item.idLista ,
		"titulo.idTituloCnt" 	: item.idTituloCnt,
		"titulo.bajaPerdida" 	: item.bajaPerdida,
		"titulo.fechaFin" 		: item.fechaFin
		
	} , function (ret)
						{
							func(ret);
						}, function (ret)
						{
							showError(ret.error);
						});
};

TitulosService.prototype.guardarCambios = function(item ) {
	this.ajax("guardarCambiosPermanente", { 
		"titulo.idLista" 		: $("#idLista").val() 
	} , function (ret)
						{
							$("#trabajandoDiv").html("");
							showMessage("Los datos se guardaron de manera correcta");
							
		
						}, function (ret)
						{
							$("#trabajandoDiv").html("");
							showError(ret.error);
						});
};

TitulosService.prototype.buscarCategoriasPago = function(item , callBack) {
	this.ajax("buscarCategoriasPago", { 
		"fechaCategoria" 		: item 
	} , function (ret)
						{
							callBack("pagoCategForm",ret.listaCatalogos);
						}, function (ret)
						{
							showError(ret.error);
						});
};


TitulosService.prototype.buscarPresupuesto = function() {
	var p = {};
	this.ajax("buscarPresupuesto", { 
		
	} , function (ret)
						{
							//showMessage("Los datos se guardaron de manera correcta");
			p= ret.presupuesto;
						}, function (ret)
						{
							showError(ret.error);
						});
	return p;
};

TitulosService.prototype.deepSet = function(obj,path, value) {
    
    var prop = path;
	if (typeof prop === "string")
		prop = prop.split(".");

	if (prop.length > 1) {
		var e = prop.shift();
		Object.assign(
				obj[e] = Object.prototype.toString.call(obj[e]) === "[object Object]" ? obj[e]
						: {}, prop, value);
	} else {
		obj[prop[0]] = value;
	}
};

TitulosService.prototype.ajax = function(method, data, success, error) {
	var namespace = "contrato/titulos";
	$.ajax({
		url : contextPath+ '/' + namespace + '/' + method + 'TitulosAjax.action',
		type : "post",
		data : data,
		async : false,
		success : function (ret)
		{
			if(ret.error == '' || ret.error == null)			
				success(ret);			
			else
				error(ret);			
		},
		error : function ()
		{
			showError("Ocurrio un error");
		}
	});
};