// add triggers and hide divs
function add_triggers()
{
	var tgts = document.getElementsByClassName('flip');
	for (var i=0; i < tgts.length; i++) 
	{
		// assign onclick
		tgts[i].onclick = function() { slide_next_block(this); return false; }
		
		// hide next, definition lists are unique
		if(tgts[i].parentNode.nodeName == 'DT')
		{
			var dd = get_next(tgts[i].parentNode,'DD');
			if(dd && dd.style.display != 'none') { dd.style.display = 'none'; }
		}
		else
		{
			var div = get_next(tgts[i].parentNode,'DIV');
			if(div && div.style.display != 'none') { div.style.display = 'none'; }
		}
	}
}

// slide the element up or down
function slide_next_block(obj)
{
	// find target
	if(obj.parentNode.nodeName == 'DT') { var tgt = get_next(obj.parentNode,'DD'); }
	else { var tgt = get_next(obj.parentNode,'DIV'); }
	
	// slide
	if(tgt && tgt.style.display == 'none') 
	{ 
		new Effect.BlindDown( tgt, { queue: { position: 'front', scope: 'items' }, duration:0.5 }); 
		obj.className = 'unflip';
		if (obj.innerHTML=='read more') {obj.innerHTML='read less';}
	}
	else if(tgt) 
	{ 
		new Effect.BlindUp( tgt, { queue: { position: 'end', scope: 'items' }, duration:0.5 }); 
		obj.className = 'flip';
		if (obj.innerHTML=='read less') {obj.innerHTML='read more';}
	}
	
}

// find the next element
function get_next(src,objType)
{	
	obj = src;
	
	while(obj.nodeName != objType) 
	{ 
		if(obj.nextSibling) { obj = obj.nextSibling; }
		else { return false; }
	}
	
	return obj;
}

window.onload = add_triggers;