/**
 * Objet de gestion d'affichage dynamique des div
 * 
 * @author S.BIZET <sebastien@sonovente.com>
 */
// Code compatible version 1.4
if ( Prototype.Version < '1.6' )
{
	var Switch = Class.create();
	
	Switch.prototype = {
		initialize: function(boolMulti)
		{
			this.Version 	= '1.0';
			this.CurrentDiv	= new Array();
			this.Multi		= (boolMulti != undefined) ? boolMulti : false;
		},
	
		show: function(divName)
		{
			if ( divName == '' || document.getElementById(divName) == undefined )
			{
				return false;
			}
			
			if ( !this.Multi && (this.CurrentDiv.length >= 1) )
			{
				return false;
			}
			
			document.getElementById(divName).style.display='block';
			this.CurrentDiv.push(divName);
			
			return true;
		},
		
		hide: function(divName)
		{
			if ( divName == '' || document.getElementById(divName) == undefined )
			{
				return false;
			}
			
			for ( var k=0; k < this.CurrentDiv.length; k++ )
			{
				if (this.CurrentDiv[k] == divName)
				{
					this.CurrentDiv.splice(k,1);
				}
			}
			
			document.getElementById(divName).style.display = 'none';
			
			return true;
		},
		
		position: function(divName, posX, posY)
		{
			if ( divName == '' || document.getElementById(divName) == undefined )
			{
				return false;
			}
			
			document.getElementById(divName).style.top = parseInt(posY) + 'px';
			document.getElementById(divName).style.left = parseInt(posX) + 'px';
			
			this.change(divName);
			
			return true;
		},
		
		move: function(divName, posX, posY)
		{
			if ( divName == '' || document.getElementById(divName) == undefined )
			{
				return false;
			}
			
			return true;
		},
		
		change: function(divName)
		{
			if ( !this.Multi )
			{
				for ( var k=0; k < this.CurrentDiv.length; k++ )
				{
					this.hide(this.CurrentDiv[k]);
				}
			}
			else
			{
				for ( var k=0; k < this.CurrentDiv.length; k++ )
				{
					if (this.CurrentDiv[k] == divName)
					{
						this.hide(divName);
						return true;
					}
				}
			}
		
			this.show(divName);
			
			return true;
		},
		
		is_visible: function(divName)
		{
			for ( var k=0; k < this.CurrentDiv.length; k++ )
			{
				if ( this.CurrentDiv[k] == divName)
				{
					return ( document.getElementById(divName).style.display == 'block');
				}			
			}
		
			return false;
		}
	};
}
// Code compatible vers 1.6
else
{
	Switch = Class.create({
		initialize: function(boolMulti)
		{
			this.Version 	= '1.0';
			this.CurrentDiv	= new Array();
			this.Multi		= (boolMulti != undefined) ? boolMulti : false;
		},
	
		show: function(divName)
		{
			if ( divName == '' || $(divName) == undefined )
			{
				return false;
			}
			
			if ( !this.Multi && (this.CurrentDiv.length >= 1) )
			{
				return false;
			}
			
			$(divName).style.display='block';
			this.CurrentDiv.push(divName);
			
			return true;
		},
		
		hide: function(divName)
		{
			if ( divName == '' || $(divName) == undefined )
			{
				return false;
			}
					
			for ( var k=0; k < this.CurrentDiv.length; k++ )
			{
				if (this.CurrentDiv[k] == divName)
				{
					this.CurrentDiv.splice(k,1);
				}
			}
			
			$(divName).style.display = 'none';
			
			return true;
		},
		
		position: function(divName, posX, posY)
		{
			if ( divName == '' || document.getElementById(divName) == undefined )
			{
				return false;
			}
			
			$(divName).style.top = parseInt(posY) + 'px';
			$(divName).style.left = parseInt(posX) + 'px';
			
			this.change(divName);
			
			return true;
		},
		
		move: function(divName, posX, posY)
		{
			if ( divName == '' || $(divName) == undefined )
			{
				return false;
			}
			
			return true;
		},
		
		change: function(divName)
		{
			if ( !this.Multi )
			{
				for ( var k=0; k < this.CurrentDiv.length; k++ )
				{
					this.hide(this.CurrentDiv[k]);
				}
			}
			else
			{
			
				for ( var k=0; k < this.CurrentDiv.length; k++ )
				{
					if (this.CurrentDiv[k] == divName)
					{
						this.hide(divName);
						return true;
					}
				}
			}
		
			this.show(divName);
			return true;
		},
		
		is_visible: function(divName)
		{
			for ( var k=0; k < this.CurrentDiv.length; k++ )
			{
				if ( this.CurrentDiv[k] == divName)
				{
					// Fix an ugly bug if divName is a number
					if ( isNaN(divName) )
					{
						return ( $(divName).style.display == 'block' );
					}
					else
					{
						return ( $(divName.toString() ).style.display == 'block' );
					}
				}			
			}
		
			return false;
		}
	});
}