/**
 * Objet critere : permet de stocker les données concernant un jeu de criteres 
 */
function Criteres(){
	this.ville;
	this.chambres;
	this.etoiles;
	this.paxAdultes;
	this.paxEnfants;
	this.dateDebut;
	this.dateFin;
	this.crikey;
	
	this.templManagerCriteres;
	
	/*this.ville = "paris";
	this.chambres = 2;
	this.etoiles = 0;
	this.paxAdultes = 2;
	this.paxEnfants = 0;
	this.dateDebut = 12/06/2008;
	this.dateFin = 15/06/2008;*/
}

Criteres.prototype={
	getVille: function(){
		return this.ville;
	},
	
	getChambres: function(){
		return this.chambres + " chambre" + (this.chambres > 1 ? "s" : "");	
	},
	
	getPaxAdultes: function(){
		return this.paxAdultes + " Adulte" + (this.paxAdultes > 1 ? "s" : "");	
	},
	
	getPaxEnfants: function(){
		return this.paxEnfants + " Enfant" + (this.paxEnfants > 1 ? "s" : "");	
	},
	
	getDateDebut: function(){
		if(typeof(this.dateDebut) != "undefined"){
			return this.dateDebut.getDate() + " "	+ getMoisTexteLong(this.dateDebut.getMonth() + 1) + " " + this.dateDebut.getFullYear();	
		}
	},
	
	getDateFin: function(){
		if (typeof(this.dateFin) != "undefined") {
			return this.dateFin.getDate() + " " + getMoisTexteLong(this.dateFin.getMonth() + 1) + " " + this.dateFin.getFullYear();
		}
	},
	
	getNbChambres: function(){
		return Math.round(this.chambres);	
	},
	
	getNbNuits: function(){
		if ((typeof(this.dateDebut) != "undefined") && (typeof(this.dateFin) != "undefined")) {
			return Math.round((this.dateFin.getTime() - this.dateDebut.getTime())/86400000);
	  }
	},
	
	/**
	 * Initialisation de l'objet DOM pour la syntaxe EV
	 */
	init: function(){
		this.templManagerCriteres =  new TemplateManager("template_criteresRecherche", "ev_criteresRecherche", "criteresRecherche", 0);
	},

	/**
	 * Injection des données critères par la syntaxe EV
	 */	
	print: function(){
		var dataArray = new Array(); 
		dataArray.push(this);
		this.templManagerCriteres.refreshView(dataArray);
		
	},

	objetToXML: function(){
		var xml = "<criteres>";
		
		if(this.ville != undefined){
			xml += "<ville>" + this.ville + "</ville>";
		}
		if(this.chambres != undefined){
			xml += "<chambres>" + this.chambres + "</chambres>";
		}
		if(this.etoiles != undefined){
			xml += "<etoiles>" + this.etoiles + "</etoiles>";
		}
		if(this.paxAdultes != undefined){
			xml += "<paxAdultes>" + this.paxAdultes + "</paxAdultes>";
		}	
		if(this.paxEnfants != undefined){
			xml += "<paxEnfants>" + this.paxEnfants + "</paxEnfants>";
		}	
		if(this.dateDebut != undefined){
			xml += "<dateDebut>" + this.dateDebut + "</dateDebut>";
		}
		if (this.dateFin != undefined) {
			xml += "<dateFin>" + this.dateFin + "</dateFin>";
		}
		if (this.crikey != undefined) {
			xml += "<crikey>" + this.crikey + "</crikey>";
		}
		xml += "</criteres>";

		return xml;	 
	},
	
	/**
	 * fonction qui permet d'alimenter un objet critere à partir d'un objet XMLDocument passé en paramètre
	 * @param {Object} document
	 */
	DOMToObjet: function(document){
		if(document != undefined){
			if(document.getElementsByTagName("ville")[0] != undefined && document.getElementsByTagName("ville")[0].firstChild != undefined){
				this.ville = document.getElementsByTagName("ville")[0].firstChild.nodeValue;	
			}
		  if(document.getElementsByTagName("chambres")[0] != undefined && document.getElementsByTagName("chambres")[0].firstChild){
				this.chambres = document.getElementsByTagName("chambres")[0].firstChild.nodeValue;	
			}
		  if(document.getElementsByTagName("etoiles")[0] != undefined && document.getElementsByTagName("etoiles")[0].firstChild){
				this.etoiles = document.getElementsByTagName("etoiles")[0].firstChild.nodeValue;	
			}
		  if(document.getElementsByTagName("paxAdultes")[0] != undefined && document.getElementsByTagName("paxAdultes")[0].firstChild){
				this.paxAdultes = document.getElementsByTagName("paxAdultes")[0].firstChild.nodeValue;	
			}
		  if(document.getElementsByTagName("paxEnfants")[0] != undefined && document.getElementsByTagName("paxEnfants")[0].firstChild != undefined){
				this.paxEnfants = document.getElementsByTagName("paxEnfants")[0].firstChild.nodeValue;	
			}
		  if(document.getElementsByTagName("dateDebut")[0] != undefined && document.getElementsByTagName("dateDebut")[0].firstChild != undefined){
				this.dateDebut = Date.convertStringFrToDate(document.getElementsByTagName("dateDebut")[0].firstChild.nodeValue);
			}
			if(document.getElementsByTagName("dateFin")[0] != undefined && document.getElementsByTagName("dateFin")[0].firstChild != undefined){
				this.dateFin = Date.convertStringFrToDate(document.getElementsByTagName("dateFin")[0].firstChild.nodeValue);
			}			  
			if(document.getElementsByTagName("crikey")[0] != undefined && document.getElementsByTagName("crikey")[0].firstChild != undefined){
				this.crikey = document.getElementsByTagName("crikey")[0].firstChild.nodeValue;
			}			  
		} else{
			throw new Error("impossible de creer un objet critere à partir de l'objet passé en paramètre");
		}
	},

	toString: function(){
		return "Criteres{"+this.crikey+"}";
	}
}

if (typeof(log)=='function') log("me3/meh/Criteres.js ok", "info");
