//for more toggle effects
Effect.PAIRS = {
	'slide': ['SlideDown','SlideUp'],
	'blind': ['BlindDown','BlindUp'],
	'appear': ['Appear','Fade'],
	'phase': ['AjPhase','AjPhase'],
	'simple': ['Simple','Simple'],
	'apblind': ['Appear','BlindUp']
};
//toggle classname
function toggleClassName(element, classname) {
	if(Element.hasClassName(element, classname)) Element.removeClassName(element, classname);
	else Element.addClassName(element, classname);
}

//plugin script
Effect.plugin = function(element, effect, me, show, hide) {
	element = $(element);
	if (element.style.display != 'none') {
		me.innerHTML = show;
	} else {
		me.innerHTML = hide;
	}
	toggleClassName(me, 'collapsed');
	new Effect.toggle(element, effect, arguments[5] || {});
};

//combo effect for blog menu or ...
Effect.Collapse = function(element, effect, me) {
    element = $(element);
	new Effect.toggle(element, effect, arguments[3] || {});
	toggleClassName(me, 'collapsed');
};

//just show/hide
Effect.Simple = function(element) {
  element = $(element);
	if (element.style.display == 'none') 
	element.style.display = 'block';
	else	element.style.display = 'none'; 
};

//from k2(http://getk2.com) theme
Effect.AjPhaseIn = function(element) {
  element = $(element);
  new Effect.BlindDown(element, arguments[1] || {});
  new Effect.Appear(element, '', arguments[2] || arguments[1] || {});
};

Effect.AjPhaseOut = function(element) {
  element = $(element);
  new Effect.Fade(element, arguments[1] || {});
  new Effect.BlindUp(element, '', arguments[2] || arguments[1] || {});
};

//to make 'Phase' work with toggle
Effect.AjPhase = function(element) {
  element = $(element);
  if (element.style.display == 'none')
    new Effect.AjPhaseIn(element, arguments[1] || {}, arguments[2] || arguments[1] || {});
  else new Effect.AjPhaseOut(element, arguments[1] || {}, arguments[2] || arguments[1] || {});
};

function init_Spoiler() {
	$$('a.spoiler-tgl').each(function(tgl) {
		var el = tgl.id.replace('_tgl', '');
		el = $(el);
		var opt = tgl.getAttribute('rev').split('||');
		tgl.onclick = function(){
			new Effect.plugin(el, opt[0], tgl, opt[1], opt[2], {duration: parseInt(opt[3])/1000});
			return false;
		}
		if(el.style.display !== 'none') {
			new Effect.plugin(el, opt[0], tgl, opt[1], opt[2], {duration: parseInt(opt[3])/1000});
		}
	});
}

var Spoiler = Effect;

Event.observe(window, 'load', init_Spoiler, true);