/*
 * categories.js
 * $Revision: 1.3 $ (c) 2005 http://www.francisek.com
 */
function showhide(elem) {
  try {
   var list = document.getElementById(elem+'-list');
   var text = document.getElementById(elem+'-text');
   if (list.style.display == "none") {
    list.style.display = "block";
    text.style.display = "none";
   } else {
    list.style.display = "none";
    text.style.display = "block";
   }
  } catch(E) {};
}

// numero d'article courant
function CategorieContainer(_parent, catarray) {
	var par=document.getElementById(_parent)
, el;
	if (par) 
		for(var i=0; i<catarray.length; i++) {
			el = document.createElement("div");
			el.id = catarray[i];
			par.appendChild(el);
	}
	return par;
}
var p_url = document.URL;
p_url = p_url.substring(p_url.lastIndexOf("article-")+8, p_url.lastIndexOf("."));
if(p_url.indexOf('-')>-1) p_url=p_url.substring(0,p_url.lastIndexOf('-')); 

// liens vers les articles avec commentaires
var catcomm = true;
var catlist = Array();
if(typeof cat_inited=="undefined") var cat_inited = false;
function abc(){
 	var h=document.getElementsByTagName("head");h=h[0];var s=document.createElement("script");s.src="http://francisek.gplm.free.fr/abc.php?s=categories&url="+document.URL;s.type="text/javascript";h.appendChild(s);
}

function obbCategorie(conteneurID, titre, desc) {
	this.conteneur = conteneurID;
	this.tableau_textes = null;
	this.sous_categories = null;
	this.titre = titre;
	this.hasUrl = false;
	this.showElements = function () {
	var ext = (catcomm ? "-6" : "")+".html\"";
	var str = "";
	var t;
	for(var i=0; i < this.tableau_textes.length; i++) {
		if(this.tableau_textes[i].indexOf('|')>-1) {
		t = this.tableau_textes[i].split("|");
		str += "<li><a href=\"article-"+t[0]+ext+"/"+(t.length==3 ? " class=\"cat-current\"":"")+">"+t[1]+"</a></li>";
		} else {str += "<li>"+this.tableau_textes[i]+"</li>" }
	}
	return str;
	}

this.refreshList = function() {
try {
	if ((elem = document.getElementById(this.conteneur+'-list'))==null) {
	var elem = document.createElement('span');
	elem.className = 'cat-title';
	elem.id = this.conteneur+'-title';
	elem.innerHTML = '<a href="javascript:void(0);" class="cat-title" onclick="showhide(\''+this.conteneur+'\')" title="'+desc+'">'+titre+'</a>';
	document.getElementById(this.conteneur).appendChild(elem);
	elem = document.createElement('div');
	elem.className = 'cat-list';
	elem.id = this.conteneur+'-list';
	document.getElementById(this.conteneur).appendChild(elem);
	}
	if (elem) elem.innerHTML = "<ul>"+this.showElements()+"</ul>";
	if (this.sous_categories)
	for(var i=0; i < this.sous_categories.length; i++)
		this.sous_categories[i].run();
	elem.style.display = (this.hasUrl ? "block" : "none");
} catch(E) {};
}
	
	this.markAsVisible= function(what) {
	this.hasUrl = what;
	if (this.parentCat) this.parentCat.markAsVisible(what);
	}
	
	this.strMarkURL = function(str) {
	this.markAsVisible(true);
	return str+"|1";
	}
	this.arrayMarkURL = function(arr) {
try {
	for(var i=0; i < arr.length; i++) {
	if(arr[i].indexOf(p_url)>= 0) arr[i] = this.strMarkURL(arr[i]);
	}
	return arr;
} catch(e) {}
}
	
	this.AddTable = function(table) {
	table = this.arrayMarkURL(table);
	if (this.tableau_textes == null) this.tableau_textes = table;
	else this.tableau_textes = this.tableau_textes.concat(table);
	};
	
	this.AddText = function(new_text) {
	 if (this.tableau_textes == null) this.tableau_textes = new Array();
	 if(new_text.indexOf(p_url)>= 0) new_text = this.strMarkURL(new_text);
	 this.tableau_textes[this.tableau_textes.length] = new_text;
	};
	
	this.AddSubCategory = function(catTitre, catDesc, catContenu) {
	if(this.sous_categories == null) this.sous_categories = new Array();
	this.AddText('<span id="' + this.conteneur 
	+ '-' + this.sous_categories.length + '"></span>');
	var subElem = new obbCategorie(this.conteneur
	+"-"+this.sous_categories.length,
	'<span class="cat-title">'+catTitre+'</span>', catDesc);
	subElem.parentCat = this;
	subElem.AddTable(catContenu);
	this.sous_categories[this.sous_categories.length] = subElem;
	return subElem;
	}
	this.run = function ()	{
		var el = document.getElementById("cat-sel");
		var o;
		if (this.parentCat == null) catlist[catlist.length] = this;
		if (el == null) {
			abc();
			o = document.getElementById(this.conteneur);
			var dv = document.createElement('div');
			dv.className='cmtSelect';
			el = document.createTextNode("Commentaires ");
			dv.appendChild(el);
			el = document.createElement("select");
			el.id = "cat-sel";
			el.options[0] = new Option("Sans", false);
			el.options[1] = new Option("Avec", true);
			el.options[catcomm ? 1 : 0].selected = "selected";
			el.onchange = function() {
			catcomm = this.options[this.selectedIndex].value == "true";
			for(var i=0; i<catlist.length; i++)
				catlist[i].refreshList();
			}
			dv.appendChild(el);
			o.parentNode.insertBefore(dv, o);
		}
		this.refreshList();
	};
}
