var columnas = "";
var COMA = ",";
var criterios = "";
var nombreColumnaReal2 = "";
/*
 * Pendiente refacotring para aplicar el mismo concepto que en Criterios para datos de mi listado.
 */
function gestionColumnasContacto(quitarUnico) {

	var personaDefCheck= document.getElementById('TN_CONTACTO_CARGO1').checked;
	var personaSelCheck= document.getElementById('TN_CONTACTO_CARGO2').checked;
	var ejecutivoCheck= document.getElementById('TN_CONTACTO_EJECUTIVO').checked;
	//pintaTraza("gestionColumnas(" + quitarUnico + "): " + personaDefCheck + " , " + personaSelCheck + " , " + ejecutivoCheck );
	if(quitarUnico){
		//if(ejecutivoCheck)reemplazaColumnas('MV_TCRITERIOS.FLG_EJECUTIVOS');
		if (personaDefCheck)reemplazaColumnas('MV_TCRITERIOS.FLG_CONTACTO');
		else reemplazaColumnas('MV_TCRITERIOS.FLG_CONTACTO');
	}else{
		if(ejecutivoCheck){
			reemplazaColumnas('MV_TCRITERIOS.FLG_CONTACTO');
		}else if(personaDefCheck){
			reemplazaColumnas('MV_TCRITERIOS.FLG_EJECUTIVOS');
		}else{
			reemplazaColumnas('MV_TCRITERIOS.FLG_EJECUTIVOS');
			reemplazaColumnas('MV_TCRITERIOS.FLG_CONTACTO');
			if (columnas == "")
				columnas = 'MV_TCRITERIOS.FLG_CONTACTO';
			else
				columnas = columnas + COMA + 'MV_TCRITERIOS.FLG_CONTACTO';
		}
	}
}
function reemplazaColumnas(nombreColumna){
	columnas = columnas.replace(COMA + nombreColumna + COMA, COMA);
	columnas = columnas.replace(nombreColumna + COMA, "");
	columnas = columnas.replace(COMA + nombreColumna, "");
	columnas = columnas.replace(nombreColumna, "");
	
}
function gestionColumnas(nombreColumna, flagchecked) {

	var oldNombreColumna = nombreColumna;
	nombreColumna = nombreColumnaReal(nombreColumna);


	if (flagchecked == true) {
		
		if (columnas == "")
			columnas = nombreColumna;
		else{
			if(nombreColumna == 'MV_TCRITERIOS.FLG_EJECUTIVOS' || nombreColumna == 'MV_TCRITERIOS.FLG_CONTACTO'){
				reemplazaColumnas('MV_TCRITERIOS.FLG_EJECUTIVOS');
				reemplazaColumnas('MV_TCRITERIOS.FLG_CONTACTO');
			}
			if(columnas.indexOf(nombreColumna)== -1)
				columnas = columnas + COMA + nombreColumna;
		}
	} else {
		/*
		 * Este es el orden en el que se debe aplicar la eliminacion de campos
		 */
		reemplazaColumnas(nombreColumna);
	}
}

function nombreColumnaReal(aliasNombreColumnas) {
	switch (aliasNombreColumnas) {
		case "cif" :
			nombreColumnaReal2 = "MV_TCRITERIOS.CIF_EMPRESA";
			break;
		case "nombre" :
			nombreColumnaReal2 = "MV_TCRITERIOS.OID_EMPRESA";
			break;
		case "direccion" :
			nombreColumnaReal2 = "MV_TCRITERIOS.PND_DOMICILIO";
			break;
		case "duns" :
			nombreColumnaReal2 = "MV_TCRITERIOS.DUNS";
			break;
		case "telefono" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_TELEFONO";
			break;
		case "fax" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_FAX";
			break;
		case "url" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_URL";
			break;
		case "persona" :
			if (document.getElementById('TN_CONTACTO_EJECUTIVO').checked == true)
				nombreColumnaReal2 = "MV_TCRITERIOS.FLG_EJECUTIVOS";
			else nombreColumnaReal2 = "MV_TCRITERIOS.FLG_CONTACTO";
			break;
		case "forma" :
			nombreColumnaReal2 = "MV_TCRITERIOS.COD_FRM_JURIDICA";
			break;
		case "actividadCNAE" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_CNAE";
			break;
		case "actividadSIC" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_SIC";
			break;
		case "numero_empleados" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_EMPLEADOS";
			break;
		case "ventas" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_VENTAS";
			break;
		case "importa_exporta" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_IMPEXP";
			break;
		case "fecha_constitucion" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_CONSTITUCION";
			break;
		case "capital_social" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_CAPITAL_SOCIAL";
			break;
		case "capital_extranjero" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_CAPITAL_EXTRANJERO";
			break;
		case "vinculacion" :
			nombreColumnaReal2 = "MV_TCRITERIOS.COD_VINCULACION";
			break;
		case "solvencia" :
			nombreColumnaReal2 = "MV_TCRITERIOS.COD_NOTA";
			break;
		case "resultado" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_RESULTADO";
			break;
		case "ultimo" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_EJEBORME";
			break;
		case "opinion" :
			nombreColumnaReal2 = "MV_TCRITERIOS.VAL_OPINION_CREDITO";
			break;
		case "rentabilidad" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_RENTABILIDAD";
			break;
		case "tesoreria" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_TESORERIA";
			break;
		case "tituloAdmin" :
			nombreColumnaReal2 = "MV_TCRITERIOS.FLG_CONTACTO_SELECT";
			break;
		/*
		 * case "ejecutivos": nombreColumnaReal2 = "MV_TCRITERIOS.FLG_EJECUTIVOS";
		 */
	}
	return nombreColumnaReal2;
}

/*
 * ********************************* Criterios para "Datos de contacto" *********************************
 */

var criteriosDatosDeContacto_EQUAL_1 = "EQUAL 1";
var criteriosDatosDeContacto_SPACE = " ";
var criteriosDatosDeContacto_AND = "AND";

function gestionaCriteriosDatosDeContacto() {
	var criteriosDatosDeContacto = "";

	if (istarjetaMailing() == true) {
		var obliga_cif = document.getElementById('obliga_cif');	
		var obliga_telefono = document.getElementById('obliga_telefono');
		var obliga_url = document.getElementById('obliga_url');
		var obliga_fax = document.getElementById('obliga_fax');
		var obliga_persona = document.getElementById('obliga_persona');

		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_cif, "cif", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_telefono, "telefono", criteriosDatosDeContacto);
		criteriosDatosDeContacto = indiceCalidadTelefono(obliga_telefono, criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_url, "url", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_fax, "fax", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_persona, "persona", criteriosDatosDeContacto);

		return criteriosDatosDeContacto;
	}

	if (istarjetaTelemarketing() == true) {
		var obliga_cif = document.getElementById('obliga_cif');	
		var obliga_url = document.getElementById('obliga_url');

		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_cif, "cif", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_url, "url", criteriosDatosDeContacto);

		return criteriosDatosDeContacto;
	}
	if (istarjetaFaxing() == true) {
		// "cif","telefono","url","direccion","persona"
		var obliga_cif = document.getElementById('obliga_cif');
		var obliga_telefono = document.getElementById('obliga_telefono');
		var obliga_url = document.getElementById('obliga_url');
		var obliga_direccion_completa = document.getElementById('obliga_direccion');
		var obliga_persona = document.getElementById('obliga_persona');

		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_cif, "cif", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_telefono, "telefono", criteriosDatosDeContacto);
		criteriosDatosDeContacto = indiceCalidadTelefono(obliga_telefono, criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_url, "url", criteriosDatosDeContacto);
		//criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_direccion_completa, "direccion", criteriosDatosDeContacto);
		criteriosDatosDeContacto = indiceCalidadDireccionCompleta(obliga_direccion_completa, criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_persona, "persona", criteriosDatosDeContacto);

		return criteriosDatosDeContacto;
	}
	if (istarjetaProspeccionComercial() == true) {
		var obliga_telefono = document.getElementById('obliga_telefono');
		var obliga_fax = document.getElementById('obliga_fax');
		var obliga_url = document.getElementById('obliga_url');
		var obliga_cif = document.getElementById('obliga_cif');

		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_cif, "cif", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_telefono, "telefono", criteriosDatosDeContacto);
		criteriosDatosDeContacto = indiceCalidadTelefono(obliga_telefono, criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_fax, "fax", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_url, "url", criteriosDatosDeContacto);

		return criteriosDatosDeContacto;
	}
	if (istarjetaEmpresasRecienteCreacion() == true) {
		// "cif","nombre","direccion","telefono","fax","url","persona"
		var obliga_telefono = document.getElementById('obliga_telefono');
		var obliga_fax = document.getElementById('obliga_fax');
		var obliga_url = document.getElementById('obliga_url');
		var obliga_persona = document.getElementById('obliga_persona');
		var obliga_cif = document.getElementById('obliga_cif');

		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_cif, "cif", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_telefono, "telefono", criteriosDatosDeContacto);
		criteriosDatosDeContacto = indiceCalidadTelefono(obliga_telefono, criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_fax, "fax", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_url, "url", criteriosDatosDeContacto);
		criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_persona, "persona", criteriosDatosDeContacto);

		return criteriosDatosDeContacto;
	}
	if(istarjetaCESCE()==true){
		return criteriosDatosDeContacto;
	}
	// Para el resto de casos es el comportamiento por defecto.

	var obliga_cif = document.getElementById('obliga_cif');
	//var obliga_nombre = document.getElementById('obliga_nombre');
	
	var obliga_direccion_completa = document.getElementById('obliga_direccion');
	var obliga_telefono = document.getElementById('obliga_telefono');
	var obliga_fax = document.getElementById('obliga_fax');
	var obliga_url = document.getElementById('obliga_url');
	var obliga_persona = document.getElementById('obliga_persona');
	
	criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_cif, "cif", criteriosDatosDeContacto);
	//criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_nombre, "nombre", criteriosDatosDeContacto);
	//criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_direccion_completa, "direccion", criteriosDatosDeContacto);
	criteriosDatosDeContacto = indiceCalidadDireccionCompleta(obliga_direccion_completa, criteriosDatosDeContacto);
	criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_telefono, "telefono", criteriosDatosDeContacto);
	criteriosDatosDeContacto = indiceCalidadTelefono(obliga_telefono, criteriosDatosDeContacto);
	criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_fax, "fax", criteriosDatosDeContacto);
	criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_url, "url", criteriosDatosDeContacto);
	criteriosDatosDeContacto = getCriterioDatoDeContacto(obliga_persona, "persona", criteriosDatosDeContacto);
	
	return criteriosDatosDeContacto;
}

function getCriterioDatoDeContacto(radio, nombre, criterios) {
	if (nombre == 'persona') {
		var obliga_cargo = document.getElementById('obliga_cargo');
		var obliga_ejecutivo = document.getElementById('obliga_ejecutivo');
		if ((obliga_cargo.checked == true) || (obliga_ejecutivo.checked == true) || (radio.checked == true)) {
			if (criterios == "")
				criterios = nombreColumnaReal(nombre) + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_EQUAL_1;
			else
				criterios = criterios + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_AND + criteriosDatosComerciales_SPACE + nombreColumnaReal(nombre) + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_EQUAL_1;
		}
	} else {
		if (radio.checked == true) {
			if (criterios == "")
				criterios = nombreColumnaReal(nombre) + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_EQUAL_1;
			else
				criterios = criterios + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_AND + criteriosDatosComerciales_SPACE + nombreColumnaReal(nombre) + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_EQUAL_1;
		}
	}
	// if(criterios == "MV_TCRITERIOS.FLG_EJECUTIVOS EQUAL 1") criterios = "MV_TCRITERIOS.FLG_CONTACTO EQUAL 1";

	return criterios;
}

function indiceCalidadTelefono(radio, criterios) {
	if (radio.checked == true) {
		if (criterios == "")
			criterios = "MV_TCRITERIOS.PND_TELEFONO GREATER_EQUAL 2";
		else
			criterios = criterios + " AND MV_TCRITERIOS.PND_TELEFONO GREATER_EQUAL 2";
	}
	return criterios;
}
function indiceCalidadDireccionCompleta(radio, criterios) {
	if (radio.checked == true) {
		if (criterios == "")
			criterios = "MV_TCRITERIOS.PND_DOMICILIO GREATER_EQUAL 4";
		else
			criterios = criterios + " AND MV_TCRITERIOS.PND_DOMICILIO GREATER_EQUAL 4";
	}
	return criterios;
}

function construyeCriterioAdmin() {
	var valores_admin = "";
	var tiene_dato = 0;
	var contador = "";
	for (var cada in arrayAdmin) {
		if (arrayAdmin[cada] != '' && arrayAdmin[cada] != 'undefined') {
			var nombre = arrayAdmin[cada].split("#");
			if (nombre[1] != '' && nombre[1] != 'undefined' && nombre[1] != null && nombre[1] != 'null' && nombre[1] != undefined) {
				valores_admin += nombre[1] + ",";
				tiene_dato = 1;
				contador += (contador + 3);
			}
		}
	}

	//reemplazaColumnas('MV_TCRITERIOS.FLG_CONTACTO_SELECT');
	var largo = valores_admin.length;
	//GALAN: si hayque cambiar por 'MV_TCRITERIOS.FLG_CONTACTO_SELECT', hacerlo solo aqui
	if (tiene_dato > 0) {
		criterioAdmin = "MV_TCRITERIOS.FLG_CONTACTO_SELECT#";
		var resto_sin_coma = valores_admin.substring(0, (largo) - 1); // le quito la ultima coma y le pongo #
		criterioAdmin += resto_sin_coma + '#';
	} else
		criterioAdmin = "";

		//columnas = columnas.replace(criterioAdmin,'MV_TCRITERIOS.FLG_CONTACTO_SELECT');

	return criterioAdmin;
}
/*
 * ********************************* Criterios para "Datos Comerciales" *********************************
 */

var criteriosDatosComerciales_EQUAL_1 = "EQUAL 1";
var criteriosDatosComerciales_SPACE = " ";
var criteriosDatosComerciales_AND = "AND";

/*
 * Segun la documentacion los criterios para datos comerciales son: MV_TCRITERIOS.FLG_CNAE EQUAL 1 AND MV_TCRITERIOS.FLG_EMPLEADOS EQUAL 1 AND MV_TCRITERIOS.FLG_VENTAS EQUAL 1 AND MV_TCRITERIOS.FLG_IMPEXP EQUAL 1 AND MV_TCRITERIOS.FLG_CONSTITUCION EQUAL 1 AND MV_TCRITERIOS.FLG_CAPITAL_SOCIAL EQUAL 1 AND MV_TCRITERIOS.FLG_CAPITAL_EXTRANJERO EQUAL 1
 */
function gestionaCriteriosDatosComerciales() {
	var criteriosDatosComerciales = "";

	if (istarjetaTelemarketing() == true) {
		/* ESTA OBLIGACION NO ES NECESARIA PORQUE SIEMPRE TENEMOS VALOR */	
		//var obliga_forma = document.getElementById('obliga_forma');
		var obliga_actividadCNAE = document.getElementById('obliga_actividadCNAE');
		var obliga_actividadSIC = document.getElementById('obliga_actividadSIC');
		var obliga_numero_empleados = document.getElementById('obliga_numero_empleados');
		var obliga_ventas = document.getElementById('obliga_ventas');
		var obliga_importa_exporta = document.getElementById('obliga_importa_exporta');
		var obliga_fecha_constitucion = document.getElementById('obliga_fecha_constitucion');
		var obliga_capital_social = document.getElementById('obliga_capital_social');
		var obliga_capital_extranjero = document.getElementById('obliga_capital_extranjero');
		var obliga_vinculacion = document.getElementById('obliga_vinculacion');

		//criteriosDatosComerciales = getCriterioDatoComercial(obliga_forma, "forma", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadCNAE, "actividadCNAE", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadSIC, "actividadSIC", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_numero_empleados, "numero_empleados", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_importa_exporta, "importa_exporta", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_ventas, "ventas", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_fecha_constitucion, "fecha_constitucion", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_social, "capital_social", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_extranjero, "capital_extranjero", criteriosDatosComerciales);
		//criteriosDatosComerciales = getCriterioDatoComercial(obliga_vinculacion, "vinculacion", criteriosDatosComerciales);

		return criteriosDatosComerciales;
	}
	if (istarjetaFaxing() == true) {
		/* ESTA OBLIGACION NO ES NECESARIA PORQUE SIEMPRE TENEMOS VALOR */	
		//var obliga_forma = document.getElementById('obliga_forma');
		var obliga_actividadCNAE = document.getElementById('obliga_actividadCNAE');
		var obliga_actividadSIC = document.getElementById('obliga_actividadSIC');
		var obliga_numero_empleados = document.getElementById('obliga_numero_empleados');
		var obliga_ventas = document.getElementById('obliga_ventas');
		var obliga_importa_exporta = document.getElementById('obliga_importa_exporta');
		var obliga_fecha_constitucion = document.getElementById('obliga_fecha_constitucion');
		var obliga_capital_social = document.getElementById('obliga_capital_social');
		var obliga_capital_extranjero = document.getElementById('obliga_capital_extranjero');
		var obliga_vinculacion = document.getElementById('obliga_vinculacion');

		//criteriosDatosComerciales = getCriterioDatoComercial(obliga_forma, "forma", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadCNAE, "actividadCNAE", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadSIC, "actividadSIC", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_numero_empleados, "numero_empleados", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_importa_exporta, "importa_exporta", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_ventas, "ventas", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_fecha_constitucion, "fecha_constitucion", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_social, "capital_social", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_extranjero, "capital_extranjero", criteriosDatosComerciales);
		//criteriosDatosComerciales = getCriterioDatoComercial(obliga_vinculacion, "vinculacion", criteriosDatosComerciales);

		return criteriosDatosComerciales;
	}
	if (istarjetaProspeccionComercial() == true) {
		var obliga_actividadCNAE = document.getElementById('obliga_actividadCNAE');
		var obliga_actividadSIC = document.getElementById('obliga_actividadSIC');
		var obliga_importa_exporta = document.getElementById('obliga_importa_exporta');
		var obliga_fecha_constitucion = document.getElementById('obliga_fecha_constitucion');
		var obliga_capital_social = document.getElementById('obliga_capital_social');
		var obliga_capital_extranjero = document.getElementById('obliga_capital_extranjero');

		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadCNAE, "actividadCNAE", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadSIC, "actividadSIC", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_importa_exporta, "importa_exporta", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_fecha_constitucion, "fecha_constitucion", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_social, "capital_social", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_extranjero, "capital_extranjero", criteriosDatosComerciales);

		return criteriosDatosComerciales;
	}
	if (istarjetaEmpresasRecienteCreacion() == true) {
		var obliga_actividadCNAE = document.getElementById('obliga_actividadCNAE');
		var obliga_actividadSIC = document.getElementById('obliga_actividadSIC');
		var obliga_fecha_constitucion = document.getElementById('obliga_fecha_constitucion');
		var obliga_capital_social = document.getElementById('obliga_capital_social');

		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadCNAE, "actividadCNAE", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadSIC, "actividadSIC", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_fecha_constitucion, "fecha_constitucion", criteriosDatosComerciales);
		criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_social, "capital_social", criteriosDatosComerciales);

		return criteriosDatosComerciales;
	}
	if(istarjetaCESCE()==true){
		return criteriosDatosComerciales;
	}
	// Comportamiento por defecto para el resto de tarjetas.

	/* ESTA OBLIGACION NO ES NECESARIA PORQUE SIEMPRE TENEMOS VALOR */
	//var obliga_forma = document.getElementById('obliga_forma');
	var obliga_actividadCNAE = document.getElementById('obliga_actividadCNAE');
	var obliga_actividadSIC = document.getElementById('obliga_actividadSIC');
	var obliga_numero_empleados = document.getElementById('obliga_numero_empleados');
	var obliga_ventas = document.getElementById('obliga_ventas');
	var obliga_importa_exporta = document.getElementById('obliga_importa_exporta');
	var obliga_fecha_constitucion = document.getElementById('obliga_fecha_constitucion');
	var obliga_capital_social = document.getElementById('obliga_capital_social');
	var obliga_capital_extranjero = document.getElementById('obliga_capital_extranjero');
	var obliga_vinculacion = document.getElementById('obliga_vinculacion');

	//criteriosDatosComerciales = getCriterioDatoComercial(obliga_forma, "forma", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadCNAE, "actividadCNAE", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_actividadSIC, "actividadSIC", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_numero_empleados, "numero_empleados", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_importa_exporta, "importa_exporta", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_ventas, "ventas", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_fecha_constitucion, "fecha_constitucion", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_social, "capital_social", criteriosDatosComerciales);
	criteriosDatosComerciales = getCriterioDatoComercial(obliga_capital_extranjero, "capital_extranjero", criteriosDatosComerciales);
	//criteriosDatosComerciales = getCriterioDatoComercial(obliga_vinculacion, "vinculacion", criteriosDatosComerciales);

	return criteriosDatosComerciales;
}
function getCriterioDatoComercial(radio, nombre, criterios) {
	if (radio.checked == true) {
		if (criterios == "")
			criterios = nombreColumnaReal(nombre) + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_EQUAL_1;
		else
			criterios = criterios + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_AND + criteriosDatosComerciales_SPACE + nombreColumnaReal(nombre) + criteriosDatosComerciales_SPACE + criteriosDatosComerciales_EQUAL_1;
	}
	return criterios;
}

/*
 * **************************** Criterios para "Datos Riesgo" ****************************
 */

var criteriosDatosRiesgo_EQUAL_1 = "EQUAL 1";
var criteriosDatosRiesgo_SPACE = " ";
var criteriosDatosRiesgo_AND = "AND";

/*
 * Segun la documentacion los criterios para datos de riesgo son: MV_TCRITERIOS.FLG_RESULTADO EQUAL 1 AND MV_TCRITERIOS.FLG_EJEBORME EQUAL 1
 */
function gestionacriteriosDatosRiesgo() {
	var criteriosDatosRiesgo = "";

	/*
	 * "solvencia","resultado","ultimo","opinion","rentabilidad","tesoreria"
	 * 
	 * tarjetaTelemarketing_DatosComerciales = new Array( "solvencia","resultado","ultimo","opinion","rentabilidad","tesoreria" ); tarjetaFaxing_DatosComerciales = new Array( "solvencia","resultado","ultimo","opinion","rentabilidad","tesoreria" ); tarjetaProspeccionComercial_DatosComerciales = new Array( "solvencia","resultado","ultimo","opinion" ); tarjetaEmpresasRecienteCreacion_DatosComerciales = null;
	 */

	if (istarjetaTelemarketing() == true) {
		// "solvencia","resultado","ultimo","opinion","rentabilidad","tesoreria"
		/* ESTA OBLIGACION NO ES NECESARIA PORQUE SIEMPRE TENEMOS VALOR */		
		//var obliga_solvencia = document.getElementById('obliga_solvencia');
		var obliga_resultado = document.getElementById('obliga_resultado');
		var obliga_ultimo = document.getElementById('obliga_ultimo');
		var obliga_opinion = document.getElementById('obliga_opinion');
		var obliga_rentabilidad = document.getElementById('obliga_rentabilidad');
		var obliga_tesoreria = document.getElementById('obliga_tesoreria');

		//criteriosDatosRiesgo = getCriterioDatoComercial(obliga_solvencia, "solvencia", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_resultado, "resultado", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_ultimo, "ultimo", criteriosDatosRiesgo);
		//criteriosDatosRiesgo = getCriterioDatoComercial(obliga_opinion, "opinion", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_rentabilidad, "rentabilidad", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_tesoreria, "tesoreria", criteriosDatosRiesgo);

		return criteriosDatosRiesgo;
	}
	if (istarjetaFaxing() == true) {
		/* ESTA OBLIGACION NO ES NECESARIA PORQUE SIEMPRE TENEMOS VALOR */	
		//var obliga_solvencia = document.getElementById('obliga_solvencia');
		var obliga_resultado = document.getElementById('obliga_resultado');
		var obliga_ultimo = document.getElementById('obliga_ultimo');
		var obliga_opinion = document.getElementById('obliga_opinion');
		var obliga_rentabilidad = document.getElementById('obliga_rentabilidad');
		var obliga_tesoreria = document.getElementById('obliga_tesoreria');

		//criteriosDatosRiesgo = getCriterioDatoComercial(obliga_solvencia, "solvencia", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_resultado, "resultado", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_ultimo, "ultimo", criteriosDatosRiesgo);
		//criteriosDatosRiesgo = getCriterioDatoComercial(obliga_opinion, "opinion", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_rentabilidad, "rentabilidad", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_tesoreria, "tesoreria", criteriosDatosRiesgo);
		
		return criteriosDatosRiesgo;
	}
	if (istarjetaProspeccionComercial() == true) {
		var obliga_resultado = document.getElementById('obliga_resultado');
		var obliga_ultimo = document.getElementById('obliga_ultimo');
		var obliga_rentabilidad = document.getElementById('obliga_rentabilidad');
		var obliga_tesoreria = document.getElementById('obliga_tesoreria');

		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_resultado, "resultado", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_ultimo, "ultimo", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_rentabilidad, "rentabilidad", criteriosDatosRiesgo);
		criteriosDatosRiesgo = getCriterioDatoComercial(obliga_tesoreria, "tesoreria", criteriosDatosRiesgo);
		return criteriosDatosRiesgo;
	}
	if (istarjetaEmpresasRecienteCreacion() == true)
		return criteriosDatosRiesgo;
	
	if(istarjetaCESCE()==true){
		return criteriosDatosRiesgo;
	}
	// Comportamiento por defecto para el resto de tarjetas
	/* ESTA OBLIGACION NO ES NECESARIA PORQUE SIEMPRE TENEMOS VALOR */	
	//var obliga_solvencia = document.getElementById('obliga_solvencia');
	var obliga_resultado = document.getElementById('obliga_resultado');
	var obliga_ultimo = document.getElementById('obliga_ultimo');
	var obliga_opinion = document.getElementById('obliga_opinion');
	var obliga_rentabilidad = document.getElementById('obliga_rentabilidad');
	var obliga_tesoreria = document.getElementById('obliga_tesoreria');

	//criteriosDatosRiesgo = getCriterioDatoComercial(obliga_solvencia, "solvencia", criteriosDatosRiesgo);
	criteriosDatosRiesgo = getCriterioDatoComercial(obliga_resultado, "resultado", criteriosDatosRiesgo);
	criteriosDatosRiesgo = getCriterioDatoComercial(obliga_ultimo, "ultimo", criteriosDatosRiesgo);
	//criteriosDatosRiesgo = getCriterioDatoComercial(obliga_opinion, "opinion", criteriosDatosRiesgo);
	criteriosDatosRiesgo = getCriterioDatoComercial(obliga_rentabilidad, "rentabilidad", criteriosDatosRiesgo);
	criteriosDatosRiesgo = getCriterioDatoComercial(obliga_tesoreria, "tesoreria", criteriosDatosRiesgo);

	return criteriosDatosRiesgo;
}
function getCriterioDatoComercial(radio, nombre, criterios) {
	if (radio.checked == true) {
		if (criterios == "")
			criterios = nombreColumnaReal(nombre) + criteriosDatosRiesgo_SPACE + criteriosDatosRiesgo_EQUAL_1;
		else
			criterios = criterios + criteriosDatosRiesgo_SPACE + criteriosDatosRiesgo_AND + criteriosDatosRiesgo_SPACE + nombreColumnaReal(nombre) + criteriosDatosRiesgo_SPACE + criteriosDatosRiesgo_EQUAL_1;
	}
	return criterios;
}

/*
 * ************************************************************* Devuelve los criterios de los datos de mi listado, incluyendo: Datos de contacto Datos comerciales Datos de reisgo *************************************************************
 */
var datosDeMiListado_SPACE = " ";
var datosDeMiListado_AND = "AND";
var datosDeMiListado_ABRE = "(";
var datosDeMiListado_CIERRA = ")";

function generaCriteriosDatosDeMiListado() {
	var criterios = "";
	var criteriosDatosContacto = gestionaCriteriosDatosDeContacto();
	var criteriosDatosComerciales = gestionaCriteriosDatosComerciales();
	var criteriosDatosRiesgo = gestionacriteriosDatosRiesgo();
	
	if (criteriosDatosContacto != "") {
		criterios = datosDeMiListado_ABRE + datosDeMiListado_SPACE + criteriosDatosContacto + datosDeMiListado_SPACE + datosDeMiListado_CIERRA;
	}
	if (criteriosDatosComerciales != "") {
		if (criterios == "")
			criterios = datosDeMiListado_ABRE + datosDeMiListado_SPACE + criteriosDatosComerciales + datosDeMiListado_SPACE + datosDeMiListado_CIERRA;
		else
			criterios = criterios + datosDeMiListado_SPACE + datosDeMiListado_AND + datosDeMiListado_SPACE + datosDeMiListado_ABRE + datosDeMiListado_SPACE + criteriosDatosComerciales + datosDeMiListado_SPACE + datosDeMiListado_CIERRA;
	}
	if (criteriosDatosRiesgo != "") {
		if (criterios == "")
			criterios = datosDeMiListado_ABRE + datosDeMiListado_SPACE + criteriosDatosRiesgo + datosDeMiListado_SPACE + datosDeMiListado_CIERRA;
		else
			criterios = criterios + datosDeMiListado_SPACE + datosDeMiListado_AND + datosDeMiListado_SPACE + datosDeMiListado_ABRE + datosDeMiListado_SPACE + criteriosDatosRiesgo + datosDeMiListado_SPACE + datosDeMiListado_CIERRA;
	}
	return criterios;
}

/*
 * ******************** ********************
 * 
 * Criterios Geograficos
 * 
 * ******************** ********************
 */
var longitud_array_provincias = 0;
var arrayProvincias = new Array(longitud_array_provincias);

var arrayLocalidades = new Array(0);

var longitud_array_comunidades = 0;
var arrayComunidades = new Array(longitud_array_comunidades);

var longitud_array_codigo_postal = 0;
var arrayCodigoPostal = new Array(longitud_array_codigo_postal);

var CONSTANTS_PROVINCIA = "provincia";
var CONSTANTS_COMUNIDAD = "comunidad";
var CONSTANTS_CODIGO_POSTAL = "código";

function gestionCriteriosGeograficos(dato) {

	if (CONSTANTS_PROVINCIA == dato) {
		var arraySelect = document.getElementsByName(dato);
		var codigo = arraySelect[1].value;
		if (codigo != "000")
			addProvincia(codigo);
	} else if (CONSTANTS_COMUNIDAD == dato) {
		var arraySelect = document.getElementsByName(dato);
		var codigo = arraySelect[0].value;
		if (codigo != "00")
			addComunidad(codigo);
	} else // ( CONSTANTS_CODIGO_POSTAL == dato )
	{
		/*
		 * En las plantillas de gripho, el codigo postal se trata de diferente manera.
		 */
		addCodigoPostal(dato);
	}
}

function addCodigoPostal(codigo) {
	if (contains(arrayCodigoPostal, codigo) == false)
		arrayCodigoPostal = add(arrayCodigoPostal, codigo);
}
function addComunidad(codigoComunidad) {
	if (contains(arrayComunidades, codigoComunidad) == false)
		arrayComunidades = add(arrayComunidades, codigoComunidad);
}
function addProvincia(codigoProvincia) {
	if (contains(arrayProvincias, codigoProvincia) == false)
		arrayProvincias = add(arrayProvincias, codigoProvincia);
}
function addLocalidad(codigoLocalidad) {
	if (contains(arrayLocalidades, codigoLocalidad) == false) {
		// se corrije el codigo para que sea de 5 digitos
		// if (codigoLocalidad < 10000) codigoLocalidad = "0" + codigoLocalidad;
		arrayLocalidades = add(arrayLocalidades, codigoLocalidad);
	}
}

function delCodigoPostal(codigo) {
	arrayCodigoPostal = del(arrayCodigoPostal, codigo);
}
function delComunidad(codigo) {
	arrayComunidades = del(arrayComunidades, codigo);
}
function delProvincia(codigoProvincia) {
	arrayProvincias = del(arrayProvincias, codigoProvincia);
}
function delLocalidad(codigoLocalidad) {
	arrayLocalidades = del(arrayLocalidades, codigoLocalidad);
}
/*
 * Metodo para debug. Muestra las provincias
 */
function verProvincias() {
	alert('Provincias:' + getContenidoArray(arrayProvincias));
}
/*
 * Metodo para debug. Muestra las comunidades
 */
function verComunidades() {
	alert('Comunidades:' + getContenidoArray(arrayComunidades));
}
function verCodigosPostales() {
	alert('Codigo Postales:' + getContenidoArray(arrayCodigoPostal));
}
function verLocalidades() {
	alert('Localidades:' + getContenidoArray(arrayLocalidades));
}
function verCNAE() {
	alert('CNAEs:' + getContenidoArray(arrayCNAE));
}
function verSIC() {
	alert('SICs:' + getContenidoArray(arraySIC));
}
function getContenidoArray(array) {
	var contenido = "";
	for (var count = 0; count < array.length; count++) {
		contenido = contenido + " '" + array[count] + "'";
	}
	contenido = array.length + ":" + contenido;
	return contenido;
}

var criteriosGeograficos_OR = "OR";
var criteriosGeograficos_EQUAL = "EQUAL";
var criteriosGeograficos_SPACE = " ";
var criteriosGeograficos_ABRE = "(";
var criteriosGeograficoso_CIERRA = ")";

function getCriteriosGeograficos() {
	var criterios = "";
	var criteriosComunidadesAutonomas = construyeCriterio(arrayComunidades, "MV_TCRITERIOS.COD_AUTONOMIA", criteriosGeograficos_EQUAL, criteriosGeograficos_OR);
	var criteriosProvincias = construyeCriterio(arrayProvincias, "MV_TCRITERIOS.COD_PROVINCIA", criteriosGeograficos_EQUAL, criteriosGeograficos_OR);
	var criteriosCodigoPostales = construyeCriterio(arrayCodigoPostal, "MV_TCRITERIOS.COD_POSTAL", criteriosGeograficos_EQUAL, criteriosGeograficos_OR);
	var criteriosLocalidades = construyeCriterio(arrayLocalidades, "MV_TCRITERIOS.COD_INE_MUNICIPIO", criteriosGeograficos_EQUAL, criteriosGeograficos_OR);

	if (criteriosComunidadesAutonomas != "")
		criterios = criteriosComunidadesAutonomas;
	if (criteriosProvincias != "") {
		if (criterios == "")
			criterios = criteriosProvincias;
		else
			criterios = criterios + criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE + criteriosProvincias;
	}
	if (criteriosCodigoPostales != "") {
		if (criterios == "")
			criterios = criteriosCodigoPostales;
		else
			criterios = criterios + criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE + criteriosCodigoPostales;
	}
	if (criteriosLocalidades != "") {
		if (criterios == "")
			criterios = criteriosLocalidades;
		else
			criterios = criterios + criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE + criteriosLocalidades;
	}
	if (criterios != "")
		criterios = criteriosGeograficos_ABRE + criteriosGeograficos_SPACE + criterios + criteriosGeograficos_SPACE + criteriosGeograficoso_CIERRA;

	return criterios;

}
function calculaSeparadorCriteriosGeograficos(criteriosGeograficos) {
	var separador = "";
	if (criteriosGeograficos != "")
		separador = criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE;
	return separador;
}

function addAdmin(valor) {
	if (contains(arrayAdmin, valor) == false) {
		arrayAdmin = add(arrayAdmin, valor);
		return true;
	}
	return false;
}

/**
 * genera la parte de las condiciones del CIF. condicion : IN o NOT_IN
 */

function construyeCriterioCIFIn() {
	var criterioCif = "";
	if (arrayCIFIn.length != 0) {
		criterioCif = "MV_TCRITERIOS.CIF_EMPRESA " + "IN" + " ";
		for (var i = 0; i < arrayCIFIn.length; i++) {
			criterioCif += "0" + arrayCIFIn[i];
			if (i != arrayCIFIn.length - 1) {
				criterioCif += ",";
			}
		}
	}
	return criterioCif;
}

function construyeCriterioCIFOut() {
	var criterioCif = "";
	if (arrayCIFOut.length != 0) {
		criterioCif = "MV_TCRITERIOS.CIF_EMPRESA " + "NOT_IN" + " ";
		for (var i = 0; i < arrayCIFOut.length; i++) {
			criterioCif += "0" + arrayCIFOut[i];
			if (i != arrayCIFOut.length - 1) {
				criterioCif += ",";
			}
		}
	}
	return criterioCif;
}

function construyeCriterioCNAESIC(array, columna, operador_aritmetico, operador_logico) {
	var criterios = "";
	for (var count = 0; count < array.length; count++) {
		var value = array[count];
		if (criterios == "")
			criterios = columna + criteriosGeograficos_SPACE + operador_aritmetico + criteriosGeograficos_SPACE + value + "%";
		else
			criterios = criterios + criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE + columna + criteriosGeograficos_SPACE + operador_aritmetico + criteriosGeograficos_SPACE + value + "%";
	}
	return criterios;
}
function construyeCriterio(array, columna, operador_aritmetico, operador_logico) {
	var criterios = "";
	for (var count = 0; count < array.length; count++) {
		var value = array[count];
		if (criterios == "")
			criterios = columna + criteriosGeograficos_SPACE + operador_aritmetico + criteriosGeograficos_SPACE + value;
		else
			criterios = criterios + criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE + columna + criteriosGeograficos_SPACE + operador_aritmetico + criteriosGeograficos_SPACE + value;
	}
	return criterios;
}
function getParteSelect() {
	return ordenarColumnas(columnas.split(',')); // columnas;
}

function ordenarColumnas(origen) {
	var aux;

	/*if (origen.length > 0) {
		for (var e = 0; e < origen.length; e++) {
			if (origen[e] == "MV_TCRITERIOS.FLG_EJECUTIVOS" && nombreColumnaReal2 == "MV_TCRITERIOS.FLG_CONTACTO") {
				gestionColumnas(nombreColumnaReal2);
				origen[e] = nombreColumnaReal2;
			}
			if (origen[e] == "MV_TCRITERIOS.FLG_CONTACTO" && nombreColumnaReal2 == "MV_TCRITERIOS.FLG_EJECUTIVOS") {
				// gestionColumnas(origen[e],false);
				gestionColumnas(nombreColumnaReal2);
				origen[e] = nombreColumnaReal2;
			}
			// if(origen[e]!=nombreColumnaReal2 && (origen[e]=="MV_TCRITERIOS.FLG_EJECUTIVOS" || origen[e] == "MV_TCRITERIOS.FLG_CONTACTO")) gestionColumnas(origen[e],false); //columnas = nombreColumnaReal2;
		}
	}
	if (origen == 'MV_TCRITERIOS.FLG_CONTACTO' || origen == 'MV_TCRITERIOS.FLG_EJECUTIVOS') {
		// if(origen != nombreColumnaReal2)
		gestionColumnas(origen, true);// columnas = nombreColumnaReal2;
	}*/

	for (var i = origen.length - 1; i > 0; i--) {
		for (var j = 0; j < i; j++) {
			if (peso(origen[j]) > peso(origen[j + 1])) {
				aux = origen[j];
				origen[j] = origen[j + 1];
				origen[j + 1] = aux;
				//alert(origen + "--" + aux);
			}
		}

	}
	return origen;
}
function peso(codigoColumna) {
	if (codigoColumna == "MV_TCRITERIOS.CIF_EMPRESA") {
		return 1;
	} else if (codigoColumna == "MV_TCRITERIOS.OID_EMPRESA") {
		return 2;
	} else if (codigoColumna == "MV_TCRITERIOS.PND_DOMICILIO") {
		return 3;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_TELEFONO") {
		return 4;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_FAX") {
		return 5;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_URL") {
		return 6;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_CONTACTO") {
		return 7;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_EJECUTIVOS") {
		return 7;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_CONTACTO_SELECT") {
		return 7;
	} else if (codigoColumna == "MV_TCRITERIOS.COD_FRM_JURIDICA") {
		return 8;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_CNAE") {
		return 9;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_SIC") {
		return 9;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_EMPLEADOS") {
		return 10;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_VENTAS") {
		return 11;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_IMPEXP") {
		return 12;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_CONSTITUCION") {
		return 13;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_CAPITAL_SOCIAL") {
		return 14;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_CAPITAL_EXTRANJERO") {
		return 15;
	} else if (codigoColumna == "MV_TCRITERIOS.COD_VINCULACION") {
		return 16;
	} else if (codigoColumna == "MV_TCRITERIOS.COD_NOTA") {
		return 17;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_RESULTADO") {
		return 18;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_EJEBORME") {
		return 19;
	} else if (codigoColumna == "MV_TCRITERIOS.VAL_OPINION_CREDITO") {
		return 20;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_RENTABILIDAD") {
		return 21;
	} else if (codigoColumna == "MV_TCRITERIOS.FLG_TESORERIA") {
		return 22;
	}
	return 100;
}

function borraCriterioGeografico(concepto, value, nombre) {
	if (concepto == "MV_TCRITERIOS.COD_AUTONOMIA")
		delComunidad(nombre);
	if (concepto == "MV_TCRITERIOS.COD_PROVINCIA")
		delProvincia(nombre);
	if (concepto == "MV_TCRITERIOS.COD_POSTAL")
		delCodigoPostal(nombre);
	if (concepto == "MV_TCRITERIOS.COD_INE_MUNICIPIO")
		delLocalidad(nombre);
}

/*
 * ******************** ********************
 * 
 * Criterios Comerciales
 * 
 * ******************** ********************
 */

var arrayCNAE = new Array(0);
var arrayCIFOut = new Array(0);
var arrayCIFIn = new Array(0);
var arraySIC = new Array(0);
var arrayAdmin = new Array(0);

var tamanoVentas = null;
var tamanoEmpleados = null;
var tamanoAntiguedad = null;
var formaJuridica = null;
var vinculaciones = null;
var importanExportan = null;
var capitalExtranjero = null;
var resultados = null;
/* tama?o ventas */

function addCNAE(codigo) {
	if (contains(arrayCNAE, codigo) == false) {
		arrayCNAE = add(arrayCNAE, codigo);
	}
}
function iniArrayCIFIn() {
	delete arrayCIFIn;
	var arrayCIFInAux = new Array(0);
	arrayCIFIn = arrayCIFInAux;
}
function addCIFIn(valorCIF) {
	if ((contains(arrayCIFIn, valorCIF) == false) && (contains(arrayCIFOut, valorCIF) == false)) {
		arrayCIFIn = add(arrayCIFIn, valorCIF);
		return true;
	}
	return false;
}
function iniArrayCIFOut() {
	delete arrayCIFOut;
	var arrayCIFOutAux = new Array(0);
	arrayCIFOut = arrayCIFOutAux;
}
function addCIFOut(valorCIF) {
	if ((contains(arrayCIFOut, valorCIF) == false) && (contains(arrayCIFIn, valorCIF) == false)) {
		arrayCIFOut = add(arrayCIFOut, valorCIF);
		return true;
	}
	return false;
}
function addAdmin(valor) {
	if (contains(arrayAdmin, valor) == false) {
		arrayAdmin = add(arrayAdmin, valor);
		return true;
	}
	return false;
}
function delCNAE(codigo) {
	arrayCNAE = del(arrayCNAE, codigo);
}
function delCIF(codigo) {
	if (codigo == 'IN') {
		while (arrayCIFIn.length != 0)
			arrayCIFIn.pop();
	} else if (codigo == 'OUT') {
		while (arrayCIFOut.length != 0)
			arrayCIFOut.pop();
	}
}
function addSIC(codigo) {
	if (contains(arraySIC, codigo) == false)
		arraySIC = add(arraySIC, codigo);
}
function delSIC(codigo) {
	arraySIC = del(arraySIC, codigo);
}

function createTamanoVentas() {
	if (tamanoVentas == null)
		tamanoVentas = new ParValores(false, document.formulario_seleccion1.val_ventas_1.value, document.formulario_seleccion1.val_ventas_2.value, document.formulario_seleccion1.val_ventas_3.value, document.formulario_seleccion1.val_ventas_4.value);
}
function deleteTamanoVentas() {
	tamanoVentas = null;
}

/* numero empleados */
function createTamanoEmpleados() {
	if (tamanoEmpleados == null) {
		tamanoEmpleados = new ParValores(false, document.formulario_seleccion2.dato_1.value, document.formulario_seleccion2.dato_2.value, document.formulario_seleccion2.dato_3.value, document.formulario_seleccion2.dato_4.value);
	}
}
function deleteTamanoEmpleados() {
	tamanoEmpleados = null;
}

function delAdmin(codigo) {
	if (contains(arrayAdmin, codigo)) {
		arrayAdmin = del(arrayAdmin, codigo);
	}
}
function delAllAdmin() {
	for (var i = 0; i < arrayAdmin.length; i++) {
		del(arrayAdmin, arrayAdmin[i]);
	}
	arrayAdmin = new Array(0);
}

/*
 * antiguedad
 */
function createTamanoAntiguedad() {
	if (tamanoAntiguedad == null) {
		tamanoAntiguedad = new ParValores(false, document.formulario_seleccion3.dato_2.value, document.formulario_seleccion3.dato_1.value, "", "");
		if (tamanoAntiguedad != null) {
			if (tamanoAntiguedad.masde != null && tamanoAntiguedad.masde != "")
				tamanoAntiguedad.masde = "#na" + tamanoAntiguedad.masde + "na#";
			if (tamanoAntiguedad.menosde != null && tamanoAntiguedad.menosde != "")
				tamanoAntiguedad.menosde = "#na" + tamanoAntiguedad.menosde + "na#";
			if (tamanoAntiguedad.entre != null && tamanoAntiguedad.entre != "")
				tamanoAntiguedad.entre = "#a" + tamanoAntiguedad.entre + "a#";
			if (tamanoAntiguedad.y != null && tamanoAntiguedad.y != "")
				tamanoAntiguedad.y = "#a" + tamanoAntiguedad.y + "a#";
		}
	}
}
function deleteTamanoAntiguedad() {
	tamanoAntiguedad = null;
}

function createFormaJuridica() {
	formaJuridica = new Array(0);
	for (var count = 0; count < formulario_forma.forma.length; count++) {
		if (formulario_forma.forma[count].checked)
			formaJuridica = add(formaJuridica, formulario_forma.forma[count].value);
	}
}
function deleteFormaJuridica(value) {
	formaJuridica = del(formaJuridica, value);
}

function createVinculaciones() {
	if (vinculaciones == null) {
		if (document.formulario_seleccion4.dato_vinculacion[0].checked)
			vinculaciones = document.formulario_seleccion4.dato_vinculacion[0].value;
		if (document.formulario_seleccion4.dato_vinculacion[1].checked)
			vinculaciones = document.formulario_seleccion4.dato_vinculacion[1].value;
		if (document.formulario_seleccion4.dato_vinculacion[2].checked)
			vinculaciones = document.formulario_seleccion4.dato_vinculacion[2].value;
	}
}

function deleteVinculacion() {
	vinculaciones = null; 
}

function createImportanExportan() {
	if (importanExportan == null) {
		if (document.formulario_seleccion5.dato[0].checked)
			importanExportan = document.formulario_seleccion5.dato[0].value;
		if (document.formulario_seleccion5.dato[1].checked)
			importanExportan = document.formulario_seleccion5.dato[1].value;
		if (document.formulario_seleccion5.dato[2].checked)
			importanExportan = document.formulario_seleccion5.dato[2].value;
	}
}
function deleteImportanExportan() {
	importanExportan = null;// "";
}

function createDatosSeleccionDatos(formulario_seleccion2, nom_tabla, nombre, variable) {
	if (nombre == "Empleados")
		createTamanoEmpleados();
	if (nombre == "Vinculaciones")
		createVinculaciones();
	if (nombre == "Importan/Exportan")
		createImportanExportan();
	if (nombre == "Capital Extranjero")
		createCapitalExtranjero();
}
function createCapitalExtranjero() {
	if (capitalExtranjero == null) {
		if (document.formulario_seleccion6.dato[0].checked)
			capitalExtranjero = "1";
		if (document.formulario_seleccion6.dato[1].checked)
			capitalExtranjero = "0";
	}
}
function deleteCapitalExtranjero() {
	capitalExtranjero = null;
}
function createResultados() {
	if (resultados == null)
		resultados = new ParValores(false, document.formulario_seleccion7.dato_1.value, document.formulario_seleccion7.dato_2.value, document.formulario_seleccion7.dato_3.value, document.formulario_seleccion7.dato_4.value);
}
function deleteResultados() {
	resultados = null;
}

function delAdmin(codigo) {
	if (contains(arrayAdmin, codigo))
		arrayAdmin = del(arrayAdmin, codigo);
}
function delAllAdmin() {
	for (var i = 0; i < arrayAdmin.length; i++) {
		del(arrayAdmin, arrayAdmin[i]);
	}
	arrayAdmin = new Array(0);
}

function deleteAdmin() {
	criteriosAdministrador = null;
}

function deleteCriteriosComerciales(variable) {
	if (variable == "MV_TCRITERIOS.VAL_VENTAS")
		deleteTamanoVentas();
	if (variable == "MV_TGENERAL.G_EMPLEADOS")
		deleteTamanoEmpleados();
	if (variable == "MV_TCRITERIOS.TN_ANTIGUEDAD")
		deleteTamanoAntiguedad();
	if (variable == "MV_TCRITERIOS.COD_VINCULACION")
		deleteVinculacion();
}
function deleteCriteriosComerciales(value, variable) {
	if (variable == "MV_TCRITERIOS.COD_FRM_JURIDICA")
		deleteFormaJuridica(value);
	else if (variable == "MV_TCRITERIOS.COD_VINCULACION")
		deleteVinculacion();
	else if (variable == "MV_TCRITERIOS.COD_IMPEXP")
		deleteImportanExportan();
	else if (variable == "MV_TGENERAL.G_FLG_EXTRANJERO")
		deleteCapitalExtranjero();
	else if (variable == "MV_TCRITERIOS.VAL_RESULTADO")
		deleteResultados();
	else if (variable == "MV_TCRITERIOS.TN_ANTIGUEDAD")
		deleteTamanoAntiguedad();
	else if (variable == "MV_TCRITERIOS.VAL_VENTAS")
		deleteTamanoVentas();
	else if (variable == "MV_TGENERAL.G_EMPLEADOS")
		deleteTamanoEmpleados();
	else if (variable == "MV_TCRITERIOS.TN_ANTIGUEDAD")
		deleteTamanoAntiguedad();
	else if (variable == "MV_TCRITERIOS.FLG_CONTACTO_SELECT")
		deleteAdmin();
}

function construyeCriterioCNAEandSIC() {
	var criteriosCNAE = construyeCriterioCNAE_SIC(arrayCNAE, "MV_TCRITERIOS.COD_CNAE", "OR");
	var criteriosSIC = construyeCriterioCNAE_SIC(arraySIC, "MV_TCRITERIOS.COD_SIC_1", "OR");
	var criterios = "";
	if (criteriosCNAE == "")
		criterios = criteriosSIC;
	else {
		if (criteriosSIC == "")
			criterios = criteriosCNAE;
		else
			criterios = criteriosCNAE + " OR " + criteriosSIC;
	}
	return criterios
}

/**
 * genera la parte de las condiciones del CIF. condicion : IN o NOT_IN
 */

function construyeCriterioCIF(condicion) {
	var criterioCif = "";
	if (arrayCIF.length != 0) {
		criterioCif = "MV_TCRITERIOS.CIF_EMPRESA " + condicion + " ";
		for (var i = 0; i < arrayCIF.length; i++) {
			criterioCif += "0" + arrayCIF[i];
			if (i != arrayCIF.length - 1) {
				criterioCif += ",";
			}
		}
	}
	return criterioCif;
}

// GALAN nueva forma de construir las condiciones del cnae y sic.
// Si es de 4 digitos, utiliza equals
// Si no tiene cuatro digitos, utiliza STARTS_WIDTH
function construyeCriterioCNAE_SIC(array, columna, operador_logico) {
	var operador_aritmetico = "EQUAL";
	var criterios = "";
	for (var count = 0; count < array.length; count++) {
		var value = array[count];

		if (value.length == 4)
			operador_aritmetico = "EQUAL";
		else
			operador_aritmetico = "STARTS_WITH";

		if (criterios == "")
			criterios = columna + criteriosGeograficos_SPACE + operador_aritmetico + criteriosGeograficos_SPACE + value;
		else
			criterios = criterios + criteriosGeograficos_SPACE + criteriosGeograficos_OR + criteriosGeograficos_SPACE + columna + criteriosGeograficos_SPACE + operador_aritmetico + criteriosGeograficos_SPACE + value;
	}
	return criterios;
}

function generaCriteriosComerciales() {
	var criteriosComerciales = "";

	// Tamaño ventas
	if (tamanoVentas != null) {
		// Objeto ParValores
		// logParValores( tamanoVentas );
		var criterio = getCriterioParValores("MV_TCRITERIOS.VAL_VENTAS", tamanoVentas);
		if (criterio != "")
			criteriosComerciales = "( " + criterio + " )";
	}

	// CNAE y SIC.
	// var criteriosCNAE = construyeCriterio( arrayCNAE, "MV_TCRITERIOS.COD_CNAE" , "STARTS_WITH" , "OR" );
	// var criteriosSIC = construyeCriterio( arraySIC, "MV_TSIC.COD_SIC" , "STARTS_WITH" , "OR" );
	var criteriosCNAEandSIC = construyeCriterioCNAEandSIC();
	if (criteriosCNAEandSIC != "") {
		if (criteriosComerciales == "")
			criteriosComerciales = "( " + criteriosCNAEandSIC + " )";
		else
			criteriosComerciales = criteriosComerciales + " AND " + "( " + criteriosCNAEandSIC + " )";
	}

	var criteriosCIFIn = construyeCriterioCIFIn();
	if (criteriosCIFIn != "") {
		if (criteriosComerciales == "")
			criteriosComerciales = "( " + criteriosCIFIn + " )";
		else
			criteriosComerciales = criteriosComerciales + " AND " + "( " + criteriosCIFIn + " )";
	}
	var criteriosCIFOut = construyeCriterioCIFOut();
	if (criteriosCIFOut != "") {
		if (criteriosComerciales == "")
			criteriosComerciales = "( " + criteriosCIFOut + " )";
		else
			criteriosComerciales = criteriosComerciales + " AND " + "( " + criteriosCIFOut + " )";
	}

	// tamanoEmpleados
	if (tamanoEmpleados != null) {
		// Objeto ParValores
		// logParValores( tamanoEmpleados );
		var criterio = getCriterioParValores("MV_TCRITERIOS.VAL_EMPLEADOS", tamanoEmpleados);
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " )";
		}
	}
	if (tamanoAntiguedad != null) {
		// Objeto ParValores
		var criterio = getCriterioParValores("MV_TCRITERIOS.FEC_CONSTITUCION", tamanoAntiguedad);
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " )";
		}
	}
	if (formaJuridica != null) {
		// Array
		// logContenidoArray( formaJuridica );
		var criterio = "";
		if (formaJuridica != null) {
			for (var count = 0; count < formaJuridica.length; count++) {
				if (formaJuridica[count] == "todas") {
					// No hacer nada ???????
				} else if (criterio == "")
					criterio = "MV_TCRITERIOS.COD_FRM_JURIDICA EQUAL " + formaJuridica[count];
				else
					criterio = criterio + " OR MV_TCRITERIOS.COD_FRM_JURIDICA EQUAL " + formaJuridica[count];
			}
		}
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " )";
		}
	}
	if (vinculaciones != null) {
		// String
		var criterio = "MV_TCRITERIOS.COD_VINCULACION EQUAL " + vinculaciones;
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " OR MV_TCRITERIOS.COD_VINCULACION EQUAL 2 )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " OR MV_TCRITERIOS.COD_VINCULACION EQUAL 2 )";
		}
	}
	if (importanExportan != null) {
		// String
		// alert( importanExportan );
		var criterio = "MV_TCRITERIOS.COD_IMPEXP EQUAL " + importanExportan;
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " OR MV_TCRITERIOS.COD_IMPEXP EQUAL 3 )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " OR MV_TCRITERIOS.COD_IMPEXP EQUAL 3 )";
		}
	}
	if (capitalExtranjero != null) {
		// String
		// alert( capitalExtranjero );
		var criterio = "MV_TCRITERIOS.FLG_CAPITAL_EXTRANJERO EQUAL " + capitalExtranjero;
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " )";
		}
	}
	if (resultados != null) {
		// String
		// logParValores( resultados );
		var criterio = getCriterioParValores("MV_TCRITERIOS.VAL_RESULTADO", resultados);
		if (criterio != "") {
			if (criteriosComerciales == "")
				criteriosComerciales = "( " + criterio + " )";
			else
				criteriosComerciales = criteriosComerciales + " AND " + "( " + criterio + " )";
		}
	}
	return criteriosComerciales
}

function getCriterioParValores(columna, par) {
	var criterio = "";
	if (par.todas == true) {
		// No hacer nada. ???????????????????????????????
	} else {
		if (par.masde != "")
			criterio = columna + " GREATER " + par.masde;
		if (par.menosde != "")
			criterio = columna + " LESS " + par.menosde;
		if (par.entre != "")
			criterio = columna + " GREATER " + par.entre + " AND " + columna + " LESS " + par.y;
	}
	return criterio;
}
function checkSelect() {
	if (tipoTarjeta == 'tarjetaEmpresasRecienteCreacion' || tipoTarjeta == 'tarjetaProspeccionComercial' || tipoTarjeta == 'tarjetaFaxing' || tipoTarjeta == 'tarjetaTelemarketing' || tipoTarjeta == 'mailingPostal' || tipoTarjeta == 'tarjetaCesce')
		return false;
	else {
		var parteSelect = getParteSelect();
		// parteSelect = columnas;
		var criteriosDatosComerciales = gestionaCriteriosDatosComerciales();
		var criteriosDatosDeContacto = gestionaCriteriosDatosDeContacto();
		var criteriosDatosRiesgo = gestionacriteriosDatosRiesgo();
		var criteriosGeograficos = getCriteriosGeograficos();
		var criteriosComerciales = generaCriteriosComerciales();

		if (parteSelect == "") {
			alert('Debe seleccionar algun dato para su listado');
			cambia_listado();
			cambio_img('listado');
			quito2('datos_fichero');
			return true;
		}
		if (criteriosDatosComerciales == "" && criteriosDatosDeContacto == "" && criteriosDatosRiesgo == "" && criteriosGeograficos == "" && criteriosComerciales == "") {
			alert('Debe establecer al menos un criterio para su listado');
			cambia_seleccion();
			cambio_img('seleccion');
			quito2('criterios');
			return true;
		}
		return false;
	}

}
function getSelect() {
	
	var parteSelect = getParteSelect();
	var criteriosDatosComerciales = gestionaCriteriosDatosComerciales();
	var criteriosDatosDeContacto = gestionaCriteriosDatosDeContacto();
	var criteriosDatosRiesgo = gestionacriteriosDatosRiesgo();
	var criteriosGeograficos = getCriteriosGeograficos();
	var criteriosComerciales = generaCriteriosComerciales();
	var criteriosAdministrador = construyeCriterioAdmin();
	var select = "";

	var criteriosDatosDeMiListado = generaCriteriosDatosDeMiListado();

	// alert("select " + criteriosDatosDeMiListado);

	if (criteriosDatosDeMiListado != "") {
		if (select == "")
			select = select + criteriosDatosDeMiListado;
		else
			select = select + " AND " + criteriosDatosDeMiListado;
	}

	if (criteriosGeograficos != "") {
		if (select == "")
			select = select + criteriosGeograficos;
		else
			select = select + " AND " + criteriosGeograficos;
	}
	if (criteriosComerciales) {
		if (select == "")
			select = select + criteriosComerciales;
		else
			select = select + " AND " + criteriosComerciales;
	}
	var parteSelectString  = String(parteSelect);
	pintaTraza("criteriosAdministrador:"+criteriosAdministrador);
	if (criteriosAdministrador != "") {
		if (parteSelectString == "")
			parteSelectString = parteSelectString + criteriosAdministrador;
		else{
			parteSelectString = parteSelectString.replace("MV_TCRITERIOS.FLG_CONTACTO",criteriosAdministrador);
			parteSelect = parteSelectString; 
		}
	}
	

	// alert("parte selec " + parteSelect);
	var selectParcial = "SELECT " + parteSelect + " FROM XXX WHERE ";
	select = selectParcial + select + ";";

	pintaTraza("SELECT FINAL -->"+select);
	// prompt("",select);
	return select;
}

