var currentFadeAmount = 0;
var fadeSpeed = 0.2;
var fadeInterval = 40;

var scrollerInterval=25;
var scrollerSpeed=0.3;

var currentPortfolioPage = 'lyhytelokuvat';

var pagePositions=new Array;
var currentPage = 'front';
pagePositions['front']=0;
pagePositions['portfolio']=-522;
pagePositions['everyday']=-1044;
pagePositions['links']=-1566;

var targetY=0;
var currentY=0;

function detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
}

function setCurrentPage(page) {
	closeMediaPlayer();
	currentPage = page;
	targetY=pagePositions[page];
	scroll();
}
function scroll() {
	if(currentY!=targetY) {
		var newY=currentY*(1-scrollerSpeed)+targetY*scrollerSpeed;
		var dY=newY-targetY;
		if(dY<0)dY=-dY;
		if(dY<2) {
			newY=targetY;
		}
		currentY=newY;
		document.getElementById('content').style.top=newY+'px';
		setTimeout('scroll()',scrollerInterval);
	}
}

function gotoEveryday() {
	setCurrentPage('everyday');
	resetPortfolioCategory('arki');
}

function changePortfolioPage(page) {
	if(currentPage=='portfolio') {
		if(currentPortfolioPage != page) {
			currentPortfolioPage = page;
			showPortfolioCategory(page);
		}
		else {
			resetPortfolioCategory(page);
			closeMediaPlayer();
		}
	}
	else {
		currentPortfolioPage = page;
		setCurrentPage('portfolio');
		changePortfolioCategory(page);
	}
}

function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();

	if (node == null) node = document;

	if (tag == null) tag = '*';

	var els = node.getElementsByTagName(tag);
	
	var j = 0;

	for (var i = 0; i < els.length; i++) {
		if (els[i].className == searchClass) {
			classElements[j] = els[i];
			j++;
		}
	}

	return classElements;
}

function gotoNewsPage(page) {
	var newsElement = document.getElementById('front_news');

	var newsPages = getElementsByClass('news_page', newsElement);

	for (var i = 0; i < newsPages.length; i++) {
		if (i == page) {
			newsPages[i].style.display = 'block';
		}
		else newsPages[i].style.display = 'none';
	}
}

function changePortfolioCategory(id) {
	resetPortfolioCategory(id);

	var categoryElements = getElementsByClass('portfolio_category', null);

	for (i = 0; i < categoryElements.length; i++) {
		categoryElements[i].style.visibility = 'hidden';
	}

	document.getElementById('portfolio_category_'+id).style.visibility = 'visible';
}

function gotoPortfolioEntryListPage(categoryId, page) {
	var categoryElement = document.getElementById('portfolio_category_'+categoryId);

	var entryLists = getElementsByClass('portfolio_entrylist', categoryElement);

	for (var i = 0; i < entryLists.length; i++) {
		if (i == page) {
			entryLists[i].style.display = 'block';
		}
		else entryLists[i].style.display = 'none';
	}
}

function resetPortfolioCategory(id) {
	var categoryElement = document.getElementById('portfolio_category_'+id);

	getElementsByClass('portfolio_category_info', categoryElement)[0].style.display = 'block';

	var entries = getElementsByClass('portfolio_entry', categoryElement);

	for (i = 0; i < entries.length; i++) {
		entries[i].style.display = 'none';
	}

	var entryLists = getElementsByClass('portfolio_entrylist', categoryElement);

	gotoPortfolioEntryListPage(id, 0);
}

function showPortfolioCategory(id) {
	currentFadeAmount+=fadeSpeed;
	if(currentFadeAmount<1.5)setTimeout('showPortfolioCategory("'+id+'")',fadeInterval);
	else {
		currentFadeAmount = 1;
		closeMediaPlayer();
		changePortfolioCategory(id);
		fadeBack();
	}
	var fadeLayerOpacity = currentFadeAmount;
	if(fadeLayerOpacity>1) fadeLayerOpacity = 1;

	var fadeLayer = document.getElementById('fade_layer');
	fadeLayer.style.display = 'block';
	fadeLayer.style.opacity = fadeLayerOpacity;
	fadeLayer.style.filter = 'alpha(opacity='+Math.floor(fadeLayerOpacity*100)+')';
}

function fadeBack() {
	currentFadeAmount-=fadeSpeed;
	if(currentFadeAmount>0)setTimeout('fadeBack()',fadeInterval);
	else {
		currentFadeAmount = 0;
		document.getElementById('fade_layer').style.display = 'none';
	}
	var fadeLayerOpacity = currentFadeAmount;
	if(fadeLayerOpacity>1) fadeLayerOpacity = 1;
	document.getElementById('fade_layer').style.opacity = fadeLayerOpacity;
	document.getElementById('fade_layer').style.filter = 'alpha(opacity='+Math.floor(fadeLayerOpacity*100)+')';
}

function showPortfolioEntry(id) {
	var entryElement = document.getElementById(id);

	var categoryElement = entryElement.parentNode;

	var infoElement = getElementsByClass('portfolio_category_info', categoryElement)[0];
	infoElement.style.display = 'none';

	var entries = getElementsByClass('portfolio_entry', categoryElement);

	for (i = 0; i < entries.length; i++) {
		entries[i].style.display = 'none';
	}

	entryElement.style.display = 'block';


	gotoInfoPage(0, id);
}

function gotoInfoPage(page, entry) {
	var pageElement = document.getElementById(entry+"_info_"+page);

	var infoElement = pageElement.parentNode;

	for (var i = 0; i < infoElement.childNodes.length; i++) {
		if(infoElement.childNodes[i].tagName == 'DIV') {
			infoElement.childNodes[i].style.display = 'none';
		}
	}

	pageElement.style.display = 'block';
}

var currentGallery = 0;

function changePicture(id) {
	var mediaContainerElement = document.getElementById('media_container');

	var photoElement = document.getElementById('photo');
	photoElement.style.visibility = 'hidden';
	photoElement.src = 'files/photos/'+id+'_resized.jpg';

	photoElement.onload = function() {
		this.style.top = -photoElement.height/2 + "px";
		this.style.left = -photoElement.width/2 + "px";
		this.style.visibility = 'visible';
		this.parentNode.parentNode.style.display = 'block';
	}

	var mediaPlayerElement = document.getElementById('media_player');

	var nextButton = document.getElementById('media_player_next');
	var previousButton = document.getElementById('media_player_previous');
	nextButton.style.visibility = 'hidden';
	previousButton.style.visibility = 'hidden';

	for (var i = 1; i < photosGalleries[currentGallery].length; i++) {
		if(id == photosGalleries[currentGallery][i-1]) {
			nextButton.firstChild.href = 'javascript:changePicture('+photosGalleries[currentGallery][i]+');';
			nextButton.style.visibility = 'visible';
		}
	}

	for (var i = 0; i < photosGalleries[currentGallery].length-1; i++) {
		if(id == photosGalleries[currentGallery][i+1]) {
			previousButton.firstChild.href = 'javascript:changePicture('+photosGalleries[currentGallery][i]+');';
			previousButton.style.visibility = 'visible';
		}
	}
}

function viewPicture(id, gallery) {
	if (id == -1) {
		id = photosGalleries[gallery][0];
	}

	var mediaContainerElement = document.getElementById('media_container');
	currentGallery = gallery;

	mediaContainerElement.innerHTML = '<a href="javascript:closeMediaPlayer();"><img id="photo" src="files/photos/'+id+'_resized.jpg" alt="" /></a>';
	var photoElement = document.getElementById('photo');
	photoElement.style.visibility = 'hidden';

	photoElement.onload = function() {
		this.style.top = -photoElement.height/2 + "px";
		this.style.left = -photoElement.width/2 + "px";
		this.style.visibility = 'visible';
	}

	var mediaPlayerElement = document.getElementById('media_player');

	var nextButton = document.createElement('div');
	nextButton.id = 'media_player_next';
	

	nextButton.innerHTML = '<a href="javascript:changePicture('+photosGalleries[currentGallery][0]+');"><span>seuraava &gt;&gt;</span></a>';
	mediaContainerElement.appendChild(nextButton);

	var previousButton = document.createElement('div');
	previousButton.id = 'media_player_previous';
	previousButton.innerHTML = '<a href="javascript:changePicture('+photosGalleries[currentGallery][0]+');"><span>&lt;&lt; edellinen</span></a>';
	mediaContainerElement.appendChild(previousButton);

	document.getElementById('media_player').style.display = 'block';

	changePicture(id);
}


function showVideo(id) {
	if(detectMacXFF()) {
		var mediaBackgroundElement = document.getElementById('media_player_background');
		mediaBackgroundElement.style.background = "url('img/media_player_background.png')";
		mediaBackgroundElement.style.opacity = '1';
		mediaBackgroundElement.style.filter = 'none';
	}
	var mediaContainerElement = document.getElementById('media_container');
	mediaContainerElement.innerHTML = '<div id="youtube_video_container"><object width="425" height="350" class="youtube_video"><param name="movie" value="http://www.youtube.com/v/'+id+'"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/'+id+'" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></div>';
	document.getElementById('media_player').style.display = 'block';
}
function closeMediaPlayer() {
	var mediaContainerElement = document.getElementById('media_container');
	mediaContainerElement.innerHTML = '';
	document.getElementById('media_player').style.display = 'none';
}