/**
 * Classe conservant des informations propres à la requête courante.
 * <br/><br/>
 * Cette classe est disponible dans tous les écrans du BackOffice.<br/>
 * Elle est chargée dès le début et initialisée.
 *
 * @class
 * @name boState
 * @static
 * @version 1.0
 */
var boState = /** @lends boState */{
	/**
	 * Fixe l'action courante.
	 * @param String form_action Nom de l'action courante
	 */
	setFormAction: function(val) {
		this.formAction=val;
	},
	/**
	 * Récupère l'action courante
	 * @returns String form_action
	 */
	getFormAction: function() {
		return this.formAction;
	},
	/**
	 * Fixe l'objet courant
	 * @param String form_object Nom de l'objet courant
	 */
	setFormObject : function(val) {
		this.formObject = val;
	},
	/**
	 * Récupère l'objet courant
	 * @returns String form_object.
	 */
	getFormObject: function() {
		return this.formObject;
	},
	/**
	 * Fixe l'identifiant courante
	 * @param String form_id Identifiant de l'objet courant
	 */
	setFormId : function(val) {
		this.formId = val;
	},
	/**
	 * Récupère l'identifiant courant
	 * @returns String form_id
	 */
	getFormId: function() {
		return this.formId;
	},
	/**
	 * Fixe le contextPath courant
	 * @param String contextPath Context path courant
	 */
	setContextPath: function(val) {
		this.contextPath = val;
	},
	/**
	 * Récupère le contextPath courant
	 * @returns String contextpath
	 */
	getContextPath: function() {
		return this.contextPath;
	},
	/**
	 * Fixe si il faut désactiver tous les effets
	 * @param boolean disabled Faut-il désactiver les effets.
	 */
	setEffectDisabled: function(val) {
		this.effect_disabled=val;
	},
	/**
	 * Récupère l'information selon laquelle il faut activer ou non les effets.
	 * @returns boolean false: disabled effect, true: activate effect.
	 */
	isEffectDisabled: function() {
		if (typeof(this.effect_disabled)=='undefined' || this.effect_disabled==null) return true;
		return this.effect_disabled;
	},
	/**
	 * Fixe la langue du surfer.
	 * @param String langue
	 */
	setLanguage: function (val) {
		this.language=val;
	},
	/**
	 * Retourne la langue du surfer.<br/>
	 * ex: 'fr', 'en' <br/>
	 * Ne retourne jamais null, undefined.<br/>
	 * Par défaut : définie dans init.jsp
	 * @returns String langue.
	 */
	getLanguage: function() {
		if ( !this.language || this.language.length == 0) return 'fr';
		else return this.language;
	},
	/**
	 *
	 */
	setScheme: function(val) {
		this.scheme=val;
	},
	/**
	 *
	 */
	getScheme: function() {
		if (typeof(this.scheme)=='undefined' || this.scheme==null || this.scheme.length==0) return 'http';
		return this.scheme;
	},
	/**
	 *
	 */
	setServerName: function(val) {
		this.servername=val;
	},
	/**
	 *
	 */
	getServerName: function() {
		if (typeof(this.servername)=='undefined' || this.servername==null || this.servername.length==0) return '';
		return this.servername;
	},
	/**
	 *
	 */
	setServerPort: function(val) {
		this.serverport=val;
	},
	/**
	 *
	 */
	getServerPort: function() {
		if (typeof(this.serverport)=='undefined' || this.serverport==null || this.serverport.length==0) return '80';
		return this.serverport;
	},

	setTheme: function(val) {
		this.theme=val;
	},
	/**
	 *
	 */
	getTheme: function() {
		return ( this.theme && this.theme != '') ? this.theme : null;
	},

	getThemeResource: function(res) {
		var theme = this.getTheme();
		if( theme ) {
			var dot_pos = res.lastIndexOf(".");
			if( dot_pos == -1 ) {
				return res + theme;
			} else {
				var prefix = res.substring(0, dot_pos);
				var suffix = res.substring(dot_pos);
				return prefix + "_" + theme + suffix;
			}
		} else return res;
	}

}

