//______________________________ init ______________________________

addEvent(window, "load", init);

function init() {

	initNewsScroll();
	
	// preload semi transparent bg
	var loadImg = new Image();
	loadImg.src = 'images/semiTransparent.png';
	
	//loadPlayers();
	
	
			
	return true;
	
}



//____________________________ player ____________________________ 

function getUpdate(type, arg1, arg2) {
    switch(type) {
        case "item":
            //setNewEpisode(arg1);
        break;
    }
}




//____________________________ news ____________________________

// load news
var currentNewsNr = false;
var loadingNews = false;
// select news
var newsRefs = new Array;
var currentSelected;
var newsOffset;
var maxNewsNr;

function initNewsScroll() {
	
	
	// --- set key controls
	document.onkeydown = keyListener;
	if (document.layers) window.captureEvents(Event.KEYDOWN);
	
	document.onkeyup = resetKey;
	if (document.layers) window.captureEvents(Event.KEYUP);
	
	
	// --- set news vars
	
	newsOffset = $('newsWrap').offsetTop;
	
	var allDiv = $('newsWrap').getElementsByTagName('div');
	
	
	currentNewsNr = 0;
	
	// seek first news item
	for (var i = 0; i < allDiv.length; i++) {
		
		if (allDiv[i].className == 'newsItem') {
			
			currentNewsNr = parseInt(allDiv[i].id.substr(5, allDiv[i].id.length));
			newsRefs.push(allDiv[i]); 
			
			if (!maxNewsNr)
				maxNewsNr = parseInt(allDiv[i].id.substr(5, allDiv[i].id.length));
			
			//break;
		}
		
	}
	
	
	// --- set scroll function
	
	$('contentLayer').onscroll = function() {
		
		
		// - check offset
		selectNewsItem();
		
		
		// - get news
		if (this.scrollHeight - (this.scrollTop + this.clientHeight) > 300)
			return;
			
			
		if (loadingNews) 
			return;
		
		
		if ((currentNewsNr - 1) <= 0)
			return;
		
			
		requestNews(currentNewsNr - 1);
		
		
	}
	
	
	// set current item
	selectNewsItem();
	
	
}

var letThrough = true;
function keyListener(e){
	
	if(!letThrough)
		return false;;
		
	if(!e){
		//for IE
		e = window.event;
	}
	
	//alert(e);
	
	if(e.keyCode==38){
		browseNews('previous');
		letThrough = false;
	}
	
	if(e.keyCode==40){
		browseNews('next');
		letThrough = false;
	}
	
	if (!letThrough)
		preventDefault();

	
}

function resetKey() {
	letThrough = true;
}

function preventDefault(e) {
	if (e && e.preventDefault) {
		e.preventDefault();
	} else if (window.event) {
		window.event.returnValue = false;
	}
}


function selectNewsItem() {
	
	var cLayer = $('contentLayer');
	
	if (cLayer.scrollTop + (cLayer.clientHeight / 2) < newsOffset) {
		
		// news inactive
		resetNews();

	}
	
	
	for (var i =0; i < newsRefs.length; i++) {
		
		
		if (cLayer.scrollTop + (cLayer.clientHeight / 2) > newsOffset + newsRefs[i].offsetTop &&
			cLayer.scrollTop + (cLayer.clientHeight / 2) < (newsOffset + newsRefs[i].offsetTop + newsRefs[i].offsetHeight + newsRefs[i].style.marginBottom)) {
			
			allNewsDiv = newsRefs[i].getElementsByTagName('div');
	
			for (var j = 0; j < allNewsDiv.length; j++) {
						
				if (allNewsDiv[j].className == "message") {
					Element.addClassName(allNewsDiv[j], 'selected');
					
					if (currentSelected && currentSelected != allNewsDiv[j])
						Element.removeClassName(currentSelected, 'selected');
					
					currentSelected = allNewsDiv[j];
					
					break;
				}
				
			}
			
		}
			
	}
	
	
}

function resetNews() {
	
	if (currentSelected)
		Element.removeClassName(currentSelected, 'selected');
			
	currentSelected = false;
	//currentNewsNr = maxNewsNr;

}

function requestNews(nr) {
	
	if(!$('loadingNews'))
		return; // page not loaded yet
	
	$('loadingNews').style.display = 'block';
	
	var x = new Date();
	setTimeout("sendRequest('functions/getNews.php?n=" + nr + "&x=" + x.getTime() + "', processNews);", 500);
	
	pageTracker._trackPageview('/news#' + nr);
	
	currentNewsNr--;
	loadingNews = true;
}


function processNews(req) {
	
	var loading = $('loadingNews');
	
	var div = document.createElement("div");
    $('newsWrap').insertBefore(div, loading);
	
    div.innerHTML = req.responseText;
    
    newsRefs.push(div.getElementsByTagName("div")[0]);
    
	$('loadingNews').style.display = 'none';
	loadingNews = false;

	selectNewsItem();
}


function browseNews(direction, link, newsNr) {
			
	if (newsNr) {
		var scrollToDiv = $('news_' + newsNr);
	}
	
	else if (currentSelected) {
		
		var currentNr = parseInt(currentSelected.id.substr(8, currentSelected.id.length));
		
		if (direction == 'previous') {
			if ((currentNr + 1) > maxNewsNr) {
				// scroll to top
				$('contentLayer').scrollTop = 0;
				
			} else {
				var scrollToDiv = $('news_' + (currentNr + 1));
			}
		}
			
		
		else if (direction == 'next') {
			if ((currentNr - 1) < 1)
				return;
				
			var scrollToDiv = $('news_' + (currentNr - 1));
			
			if (!scrollToDiv) {
				requestNews(currentNr - 1);
				scrollToDiv = $('loadingNews');
			}
		}
		
		
	} else {
		var scrollToDiv = $('news_' + currentNewsNr);
	}

	
	if (scrollToDiv) {
		var cLayer = $('contentLayer');
		cLayer.scrollTop = (0, (newsOffset + scrollToDiv.offsetTop + 130 - (cLayer.clientHeight / 2)));
	}
	
	selectNewsItem();
	
}


//____________________________ photos ____________________________


var currentImg = new Array;
var images = new Array;

function loadImage(newsNr, photoNr) {
	
	// --- cache
	if (!images[newsNr])
		images[newsNr] = new Array;
		
	if (images[newsNr][photoNr]) {
		var imgSrc = images[newsNr][photoNr];
	} else {
		
		var p = $('thumb_' + newsNr + '_' + photoNr);
		if (!p) return;
		
		var thumbSrc = $('thumb_' + newsNr + '_' + photoNr).src;
		
		var imgSrc =	thumbSrc.substr(0, thumbSrc.indexOf('thumbs')) + 
						thumbSrc.substr((thumbSrc.indexOf('thumbs') + 7), thumbSrc.length);
	}

	// --- load image
	var p = $('photo_' + newsNr);	
	if (!p)	return;
	
	p.src = imgSrc;
	$('photoDiv_' + newsNr).style.display = "block";
	
	// --- set thumb style
	if (currentImg[newsNr]) {
		var img = $('thumb_' + newsNr + '_' + currentImg[newsNr]);
		Element.removeClassName(img, 'selected');
	}
	
	var thumb = $('thumb_' + newsNr + '_' + photoNr);
	Element.addClassName(thumb, 'selected');
	
	currentImg[newsNr] = photoNr;
	
	setLinks(newsNr, photoNr);
}

function skipImage(newsNr, num) {
	
	var numImages = $('photos_' + newsNr).getElementsByTagName('div').length;
	
	var nextNr = currentImg[newsNr] + num;
	
	if (nextNr >= 1 && nextNr <= numImages)
		loadImage(newsNr, nextNr);
	
}

function closeImage(newsNr) {
	
	if (currentImg[newsNr]) {
		var img = $('thumb_' + newsNr + '_' + currentImg[newsNr]);
		Element.removeClassName(img, 'selected');
	}
	
	
	$('photoDiv_' + newsNr).style.display = "none";
	
	browseNews('', '', newsNr);
}


function setLinks(newsNr, photoNr) {
	
	var numImages = $('photos_' + newsNr).getElementsByTagName('div').length;
	
	var links = $('photoNav_' + newsNr).getElementsByTagName('a');
	var prevLink = links[0];
	var nextLink = links[2];
	
	if (photoNr - 1 < 1)
		disableLink(prevLink);
	else
		enableLink(prevLink);
		
	if (photoNr + 1 > numImages)
		disableLink(nextLink);
	else
		enableLink(nextLink);
		
}

function enableLink(obj) {
	
	Element.removeClassName(obj, 'disabled');
	obj.disabled = '';
}

function disableLink(obj) {
	
	Element.addClassName(obj, 'disabled');
	obj.disabled = 'disabled';
	
}


//____________________________ audio player ____________________________

function audioPlayer(func, obj) {
	
	var audioPlayer = thisMovie("audioPlayer");
	audioPlayer.jsControl(func, 0);
	
}


function thisMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName];
	} else {
		if(document[movieName].length != undefined){
			return document[movieName][1];
		}
		return document[movieName];
	}
}


function setStatus(status) {
	
	if (status == "play")
		$('sideNavPlayImg').src = "images/sideNavPause.gif";
	else
		$('sideNavPlayImg').src = "images/sideNavPlay.gif";
		
}

