var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var objects = new Array();
var endHeight = new Array();
var moving = new Array();
var action = new Array();
var image = '';
var header = '';
var body = '';

function slide(node){
	
	var parentNode = node.parentNode;
	var id = parentNode.id;
	
	if(moving[id])return;
	else moving[id] = true;	
	
	image = '';
	header = '';
	body = '';

	for(i=0; i < parentNode.childNodes.length; i++)
	{
		switch(parentNode.childNodes[i].className)
		{
			case 'image':
				image = parentNode.childNodes[i];
				break;
			case 'header':
				header = parentNode.childNodes[i];
				break;
			case 'body':
				body = parentNode.childNodes[i];
				break;
		}
	}
	if (image<'' || header<='' || body<='') return;

	
	if(parentNode.className == "item closed")
	{
		action[id] = "open";		
		parentNode.className = "item open"
		startslide(id,body)
		setCookie(id,'open',365);		
	}
	else
	{
		action[id] = "closed";		
		parentNode.className = "item closed";
		startslide(id,body)
		setCookie(id,'closed',365);		
	}
}

function startslide(id,body){
	objects[id] = body;

	endHeight[id] = parseInt(objects[id].style.height);
	startTime[id] = (new Date()).getTime();

	if(action[id] == "open"){
		objects[id].style.height = "1px";
	}

	objects[id].style.display = "block";

	timerID[id] = setInterval('slidetick(\'' + id + '\');',timerlen);
}

function slidetick(id){
	var elapsed = (new Date()).getTime() - startTime[id];

	if (elapsed > slideAniLen)
	endSlide(id)
	else {
		var d =Math.round(elapsed / slideAniLen * endHeight[id]);
		if(action[id] == "closed")
		d = endHeight[id] - d;

		objects[id].style.height = d + "px";
	}

	return;
}

function endSlide(id){
	clearInterval(timerID[id]);

	if(action[id] == "closed")
		objects[id].style.display = "none";

	objects[id].style.height = endHeight[id] + "px";

	delete(moving[id]);
	delete(timerID[id]);
	delete(startTime[id]);
	delete(endHeight[id]);
	delete(objects[id]);
	delete(action[id]);

	return;
}

function setCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}