var news, prev, next, ID = 0, timer, t;
var before = null, after;
install();

function install() {
	if(document.getElementById) {
		news = document.getElementById("news");
		prev = document.createElement("a");
		next = document.createElement("a");
		prev.setAttribute("id", "prev");
		next.setAttribute("id", "next");
		prev.onclick = click;
		next.onclick = click;
		news.appendChild(prev);
		news.appendChild(next);
		rotate();
	}
}

function rotate() {
	clearInterval(t);
	timer = setInterval("sendRequest('prev', ID)", 8000);
}

function click() {
	clearInterval(timer);
	sendRequest(this.getAttribute("id"), ID);
	t = setInterval("rotate()", 10000);
	return false;
}

function sendRequest(term, id) {
	clearInterval(t);
	var xmlhttp = (window.XMLHttpRequest ? new XMLHttpRequest : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : false));
	if (!xmlhttp) {
		return false;
	}
	xmlhttp.open("GET", '/zpravy/getNews.php?dir=' + term + '&id=' + id);
	xmlhttp.onreadystatechange = function() {
		getResponse(xmlhttp);
	};
	xmlhttp.send("");
	return true;
}

function getResponse(xmlhttp) {
	if(xmlhttp.readyState == 4) {
		if(before != null) before.parentNode.removeChild(before);
		
		before = news.getElementsByTagName("div")[0];
		after = document.createElement("div");
		after.innerHTML = xmlhttp.responseText;
		before.setAttribute("id", "before");
		after.setAttribute("id", "after");
		news.appendChild(after);
		ID = after.getElementsByTagName("h4")[0].getAttribute("id");
		news.appendChild(prev);
		news.appendChild(next);
		fade();
	}
}

function fade() {
	if(typeof after.style.opacity != 'undefined') var otype = 'w3c';
	else if(typeof after.style.MozOpacity != 'undefined') otype = 'moz';
	else if(typeof after.style.KhtmlOpacity != 'undefined') otype = 'khtml';
	else if(typeof after.filters == 'object') otype = 'ie';
	else {
		before.parentNode.removeChild(before);
		before = null;
		otype = 'none';
	}
	
	if(otype != 'none') doFade(0, otype);
}

function doFade(value, otype) {
	value += .1;
	setFade(before, 1 - value, otype);
	setFade(after, value, otype);
	if(value < 1) {
		setTimeout(function() { doFade(value, otype); }, 50);
	} else {
		before.parentNode.removeChild(before);
		before = null;
	}
}

function setFade(o, value, otype) {
//	alert(value);
	switch(otype) {
		case "ie": o.filters.alpha.opacity = value*100; break;
		case "khtml": o.style.KhtmlOpacity = value; break;
		case "moz": o.style.MozOpacity = (value == 1 ? 0.9999999 : value); break;
		default: o.style.opacity = (value == 1 ? 0.9999999 : value); break;
	}
}
		
