
/*
 *  Glossary
 */

var GlossaryIndex = new Class({
	
	options: {
	},
	
	initialize: function(options){
		this.setOptions(options);
		this.addEvents();
	},
		
	addEvents: function(){

  	// Add events to all objects on a page
		$$('#a21glossary .index-rule a').each(function(element){

				element.addEvent('click', function(e){
					e = new Event(e);
					e.stop();
					var currentindex = '';
					
					if(element.hasClass('indexAlllink')){
						// show all
						$$('#a21glossary .index-box').each(function(el){
							var fx = new Fx.Styles(el, {duration:500, wait:false, transition: Fx.Transitions.Quad.easeIn});
							fx.element.setStyle('opacity', 0);
							fx.element.setStyle('display', 'block');	
							fx.start({'opacity': 1});
						});
								
						$$('#a21glossary .index-rule a').each(function(el){
							el.removeClass('current');
						});
						
						element.addClass('current');
												
					} else {
						// show just special index
						$$('#a21glossary .index-box').each(function(el){
							el.setStyle('display','none');
						});
							
								
						$$('#a21glossary .index-rule a').each(function(el){
							el.removeClass('current');
						});
															
						element.addClass('current');
						
						currentindex = element.getProperty('href');
						currentindex =  currentindex.match(/#.*$/);
						currentindex =  currentindex[0].substr(1);
						currentelement = $$('.'+currentindex)[0];
						
						var fx = new Fx.Styles(currentelement, {duration:500, wait:false, transition: Fx.Transitions.Quad.easeIn});
						fx.element.setStyle('opacity', 0);
						fx.element.setStyle('display', 'block');	
						fx.start({'opacity': 1});
						
						
					}
					
				});
		})
	}
});

GlossaryIndex.implement(new Events);
GlossaryIndex.implement(new Options);
GlossaryIndex.implement(new Chain);


window.addEvent('domready', function() {
	
	var el = $('a21glossary');
	if($type(el)=='element'){
		new GlossaryIndex();
	}	
});

