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) {
		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("Ocurri\u00F3 un error");
		}
	});
};