﻿/****************************************************************
 * JavaScript-Funktionen für rambazotti.de											*
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*
 * Development 2005-08, 09																			*
 * by B2A Corporate Marketing, Kassel; mailto:dev-AT-b2a-DOT-de	*
 * 																															*
 * Development 2007-11																					*
 * by R.J. Koester, Kassel; mailto:suntoucher-AT-go-DOT-cc			*
 * Version: -																										*
 * Autor: Koe																										*
 * Letzte Bearbeitung: 2007-11-02 19:05													*
 * durch: Koe																										*
 ****************************************************************/

// Initialisierungen
var siteId								= 'Rambazotti',
		locale								= 'de',
		tickerDta							= [];
		window.defaultStatus	= "Kinder- und Jugendcircus Rambazotti";

function showDZI( show ) {
	// DZI-Logo in voller Größe
	// ein-/ausblenden

	showElement( 'dzi-logo-lupe',(typeof show == 'boolean') ? show : true );
}	// function showDZI( show )

function zeigeMenu( mnuId,ladeContent ) {
	var m,
			// Content-Bereiche und Menüs
			mnuIds=['content-hauptseite','content-textseite',
							'm1','m2','m3','m4','m5','m6','m7','m8','m9'],
			// Menüebenen (`m*_0´ sind Ebenen im Horizontalmenü)
			mnuItems=['m1_0','m1_1',
								'm2_0','m2_1','m2_2','m2_3',
								'm3_0','m3_1','m3_2','m3_3','m3_4',
								'm4_0','m4_1','m4_2','m4_3','m4_4','m4_5',
								'm5_0','m5_1','m5_2','m5_3',
								'm6_0','m6_1','m6_2','m6_3','m6_4',
								'm7_0','m7_1','m7_2','m7_3',
								'm8_0','m8_1','m8_2','m8_3','m8_4','m8_5',
								'm9_0','m9_1'];

	// Content-Bereiche und Menüs verbergen ...
	for( m in mnuIds )
		showElement( mnuIds[m],false );

	// ... und Menüebenen zurücksetzen
	for( m in mnuItems )
		schliesseMenuEbene( mnuItems[m] );

	// Angeklickte Menüebene hervorheben und deren Menü sichtbar machen
	switch( mnuId ) {
		case 'm1_0':
			oeffneMenuEbene( mnuId );
			break;
		case 'm1_1':
			oeffneMenuEbene( 'm1_0' );
			oeffneMenuEbene( 'm1_1' );
			showElement( 'm1' );
			break;
		case 'm2_0':
		case 'm2_1':
			oeffneMenuEbene( 'm2_0' );
			oeffneMenuEbene( 'm2_1' );
			showElement( 'm2' );
			break;
		case 'm2_2':
		case 'm2_3':
			oeffneMenuEbene( 'm2_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm2' );
			break;
		case 'm3_0':
		case 'm3_1':
			oeffneMenuEbene( 'm3_0' );
			oeffneMenuEbene( 'm3_1' );
			showElement( 'm3' );
			break;
		case 'm3_2':
		case 'm3_3':
		case 'm3_4':
			oeffneMenuEbene( 'm3_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm3' );
			break;
		case 'm4_0':
		case 'm4_1':
			oeffneMenuEbene( 'm4_0' );
			oeffneMenuEbene( 'm4_1' );
			showElement( 'm4' );
			break;
		case 'm4_2':
		case 'm4_3':
		case 'm4_4':
		case 'm4_5':
			oeffneMenuEbene( 'm4_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm4' );
			break;
		case 'm5_0':
		case 'm5_1':
			oeffneMenuEbene( 'm5_0' );
			oeffneMenuEbene( 'm5_1' );
			showElement( 'm5' );
			break;
		case 'm5_2':
		case 'm5_3':
			oeffneMenuEbene( 'm5_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm5' );
			break;
		case 'm6_0':
		case 'm6_1':
			oeffneMenuEbene( 'm6_0' );
			oeffneMenuEbene( 'm6_1' );
			showElement( 'm6' );
			break;
		case 'm6_2':
		case 'm6_3':
		case 'm6_4':
			oeffneMenuEbene( 'm6_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm6' );
			break;
		case 'm7_0':
		case 'm7_1':
			oeffneMenuEbene( 'm7_0' );
			oeffneMenuEbene( 'm7_1' );
			showElement( 'm7' );
			break;
		case 'm7_2':
		case 'm7_3':
			oeffneMenuEbene( 'm7_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm7' );
			break;
		case 'm8_0':
		case 'm8_1':
			oeffneMenuEbene( 'm8_0' );
			oeffneMenuEbene( 'm8_1' );
			showElement( 'm8' );
			break;
		case 'm8_2':
		case 'm8_3':
		case 'm8_4':
		case 'm8_5':
			oeffneMenuEbene( 'm8_0' );
			oeffneMenuEbene( mnuId );
			showElement( 'm8' );
			break;
		case 'm9_0':
		case 'm9_1':
			oeffneMenuEbene( 'm9_1' );
			showElement( 'm9' );
			break;
		default:	// Standard: Hauptseite
			mnuId='m1_0';
			oeffneMenuEbene( mnuId );
			break;
	}
	// Ggf. Content-Seite in Content-Bereich
	// laden und diesen sichtbar machen
	switch( mnuId ) {
		case 'm1_0':
			if( ladeContent )
				smallFrame.location.href=locale+'\/'+mnuId+'.html';
			showElement( 'content-hauptseite' );
			break;
		default:
			if( ladeContent )
				largeFrame.location.href=locale+'\/'+mnuId+'.html';
			showElement( 'content-textseite' );
			break;
	}
	// Ticker in Bewegung setzen oder stoppen
	switch( mnuId ) {
		case 'm1_0':
		case 'm9_0':
		case 'm9_1':
			ticker('t');
			break;
		default:
			//ticker('t',-1);
			ticker('t');
			break;
	}

	// BODY `hauptseite´ zeigen
	setCSSStyle( 'hauptseite','visibility','visible' );

}	//function zeigeMenu()

function ticker( tickerId,stop ) {
/**********************************************************
 * Funktion erzeugt bzw. animiert einen Ticker beliebigen	*
 * Inhalts. Achtung: die CSS-Klassen `tickerCoat´ und			*
 * `ticker´ müssen angepasst sowie die Ticker-Parameter im*
 * globalen Array `tickerDta´ gesetzt werden.							*
 *--------------------------------------------------------*
 * Parameter:																							*
 *	tickerId (string):	Ticker-Id													*
 *	stop (boolean/number):	Flag:													*
 *														0,false: Ticker animieren		*
 *														1,true: Ticker anhalten			*
 *														-1: Ticker neu starten			*
 * Parameter-Array:																				*
 * 	tickerDta[tickerId]																		*
 *	.width (number):	Länge des Ticker-Texts in px				*
 *	.viewPort (number):	Länge des sichtb. Tickerbereichs	*
 *	.speed (number):	Intervalllänge in ms (minimal 10)		*
 *	.decrement (number):	Dekrementgröße der Position pro	*
 *												Intervalldurchgang							*
 *--------------------------------------------------------*
 * Rückgabe:																							*
 *	- keine -																							*
 **********************************************************/
	if( typeof tickerDta[tickerId].intvl=='undefined' )
		tickerDta[tickerId].intvl = null;

	switch( tickerDta[tickerId].intvl ) {
		case null:
			if( tickerDta[tickerId].speed<10 || typeof tickerDta[tickerId].speed=='undefined' )
				tickerDta[tickerId].speed=10;
			if( tickerDta[tickerId].decrement<1 || typeof tickerDta[tickerId].decrement=='undefined' )
				tickerDta[tickerId].decrement=1;
			else if( tickerDta[tickerId].decrement>10 )
				tickerDta[tickerId].decrement=10;
			if( getCSSStyle( tickerId+'1','left' )=='') {
				setCSSStyle( tickerId+'1','left','0px' );
				setCSSStyle( tickerId+'2','left',tickerDta[tickerId].viewPort+'px' );
				setCSSStyle( tickerId+'1','width',tickerDta[tickerId].width+'px' );
				setCSSStyle( tickerId+'2','width',tickerDta[tickerId].width+'px' );
				document.getElementById( tickerId+'2' ).innerHTML = document.getElementById( tickerId+'1' ).innerHTML;
				showElement( tickerId+'1' );
				showElement( tickerId+'2' );
				}
			if( stop )
				break;
			tickerDta[tickerId].left=parseInt( getCSSStyle( tickerId+'1','left' ).replace( /px/,'' ));
			tickerDta[tickerId].intvl=window.setInterval( 'ticker("'+tickerId+'")',tickerDta[tickerId].speed );
			break;

		default:
			if( stop ) {
				if( stop==-1 ) {
					setCSSStyle( tickerId+'1','left','0px' );
					setCSSStyle( tickerId+'2','left',tickerDta[tickerId].viewPort+'px' );
				}
				if( tickerDta[tickerId].intvl )
					window.clearInterval( tickerDta[tickerId].intvl );
				tickerDta[tickerId].intvl=null;
			} else {
				tickerDta[tickerId].left-=tickerDta[tickerId].decrement;
				if( tickerDta[tickerId].left+tickerDta[tickerId].width<0 ) {
					setCSSStyle( tickerId+'2','left',tickerDta[tickerId].viewPort+'px' );
					tickerDta[tickerId].left=0;
				}
				setCSSStyle( tickerId+'1','left',tickerDta[tickerId].left+'px' );
				if( tickerDta[tickerId].left<(tickerDta[tickerId].viewPort-tickerDta[tickerId].width))
					setCSSStyle( tickerId+'2','left',(tickerDta[tickerId].left+tickerDta[tickerId].width)+'px' );
			}	//if( stop )
			break;
	}	//switch
}	//function ticker()

function showElement( id,show,elmtype ) {
	if(typeof elmtype!='string')
		elmtype='block';
	if(document.getElementById( id ))
		document.getElementById( id ).style.display=(show==false?'none':elmtype);
}	//function showElement()

function setCSSClass( id,cssClass ) {
	if(document.getElementById( id ) && typeof cssClass == 'string')
		document.getElementById( id ).className=cssClass;
}	//function setCSSClass()

function getCSSClass( id ) {
	if(document.getElementById( id ))
		return document.getElementById( id ).className;
}	//function getCSSClass()

function setCSSStyle( id,cssStyleId,styleDta ) {
	if(document.getElementById( id ))
		document.getElementById( id ).style[cssStyleId]=styleDta;
}	//function setCSSStyle()

function getCSSStyle( id,cssStyleId ) {
	if(document.getElementById( id ))
		return document.getElementById( id ).style[cssStyleId];
}	//function getCSSStyle()

function oeffneMenuEbene( mnuId ) {
	if(document.getElementById( mnuId ))
		setCSSClass( mnuId,getCSSClass( mnuId ).replace( /zu/,'auf' ));
}	//function oeffneMenuEbene()

function schliesseMenuEbene( mnuId ) {
	if(document.getElementById( mnuId ))
		setCSSClass( mnuId,getCSSClass( mnuId ).replace( /auf/,'zu' ));
}	//function schliesseMenuEbene()

function reloadMain( siteId,subPg ) {
	if( parent.siteId!=(siteId+'Main') )
		window.location.href='\/index.html?'+subPg;
}	//function reloadMain()

function getPar() {
	return window.location.search.replace( /\?/,'' );
}	//function getPar()

function num2str( num, dec, dig, decchar ) {
	// Formatiert eine übergebene Zahl
	// als String gemäß der Parameter:
	//	dig:			Vordezimalstellen
	//	dec:			Dezimalstellen
	//	decchar:	Dezimalzeichen

	if(typeof num=='number') {
		var neg=num<0;
		if(typeof dec=='number')
			dec=Math.abs( dec );
		else
			dec=0;
		num=String( parseFloat( Math.round( Math.abs( num )*Math.pow( 10,dec ) )/Math.pow( 10,dec ) ));
		if(dec&&num.indexOf( '.' )==-1)
			num+='.';
		var l=dec-(num.substring( num.indexOf( '.' ),num.length )).length;
		for(var d=0;d<=l;d++)
			num+='0';
		if(typeof decchar!='string')
			decchar='.';
		if(decchar!='.')
			num=num.replace( /\./,decchar );

		if(typeof dig=='number') {
			if(dig=dig<0?1:dig) {
				var l=num.indexOf( decchar )>-1?(num.substring( 0,num.indexOf( decchar ))).length:num.length;
				for(var i=l;i<dig;i++)
					num='0'+num;
			}
		}
		if(neg)
			num='-'+num;
	}
	return num;
}	//function num2str()

/*
   DynAPI Distribution
   Browser Class

   The DynAPI Distribution is distributed under the terms of the GNU LGPL license.

   Enhancements by RJKoester 2002-07-09
*/
function Browser() {
	var an=navigator.appName.toLowerCase();
	var ua=navigator.userAgent.toLowerCase();

	if((an.indexOf('netscape')>-1) && (ua.indexOf("mozilla")>-1) && (ua.indexOf("compatible")==-1) && (ua.indexOf("gecko")>-1))
		this.b="moz";
	else if(an.indexOf('netscape')>-1)
		this.b="ns";
	else if((an=="opera") || (ua.indexOf("opera")>-1))
		this.b="opera";
	else if(an=="microsoft internet explorer")
		this.b="ie";
	if(!an)
		alert('Unidentified user agent.\nthis.browser is not supported!');

	this.version=navigator.appVersion.toLowerCase();
	this.v=parseInt(this.version);
	this.ns=(this.b=="ns" && this.v>=4);
	this.ns3=(this.b=="ns" && this.v<4);
	this.ns4=(this.b=="ns" && this.v==4);
	this.ns6=(this.b=="ns" && this.v==5);
	this.mz=this.moz=(this.b=="moz");
	this.mz100=(this.b=="moz" && (ua.indexOf("rv:1.0.0")>-1 || ua.indexOf("gecko/200205")>-1 || ua.indexOf("gecko/200206")>-1));
	this.ie=(this.b=="ie" && this.v>=4);
	this.ie4=(this.version.indexOf('msie 4')>0);
	this.ie5=(this.version.indexOf('msie 5')>0);
	this.ie55=(this.version.indexOf('msie 5.5')>0);
	this.ie6=(this.version.indexOf('msie 6.0')>0);
	this.op=this.opera=(this.b=="opera");
	this.op4=(ua.indexOf("opera 4")>-1)||(ua.indexOf("opera/4")>-1);
	this.op5=(ua.indexOf("opera 5")>-1)||(ua.indexOf("opera/5")>-1);
	this.op6=(ua.indexOf("opera 6")>-1)||(ua.indexOf("opera/6")>-1);
	this.dom=(document.createElement && document.appendChild && document.getElementsByTagName && document.getElementsByName)?true:false;
	this.def=(this.ie||this.dom); // most used browsers, for faster if loops
	this.out=(!an||this.op4||this.ns4);

	if (ua.indexOf("win")>-1)
		this.platform="win32";
	else if (ua.indexOf("mac")>-1)
		this.platform="mac";
	else if (ua.indexOf("linux")>-1)
		this.platform="lnx";
	else if (ua.indexOf("os/2")>-1)
		this.platform="os2";
	else
		this.platform="other";
}
is=new Browser();

