// Common JS
var tabCookie;
document.observe('dom:loaded', function() {
	tabCookie = new CookieJar({
		expires: 86400,
		path: '/'
	});
	if (!tabCookie.get('tabs'))
		tabCookie.put('tabs', '');
	initNav();
	initNavShow();
});

function initNav() {
	var voices = $$('.col-left a.voice', '.col-right a.voice');
	voices.each(function(voice) {
		var leveltwo = voice.up().down('.level-two');
		if (leveltwo && voice.up('li').hasClassName('tab')) {
			var ins;
			if (voice.up('li').hasClassName('open') || tabCookie.get('tabs').match(toSlug(voice))) {
				ins = new Element('ins', {'class':'minus'});
				leveltwo.toggleClassName('shown'); // lt
			} else {
				ins = new Element('ins', {'class':'plus'});
				leveltwo.toggleClassName('hidden');
			}
			voice.insert(ins);
			voice.observe('focus', function(e,v) { v.blur(); }.bindAsEventListener(this,voice));
			voice.observe('click', function(e,v) {
				Event.stop(e);
				var label = toSlug(v);
				if (tabCookie.get('tabs').match(label))
					tabCookie.put('tabs', tabCookie.get('tabs').sub(':'+label,''));
			    else	
					tabCookie.put('tabs', tabCookie.get('tabs')+':'+label);
				v.up().down('.level-two').toggleClassName('hidden');
				v.up().down('.level-two').toggleClassName('shown'); // lt
				v.down('ins').toggleClassName('plus');
				v.down('ins').toggleClassName('minus');
			}.bindAsEventListener(this,voice));
		}
	});
}



function initNavShow() {
	var voices = $$('.col-left a.voiceShow', '.voiceShow');
	voices.each(function(voiceShow) {
		var leveltwo = voiceShow.up().down('.level-two');
		//if (leveltwo && voice.up('li').hasClassName('tab')) {
			var ins;
	
		  	ins = new Element('ins', {'id':'minus'});
				leveltwo.toggleClassName('shown'); // lt

			voiceShow.insert(ins);
			voiceShow.observe('focus', function(e,v) { v.blur(); }.bindAsEventListener(this,voiceShow));
			voiceShow.observe('click', function(e,v) {
				Event.stop(e);                                              
				var label = toSlug(v);
				if (tabCookie.get('tabs').match(label))
					tabCookie.put('tabs', tabCookie.get('tabs').sub(':'+label,''));
			    else	
					tabCookie.put('tabs', tabCookie.get('tabs')+':'+label);
				v.up().down('.level-two').toggleClassName('hidden');
				v.up().down('.level-two').toggleClassName('shown'); // lt
				v.down('ins').toggleClassName('plus');
				v.down('ins').toggleClassName('minus');
			}.bindAsEventListener(this,voiceShow));
		//}
	});
}



function toSlug(s) {
	var label = (s.innerHTML.match('<')) ? s.innerHTML.split('<')[0].strip() : s.innerHTML.strip();
	label = label.toLowerCase().gsub(' ','-');
	return label;
}

function panelHandler(panelId, handlerId) {
   	var pHandler = $(handlerId);
   	var panel = $(panelId);
   	Effect.BlindUp(panelId, {duration: 0});
   	pHandler.toggle();
   	pHandler.observe('focus', function(e,a) { a.blur() }.bindAsEventListener(this,pHandler));
   	pHandler.observe('click',  function(e,a,p) {
   		Event.stop(e);
   		var ins = a.down('ins.center');
   		if (ins.innerHTML == EXPAND) {
   			Effect.BlindDown(panelId, {duration: 0.5});
   			ins.update(COLLAPSE);
   		} else {
   			Effect.BlindUp(panelId, {duration: 0.5}); 
   			ins.update(EXPAND);
   		}
    	a.toggleClassName('btn_blue');
    	a.toggleClassName('btn_grey');
   	}.bindAsEventListener(this,pHandler,panel));
}