/* FORMTOGGLE (crap) */

var formToggler = new Class({

	initialize: function(){

		this.elements	= new Array($$('div.element_1'), $$('div.element_2'));
		this.trigger	= new Array($$('span.trigger_1'), $$('span.trigger_2'));
		this.triggerId	= '';
		this.elementId	= '';

		this.setElementId(this.elements);
	},

	setElementId: function(elements){
		elements.each(function(elementItem, elementIndex){
			elementItem.each(function(item, index){
				this.elementId = 'level' + elementIndex + '_id' + index;
				item.setProperty('id', 'hidden_' + this.elementId);
			}.bind(this));
		}.bind(this));

		this.setTriggerId(this.trigger);
	},

	setTriggerId: function(trigger){
		trigger.each(function(triggerItem, triggerIndex) {
			triggerItem.each(function(item, index) {
				this.triggerId = 'level' + triggerIndex + '_id' + index;
				this.setToggle(item, index);
				item.setProperty('id', 'triggerId_' + this.triggerId);
			}.bind(this));
		}.bind(this));
	},

	setToggle: function(item, index){
		var hiddenElement = $('hidden_' + this.triggerId);
		var parentElement = hiddenElement.getParent('fieldset').getElements('div[id^=hidden_level0_id'+index+']');

		var hiddenSlide = new Fx.Slide(hiddenElement, {
			duration: 600,
			'onComplete':
				function(parentElement) {
					var hidden = parentElement.getParent().getStyle('height') == '0px' ? true : false;
					parentElement.getParent().setStyle('height','');
					if(window.ie6 && hidden) parentElement.getParent().setStyle('height','0px');
				}
		});
		hiddenSlide.hide();
		item.addEvent('click', function(){
			hiddenSlide.toggle();
		});
	}
});

window.addEvent("domready", function() {
	//formtoggler
	new formToggler();

	//checkboxes
	var checkBoxes = $$('input[type^=checkbox]');
	checkBoxes.addEvent('click', function(){

		if (this.getParent().getParent().getProperty('class') == 'element_1' || this.getParent().getParent().getProperty('class') == 'element_2'){

			var parentCheckBox = this.getParent().getParent().getParent().getPrevious().getPrevious().getPrevious().getPrevious();
			if(parentCheckBox.getProperty('checked')){
				parentCheckBox.removeProperty('checked')
			}
			if(this.getParent().getParent().getProperty('class') == 'element_2'){
				var parentCheckBox2 = parentCheckBox.getParent().getParent().getParent().getPrevious().getPrevious().getPrevious().getPrevious();
				if(parentCheckBox2.getProperty('checked')){
					parentCheckBox2.removeProperty('checked')
				}
			}
		}

		if(this.getParent().getParent().getProperty('class') != 'element_2'){
			var childBox = this.getNext().getNext().getNext().getNext().getChildren();
			childBox.each(function(item){
				var childBox2 = item.getChildren();
				var itemParent = item;
				childBox2.each(function(item2){
					var checkBoxElement = item2.getElements('input')
					if(itemParent.getProperty('checked')){
						checkBoxElement.setProperty('checked', 'checked');
					}else{
						checkBoxElement.removeProperty('checked');
					}

				})

			})
		}
	});

});
