
/* Autor: gerrit kubiak, gerrit@squap.de, www.squap.de - erstellt am: 31. Mai 2007 */
/* konform zu JavaScript 1.3 & DOM 1.0 */
/* copyright 2007 gerrit kubiak und squap.de - alle Rechte vorbehalten */

function fussElement(nummer,seite) {
	var selbst  = this;
	this.objekt = document.getElementById('fuss' + nummer);
	if (document.getElementsByName('fuss' + seite + '_n')[0]) {
		this.zeigeBlaettern = function() {
			document.getElementsByName('fuss' + seite + '_n')[0].src = 'images/fuss' + seite + 'b.jpg';
		}
		this.zeigeOriginal  = function() {
			document.getElementsByName('fuss' + seite + '_n')[0].src = 'images/fuss' + seite + 'e.jpg';
		}
		fuegehinzuEventHandler(selbst.objekt,'mouseover',selbst.zeigeBlaettern);
		fuegehinzuEventHandler(selbst.objekt,'mouseout' ,selbst.zeigeOriginal);
	}
	this.vernichte = function() {
		selbst.objekt = null;
	}
}
function rahmenElement(nummer) {
	var selbst  = this;
	this.objekt = document.getElementById('rahmen' + nummer);
	this.x      = this.objekt.offsetLeft;
	this.y      = this.objekt.offsetTop;
	this.b      = this.objekt.offsetWidth;
	this.h      = this.objekt.offsetHeight;
	this.bewegenNach      = function(x,y) {
		selbst.objekt.style.left   = x + 'px';
		selbst.objekt.style.top    = y + 'px';
		selbst.x = x;
		selbst.y = y;
	}
	this.festlegenGroesse = function(b,h) {
		selbst.objekt.style.width  = b + 'px';
		selbst.objekt.style.height = h + 'px';
		selbst.b = b;
		selbst.h = h;
	}
	this.vernichte = function() {
		selbst.objekt = null;
	}
	selbst.festlegenGroesse(selbst.b,selbst.h);
	selbst.bewegenNach(selbst.x,selbst.y);
}
function menuetextElement(nummer) {
	var selbst  = this;
	this.objekt = document.getElementById('menuetext' + nummer);
	switch (nummer) {
		case 0: this.objekt.innerHTML = "<a onClick='blur()' href='allgemein01.html'>Allgemeines</a> zum Unterricht, zum <a onClick='blur()' href='kinder.html'>Unterricht f&uuml;r Kinder</a><br>oder <a onClick='blur()' href='erwachsene01.html'>f&uuml;r Erwachsene</a> und zu <a onClick='blur()' href='schule01.html'>meiner Celloschule</a>";break;
		case 1: this.objekt.innerHTML = "Sie suchen ein <a onClick='blur()' href='instrument.html'>Instrument</a>, <a onClick='blur()' href='zubehoer.html'>Zubeh&ouml;r</a>,<br><a onClick='blur()' href='noten.html'>Noten</a> oder m&ouml;chten <a onClick='blur()' href='beratung.html'>beraten</a> werden?";break;
		case 2: this.objekt.innerHTML = "Ich spiele auch selbst! Lassen Sie mich den<br>musikalischen Rahmen für Ihre Veranstaltung gestalten!";break;
		case 3: this.objekt.innerHTML = "<a onClick='blur()' href='aktuell.html'>Aktuelles</a>, <a onClick='blur()' href='veranstaltungen01.html'>Veranstaltungen</a>, <a onClick='blur()' href='links01.html'>Internetlinks</a><br>N&auml;heres <a onClick='blur()' href='person.html'>&uuml;ber mich</a> oder nehmen Sie <a onClick='blur()' href='kontakt.html'>Kontakt</a> mit mir auf";break;
	}
	this.vernichte = function() {
		selbst.objekt = null;
	}
	this.setzeMenueModus = function() {
		es.menueModus = 5;
	}
	fuegehinzuEventHandler(selbst.objekt,'mouseover',selbst.setzeMenueModus);
}
function menueElement(nummer) {
	var selbst   = this;
	this.objekt  = document.getElementById('menue' + nummer);
	this.bild    = document.getElementsByName('menue' + nummer + '_n')[0];
	this.bild.srcS   = this.bild.src;
	this.bild.breite = this.bild.width;
	this.x       = this.objekt.offsetLeft;
	this.y       = this.objekt.offsetTop;
	this.b       = this.objekt.offsetWidth;
	this.h       = this.objekt.offsetHeight;
	this.x1      = this.x;
	this.links   = this.x;
	this.x2      = this.x;
	this.v       = 0;
	this.a       = 0;
	this.distanz = 0;
	this.mitte   = 0;
	this.bewegenNach      = function(x,y) {
		selbst.objekt.style.left   = x + 'px';
		selbst.objekt.style.top    = y + 'px';
		selbst.x                   = x;
		selbst.y                   = y;
	}
	this.festlegenGroesse = function(b,h) {
		selbst.objekt.style.width  = b + 'px';
		selbst.objekt.style.height = h + 'px';
		selbst.b                   = b;
		selbst.h                   = h;
	}
	this.setzeParameter = function(px1,px2,pa,menueaktiv) {
		selbst.x1      =  px1;
		selbst.x2      =  px2;
		selbst.distanz =  selbst.x2 - selbst.x1;
		selbst.a       =  selbst.distanz / pa;
		selbst.mitte   = (selbst.x2 + selbst.x1) / 2;
		selbst.objekt.style.visibility = 'visible';
		selbst.bild.src = menueaktiv ? 'images/menue' + (es.menueModusS-1) + '_b.gif' : selbst.bild.srcS;
	}
	this.rueckSetzen = function(px,ausblenden) {
		selbst.v = 0;
		selbst.a = 0;
		selbst.x = px;
		selbst.bewegenNach(selbst.x,selbst.y);
		selbst.bild.width = selbst.bild.breite;
		selbst.objekt.style.visibility = ausblenden ? 'hidden' : 'visible';
	}
	this.weiterBewegen = function(aenderebild) {
		selbst.x += selbst.v;
		selbst.v += selbst.a * ((selbst.mitte - selbst.x) < 0 ? -1 : 1);
		selbst.bewegenNach(selbst.x,selbst.y);
		if (aenderebild) selbst.bild.width = selbst.bild.breite * (es.menueRechts - es.menue[0].x) / (es.menueRechts - es.menue[0].links);
	}
	this.vernichte = function() {
		selbst.objekt = null;
	}
	this.setzeMenueModus = function() {
		es.menueModus = nummer+1;
	}
	this.loescheMenueModus = function() {
		es.menueModus = 0;
	}
	this.menueAktiv = function() {
		selbst.bild.src = selbst.bild.srcS;
	}
	this.menueDeaktiv = function() {
		selbst.bild.src = 'images/menue' + (es.menueModusS-1) + '_b.gif';
	}
	fuegehinzuEventHandler(selbst.objekt,'mouseover',selbst.setzeMenueModus);
	fuegehinzuEventHandler(selbst.objekt,'mouseout' ,selbst.loescheMenueModus);
	selbst.festlegenGroesse(selbst.b,selbst.h);
	selbst.bewegenNach(selbst.x,selbst.y);
}
function positioniereRahmen() {
	this.X = function() {
		var defX            = 1024;
		var abstandBeiDefX  =   24;
		var p = (es.minX * abstandBeiDefX) / (defX - es.minX) * (es.fensterX / es.minX - 1);
		es.rahmen[0].bewegenNach((es.fensterX - es.rahmen[0].b) / 2 , es.rahmen[0].y);
		es.rahmen[1].bewegenNach(es.rahmen[0].x                     , es.rahmen[1].y);
		es.rahmen[2].bewegenNach(es.rahmen[0].x                     , es.rahmen[2].y);
		es.rahmen[3].bewegenNach(es.rahmen[0].x                     , es.rahmen[3].y);
		es.rahmen[4].bewegenNach(es.rahmen[0].x - es.rahmen[4].b - p, es.rahmen[4].y);
		es.rahmen[5].bewegenNach(es.rahmen[0].x + es.rahmen[0].b + p, es.rahmen[5].y);
		es.rahmen[6].bewegenNach(es.rahmen[4].x + es.rahmen[4].b -14, es.rahmen[6].y);
		es.rahmen[7].bewegenNach(es.rahmen[6].x + es.rahmen[6].b    , es.rahmen[7].y);
		es.rahmen[7].festlegenGroesse(p,es.rahmen[7].h);
		document.getElementsByName('bogen0_n')[0].width = p;
		es.rahmen[8].bewegenNach(es.rahmen[6].x                     , es.rahmen[8].y);
	}
	this.Y = function() {
		var defY           = 768;
		var abstandBeiDefY =  12;
		var q = (es.minY * abstandBeiDefY) / (defY - es.minY) * (es.fensterY / es.minY - 1);
		es.rahmen[1].bewegenNach(es.rahmen[1].x, es.rahmen[0].h + q);
		es.rahmen[2].bewegenNach(es.rahmen[2].x, es.rahmen[1].y + es.rahmen[1].h);
		es.rahmen[3].bewegenNach(es.rahmen[3].x, es.rahmen[2].y + es.rahmen[2].h);
		es.rahmen[4].bewegenNach(es.rahmen[4].x, es.rahmen[0].h + q);
		es.rahmen[5].bewegenNach(es.rahmen[5].x, es.rahmen[0].h + q);
		es.rahmen[6].bewegenNach(es.rahmen[6].x, es.rahmen[0].h - 8);
		es.rahmen[7].bewegenNach(es.rahmen[7].x, es.rahmen[0].h - 8);
		es.rahmen[8].bewegenNach(es.rahmen[8].x, es.rahmen[0].h + es.rahmen[6].h - 8);
		es.rahmen[8].festlegenGroesse(es.rahmen[8].b,q);
		document.getElementsByName('bogen1_n')[0].height = q;
	}
}
function ElementeSteuerung() {
	var selbst  = this;
	this.schritte           =  48;
	this.menueRechts        = 455;
	this.menueModus         =   0;
	this.menueModusS        =   0;
	this.verzoegerung       =   0;
	this.positioniereRahmen = new positioniereRahmen();
	this.setzeElemente = function() {
		selbst.rahmen = [];
		for (var i=0;i<9;i++) selbst.rahmen[i] = new rahmenElement(i);
		selbst.menue  = [];
		for (var i=0;i<5;i++) selbst.menue[i]  = new menueElement(i);
		selbst.menuetext  = [];
		for (var i=0;i<4;i++) selbst.menuetext[i]  = new menuetextElement(i);
		selbst.fuss   = [];
		for (var i=0;i<2;i++) selbst.fuss[i]   = new fussElement(i,0);
		for (var i=3;i<5;i++) selbst.fuss[i]   = new fussElement(i,4);
		selbst.minX = selbst.rahmen[1].b + selbst.rahmen[4].b + selbst.rahmen[5].b;
		selbst.minY = selbst.rahmen[0].h + selbst.rahmen[1].h + selbst.rahmen[2].h + selbst.rahmen[3].h;
		selbst.pruefeFenster();
		for (var i=0;i<9;i++) selbst.rahmen[i].objekt.style.visibility = 'visible';
		selbst.verzoegerung = 50;
		selbst.bewegeMenue();
	}
	this.pruefeFenster = function() {
	    selbst.fensterX = (document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth);
	    selbst.fensterY = (document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);
	    selbst.offsetX = parseInt(window.scrollX||document.documentElement.scrollLeft||document.body.scrollLeft);
	    selbst.offsetY = parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop);
		if (selbst.fensterX > selbst.minX) selbst.positioniereRahmen.X();
		if (selbst.fensterY > selbst.minY) selbst.positioniereRahmen.Y();
	}
	this.bewegeMenue = function() {
		if (selbst.verzoegerung > 0) {
			selbst.verzoegerung -= 1;
		}
		else {
//		fall 1: steht links und startet nach rechts
		if (selbst.menue[0].x == selbst.menue[0].links && selbst.menueModus > 0 && selbst.menueModus < 5) {
			selbst.menueModusS = selbst.menueModus;
			for (var i=0;i<4;i++) selbst.menue[i].setzeParameter(selbst.menue[i].links,selbst.menueRechts,   12 * selbst.schritte,i == selbst.menueModusS-1);
			selbst.verzoegerung = 10;
		}
//		fall 2: steht rechts und startet nach links
		else if (selbst.menue[0].x == selbst.menueRechts    && selbst.menueModus == 0) {
			selbst.menuetext[selbst.menueModusS-1].objekt.style.visibility = 'hidden';
			selbst.menue[4].bild.src = selbst.menue[4].bild.srcS;
			loescheEventHandler(selbst.menue[selbst.menueModusS-1].objekt,'mouseover',selbst.menue[selbst.menueModusS-1].menueAktiv);
			loescheEventHandler(selbst.menue[selbst.menueModusS-1].objekt,'mouseout',selbst.menue[selbst.menueModusS-1].menueDeaktiv);
			for (var i=0;i<4;i++) selbst.menue[i].setzeParameter(selbst.menueRechts,   selbst.menue[i].links,-2 * selbst.schritte, false);
			selbst.verzoegerung =  5;
		}
//		fall 3: rechts angekommen, positioniere elemente am rechten rand neu
		else if (parseInt(selbst.menue[0].x + 0.5) >= selbst.menueRechts && selbst.menue[0].a) {
			selbst.menue[4].bild.src = 'images/rahmen1' + selbst.menueModusS + '.jpg';
			selbst.menuetext[selbst.menueModusS-1].objekt.style.visibility = 'visible';
			fuegehinzuEventHandler(selbst.menue[selbst.menueModusS-1].objekt,'mouseover',selbst.menue[selbst.menueModusS-1].menueAktiv);
			fuegehinzuEventHandler(selbst.menue[selbst.menueModusS-1].objekt,'mouseout',selbst.menue[selbst.menueModusS-1].menueDeaktiv);
			for (var i=0;i<4;i++) selbst.menue[i].rueckSetzen(selbst.menueRechts,i != selbst.menueModusS-1);
			selbst.verzoegerung = 40;
		}
//		fall 4: links angekommen, positioniere elemente am linken rand neu
		else if (parseInt(selbst.menue[0].x - 0.5) <= selbst.menue[0].links && selbst.menue[0].a) {
			for (var i=0;i<4;i++) selbst.menue[i].rueckSetzen(selbst.menue[i].links,false);
			selbst.verzoegerung = 40;
		}
//		fall 5: bewegung nach rechts, drehe bewegung um
		else if (selbst.menue[0].x2 == selbst.menueRechts    && selbst.menueModus == 0 && selbst.menue[0].x < selbst.menue[0].mitte) {
			for (var i=0;i<4;i++) selbst.menue[i].setzeParameter(selbst.menue[i].x,   selbst.menue[i].links,-2 * selbst.schritte);
		}
		}
//		fall 7: weiter bewegen (passiert immer)
		for (var i=0;i<4;i++) selbst.menue[i].weiterBewegen(i != selbst.menueModusS-1);
		setTimeout(selbst.bewegeMenue,10);
	}
	this.vernichteElemente = function() {
		for (var i=0;i<2;i++) selbst.fuss[i].vernichte;
		for (var i=3;i<5;i++) selbst.fuss[i].vernichte;
		selbst.fuss   = null;
		for (var i=0;i<5;i++) selbst.menue[i].vernichte;
		selbst.menue  = null;
		for (var i=0;i<4;i++) selbst.menuetext[i].vernichte;
		selbst.menuetext  = null;
		for (var i=0;i<9;i++) selbst.rahmen[i].vernichte;
		selbst.rahmen = null;
	}
}

es = new ElementeSteuerung();
function fuegehinzuEventHandler(objekt,eventName,eventHandler) {
typeof(attachEvent)=='undefined'?objekt.addEventListener(eventName,eventHandler,false):objekt.attachEvent('on'+eventName,eventHandler);
}
function loescheEventHandler(objekt,eventName,eventHandler) { typeof(detachEvent)=='undefined'?objekt.removeEventListener(eventName,eventHandler,false):objekt.detachEvent('on'+eventName,eventHandler);
}
fuegehinzuEventHandler(window,'load'   ,es.setzeElemente);
fuegehinzuEventHandler(window,'unload' ,es.vernichteElemente);
fuegehinzuEventHandler(window,'resize' ,es.pruefeFenster);
fuegehinzuEventHandler(window,'scroll' ,es.pruefeFenster);

function bildGross(bildName) {
		document.getElementById('inhalt5').style.visibility = 'hidden';
	if (document.getElementById('inhalt2')) {
		document.getElementById('inhalt2').style.visibility = 'hidden';
		document.getElementById('inhalt3').style.visibility = 'hidden';
	}
	else {
		document.getElementById('inhalt1').style.visibility = 'hidden';
	}
	var anker   = document.createElement('a');
	var bild    = document.createElement('img');
	var bildDiv = document.getElementById('inhalt4');
	anker.appendChild(bild);
	bildDiv.appendChild(anker);
	bildDiv.lastChild.href          = 'javascript:bildKlein()';
	bildDiv.lastChild.lastChild.src =  bildName;
	bildDiv.style.visibility        = 'visible';
}
function bildKlein() {
	var bildDiv = document.getElementById('inhalt4');
	bildDiv.style.visibility = 'hidden';
	bildDiv.removeChild(bildDiv.lastChild);
		document.getElementById('inhalt5').style.visibility = 'visible';
	if (document.getElementById('inhalt2')) {
		document.getElementById('inhalt2').style.visibility = 'visible';
		document.getElementById('inhalt3').style.visibility = 'visible';
	}
	else {
		document.getElementById('inhalt1').style.visibility = 'visible';
	}
}
function setzeCookie(parameter) {
	var ablauf = new Date();
	ablauf.setTime(ablauf.getTime() + (365 * 24 * 60 * 60 * 1000));
	document.cookie = parameter + '; expires=' + ablauf.toGMTString();
	return true;
}
function leseCookieWert(eintrag) {
	var ret = false;
	if (document.cookie) {
		var speicher = document.cookie.split(';');
		for (var i in speicher) 
			if (speicher[i].indexOf(eintrag) > -1)  // auch hier besser mit regexp suchen
				ret = speicher[i].slice(speicher[i].indexOf('=') + 1);
	}
	return ret;
}
function oeffneEintrag(kategorie,nummer) {
	setzeCookie('kategorie=' + kategorie);
	setzeCookie('nummer=' + nummer);
	window.open('veranstaltungen_form.html','_self');
}
