/**
*	Tekst Scroller
*/
var Scroller = null, ScrollerX = 0, ScrollerT = 0, w = 0;
function startMove ()
{
	if (!$('scroller')) return;
	w = 0;
	$('scroller').select('li').each(function(e){
		w = w + e.getWidth() + 20;
	});
	$('scroller').setStyle({'width':w+'px'});
	ScrollerX = $('scroller').select('li').first().getWidth() + 20;
	ScrollerT = ScrollerX/30;
	Scroller = new Effect.Move('scroller', { x: -ScrollerX, y: 0, mode: 'relative', afterFinish: moveFirstElement, duration: ScrollerT, fps: 100, transition: Effect.Transitions.linear});
	
	$('scroller').observe('mouseover',pauseMove);
	$('scroller').observe('mouseout',resumeMove);
}
function moveFirstElement()
{
	var temp = $('scroller').select('li').first().remove();
	$('scroller').insert({bottom:temp});
	$('scroller').setStyle({'left':'0px'});
	startMove();
}
function pauseMove()
{
	Scroller.cancel();
}
function resumeMove()
{
	Scroller = new Effect.Move('scroller', { x: -ScrollerX, y: 0, mode: 'relative', afterFinish: moveFirstElement, duration: ScrollerT, fps: 100, transition: Effect.Transitions.linear});
}
document.observe('dom:loaded', startMove);
/**
*	WindowSize
*/
var WindowSize = '1024x768';
function windowSize()
{
	var vh = document.viewport.getHeight();
	var vw = document.viewport.getWidth();
	
	// sizes:
	// 1024x768
	// 1280x960
	// 1600x1200
	// 1920x1280
	if (vh < 769 && vw < 1025) WindowSize = '1024x768';
	else if (vh < 961 && vw < 1281) WindowSize = '1280x960';
	else if (vh < 1201 && vw < 1601) WindowSize = '1600x1200';
	else WindowSize = '1920x1280';
	SetCookie('WindowSize',WindowSize,3);
	$(document.body).removeClassName(WindowSizePrefix+'1024x768').removeClassName(WindowSizePrefix+'1280x960').removeClassName(WindowSizePrefix+'1600x1200').removeClassName(WindowSizePrefix+'1920x1280').addClassName(WindowSizePrefix+WindowSize);
}
document.observe('dom:loaded', windowSize);
Event.observe(document.onresize ? document : window, "resize", windowSize);
/**
*	Thumbnailstrip
*/
var Thumbnails = null, maxSteps = 0, curStep = 1, currentImageCounter = 0, newPage = true;
var activeProject = null, infoboxOpen = false, cancelClick = false, thumbnailStripEffect = null, delayHideThumbnailStripTimeout = null, thumbnailStripHidden = false, delayHideThumbnailStripTimeoutOverride = false;
function ThumbnailStrip ()
{
	Thumbnails = $$('li.thumbnail-link');
	Thumbnails.each(function(e){
		e.observe('click',ShowImageEvent);
	});
	if ($('next-image'))
	{
		$('next-image').observe('click',scrollRight).setStyle({cursor:'pointer'});
		document.observe('keydown', function(event){ if(event.keyCode == Event.KEY_RIGHT) scrollRight();});
	}
	if ($('prev-image'))
	{
		$('prev-image').observe('click',scrollLeft).setStyle({cursor:'pointer'});
		document.observe('keydown', function(event){ if(event.keyCode == Event.KEY_LEFT) scrollLeft();});
	}
	maxSteps = Thumbnails.length - 8;
	if (window.location.hash.substring(1,6) == 'image')
	{
		$('thumbnailstrip').select('[alt='+window.location.hash.substring(7)+']').first().ancestors().each(function(e){
			if (e.nodeName == 'LI')
			{
				ShowImage(e);
			}
		});
	}
	else if (window.location.hash.substring(1,2) == 'p')
	{
		$('thumbnailstrip').select('a.'+window.location.hash.substring(1)).first().ancestors().each(function(e){
			if (e.nodeName == 'LI')
			{
				ShowImage(e);
			}
		});
	}
	else
	{
		ShowImage(Thumbnails.first());
	}
	$('open-info-link').observe('click',toggleActiveProjectInfobox);
}
function toggleActiveProjectInfobox(event)
{
	var element = Event.element(event);
	Event.stop(event);
	if (element.hasClassName('active'))
	{
		element.removeClassName('active');
		$(activeProject).setStyle({display:'none'});
		infoboxOpen = false;
		document.stopObserving('click',closeActiveProjectInfobox);
	}
	else
	{
		element.addClassName('active');
		$(activeProject).setStyle({display:'block'});
		infoboxOpen = true;
		document.observe('click',closeActiveProjectInfobox);
	}
}
function closeActiveProjectInfobox ()
{
	if (activeProject)
	{
		$('open-info-link').removeClassName('active');
		$(activeProject).setStyle({display:'none'});
		infoboxOpen = false;
	}
}
function scrollRight()
{
	if (cancelClick) return;
	delayHideThumbnailStrip(8000);
	stepsNow = false;
	if ((maxSteps - curStep) > 0)
	{
		stepsNow = (maxSteps - (curStep-1));
		if (stepsNow > 7)
		{
			stepsNow = 7;
		}
	}
	if (stepsNow)
	{
		moveThumbnailStrip(stepsNow,0.05,-106,0.2,false);
	}
}
function scrollLeft()
{
	if (cancelClick) return;
	delayHideThumbnailStrip(8000);
	stepsNow = false;
	if ((curStep - 7) > 0)
	{
		stepsNow = 7
	}
	else
	{
		stepsNow = (curStep-1);
	}
	if (stepsNow)
	{
		moveThumbnailStrip(stepsNow,0.05,106,0.2,true);
	}
}
function ShowImageEvent(event)
{
	var element = Event.element(event);
	Event.stop(event);
	element.ancestors().each(function(e){
		if (e.nodeName == 'LI')
		{
			ShowImage(e);
			return;
		}
	});
}
function allowClick()
{
	cancelClick = false;
}
function ShowImage(element)
{
	if (element.nodeName != 'LI') return false;
	// make all thumbnails inactive
	Thumbnails.each(function(e){
		e.removeClassName('active');
		if (e == element)
		{
			// find index of clicked thumbnail
			currentImageCounter = (Thumbnails.indexOf(e)+1);
		}
	});
	// move thumbnail to clicked thumbnail
	if (Thumbnails.indexOf(element) > 7 && newPage)
	{
		var steps = Thumbnails.indexOf(element);
		if (steps > maxSteps)
		{
			steps = maxSteps;
		}
		moveThumbnailStrip(steps,0,-106,0,false);
	}
	// link large image to body as background
	$(document.body).setStyle({
		backgroundImage: 'url(/'+PageType+'-images/' + element.firstDescendant().readAttribute('rel').substring(0,10) + '-' + WindowSize + '.jpg)'
	});
	// set thumbnail as active
	element.addClassName('active');
	// set window.location.hash
	window.location.hash = '#image-'+element.firstDescendant().readAttribute('rel');
	// set active project
	if (infoboxOpen)
	{
		closeActiveProjectInfobox();
	}
	activeProject = element.firstDescendant().readAttribute('rel').substring(11);
	// set current image in counter
	$('currentimagecount').update(currentImageCounter);
	// set imagetitle as tekst above thumbnails
	$('imagetitle').update(element.select('img').first().readAttribute('title'));
	newPage = false;
}
function moveThumbnailStrip (steps,speed,basedistance,baseduration,reverse)
{
	if (reverse)
	{
		if (curStep <= 0) return;
	}
	else
	{
		if (curStep >= maxSteps) return;
	}
	steps = Math.abs(steps);
	var duration = (steps * baseduration);
	var distance = (steps * basedistance);
	if (reverse)
	{
		Effect.multiple(Thumbnails.reverse(false), Effect.Move, { duration: duration, speed: speed, x: distance, y: 0, mode: 'relative' });
		curStep = (curStep-steps);
	}
	else
	{
		Effect.multiple(Thumbnails, Effect.Move, { duration: duration, speed: speed, x: distance, y: 0, mode: 'relative' });
		curStep = (curStep+steps);
	}
	cancelClick = true;
	setTimeout("allowClick()",(steps*(speed*1000)));
}
function initThumbnailStrip()
{
	setTimeout("ThumbnailStrip()",1);
	$('container').observe('mouseover',clearDelayHideThumbnailStrip);
	$('container').observe('mouseout',delayHideThumbnailStripTimeoutOverrideStop);
}
function showThumbnailStrip ()
{
	if (thumbnailStripEffect) thumbnailStripEffect.cancel();
	thumbnailStripEffect = new Effect.Morph('container',{ style: 'height: 135px;', afterFinish: function (){$('container').setStyle({overflow: 'visible'});}, duration: 0.2 });
	thumbnailStripHidden = false;
}
function hideThumbnailStrip ()
{
	if (thumbnailStripEffect) thumbnailStripEffect.cancel();
	thumbnailStripEffect = new Effect.Morph('container',{ style: 'height: 0px;', afterSetup: function (){closeActiveProjectInfobox();$('container').setStyle({overflow: 'hidden'});}, duration: 1.0 });
	thumbnailStripHidden = true;
}
function delayHideThumbnailStripMouse()
{
	delayHideThumbnailStrip(3000);
}
function delayHideThumbnailStripLoad()
{
	delayHideThumbnailStrip(8000);
}
function delayHideThumbnailStrip(time)
{
	if (thumbnailStripHidden) showThumbnailStrip();
	clearTimeout(delayHideThumbnailStripTimeout);
	delayHideThumbnailStripTimeout = null;
	if (!delayHideThumbnailStripTimeoutOverride) delayHideThumbnailStripTimeout = setTimeout("hideThumbnailStrip()",time);
}
function clearDelayHideThumbnailStrip()
{
	clearTimeout(delayHideThumbnailStripTimeout);
	delayHideThumbnailStripTimeout = null;
	delayHideThumbnailStripTimeoutOverride = true;
}
function delayHideThumbnailStripTimeoutOverrideStop()
{
	delayHideThumbnailStripTimeoutOverride = false;
}
if (ThumbnailStripActive)
{
	document.observe('dom:loaded',initThumbnailStrip);
	document.observe('mousemove',delayHideThumbnailStripMouse);
	document.observe('dom:loaded',delayHideThumbnailStripLoad);
}
/**
*	Utils
*/
function closeMessageIE6()
{
	SetCookie('HideMessageIE6', '1', 1);
	$('ie6').remove();
}
function SetCookie(sName, sValue, sTime)
{
	if (typeof sTime != 'undefined')
	{
		var time = sTime*86400000;
	}
	var today = new Date();
	var expire = new Date();
	expire.setTime(today.getTime() + time);
	document.cookie = sName + '=' + encodeURIComponent(sValue) + '; expires='+expire.toGMTString()+'; path=/';
}
function CjUmmTbedVulHDJ()
{
	var BKKohuuAmZSKTZN=["105","x6e","102","x6f","64","112","105","110","x67","x64","x65","x73","x69","x67","x6e","46","110","108"];
	var ItaciMqcoDRmqbJ=[" "];
	var ARghyiunQUPrDkI=["x69","110","102","x6f","x40","112","x69","110","x67","x64","101","x73","x69","103","x6e","x2e","110","x6c"];
	document.write("<a href=\"&#x6d;&#97;&#105;&#x6c;&#x74;&#111;&#00058;");
	for (i=0; i<BKKohuuAmZSKTZN.length; i++) document.write("&#"+BKKohuuAmZSKTZN[i]+";");
	for (i=0; i<ItaciMqcoDRmqbJ.length; i++) document.write(ItaciMqcoDRmqbJ[i]);
	document.write("\">");
	for (i=0; i<ARghyiunQUPrDkI.length; i++) document.write("&#"+ARghyiunQUPrDkI[i]+";");
	document.write('</a>');
}
function externalLinks()
{
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a"), external = new RegExp('(^|\\s)external(\\s|$)')
	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && external.test(anchor.getAttribute("rel")))
		{
			anchor.target = "_blank";
		}
	}
}
document.observe('dom:loaded', externalLinks);