
var Mot_cle = Class.create();
Mot_cle.prototype = {

	/** Constructeur */
	initialize: function(mot_cle, box_mot_cle, jacquard) {
		this.id_mot_cle = mot_cle.id_mot_cle;
		this.nom = mot_cle.nom;
		this.nb_emissions_liees = (mot_cle.nb_emissions_liees) ? mot_cle.nb_emissions_liees : 0;
		this.url_podcast = mot_cle.url_podcast;
		
		this.box_mot_cle = box_mot_cle;
		
		this.jacquard = jacquard;
		this.admin = jacquard.admin;
		
		this.ajax = null;
		
		this.setStructure();
	},
	

	/** Initialise la structure HTML */
	setStructure: function() {

		this.box_mot_cle.zone_affichage.innerHTML = "";

		this.box_mot_cle.expand();
		this.box_mot_cle.open();
		
		this.zone_details = document.createElement('div');
		
		//nombre d'émissions correspondant au mot-clé
		var emissions_corres = '';
		if(this.nb_emissions_liees == 0)
			emissions_corres = 'Aucune émission ne correspond';
		else if (this.nb_emissions_liees == 1)
			emissions_corres = 'Une émission correspond';
		else
			emissions_corres = this.nb_emissions_liees+' émissions correspondent';
		
		emissions_corres += ' au thème <span style="font-weight: bold;">'+this.nom + '</span>';
		emissions_corres +="<br />Pour vous abonner à ce thème, recopiez l'adresse suivante dans une application de podcasting :<br /><br />";
				//liens pour podcast
		var url_podcast = 'http://www.ticeo.net/jacquard/podcast/albert_jacquard_'+this.id_mot_cle+'.xml';
		emissions_corres +=url_podcast;
		this.zone_details.innerHTML = emissions_corres;
		this.zone_details.style.paddingTop = '20px';
		this.box_mot_cle.zone_affichage.appendChild(this.zone_details);

		//liens pour podcast
		//var url_podcast = 'http://www.ticeo.net/jacquard/podcast/albert_jacquard_'+this.id_mot_cle+'.xml';

		var div_podcast = document.createElement('div');
		//la ligne suivante affiche le lien en orange avec l'image podcast
		//this.box_mot_cle.zone_affichage.appendChild(div_podcast);
		div_podcast.style.marginTop = '10px';
		
		//lien pour iTunes
		var zone_titre_itunes = document.createElement('div');
		div_podcast.appendChild(zone_titre_itunes);
		
		var titre_itunes = document.createElement('span');
		titre_itunes.className = 'titre_emission titre_itunes';
		
		//titre_itunes.innerHTML = '... dans iTunes ';
		//titre_itunes.innerHTML = '... Podcaster le th&egrave;me ';
		
		titre_itunes.innerHTML = "... Copiez cette adresse dans une application de baladodiffusion<br /> "+url_podcast;
		zone_titre_itunes.appendChild(titre_itunes);

		var lien_itunes = document.createElement('a');
		//lien_itunes.href = 'itpc://'+url_podcast;
		
		//lien_itunes.href = 'itpc://'+this.url_podcast;
		lien_itunes.href = 'http://'+this.url_podcast;
		lien_itunes.appendChild(this.box_mot_cle.podcastImg);
		//div_podcast.appendChild(lien_itunes);
		// mis en rem par JBJ 
		zone_titre_itunes.appendChild(lien_itunes);
		
		//                   Pour explorer 6 et antérieurs-----------------------
		/*
		//barre de séparation
		//var hr_podcast = document.createElement('hr');
		//hr_podcast.noshade = 'noshade';
		hr_podcast.setAttribute('noshade', 'noshade');
		hr_podcast.style.width = '400px';
		hr_podcast.style.border = 'none';

		//réglage de l'alignement pour tous les navigateurs
		hr_podcast.style.textAlign = 'left';
		hr_podcast.align = 'left';

		//réglage de la couleur de la ligne pour tous les navigateurs
		hr_podcast.style.color = '#D6CDAF';
		hr_podcast.style.borderColor = '#D6CDAF';
		hr_podcast.style.backgroundColor = '#D6CDAF';

		//réglage de la hauteur pour tous les navigateurs
		hr_podcast.style.lineHeight = '1px';
		hr_podcast.style.height = '1px';
		
		div_podcast.appendChild(hr_podcast);
		
		
		//explication pour autres applications
		var titre_podcast = document.createElement('div');
		titre_podcast.className = 'titre_emission titre_podcast';
		titre_podcast.innerHTML = '... dans une application de votre choix';
		div_podcast.appendChild(titre_podcast);
		//
		
		// version qui propose de copier le lein dans l'application de podcast
		var zone_podcast_autres = document.createElement('div');
		zone_podcast_autres.innerHTML = 'Copiez cette adresse dans votre application de podcast :';
		zone_podcast_autres.appendChild(document.createElement('br'));
		// fin de la version qui propose de copier le lein dans l'application de podcast
		
		//zone_podcast_autres.innerHTML += '<a href="http://'+ this.url_podcast+'">this.url_podcast</a>';
		zone_podcast_autres.innerHTML += 'http://'+this.url_podcast +'';
		div_podcast.appendChild(zone_podcast_autres);
		*/
		/*var par_podcast = document.createElement('div');
		par_podcast.innerHTML = 'Pour podcaster ce mot-clé, copiez ce lien et collez le dans votre application de podcast :';
		par_podcast.appendChild(document.createElement('br'));
		span_podcast = document.createElement('span');
		span_podcast.className = 'url_podcast';
		//span_podcast.innerHTML = 'http://'+url_podcast;
		span_podcast.innerHTML = 'http://'+this.url_podcast;
		par_podcast.appendChild(span_podcast);
		
		div_podcast.appendChild(par_podcast);
*/					
//fin du code pour vieux IE
		
		if(this.admin) {
			this.setFormulaire();
			this.cacheFormulaire();
		}
		this.setBehaviour();
	},
	
	
	setFormulaire: function() {
		this.box_mot_cle.div_formulaire.innerHTML = '';

		//Formulaire
		this.form_maj = document.createElement('form');
		this.form_maj.action = 'javascript:;';
		this.box_mot_cle.div_formulaire.appendChild(this.form_maj);
		
		//Zone d'affichage du nom
		var div_nom = document.createElement('div');
		div_nom.innerHTML = 'Nom : ';
		this.form_maj.appendChild(div_nom);
		
		var input_nom = document.createElement('input');
		input_nom.name = 'nom';
		input_nom.id = 'nom';
		input_nom.type = 'text';
		input_nom.value = this.nom;
		div_nom.appendChild(input_nom);
		
		var input_hidden = document.createElement('input');
		input_hidden.name = 'id_mot_cle';
		input_hidden.id = 'id_mot_cle';
		input_hidden.type = 'hidden';
		input_hidden.value = this.id_mot_cle;
		this.form_maj.appendChild(input_hidden);
		
		var input_action = document.createElement('input');
		input_action.name = 'action';
		input_action.type = 'hidden';
		input_action.value = 'maj';
		this.form_maj.appendChild(input_action);
		
		
		//Submit
		var input_submit = document.createElement('input');
		input_submit.type = 'submit';
		input_submit.value = 'Enregistrer';
		this.form_maj.appendChild(input_submit);
		
		var input_reset = document.createElement('input');
		input_reset.type = 'reset';
		input_reset.value = 'Annuler';
		this.form_maj.appendChild(input_reset);
		
		
		//formulaire de suppression
		this.form_delete = document.createElement('form');
		this.form_delete.action='javascript:;';
		this.box_mot_cle.div_formulaire.appendChild(this.form_delete);
		
		input_hidden = document.createElement('input');
		input_hidden.name = 'id_mot_cle';
		input_hidden.id = 'id_mot_cle';
		input_hidden.type = 'hidden';
		input_hidden.value = this.id_mot_cle;
		this.form_delete.appendChild(input_hidden);
	
		input_action = document.createElement('input');
		input_action.name = 'action';
		input_action.type = 'hidden';
		input_action.value = 'delete';
		this.form_delete.appendChild(input_action);

		input_submit = document.createElement('input');
		input_submit.type = 'submit';
		input_submit.value = 'Supprimer ce thème';
		this.form_delete.appendChild(input_submit);
	},
	
	
	/** Initialise le comportement */
	setBehaviour: function() {

		var current = this;
		
		if(this.admin) {
			this.zone_details.onclick = function() {
				current.afficheFormulaire();
			};
			
			this.form_maj.onsubmit = function() {
				current.soumettre_formulaire(this);
			};
			
			this.form_delete.onsubmit = function() {
				if(confirm('Cette action supprimera définitivement ce thème. Etes-vous sûr ?')) {
					current.soumettre_formulaire(this);
				}
			};
			
			/*this.form_undo.onsubmit = function() {
				current.setStructure();
			};*/
			
			this.form_maj.onreset = function() {
				if(current.id_mot_cle > 0)
					current.setStructure();
				else
					current.box_mot_cle.close();
			}; 
		}

		//this.box_mot_cle.lien_podcast.href = 'javascript:open_podcast('+this.id_mot_cle+');';
		
	},
	
	/** Transforme la description du mot clé en formulaire */
	afficheFormulaire: function() {
		this.box_mot_cle.zone_affichage.style.display = 'none';
		this.box_mot_cle.div_formulaire.style.display = '';
	},

	cacheFormulaire: function() {
		this.box_mot_cle.zone_affichage.style.display = '';
		this.box_mot_cle.div_formulaire.style.display = 'none';
	},

	/** Envoi d'une requête au serveur */
	soumettre_formulaire: function(form) {

		//arrêt de la requete en cours s'il y en a une
		if(this.ajax && this.ajax.transport && this.ajax.transport.readyState != 4) {
			this.ajax.transport.abort();
		}

		//lancement d'une nouvelle requete
		var params = Form.serialize(form);
		//alert(params);
		//return;

		var current = this;
		this.ajax = new Ajax.Request('../composants_php/submit_mot_cle.php', {
			method: 'post',
			parameters: params,
			
			onSuccess: function(xhr) {
				current.traite_resultats(xhr);
			},
			
			onFailure: function(xhr) {
				current.traite_erreur(xhr);
			},
			
			onException: function(xhr, e) {
				current.traite_exception(xhr, e);
			}
		});
		
	},
	
	traite_resultats: function(xhr) {
		//alert(xhr.responseText);
		eval('var mot_cle = '+xhr.responseText+';');
		/* On insère ou on update le mot clé dans la liste des mots clés
		 * sauf si c'est une suppression, dans ce cas la on l'enlève de la liste
		 */
		if(mot_cle.id_mot_cle != -1) {
			var update = false;
			for(var i=0; i<this.jacquard.mots_cles.length && !update; i++) {
				if(this.jacquard.mots_cles[i].id_mot_cle == mot_cle.id_mot_cle) {
					this.jacquard.mots_cles[i] = mot_cle
					update = true;
				}
			}
			if(! update)
				this.jacquard.mots_cles.push(mot_cle);
		}
		else {
			index = 0;
			for(var i=0; i<this.jacquard.mots_cles.length && index == 0; i++) {
				if(this.jacquard.mots_cles[i].id_mot_cle == this.id_mot_cle) {
					index = i;
				}
			}
			
			this.jacquard.mots_cles.splice(index, 1);
			//mot_cle = {id_mot_cle: -1, nom: "Indifférent", nb_emissions_liees: 0};
		}
		

		this.jacquard.rafraichir_mots_cles(mot_cle.id_mot_cle);
		
		//this.zone_nom.innerHTML = this.nom;
		//mot_cle = mots_cles[]
		this.id_mot_cle = mot_cle.id_mot_cle;
		this.nom = mot_cle.nom;
		this.nb_emissions_liees = (mot_cle.nb_emissions_liees) ? mot_cle.nb_emissions_liees : 0;
		
		if(this.id_mot_cle > 0)
			this.setStructure();
		else
			this.box_mot_cle.close();

	},

	traite_erreur: function(xhr) {
		alert('Erreur : '+xhr.statusText);
	},

	traite_exception: function(xhr, e) {
		alert('Exception : '+e.message+' : ligne '+e.lineNumber+', fichier '+e.fileName);
	}

	/** Affiche le mot-clé dans son infobox */
	/*affiche_details: function() {
		this.box_mot_cle.body.innerHTML = "";
		this.box_mot_cle.change_sousTitre('Détails du mot-clé');
		this.box_mot_cle.expand();
		this.box_mot_cle.open();
		
		//nom du mot-clé
		var nom = document.createElement('div');
		nom.className = 'mot_cle_nom';
		nom.innerHTML = this.nom;
		
		
		
		this.box_mot_cle.body.appendChild(nom);
	},*/
	
	
	/** Affiche un formulaire de modification du mot-clé */
	/*affiche_form_modif: function() {
		this.box_mot_cle.body.innerHTML = "";
		this.box_mot_cle.change_sousTitre('Modification du mot-clé');
		this.box_mot_cle.expand();
		this.box_mot_cle.open();
		
		//nom du mot-clé
		var nom = document.createElement('input');
		nom.name = 'nom';
		nom.id = 'mot_cle_nom';
		nom.value = this.nom;
		
		//label
		var label_nom = document.createElement('label');
		label_nom.innerHTML = 'Nom : ';
		
		var form = document.createElement('form');
		form.action = 'javascript:;';
		
		
		//submit
		var submit = document.createElement('input');
		submit.type = 'submit';
		submit.value = 'Enregistrer';
		
		
		
		form.appendChild(label_nom);
		form.appendChild(nom);
		form.appendChild(submit);
		this.box_mot_cle.body.appendChild(form);
	}*/
}



/** Ne sert plus ??? */
function open_podcast(num_podcast) {
	alert('ouverture d\'un popup proposant de podcaster les émissions correspondant à ce thème dans i-tunes ou un autre logiciel');
}


