/*
 *	author: WebKitchen.cz; http://www.webkitchen.cz
 */

var frontEnd = {
	init: function() {
		if (document.getElementById('page-previous')) {
			this.initLunches();
		}
	},

	initLunches: function() {
		var i, header, div, divs = document.getElementsByTagName('div');
		for (i = 0; i < divs.length; i++) {
			div = divs[i];
			if (Class.has(div, 'year') && div.id != 'current-year') {
				Class.add(div, 'year-off');
				header = div.getElementsByTagName('h2')[0];
				new Listener(header, 'click', this.toggleLunchYear).listen();
			}
		}
	},

	toggleLunchYear: function() {
		Class.toggle(this.parentNode, 'year-on', 'year-off');
		if (!frontEnd.openedLunch) {
			frontEnd.openedLunch = this.parentNode;
		} else if (Class.has(this.parentNode, 'year-on')){
			Class.replace(frontEnd.openedLunch, 'year-on', 'year-off');
			frontEnd.openedLunch = this.parentNode;
		} else {
			frontEnd.openedLunch = null;
		}
	}

}


var Class = {
	add: function(ele, className) {
		var re = new RegExp('\\b' + className + '\\b');
		if (!re.test(ele.className)) {
			ele.className += ' ' + className;
			return true;
		}
		return false;
	},
	remove: function(ele, className) {
		var re = new RegExp('\\b' + className + '\\b');
		if (re.test(ele.className)) {
			ele.className = ele.className.replace(re, '');
			return true;
		}
		return false;
	},
	replace: function(ele, oldClassName, newClassName) {
		var re = new RegExp('\\b' + oldClassName + '\\b');
		if (re.test(ele.className)) {
			ele.className = ele.className.replace(re, newClassName);
		} else {
			ele.className += ' ' + newClassName;
		}
	},
	toggle: function(ele, className1, className2) {
		if (Class.has(ele, className1)) {
			Class.replace(ele, className1, className2);
		} else {
			Class.replace(ele, className2, className1);
		}
	},
	has: function(ele, className) {
		var re = new RegExp('\\b' + className + '\\b');
		return re.test(ele.className);
	}
}

