var evenement = {

	title: 'evenement',
	emplacement: {},
	field_date_simple: 0,
	field_nombre_invites: 0,
	field_lieux: [],
	field_menus: [],
	field_boissons: [],
	field_prestataires: [],
	field_coordinateur: [],
	communication: [],
	billeterie: false,

	/**
	 * Sauve les parametres de l'instance dans le localStorage
	 * Retire également les doublons dans les fields de type array
	 */

	save: function() {

		this.clean();
		localStorage.setItem('evenement', JSON.stringify(this));

	},

	/**
	 * Initialise l'objet avec les valeurs de localStorage
	 */

	load: function() {

		var e = localStorage.getItem('evenement');
		var json = JSON.parse(e);

		this.emplacement = json.emplacement;
		this.field_date_simple = json.field_date_simple;
		this.field_nombre_invites = json.field_nombre_invites;
		this.field_lieux = json.field_lieux;
		this.field_menus = json.field_menus;
		this.field_boissons = json.field_boissons;
		this.field_prestataires = json.field_prestataires;
		this.field_coordinateur = json.field_coordinateur;
		this.billeterie = json.billeterie;
		this.communication = json.communication;

	},

	/**
	 * Enleve les doublons dans les fields de type array
	 */

	clean: function() {

		for (var prop in this) {
			if (this[prop] instanceof Array) {

				var arr = {};

				for (var i = 0; i < this[prop].length; i++)
					arr[this[prop][i].nid] = this[prop][i];

				this[prop] = [];

				for (var key in arr)
					this[prop].push(arr[key]);
			}
		}

	},

	/**
	 * Prépare un objet conforme a drupal pour ajout en BDD
	 */

	prepare: function() {

		var r = {
			'type': 'evenement',
			'title': this.title,
			'field_date_simple[und][0][value]': this.field_date_simple,
			'field_nombre_invites[und][0][value]': this.field_nombre_invites,
		};

		for (var prop in this) {
			if (this[prop] instanceof Array) {
				for (var i = 0; i < this[prop].length; i++) {
					r[prop + '[und][' + i + '][nid]'] = this[prop][i].name;
				}
			}
		}

		return r;
	},

	/**
	 * Verifie si un nid a déja été selectionné
	 */

	check: function(nid) {

		for (var prop in this) {
			if (this[prop] instanceof Array) {
				for (var i = 0; i < this[prop].length; i++) {
					if (this[prop][i].nid == nid)
						return true;
				}
			}
		}

		return false;

	},

	/**
	 * Retire un element d'un field
	 */

	remove: function(field, nid) {

		for (var i in this[field]) {
			if (this[field][i].nid == nid) {
				this[field].splice(i, 1);
				return;
			}
		}

	},

};