/**==============================================================================
 * Nom de la classe : Link
 * Description de cette classe : affiche le contenu avec une requête ajax
 * Auteur : Luc Habrant
 * Date de mise à jour : 26-07-2007
 * Version de la librairie prototype : 1.5.0
 *-------------------------------------------------------
 *
 * Propriétés :
 * elt : noeud correspondant à l'objet
 * specId : identifiant du spectacle
 * textId : identifiant du texte
 * click : instance de la méthode onClick
 *-------------------------------------------------------
 *
 * Méthodes :
 * initialize : constructeur
 * setClickEvent : ajoute l'événement on click
 * deleteClickEvent : supprime l'événement on click
 * onClick : événement on click
 * linkStyle : modifie l'apparence du lien
 *-------------------------------------------------------
 *
 * Globales :
 * currentLink : référence à l'objet Lien qui est en jaune
===============================================================================*/

var currentLink;

var Link = Class.create();

Link.prototype = {

	initialize: function(elt, specId, textNum) {
		this.elt = elt;
		this.specId = specId;
		this.textNum = textNum;
		this.click = this.onClick.bindAsEventListener(this);
		
		this.elt.setAttribute('href', '#');
		if (Element.hasClassName(this.elt, 'active'))
			currentLink = this;
		else
			this.setClickEvent();
		
	},
	
	setClickEvent: function() {
		Event.observe(this.elt, 'click', this.click);
	},
	
	deleteClickEvent: function() {
		Event.stopObserving(this.elt, 'click', this.click);
		if (currentLink)
		currentLink.setClickEvent();
	},
	
	onClick: function() {
		doAjax(this.specId, this.textNum);
		this.linkStyle();
		this.deleteClickEvent();
		currentLink = this;
	},
	
	linkStyle: function() {
		Element.addClassName(this.elt, 'active');
		if (currentLink)
		Element.removeClassName(currentLink.elt, 'active');
	}
};


function doAjax(specId, textNum) {
	var url = 'ajax.inc.php';
	var parametres = 'spec=' + specId + '&text=' + textNum;

	var myAjax = new Ajax.Request(
		url,
		{
		parameters: parametres,
		onLoading: loading,
		onComplete: fill,
		onFailure: alertError
		}
	);
}

function loading(xhr) {
	if (xhr.readyState == 4) return;
	Element.update('sectionContent', '<img src="../required/img/ajax-loader.gif">');
}

function fill(xhr) {
	Element.update('sectionContent', xhr.responseText);
	imgCycleCount = 0;
	loadFn();
}

function alertError(xhr) {
	alert('D&eacute;sol&eacute;, une erreur s\'est produite.');
}

function init() {
	if (!$('mainNav')) return;
	var linksArray = $A($('mainNav').getElementsByTagName('a'));
	if (!linksArray.length) return;
	var url = linksArray[0].getAttribute('href');
	var reg = new RegExp("[?]id=([a-z0-9]*)");
	var specId = (reg.exec(url)[1]);
	var count = 1;
	linksArray/*.findAll(function(elt){return !Element.hasClassName(elt, 'externalLink')})*/.each(function(elt){
			var link = new Link(elt, specId, count);
			count++;
		});
}

Event.observe(window, 'load', init);