// JavaScript Document
var postContainer;
var isSingle;
var mainCont;
var mainMenu;
var maxScrollX;
var scrollMGR = new scrollPositionManager('0;0');

if (!console) {
	var console = {};
	console.log = function(){};
}

function domID(str) {
	return document.getElementById(str)	;
}


var windowWidth;
var windowHeight;
var debug;
var sDiv;
var cDiv;
var agent=navigator.userAgent.toLowerCase();
var isIPhone = agent.indexOf('iphone') != -1;

function getSiteDimensions() {
	if (window.innerHeight) {
		windowWidth=window.innerWidth;
		windowHeight=window.innerHeight;
	/*
	} else if (document.body.clientHeight > 0) {
		windowWidth=document.body.clientWidth;
		windowHeight=document.body.clientHeight;
	*/
	} else {
		windowWidth=document.body.parentNode.clientWidth;
		windowHeight=document.body.parentNode.clientHeight;
	}
	maxScrollX=parseFloat(domID('scrollingContent').style.width)-windowWidth;
}

function getCurrentScroll() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return Array(scrOfX, scrOfY);
}


function animateProperty(e, p, u, v, n, c, i, s, f, q) { // element, property, unit, value, newValue, isCss, interval, speed, additionalFunction, quitFunction
	if(!s) s=.15;
	e[v] += (e[n]-e[v])*s;
	if (Math.abs(e[n]-e[v])<.5) {
		e[v] = e[n];
		if(q) q();
		clearInterval(e[i]);
	}
	if(c){
		e.style[p]=e[v]+u;
	} else {
		e[p]=e[v]+u
	}
	if(f) f();
}

function startFade(e, n) {
	String(e.alpha) == 'undefined' ? e.alpha = 0 : null;
	e.fi ? clearInterval(e.fi) : null;
	e.fi = setInterval(function() {fadeAlpha(e, n, 'fi')}, 20);
}

function fadeAlpha(e, n, i) { // element, newAlpha, interval
	var s=.3;
	e.alpha += (n-e.alpha)*s;
	if (Math.abs(n-e.alpha)<.5){
		e.alpha = n;
		clearInterval(e[i]);
	}
	setAlpha(e, e.alpha);
}

function setAlpha(e, a) {
	e.alpha = a;
	if (e.runtimeStyle) {
		e.runtimeStyle.filter=a<100 ? "alpha(opacity="+a+")" : '';
	} else {
		e.style.opacity=a/100;
	}
	e.style.visibility=a>0 ? 'visible' : 'hidden';
}

function setRelativeElements(){
	var a=domID('menuHolder');
	var f=domID('footerContents');
	a.style.left=postContainer.x+"px";
	f.style.left=postContainer.x+"px";
	if (isMobile) {
		var sp = getCurrentScroll();
		window.scrollTo(mainCont.newX, sp[1]);
	}
}

function checkInfinity() {
	if($("#mainContent")) $("#mainContent").trigger('retrieve.infscr');
}
function getScrollPosition() {
	scrollMGR.setScrollPosition(String(mainCont.scrollLeft)+":"+String(postContainer.newX));
}

window.addEvent('domready',
	function() {
		if(isSingle) jQuery('#menu ul li')[0].setAttribute('class', 'current_page_item');
		try{initMarker()}catch(e){};
		mainMenu = domID("menu");

		jQuery('#menu ul li').mouseover(MRmenuOver);
		jQuery('#menu ul li').mouseout(MRmenuOutWait);
		
		if (isMobile) {
			window.scrollTo(mainCont.newX,0);
		}
		
		var myAccordion = new Accordion($('accordion'), '.toggler', '.element', {
			opacity: false,
			alwaysHide: true,
			display: -1,
			onActive: function(toggler, element){
				//toggler.setStyle('color', '#000');
				toggler.setStyle('background', '#fff url(/wp-content/themes/sandbox/Bilder/pfeil_up.gif) no-repeat center right');
			},
			onBackground: function(toggler, element){
				//toggler.setStyle('color', '#000');
				toggler.setStyle('background', '#fff url(/wp-content/themes/sandbox/Bilder/pfeil_runter.gif) no-repeat center right');
			}
		});
	}
);

function setupScrolling() {
	var scrollProperty = !isMobile ? "scrollLeft" : "tempScroll";
	getSiteDimensions();
	mainCont=domID('mainContainer');
	postContainer=domID('main');
	var c=domID('currentPost');
	
	var prefs=scrollMGR.getPref().split(":");
	
	if (isNaN(prefs[0])) prefs[0] = 0;
	if (isNaN(prefs[1])) prefs[1] = 0;
	
	postContainer.style.left = parseInt(prefs[1])+"px";
	postContainer.x=parseFloat(postContainer.style.left);
	
	if (c) {
		postContainer.newX=c.offsetLeft-500;
	} else {
		postContainer.newX=0;
	}

	mainCont.x=parseFloat(prefs[0]);
	mainCont.newX=Math.max(0, Math.min(maxScrollX, postContainer.newX-(windowWidth-1000)/2));
	mainCont[scrollProperty] = mainCont.x;
	
	setRelativeElements();
	
	clearInterval(postContainer.apv);
	clearInterval(mainCont.apv);
	postContainer.apv=setInterval(function(){animateProperty(postContainer, "left", "px", "x", "newX", true, "apv", .2, setRelativeElements)}, 20);
	
	mainCont.apv=setInterval(function(){animateProperty(mainCont, scrollProperty, "", "x", "newX", false, "apv", .1, checkInfinity)}, 20);
	
	scrollMGR.setScrollPosition(String(mainCont.newX)+":"+String(postContainer.newX));
}