
function roll(o)
{
	var src = o.getAttribute('src');
	var ftype = src.substring(src.lastIndexOf('.'), src.length);
	var overSrc = src.replace(ftype, '_o'+ftype);
	
	var isOv = src.search(/.+_o.+/);
	
	if(isOv != -1)
	{
		src = src.replace(/_o/,"");
		o.setAttribute('src', src);
		return;
	}
	
	o.setAttribute('src', overSrc);
	
	//var old = (o.onmouseout) ? o.onmouseout : function () {};
	//o.onmouseout = function () {old(); function(){o.setAttribute('src', src);}};
	
	o.onmouseout = function(){
		o.setAttribute('src', src);
	}
}

function blend(o)
{
	var opOut = 65;
	var opIn = 100;
	
	o.style.Opacity = (opOut / 100);
	o.style.MozOpacity = (opOut / 100);
	o.style.KhtmlOpacity = (opOut / 100);
	o.style.filter = "alpha(opacity=" + opOut + ")";
	
	o.onmouseout = function() {
		o.style.Opacity = (opIn / 100);
		o.style.MozOpacity = (opIn / 100);
		o.style.KhtmlOpacity = (opIn / 100);
		o.style.filter = "alpha(opacity=" + opIn + ")";
	}
}

function toggleJump(o)
{
	var src = o.getAttribute('src');
	
	var isOv = src.search(/.+_o.+/);
	if(isOv != -1)
	{
		src = src.replace(/_o/,"");
	}
	
	var ftype = src.substring(src.lastIndexOf('.'), src.length);
	var overSrc = src.replace(ftype, '_o'+ftype);
	
	if(jumpRock != false)
	{
		jumpRock = false;
		o.setAttribute('src', src);
		$('cptooltip').innerHTML= "scrollnavigation";
	}
	else
	{
		jumpRock = true;
		o.setAttribute('src', overSrc);
		$('cptooltip').innerHTML= "springnavigation";
	}
}


//************************************************
//	
//	Rollover fuer die DragDiv-Leisten
//	
//************************************************
function mouseOverHandle(han)
{
	han.style.borderTopColor = '#9e9f83';
	han.style.cursor = 'move';
}

function mouseOutHandle(han)
{
	han.style.borderTopColor = '';
	han.style.cursor = '';
}

//************************************************
//	
//	fuer nicht generierte DivWins
//	
//************************************************
function killMe(elementID)
{
	toBeKilled = document.getElementById(elementID);
	toBeKilled.parentNode.removeChild(toBeKilled);
}

function minimizeMe(elementID,elementID2,elementID3)
{
	
	realContentDiv = document.getElementById(elementID);
	eckeDiv = document.getElementById(elementID2);
	title = document.getElementById(elementID3);
	
	realContentDiv.style.display = '';
	eckeDiv.style.display = '';
	
	if(!realContentDiv.isMinimized)
	{
		realContentDiv.isMinimized = 0;
	}
	
	if(realContentDiv.isMinimized == 0)
	{
		realContentDiv.isMinimized = 1;
		realContentDiv.style.display = 'none';
		eckeDiv.style.display = 'none';
		title.style.display = 'inline';
		return;
	}
	
	if(realContentDiv.isMinimized == 1)
	{
		realContentDiv.isMinimized = 0;
		realContentDiv.style.display = '';
		eckeDiv.style.display = '';
		title.style.display = '';
		return;
	}
}

//***********************************************
// http://sedition.com/perl/javascript-fy.html
//***********************************************

function fisherYates(array) //array-shuffle funktion
{
	var i = array.length;
	if ( i == 0 ) return false;
	while ( --i ) 
	{
		var j = Math.floor( Math.random() * ( i + 1 ) );
		var tempi = array[i];
		var tempj = array[j];
		array[i] = tempj;
		array[j] = tempi;
	}
}


var cId = 0;

function clone(element)
{	
	if(element.isCloned)
		return;
	
	sheep = element.cloneNode(true);
	element.isCloned = 1;
	element.ondblclick = function(evnt)
	{
		killMe(this.id);
	}
	element.id = 'clone' + cId++;
	element.parentNode.appendChild(sheep);

}

function startKillClones()
{	
	if(killClonesRunning == 1)
		return;
	killClonesRunning = 1;
	var killer = window.setInterval('killClones()',5000);
}
	
function killClones()
{
	imgs = document.getElementsByTagName('img');
	
	clones = new Array;
	
	for(i = 0; i < imgs.length; i++)
	{
		if(imgs[i].isCloned)
		{
			killMe(imgs[i].id);

		}
		
	}
}

function bringToFront(element)
{
	absoluteTopIndex++;
	element.style.zIndex = absoluteTopIndex;
}

function goToRandomPlace()
{
	bereiche = new Array('illu1','illu2','illu3','illu4','grafik1','grafik2','grafik3','grafik4','grafik5','anim1','anim2');
	fisherYates(bereiche);
	randomBereich = bereiche[1];
	placeRef(randomBereich)
	smoothScroll(randomBereich);
}


function $()
{
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function getElementsByClass(searchClass,node,tag)
{
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++)
	{
		if ( pattern.test(els[i].className) )
		{
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

var whereAmI = "http://buro.sequenz.net&#63;b=buro1";

function placeRef(place)
{
	whereAmI = "http://buro.sequenz.net&#63;b=" + place;
	$('cp_txt').innerHTML = whereAmI;
	//getRefLink();
}

function toggle(obj)
{
	var el = $(obj);
	if ( el.style.display != 'none' )
	{
		el.style.display = 'none';
	}
	else
	{
		el.style.display = 'inline';
	}
}

function hide(obj)
{
	var el = $(obj);
	el.style.display = 'none';
}

function resetOnPosition()
{
		
	if(window.pageXOffset != 0 || window.pageYOffset != 0)
	{
		xPos = window.pageXOffset;
		yPos = window.pageYOffset;
	}
	
	if(document.documentElement.scrollLeft != 0 || document.documentElement.scrollTop != 0)
	{
		xPos = document.documentElement.scrollLeft;
		yPos = document.documentElement.scrollTop;
	}
	
	location.href = "http://buro.sequenz.net?xPos=" + xPos + "&yPos=" + yPos;
	
}



//////////////////////////
// Stats stuff
//////////////////////////
var initPosX = 0;
var initPosY = 0;
var movedX = 0;
var movedY = 0;
var totalMoveAmount = 0;
var totalMoveAmountMeters = 0;
var currSpeed = 0;
var highSpeed = 0;
//var time = 0;
var timeOnPage = 0;

function doTheStats()
{
	writeStats();
	if (navigator.appName == "Microsoft Internet Explorer" && typeof window.opera == 'undefined')
	{
		window.setTimeout('doTheStats()',500);
		return;
	}
	statsTimer = window.setTimeout('doTheStats()',100);
}

function writeStats()
{

	$('cp_move').innerHTML = totalMoveAmount + "px " + totalMoveAmountMeters + "m";
	GetPosition();
	$('cp_pos').innerHTML = "x" + xPos + "  y" + yPos;
	$('cp_win').innerHTML = countOpenWindows;
	//getTime();
	$('cp_time').innerHTML = timeOnPage;
}

/* function getTime()
{
	var jetzt = new Date();
	var Std = jetzt.getHours();
	var Min = jetzt.getMinutes();
	var Sec = jetzt.getSeconds();
	var Milisec = jetzt.getMilliseconds();
	var StdAusgabe = ((Std < 10) ? "0" + Std : Std);
	var MinAusgabe = ((Min < 10) ? "0" + Min : Min);
	var SecAusgabe = ((Sec < 10) ? "0" + Sec : Sec);
	var MilAusgabe = Milisec;
	MilAusgabe = ((Milisec < 1000 && Milisec >= 100) ? "0" + Milisec : MilAusgabe);
	MilAusgabe = ((Milisec < 100 && Milisec >= 10) ? "00" + Milisec : MilAusgabe);
	MilAusgabe = ((Milisec < 10) ? "000" + Milisec : MilAusgabe);
	time = StdAusgabe + ":" + MinAusgabe + ":" + SecAusgabe + ":" + MilAusgabe;
}
 */
function scrollDistance()
{
	GetPosition();
	if (Math.abs(initPosX - xPos) > 1)
	{
		movedX = Math.abs(initPosX - xPos);
		initPosX = xPos;
	}
	
	if ( Math.abs(initPosY - yPos) > 1)
	{
		movedY = Math.abs(initPosY - yPos);
		initPosY = yPos;
	}
	
	totalMoveAmount = totalMoveAmount + Math.round(Math.sqrt(((Math.abs(movedX)*Math.abs(movedX)) + (Math.abs(movedY)*Math.abs(movedY)))));
	totalMoveAmountMeters = Math.round((totalMoveAmount * 0.000234)*10)/10;
	
	Nav.place('cp_mapcross');
	
	window.onscroll =  scrollDistance;
}

////
// timer von: http://www.js-examples.com/page/javascripts__example.html?view=314
// stark angepasst...
////

var hour=0;
var min =0;
var sec =0;

function timer()
{
	
	
	if (++sec > 59)
	{
		if (++ min > 59)
		{
			hour++;
			min = 0;
		}
		sec = 0;
	}
	
	var writeMin = min > 9 ? min : "0" + min;
	var writeSec = sec > 9 ? sec : "0" + sec;
	var writeHour = hour > 9 ? hour : "0" + hour;
	timeOnPage = writeHour + ":" + writeMin + ":" + writeSec;
	
}

function startTimer()
{
	setInterval("timer()",1000);
}
