var Accordion = Class.create();

Accordion.prototype = 
{
	initialize: function (container,options)
	{
		this.container = $(container);
		this.options = options;
		this.headers = new Array();
		this.contents = new Array();
		this.maxHeight = 600;
		this.width = 200;
		this.visibleIndex = null;
		
		this.headers = Tool.getElementsByClassName(this.container,'DIV','accordionHeader');
		
		for(var i = 0;i < this.headers.length;i++)
		{
			var element = this.headers[i];
		
			if(this.options['width'])
			{
				this.width = this.options['width'];
				element.style.width = this.options['width'] - 4 + 'px';
			}
			if(this.options['headerheight'])
			{
				element.style.height = this.options['headerheight'] + 'px';
			}
			
			element.style.position = 'relative';
			
			element.style.backgroundImage=  "url(" + unescape(config.skin_server) + unescape(config.skin) + "/visbg.gif)";
			
			var handle = document.createElement('IMG');
			handle.style.position = 'absolute';
			handle.style.top = ((this.options['headerheight'] / 2) - 8) + 'px';
			handle.style.left = (this.options['width'] - 17) + 'px';
			handle.style.width = '13px';
			handle.style.height = '13px';
			var src = document.createAttribute('src');
			if((element.id == "categoryHeader") || (element.id == "LegendeHeader")) {
	            src.nodeValue = 'images/minus.gif';						
			}
			else {
				src.nodeValue = 'images/plus.gif';
			}
			handle.setAttributeNode(src);
            
			element.appendChild(handle);
			
			Event.observe(handle,"click",this.clickHandler.bindAsEventListener(this,i));
		}
		
		this.contents = Tool.getElementsByClassName(this.container,'DIV','accordionContent');
		
		for(var i = 0;i < this.contents.length;i++)
		{
			var element = this.contents[i];
			//alert(element.id);
		    
		    //if(i == this.visibleIndex)
		    if((element.id == "categoryContent") || (element.id == "LegendeContent"))
			{
		    	element.style.display = '';
				this.visibleIndex = i;
		    }
		    else
		    {
		    	element.style.display = 'none';
		    }
			if(this.options['width'])
			{
				element.style.width = this.options['width'] +  'px';
			}
		}
    },
    
    getHeaders: function()
    {
    	this.headers = new Array();
		var node = this.container.firstChild;
		while(node != null)
		{	
			if(node.nodeName == 'DIV') 
			{
				this.headers.push(node.firstChild);
			}
			node = node.nextSibling;
		}
    },
    
    clickHandler: function(event,headerIndex)
	{	
		var element = this.contents[headerIndex];
		
		var src = document.createAttribute('src');
		
		if(element.style.display == 'none')
		{
			src.nodeValue = 'images/minus.gif';
			Effect.BlindDown(element,{duration : 0.3});
		}
		else
		{
			src.nodeValue = 'images/plus.gif';
			Effect.BlindUp(element,{duration : 0.3});
		}

		//Element.toggle(element);
		
		var handle = Event.element(event);
		
		handle.setAttributeNode(src);
	},
	
	setHandleIconMinus: function(handleIndex)
	{
	  try 
	  {
	       var tmpheader = this.headers[handleIndex];
           tmpheader.lastChild.src = 'images/minus.gif';
	  } 
	  catch (e) 
	  {}
	}
}
