var Kaimite_Accordeon = Class.create();

Kaimite_Accordeon.prototype =  {
	initialize:function (Pere, voletInit, styleActif, styleInactif) {
		this.Pere = Pere;
				
		//--> Liste des elements cliquables
		this.initVolets(voletInit);
		this.initElementClic();
	},
	
	initVolets:function (voletInit) {
		//--> On ferme tous les volets
		$$("#" + this.Pere + " dd").invoke("hide");
		$$("#" + this.Pere + " dt").invoke("removeClassName", "enCours");
		$$("#" + this.Pere + " dd").invoke("removeClassName", "enCours");
		
		//--> Si voletIni est "false" on affiche aucun volet i 
		
		if ( voletInit != false ) {
			//--> Si volet init est indefini on ouvre le 1er voler
			var premierVolet = (voletInit != undefined) ? $(voletInit) : $$("#" + this.Pere + " dd")[0];
		
			//--> Test si l'ancre de l'Url correspond a un des volets
			Ancre = this.ancreUrl(document.location);
			if ( Ancre != false ) {
				$$("#" + this.Pere + " dd").each( function ( leVolet ) {
					if ( Ancre == leVolet.id ) {
						premierVolet = leVolet;
					}
				});
			}
		
			$(premierVolet).show();
			$(premierVolet).previous().addClassName("enCours");
			$(premierVolet).addClassName("enCours");
		}
	},
	
	initElementClic: function () {
		var Pere = this.Pere;
		$$("#" + this.Pere + " dt").each( function (elementClic) {
			$(elementClic).firstDescendant().onclick = function () {
				//--> On cherche le volet Ouvert
				voletOuvert = $$('#' + Pere + ' dd.enCours')[0];
				if ( voletOuvert != undefined ) {
					new Effect.BlindUp( voletOuvert, { duration: 0.4 } );
					$(voletOuvert).removeClassName("enCours");
					$(voletOuvert).previous().removeClassName("enCours");
					voletOuvert = voletOuvert.id;
				}
				else {
					voletOuvert = false;
				}
				
				//--> Affichage du bloc demandé
				leVolet = this.href.substring(this.href.lastIndexOf('#'), this.href.length).sub('#', '');
				if ( voletOuvert != leVolet ) {
					new Effect.BlindDown( leVolet, { duration: 0.6 } );
					$(leVolet).addClassName("enCours");
					$(leVolet).previous().addClassName("enCours");
				}
			}
		});
	}, 
	
	ancreUrl: function (chaineURL) {
		urlPage = new String(chaineURL);
		if ( urlPage.lastIndexOf('#') == -1 ) {
			return false;
		}
		else {
			return urlPage.substring(urlPage.lastIndexOf('#'), urlPage.length).sub('#', '');
		}
	}
};