/**************************************************
 * CShowDescription, version 0.05
 * Copyright 2007 Ivengi BV. Benelux
 **************************************************/
/*
CONSTRUCTOR
new CShowDescription(DivTargetContainer,DivDescriptionContainer);
DivTargetContainer				-> ID of the DIV where the descriptions have to appear
DivDescriptionContainer		-> class name of the DIV which contains the description

FUNCTIONS
showDescription(SelectedDiv);		-> has to contain the div that contains DivDescriptionContainer
setCurrent(mainContainer,noCurrentClass,CurrentClass)  -> make the div show the selected div (<mainContainer> div that contains all divs <noCurrentClass> class for not selected <CurrentClass> class that is selected)
preselectItem										-> define the item that needs to be selected when the page loads	
###########
# EXAMPLE #
###########
<script type="text/javascript" src="CShowDescription.js"></script>
<script type="text/javascript">
	var ShowDescription = new CShowDescription("descriptiontarget","Description");
	ShowDescription.setCurrent("items","Title","TitleCurrent"); 
</script>		
	
<div id="items">
	<div id="item" OnClick="ShowDescription.showDescription(this)">
		<div class="Title">Title 1</div>
		<div class="Description" style="display:none;"><h2>Title 1</h2>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet </div>
	</div>	
	<div id="item" OnClick="ShowDescription.showDescription(this)">
		<div class="Title">Title 2</div>
		<div class="Description" style="display:none;"><h2>Title 2</h2>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet </div>
	</div>	
	<div id="item" OnClick="ShowDescription.showDescription(this)">
		<div class="Title">Title 3</div>
		<div class="Description" style="display:none;"><h2>Title 3</h2>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet </div>
	</div>	
</div>

<div id="descriptiontarget"></div>

%%%%%%% CSS %%%%%%%
#items #item .Title {
 border: 1px dashed #000000;
 width: 120px;
 text-align: center; 
 margin: 15px;
}

#items #item .TitleCurrent {
 border: 1px solid #000000;
 width: 120px;
 text-align: center; 
 margin: 15px;
 background-color: #000000;
 color: #FFFFFF;
}
*/

function CShowDescription(DivTargetContainer,DivDescriptionContainer) 
{
	this.DivTargetContainer          = DivTargetContainer;
	this.DivDescriptionContainer		 = DivDescriptionContainer;
	
	this.bShowCurrent	= false;
	this.noCurrentClass = "";
	this.CurrentClass = "";
	this.mainContainer = "";
}

CShowDescription.prototype.preselectItem = function(divid)
{
	var _this = this;
 	this.addLoadHandler(function(){ _this.selectItem(divid); });	
}

CShowDescription.prototype.selectItem = function(divid)
{
	this.showDescription(document.getElementById(divid));
}

CShowDescription.prototype.setCurrent = function(mainContainer,noCurrentClass,CurrentClass)
{
	this.bShowCurrent = true;
	this.noCurrentClass = noCurrentClass;
	this.CurrentClass = CurrentClass;
	this.mainContainer = mainContainer;
}

CShowDescription.prototype.updateCurrent = function(SelectedDiv)
{
  var mainDiv = document.getElementById(this.mainContainer);
	var aDivs = mainDiv.getElementsByTagName('div');
	for(var i = 0; i < aDivs.length;i++) {	
		if(aDivs[i].className.match(this.CurrentClass)) {
			aDivs[i].className = this.noCurrentClass;
		}
	}
	var aSelectedDivs = SelectedDiv.getElementsByTagName('div');
	for(var i = 0; i < aSelectedDivs.length;i++) {	
		if(aSelectedDivs[i].className.match(this.noCurrentClass)) {
			aSelectedDivs[i].className = this.CurrentClass;
		}
	}
}

CShowDescription.prototype.showDescription = function(SelectedDiv)
{
	if(SelectedDiv == null) {
		return;
	}
	
	var aDivs = SelectedDiv.getElementsByTagName('div');
	var descriptiontext = "";
	for(var i = 0; i < aDivs.length;i++) {	
		if(aDivs[i].className == this.DivDescriptionContainer) {
			descriptiontext = aDivs[i].innerHTML;
		}
	}
	if (this.bShowCurrent) {
		this.updateCurrent(SelectedDiv)
	}
	document.getElementById(this.DivTargetContainer).innerHTML = descriptiontext;
}

CShowDescription.prototype.addLoadHandler = function(handler)
{
	if(window.addEventListener)
	{
		window.addEventListener("load",handler,false);
	}
	else if(window.attachEvent)
	{
		window.attachEvent("onload",handler);
	}
	else if(window.onload)
	{
		var oldHandler = window.onload;
		window.onload = function piggyback()
		{
			oldHandler();
			handler();
		};
	}
	else
	{
		window.onload = handler;
	}
}
