// Auteur : Rouches Benot

function tab(container,tag,action,classSelected)
{
	var containerName = container;
	var container = document.getElementById(containerName);
	var tag = tag;
	var elmt = container.getElementsByTagName(tag);
	var action = (action == 'mouseover') ? action : 'click';
	var nb = elmt.length;
	var selected = classSelected;
	
	this.init = function()
	{
		for(var i = 0 ; i < nb ; i++)
		addListener(elmt[i], action, view);
	};

	function view(e)
	{
		/*
		syntaxe DOM / syntaxe MSIE
		*/
		var e = e || window.event;
		var el = e.target || e.srcElement;
		tag = tag.toUpperCase();
		
		if(el.tagName != tag)
		el = findElement(el);

		/*
		on affiche la vue slectionne et on masque les autres
		*/
		if(el.tagName == tag)
		{
			for(var i = 0 ; i < nb ; i++)
			{
				if(elmt[i] == el)
				{
					document.getElementById(containerName + '_' + i).style.display = 'block';
					elmt[i].setAttribute("class",'selected');
					if (document.all) elmt[i].setAttribute("className",selected);
				}
				else
				{
					document.getElementById( containerName + '_' + i ).style.display = 'none';
					elmt[i].setAttribute("class",'');
					if (document.all) elmt[i].setAttribute("className",'');
				}
			}
		}
		
		stopEvent(e);
	}
	
	function findElement(el_)
	{
		el_ = el_.parentNode;
		if(el_.tagName != tag)
		return findElement(el_);
		else
		return el_;
	}
	
	function addListener(element, baseName, handler)
	{
		if(element.addEventListener)
		element.addEventListener(baseName, handler, false);
		else if(element.attachEvent) /* MSIE */ 
		element.attachEvent('on' + baseName, handler);
	}
	
	function stopEvent(e)
	{
   		/* DOM */
		if(e.stopPropagation)
		{
        	e.stopPropagation();
        	e.preventDefault();
    	}
		else /* MSIE */
		{
        	e.cancelBubble = true;
        	e.returnValue = false;
    	}
	} 
}
