/**
 * CeraBox
 */
window.addEvent('domready', function(){
	var objs = $$('a[rel=lightbox]');
	if (objs.length) {
		var box = new CeraBox();
		box.addItems('a[rel=lightbox]');
	}
});


/**
 * Basket
 */
var Basket = {
	init: function() {
		Basket.initToggle();
		Basket.initAllToggle();
	},
	
	initToggle: function() {
		var objs = $$('.request_product_toggle');
		if (objs.length) {
			objs.each(function(el, index) {
				el.addEvent('click', function(e) { return Basket.toggleInfo(this); })
			});
		}
	},
	
	updateInfo: function() {
		var objs = $$('.request_product');
		var obj = '';
		
		if (objs.length) {
			var active = Basket.read();
			
			objs.each(function(el, index) {
				obj = el.get('id').split('_');
				if ((obj[1] == 'no' && active.contains(obj[0])) ||
				    (obj[1] == 'yes' && !active.contains(obj[0]))) {
					el.hide();
				}
				else {
					el.show();
				}
			});
		}
	},
	
	toggleInfo: function(el) {
		var obj = el.get('id').split('_');
		var active = Basket.read();
		
		$(obj[0] + '_no').toggle();
		$(obj[0] + '_yes').toggle();
		
		if ($(obj[0] + '_yes').isDisplayed()) {
			active.include(obj[0]);
		}
		else {
			active.erase(obj[0]);
		}
		
		Basket.write(active);
		
		return false;
	},
	
	initAllToggle: function() {
		Basket.updateAllToggle();
	},
	
	updateAllToggle: function() {
		if ($$('.productlisting').length) {
			var link = '';
			
			if (Basket.isAllActive()) {
				link = new Element('a#alltoggle', {
					href: '#',
					html: '[Alle entfernen]',
					title: 'Alle Produkte von Anfrage entfernen',
					events: {
						click: function() { return Basket.updateAll('remove'); }
					}
				});
			}
			else {
				link = new Element('a#alltoggle', {
					href: '#',
					html: '[Alle markieren]',
					title: 'Alle Produkte f&uuml;r Anfrage markieren',
					events: {
						click: function() { return Basket.updateAll('add'); }
					}
				});
			}
			
			if ($('alltoggle')) {
				link.replaces($('alltoggle'));
			}
			else {
				var div = new Element('div.text-right');
				div.grab(link, 'top');
				$$('.productlisting')[0].grab(div, 'after');
			}
		}
	},
	
	updateAll: function(todo) {
		var objs = $$('.request_product');
		var obj = '';
		
		if (objs.length) {
			var active = Basket.read();
			
			objs.each(function(el, index) {
				obj = el.get('id').split('_');
				if (todo == 'add') {
					active.include(obj[0]);
				}
				else {
					active.erase(obj[0]);
				}
			});
			
			Basket.write(active);
			Basket.updateInfo();
			Basket.updateAllToggle();
		}
		
		return false;
	},
	
	isAllActive: function() {
		var objs = $$('.request_product');
		var obj = '';
		var ret = true;
		
		if (objs.length) {
			objs.each(function(el, index) {
				obj = el.get('id').split('_');
				if ((obj[1] == 'no') && el.isDisplayed()) {
					ret = false;
				}
			});
		}
		
		return ret;
	},
	
	read: function() {
		var active = Cookie.read('basket');
		
		if (active != null) {
			active = active.split(',');
		}
		else {
			active = new Array();
		}
		
		return active;
	},
	
	write: function(active) {
		if (active.length) {
			Cookie.write('basket', active.join(','));
		}
		else {
			Cookie.dispose('basket');
		}
	}
}

window.addEvent('domready', Basket.init);


/**
 * Contactform
 */
var Contactform =  {
	init: function() {
		var obj = $('contactby');
 		if (obj != null) {
 			Contactform.toggle();
 			obj.addEvent('change', function(event) {
 				event.stop()
 				Contactform.toggle();
 			});
 		}
	},
	
	toggle: function() {
		var selected = $('contactby').getSelected().get('value');
		
		$$('span.email_required').hide();
		$$('span.phone_required').hide();
		$$('span.mailing_required').hide();
		$$('span.' + selected + '_required').show();
	}
}

window.addEvent('domready', Contactform.init);

