/**
 * 
 */
package com.ejie.m62fb.utils.properties;

import java.util.Properties;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import com.ejie.m62fb.utils.constants.AppConstantes;

/**
 * Utilidades para el fichero properties de la aplicacion.
 * 
XXXX
 */
public class AppPropertiesUtils extends SpringBeanAutowiringSupport {

	/**
	 * URLs de los enlaces del pie de la página
	 */
	private static final String WAR_AVISO_LEGAL_CAS = "aviso_legal_cas";
	private static final String WAR_AVISO_LEGAL_EUS = "aviso_legal_eus";
	private static final String WAR_PRIVACIDAD_CAS = "privacidad_cas";
	private static final String WAR_PRIVACIDAD_EUS = "privacidad_eus";
	private static final String WAR_EUSKADI_NET_CAS = "euskadi_net_cas";
	private static final String WAR_EUSKADI_NET_EUS = "euskadi_net_eus";
	private static final String MODO = "modo";
	private static final String TXT_MIN = "min";
	private static final String MAIL_CONTACTO = "mail_contacto";
	private static final String LINK_AYUDA_CAS = "ayuda_cas";
	private static final String LINK_AYUDA_EUS = "ayuda_eus";

	// Constantes pasarela
	public static final String URL_IMAGEN_CABECERA = "URL_IMAGEN_CABECERA";
	public static final String URL_IMAGEN_MEDIO = "URL_IMAGEN_MEDIO";
	public static final String URL_IMAGEN_ABAJO = "URL_IMAGEN_ABAJO";
	public static final String URL_VUELTA = "URL_VUELTA";
	public static final String URL_PLANTILLA = "URL_PLANTILLA";

	public static final String REPORTS_IMAGES = "reports.path.images";
	public static final String REPORTS_FIRMA = "reports.texto.firma";
	public static final String REPORTS_DIREC_ES = "reports.texto.direccion.es";
	public static final String REPORTS_DIREC_EU = "reports.texto.direccion.eu";

	/**
	 * 
	 */
	@Autowired(required = false)
	private Properties appConfiguration;

	/**
	 * Constructor de la clase
	 */
	public AppPropertiesUtils() {

	}

	/**
	 * Funcion que recupera una entrada del fichero de properties de la
	 * aplicacion.
	 * 
	 * @param pstrPropertiesURL
	 *            Nombre de la entrada del properties
	 * 
	 * @return String Valor de la entrada
	 */
	public String getPropertiesEntry(String pstrPropertiesURL) {

		return (String) this.appConfiguration.get(pstrPropertiesURL);
	}

	/**
	 * Funcion que devuelve la url del Aviso Legal
	 * 
	 * @return String url del Aviso Legal
	 */
	public String getAvisoLegal() {

		if (AppConstantes.ES_LOCALE.equals(LocaleContextHolder.getLocale())) {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_AVISO_LEGAL_CAS);
		} else {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_AVISO_LEGAL_EUS);
		}
	}

	/**
	 * Funcion que devuelve la url de la Privacidad
	 * 
	 * @return String url de la Privacidad
	 */
	public String getPrivacidad() {

		if (AppConstantes.ES_LOCALE.equals(LocaleContextHolder.getLocale())) {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_PRIVACIDAD_CAS);
		} else {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_PRIVACIDAD_EUS);
		}
	}

	/**
	 * Funcion que devuelve la url del portal de euskadi.net
	 * 
	 * @return String url del portal de euskadi.net
	 */
	public String getPortalEuskadiNet() {

		if (AppConstantes.ES_LOCALE.equals(LocaleContextHolder.getLocale())) {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_EUSKADI_NET_CAS);
		} else {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_EUSKADI_NET_EUS);
		}
	}

	/**
	 * Funcion que devuelve el mail de contacto de la aplicacion
	 * 
	 * @return String mail
	 */
	public String getMailContacto() {
		return this.getPropertiesEntry(AppPropertiesUtils.MAIL_CONTACTO);
	}

	/**
	 * Funcion que devuelve el link a la ayuda de la aplicacion
	 * 
	 * @return String mail
	 */
	public String getLinkAyuda() {
		if (AppConstantes.ES_LOCALE.equals(LocaleContextHolder.getLocale())) {
			return this.getPropertiesEntry(AppPropertiesUtils.LINK_AYUDA_CAS);
		} else {
			return this.getPropertiesEntry(AppPropertiesUtils.LINK_AYUDA_EUS);
		}
	}

	/**
	 * Funcion que devuelve la url del Aviso Legal
	 * 
	 * @return String url del Aviso Legal
	 */
	public String getTramitacionWarAvisoLegal() {

		if (AppConstantes.ES_LOCALE.equals(LocaleContextHolder.getLocale())) {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_AVISO_LEGAL_CAS);
		} else {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_AVISO_LEGAL_EUS);
		}
	}

	/**
	 * Funcion que devuelve la url de la Privacidad
	 * 
	 * @return String url de la Privacidad
	 */
	public String getTramitacionWarPrivacidad() {

		if (AppConstantes.ES_LOCALE.equals(LocaleContextHolder.getLocale())) {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_PRIVACIDAD_CAS);
		} else {
			return this
					.getPropertiesEntry(AppPropertiesUtils.WAR_PRIVACIDAD_EUS);
		}
	}
}
