﻿
var elements = {};





//** MAIN **

mt.Loader.addListener({name:'onload',handler:main,once:true,scope:this});
function main(){
	
	//image text
	elements['divText'] = new mt.controls.basic.Layer({id:'divText',opacity:0,left:0,width:600});
	elements['divAddress'] = new mt.controls.basic.Layer({id:'divAddress',opacity:0,left:0});
	elements['divNav'] = new mt.controls.basic.Layer({id:'divNav',opacity:0});		
	
	//bg image
	elements['imgBg'] = new mt.controls.basic.Image({id:'imgBg',opacity:0});
	elements['imgBg'].ratio = elements['imgBg'].html.offsetWidth/elements['imgBg'].html.offsetHeight;
	
	elements['imgBg'].addListener({name:'onload',handler: function(){
		var img = new Image();
		img.src = elements['imgBg'].html.src;
		
		elements['imgBg'].setSize(img.width,img.height);
		elements['imgBg'].ratio = img.width/img.height;
		
		handleResize();	
		
		document.getElementById('divText').innerHTML = document.getElementById('divText').text;
		
		if(blnAdmin){
			elements['imgBg'].setOpacity(1);
		}
		else{
			mt.core.Fx.fadeIn(elements['imgBg']);
		}
		
	},scope:this});
	
	//init divs
	initDivs(elements['divNav'].html,0);
	
	//divLogin open Body in full size
	if(elements['divBodyLogin']){
		elements['divBodyLogin'].setHeight(elements['divBodyLogin'].trueHeight);
		elements['divBodyLogin'].setOpacity(1);		
	}

	//fade in divNav, divAddress
	handleResize();
	if(blnAdmin){
		openNav();
		elements['divNav'].setOpacity(1);
		elements['divAddress'].setOpacity(0.8);
	}
	else {
		mt.core.Fx.fadeIn(elements['divNav']);
		mt.core.Fx.glide(elements['divAddress'],{opacity:0.8});	
	}
	
	//init resize event
	mt.controls.basic.Document.addListener({name:'onresize',handler: handleResize,scope:this});	
	
	//load image
	if(blnAdmin){
		setImg(actImg,actText);
	}
	else {
		showRandomImg();
	}
}


function showRandomImg(){
	var imgs = document.getElementsByTagName('a');
	var arr = [];
	
	for(i in imgs){
		if(imgs[i].id && imgs[i].id.indexOf('img')!=-1){
			arr.push(imgs[i]);	
		}
	}
	
	var img = arr[Math.floor(Math.random()*arr.length)];
	
	eval(unescape(img.href.replace('javascript:','')));
}

function showKatImg(div,nLevel){
	
	if(div.children.length==0){
		var as = [];
	
		for(var i in div.html.childNodes){
			if(div.html.childNodes[i].id && div.html.childNodes[i].id.indexOf('img')!=-1){
				as.push(div.html.childNodes[i]);
			}
		}
		var a = (nLevel==0) ? as[0] : as[Math.floor(Math.random()*as.length)];
		eval(unescape(a.href.replace('javascript:','')));
	}
	else {
		showKatImg(div.children[Math.floor(Math.random()*div.children.length)],nLevel+1);
	}
}






function initDivs(oDiv,nLevel){
	var divs = oDiv.childNodes;
	
	for(var i=0;i<divs.length;++i){
		
		if(divs && divs[i].id && divs[i].id.indexOf('divBody')!=-1){
			var div = divs[i];
			
			var trueHeight = div.offsetHeight+1;
			if(parseInt(div.id.substr(7,div.id.length-7))>-1){
				trueHeight = 21*Math.round(trueHeight/21);
			}
			
			elements[div.id] = new mt.controls.basic.Layer({id:div.id,top:0,height:0,opacity:0});
			elements[div.id].trueHeight = trueHeight;
			elements[div.id].targetHeight = 0;
			elements[div.id].level = nLevel;
			elements[div.id].toggleState = false;
			elements[div.id].children = [];
			
			if(nLevel>0){
				var parentNode = elements[div.parentNode.id];
				parentNode.trueHeight -= elements[div.id].trueHeight;
				parentNode.children.push(elements[div.id]);
				elements[div.id].parent = parentNode;
			}
			
			initDivs(div,nLevel+1);
			
			if(elements[div.id].trueHeight<=1) elements[div.id].trueHeight = 0;
		}
	}
}






//resize the background image
function handleResize(animation) {
	
	var docWidth = mt.controls.basic.Document.width;
	var docHeight = mt.controls.basic.Document.height;
	
	if(docHeight*elements['imgBg'].ratio < docWidth){	
		var imgWidth = docHeight*elements['imgBg'].ratio;
		elements['imgBg'].setTop(0);
		elements['imgBg'].setLeft(0.5*(docWidth-imgWidth));
		elements['imgBg'].setWidth(imgWidth);
		elements['imgBg'].setHeight(docHeight);	
	}
	else {
		var imgHeight = docWidth/elements['imgBg'].ratio;
		elements['imgBg'].setTop(0.5*(docHeight-imgHeight));
		elements['imgBg'].setLeft(0);
		elements['imgBg'].setWidth(docWidth);
		elements['imgBg'].setHeight(imgHeight);
	}
	
	
	
	var divTextLeft = docWidth-elements['divText'].width-50;
	if(divTextLeft<350) divTextLeft = 350;
	
	var divAddressLeft = docWidth-elements['divAddress'].width-50;
	if(divAddressLeft<350) divAddressLeft = 350;
	
	var divAddressTop = docHeight-elements['divAddress'].height-20;
	
	if(blnAdmin || !animation){
		elements['divText'].setLeft(divTextLeft);
		
		elements['divAddress'].setLeft(divAddressLeft);
		elements['divAddress'].setTop(divAddressTop);
	}
	else { 
		mt.core.Fx.glide(elements['divText'],{left:divTextLeft});	
		mt.core.Fx.glide(elements['divAddress'],{top:divAddressTop,left:divAddressLeft});	
	}
}


function setImg(_url,_text){
	elements['divText'].setOpacity(0.8);
	
	if(_url != elements['imgBg'].url){
		document.getElementById('divText').text = _text;
		document.getElementById('divText').innerHTML = 'laden...';
	
		elements['imgBg'].setOpacity(0);
		elements['imgBg'].setUrl(_url);
	}

}




function toggleBody(_body){
	var obj = elements[_body];
	var aobj = elements[actBody];
	
	if(aobj && aobj.toggleState){
		var divBody = aobj;
		for(var i=divBody.level;i>=obj.level;--i){
			
			//update targetHeights of the parent bodies
			var parentBody = divBody;
			for(var j=divBody.level;j>=0;--j){
				parentBody.targetHeight -= divBody.trueHeight;
				if(parentBody.parent) parentBody = parentBody.parent;
			}
			
			divBody.targetHeight = 0;
			divBody.toggleState = false;
			mt.core.Fx.glide(divBody,{height:0,opacity:0});
			
			if(divBody.parent) divBody = divBody.parent;
		}
		
		
		actBody = null;
	}

	if(obj && !obj.toggleState){
		
		var divBody = obj;
		for(var i=obj.level;i>=0;--i){
			divBody.targetHeight += obj.trueHeight;
			mt.core.Fx.glide(divBody,{height:divBody.targetHeight,opacity:1});
			if(divBody.parent) divBody = divBody.parent;
		}
			
		obj.toggleState = true;
		actBody = _body;
		
		sCmsCreateCookie('actBody',actBody,1);
	
		if(!blnAdmin) showKatImg(obj,0);
	}
}


function openNav(){
	if(!elements[sCmsReadCookie('actBody')]) return null;
	
	var obj = elements[sCmsReadCookie('actBody')];
	actBody = obj.id;
	
	var divBody = obj;
	for(var i=obj.level;i>=0;--i){
		
		var parentBody = divBody;
		for(var j=divBody.level;j>=0;--j){
			parentBody.targetHeight += divBody.trueHeight;
			if(parentBody.parent) parentBody = parentBody.parent;
		}
		
		obj.toggleState = true;
		divBody.setHeight(divBody.targetHeight);
		divBody.setOpacity(1);
		
		if(divBody.parent) divBody = divBody.parent;
	}
}




function sCmsCreateCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";		
}

function sCmsReadCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}













