//Custom Functions for RosaBraun
var AnimationNow = false,
	Browser = navigator.appName,
	Data = new Object(),
	OldSubId = 0,
	OldDetId = 0,
	DefBlendDuration = 1.2, //Default
	LogBlendDuration = 2, //Logo
	MapBlendDuration = 2, //Map
	ConBlendDuration = 1.5, //Container
	TxtBlendDuration = 2, //Introtext
	DetBlendDuration = 2, //Detail
	ImgBlendDuration = 3; //Image

//Animation Tweens
function fPlayIntro() {
	if(!AnimationNow && !fCheckDisplay('logo_intro')) {
		fSetActive('_none');
		fHideBlocks('intro');
		OldId = '';
		AnimationNow = true;
		if(!fCheckDisplay('con')) new Effect.Appear($('con'), {duration: ConBlendDuration} );
		window.setTimeout("new Effect.Appear($('logo_intro'), {duration: LogBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("new Effect.Appear($('introtext'), {duration: TxtBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("new Effect.Appear($('img_intro'), {duration: ImgBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("new Effect.Appear($('entersite'), {duration: ImgBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("AnimationNow = false;", (ImgBlendDuration + (ConBlendDuration / 2)) * 1000);
	}
}

function fPlayContent() {
	if(!AnimationNow && !fCheckDisplay('logo_content')) {
		AnimationNow = true;
		fHideBlocks('content');
		window.setTimeout("new Effect.Appear($('logo_content'), {duration: LogBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("new Effect.Appear($('menu'), {duration: TxtBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("new Effect.Appear($('list'), {duration: TxtBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("new Effect.Appear($('img_content'), {duration: ImgBlendDuration} );", (ConBlendDuration / 2) * 1000);
		window.setTimeout("AnimationNow = false;", (ConBlendDuration / 2) * 1000) - 200;
		window.setTimeout("fSetActive($('sm_1')); fShowSubmenu('1');", (ConBlendDuration / 2) * 1000);
	}
}

function fShowContact() {
	if(!AnimationNow && !fCheckDisplay('contactbox')) {
		AnimationNow = true;
		ContactOpen = true;
		fHideBlocks();
		new Effect.Appear($('contactbox'), {duration: DefBlendDuration} );
		window.setTimeout("AnimationNow = false;", DefBlendDuration * 1000);
	}
}

function fShowUpMap() {
	if(!AnimationNow && !fCheckDisplay('map')) {
		AnimationNow = true;
		fHideBlocks();
		new Effect.Appear($('map'), {duration: MapBlendDuration} );
		window.setTimeout("AnimationNow = false;", MapBlendDuration * 1000);
	}
}

function fShowSubmenu(id) {
	if(!AnimationNow && ((fCheckDisplay('list') && OldSubId != id) || !fCheckDisplay('list')) ) {
		OldSubId = id;
		AnimationNow = true;
		fHideBlocks('list');
		$('list').innerHTML = '';
		if(!fCheckDisplay('list')) new Effect.Appear($('list'), {duration: DetBlendDuration} );
		fLoader(true);
		window.setTimeout("http('GET', 'getsubmenu.cfm?id=" + id + "', fWriteList);", DetBlendDuration);
	}
}

function fShowDetail(id) {
	if(!AnimationNow && ((fCheckDisplay('Detail') && OldDetId != id) || !fCheckDisplay('Detail')) ) {
		OldDetId = id;
		AnimationNow = true;
		fHideBlocks('detail');
		fModNav('Next', false);
		fModNav('Prev', false);
		fLoader(true);
		http('GET', 'getdetail.cfm?id=' + id, fWriteDetail);
	}
}

//Utilities
function fCheckDisplay(id) {
	return ($(id).style.display == 'none') ? false : true;
}

function fSwitchSrc(obj, status) {
	obj.src = 'style/images/' + obj.getAttribute("rel") + status + '.gif';
}

function fModNav(dir, show, status) {
	obj = $('Nav' + dir);
	obj.style.display = (show) ? '' : 'none';
	if(status) {
		obj.setAttribute("onclick", "fGoTo" + dir + "();");
		obj.setAttribute("onmouseout", "fSwitchSrc(this,'_o');");
		obj.setAttribute("onmouseover", "fSwitchSrc(this,'_a');");
		obj.style.cursor = 'pointer';
		obj.src = 'style/images/goto' + dir + '_a.gif';
	} else {
		obj.setAttribute("onclick", "void(0);");
		obj.setAttribute("onmouseout", "void(0);");
		obj.setAttribute("onmouseover", "void(0);");
		obj.style.cursor = 'default';
		obj.src = 'style/images/goto' + dir + '_d.gif';
	}
}

function fHideBlocks(type) {
	if(type == null) var type = '';
	var blocks = 'map,contactbox';
	if(type != 'detail') {
		Data = null;
		Data = new Object();
		blocks += ',Content,Detail,logo_title,Text,Images,Nav,BackToList';
	}
	if(type != 'list') blocks += ',list';
	if(type == 'intro') blocks += ',logo_content,menu,list,img_content';
	if(type == 'content') blocks += ',logo_intro,introtext,img_intro,entersite';
	var ArrArgs = blocks.split(',');
	for(var i = 0; i < ArrArgs.length; i++) {
		Obj = $(ArrArgs[i]);
		if(Obj.style.display == '') new Effect.Fade(Obj, {duration: DefBlendDuration} );
		if(Obj.id == 'list' || Obj.id == 'Title' || Obj.id == 'Images' || Obj.id == 'Text') Obj.innerHTML = '';
	}
}

function fSetActive(obj) {
	if(!AnimationNow) {
		var Points = $('menu').getElementsByTagName("a");
		for(var i = 0; i < Points.length; i++) Points[i].className = 'inactive';
		if(obj != '_none') obj.className = 'active';
	}
}

function fWriteList(obj) {
	AnimationNow = true;
	fLoader(true);
	var StartTimer = 0;
	for(var i = 0; i < obj.list.length; i++) {
		var newA = $('protoList').cloneNode(true);
		newA.id = 'ListItem' + obj.list[i]['id'];
		fSetEvent(newA, "onclick", "fShowDetail(" + obj.list[i]['id'] + ");");
		newA.setAttribute("title", obj.list[i]['text']);
		newA.innerHTML = obj.list[i]['text'];
		newA.style.display = 'none';
		$('list').appendChild(newA);
		window.setTimeout("new Effect.Appear($('ListItem" + obj.list[i]['id'] + "'));", StartTimer);
		window.setTimeout("new Effect.Highlight($('ListItem" + obj.list[i]['id'] + "'), { duration: 0.8, startcolor: '#ffffff' });", StartTimer + 300);
		StartTimer += 200;
	}
	window.setTimeout("AnimationNow = false;", StartTimer);
	window.setTimeout("fLoader(false);", StartTimer);
}

function fWriteDetail(obj) {
	Data = obj;
	AnimationNow = false;
	fWriteDetailPage(0);
}

function fWriteDetailPage(Page) {
	var DataLen = Data.list.length;
	if(!AnimationNow && DataLen > 0 && Page <= DataLen) {
		AnimationNow = true;
		new Effect.Appear($('Detail'));
		new Effect.Appear($('Content'));
		new Effect.Appear($('Images'));
		new Effect.Appear($('BackToList'));

		//Chapter Navigation
		var Next = $('NavNext');
		var Prev = $('NavPrev');
		if(DataLen > 1) {
			$('Nav').style.display = '';
			Next.style.display = '';
			Prev.style.display = '';
			if(!fCheckDisplay('Nav')) new Effect.Appear($('Nav'));
			if(Page + 1 < DataLen) {
				fSetEvent(Next, "onclick", "fWriteDetailPage(" + (Page + 1) + ");");
				fSetEvent(Next, "onmouseover", "fSwitchSrc(this, '_o');");
				fSetEvent(Next, "onmouseout", "fSwitchSrc(this, '_a');");
				Next.src = 'style/images/gotonext_a.gif';
				Next.style.cursor = 'pointer';
			} else {
				fSetEvent(Next, "onclick", "void(0);");
				fSetEvent(Next, "onmouseover", "void(0);");
				fSetEvent(Next, "onmouseout", "void(0);");
				Next.src = 'style/images/gotonext_d.gif';
				Next.style.cursor = 'default';
			}
			if(Page > 0) {
				fSetEvent(Prev, "onclick", "fWriteDetailPage(" + (Page - 1) + ");");
				fSetEvent(Prev, "onmouseover", "fSwitchSrc(this, '_o');");
				fSetEvent(Prev, "onmouseout", "fSwitchSrc(this, '_a');");
				Prev.src = 'style/images/gotoprev_a.gif';
				Prev.style.cursor = 'pointer';
			} else {
				fSetEvent(Prev, "onclick", "void(0);");
				fSetEvent(Prev, "onmouseover", "void(0);");
				fSetEvent(Prev, "onmouseout", "void(0);");
				Prev.src = 'style/images/gotoprev_d.gif';
				Prev.style.cursor = 'default';
			}
		} else {
			$('Nav').style.display = 'none';
			Next.style.display = 'none';
			Prev.style.display = 'none';
		}
		$('Images').update();

		if(!fCheckDisplay('logo_title')) new Effect.Appear($('logo_title'));
		if(!fCheckDisplay('Text')) new Effect.Appear($('Text'));

		$('TitleImage').src = Data.titleimage;
		$('TitleImage').style.cursor = "pointer";
		$('TitleImage').alt = Data.title + " - Klicken für Menu";
		fSetEvent($('TitleImage'), "onclick", "fShowSubmenu(OldSubId);");
		fSetEvent($('BackToListA'), "onclick", "fShowSubmenu(OldSubId);");
		if(Data.list[Page].name != '') {
			$('Text').update(Data.list[Page].name.bold() + '<br><br>' + Data.list[Page].content);
		} else {
			$('Text').update(Data.list[Page].content);
		}

		var StartTimer = 0;
		for(var i = 1; i <= 5; i++) {
			var Pic = eval("Data.list[" + Page + "].p" + i);
			if( Pic != '' ) {
				var newDiv = $('protoImage').cloneNode(true);
				var newDivA = $('protoImageA').cloneNode(true);
				var newDivAImg = $('protoImageAImg').cloneNode(true);
				newDiv.id = 'GaleryImage' + i;
				newDivA.id = 'GaleryImageA' + i;
				newDivAImg.id = 'GaleryImageImg' + i;
				newDiv.style.display = 'none';
				newDivA.style.display = '';
				newDivAImg.style.display = '';
				newDivAImg.src = Pic;
				newDivA.title = eval("Data.list[" + Page + "].p" + i + "t");
				newDivAImg.alt = eval("Data.list[" + Page + "].p" + i + "t");
				newDivA.href = eval("Data.list[" + Page + "].p" + i + "b");
				newDivA.appendChild(newDivAImg);
				newDiv.appendChild(newDivA);
				$('Images').appendChild(newDiv);
				window.setTimeout("new Effect.Appear($('" + newDiv.id + "'))", StartTimer);
				window.setTimeout("new Effect.Highlight($('" + newDiv.id + "'))", StartTimer + 300);
				StartTimer += 400;
			}
		}
	}
	window.setTimeout("AnimationNow = false;", StartTimer);
	window.setTimeout("fLoader(false);", StartTimer + 400);
	myLightbox = new Lightbox();
}

function fLoader(show) {
	var obj = $('loader');
	if(show) {
		new Effect.Appear(obj);
	} else {
		new Effect.Fade(obj);
	}
}

function fSendContactForm() {
	Kontakt = $('Kontakt');
	new Effect.Highlight(Kontakt);
	http("POST", "wddx_mailer.cfm", fContactFormSent, Kontakt);
	Kontakt.reset();
}

function fContactFormSent(Success) {
	if(Success == 'true') {
		alert('Vielen Dank für Ihr Interesse, wir werden uns so bald als möglich mit Ihnen in Verbindung setzen.');
	} else {
		alert('Es ist leider ein Fehler aufgetreten. Versuchen Sie die Seite neu zu laden und erneut das Formular abzuschicken.');
	}
}

//Fix Behaviours for IE
function fSetEvent(obj, Event, FncString) {
	if(Browser == "Microsoft Internet Explorer") { 
		switch(Event) {
			case 'onclick':
				obj.onclick = function() { eval(FncString); }
				break;
			case 'onmouseover':
				obj.onmouseover = function() { eval(FncString); }
				break;
			case 'onmouseout':
				obj.onmouseout = function() { eval(FncString); }
				break;
		}
	} else {
		obj.setAttribute(Event, FncString);
	}
}
