// nachfolgende Definition in jedem Head-Bereich einfügen:
// <script src='functions.js'></script>




// -------------------------------------------------------------

// Zeigen öffnet ein neues Fenster ohne Bedienelemente!

function Zeigen(datei, x, y, dx, dy) {
	window.open(datei, "neuesFenster", 
	"toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width="+x+",height="+y+",screenX="+dx+",screenY="+dy);
}

// -------------------------------------------------------------

// Bild_Zeigen öffnet ein neues Fenster ohne Bedienelemente und zeigt ein Bild an!

function Bild_Zeigen(datei, x, y) {
//	x+=25; y+=25;
	window.open(datei, "neuesFenster", 
	"toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no,width="+x+",height="+y+",screenX=200,screenY=50");
}

// -------------------------------------------------------------

// Amerikanisches Datumsformat von heute erstellen: "Jan 01, 2000"

function AmiDatum (){
	var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
	var heute=new Date()
	var heute_J=heute.getYear()
	if (heute_J < 1000) heute_J+=1900
	var heute_M=heute.getMonth()
	var heute_T=heute.getDate()
	var todaystring=montharray[heute_M]+" "+heute_T+", "+heute_J

	return todaystring;
}

// -------------------------------------------------------------

/* CountDown zählt die Tage bis zu einem vorgegebenen Ereignis herunter und gibt
   abhängig von der Dauer (0 Tage, 1 Tag, > 1 Tag) bestimmte Meldungen in einer Messagebox aus */

	function CountDown(term){
		var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
		var heute=new Date()
		var heute_J=heute.getYear()
		if (heute_J < 1000) heute_J+=1900
		var heute_M=heute.getMonth()
		var heute_T=heute.getDate()
		var todaystring=montharray[heute_M]+" "+heute_T+", "+heute_J
		
		//var term="May 4, 2002" (Parameterformat von "term")
	
		difference=(Math.round((Date.parse(term)-Date.parse(todaystring))/(24*60*60*1000))*1)

		var msg="Noch " + difference + " Tage bis ..."
		var msg1="Morgen ...\n\nNICHT VERGESSEN !!!"
		var msg2="HEUTE ..."

		if (difference<0)
		   exit
		else if (difference==0)		   
		     alert(msg2)
		else if (difference==1)
			 alert(msg1)
		else if (difference>1)
			 alert(msg)
	}

// -------------------------------------------------------------

/*  Hinweis zeigt allgemeine Hinweise an
		Text muss als Parameter übergeben werden!
		Datum muss in der Form "MM dd, YY" ("Jan 01, 2010") übergeben werden!
*/

	function Hinweis(msg, dat){

		heute = AmiDatum();
		//alert (dat);
		if (Date.parse(heute)<=(Date.parse(dat))) 												// evtl. nur bis 18:00 Uhr: + 18*60*60*1000))
	 		alert(msg);
	}

// -------------------------------------------------------------

/*
  BspHinweis zeigt ab 1 Woche vor einer Blutspendeaktion verschiendene Msgboxen
	mit Hinweisen auf die Blutspende an: 1. "Nächsten Freitag"; 2. "Morgen"; 3. "Heute"

	ACHTUNG: Die Termine müssen aufsteigend im amerikanischen Format den Variablen
	         dem Array "termarray" zugordnet werden (z.B. "Mar 04 2011")!!!
 */
// Blutspende-Hinweis geändert 22.06.2011


	function BspHinweis(){
		var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
		var heute=new Date()
		var heute_J=heute.getFullYear()
		if (heute_J < 1000) heute_J+=1900
		var heute_M=heute.getMonth()
		var heute_T=heute.getDate()
		var todaystring=montharray[heute_M]+" "+heute_T+" "+heute_J

		// unter Linux muss der String für date.parse in der u.g. Form dargestellt werden, für Windows wäre es egal:
		var termarray=new Array("Mar 04 2011","May 13 2011","Aug 05 2011","Sep 30 2011","Dec 02 2011");
		var term="";

		var msg=" \nist Blutspende in Langenau!\nZeit: von 14:30 Uhr bis 19:30 Uhr.\n";
		msg=msg + "\nWir würden uns freuen, auch\n";
		msg=msg + "Sie als Spender ";
		msg=msg + "begrüßen zu dürfen!\n\n";
		var msg1="Heute" + msg;
		var msg2="Morgen" + msg;
		var msg3="Nächsten Freitag" + msg;

		var z = termarray.length;
		var i = 0;

		do {
			if (Date.parse(heute)>(Date.parse(termarray[i]) + 18*60*60*1000))		// Anzeige bis 18:00 Uhr
				i++;
			else {
				term=termarray[i];
				//alert ("Der nächste Termin ist am :" + term);
				break;
			}
		} while (term=="" && i<z);

		/* Debugmeldung für Funktionstest bei Unix-/Linux-Browsern! */
		//alert (Date.parse(todaystring) + " : " + Date.parse(term) + "\n\nDatum: " + term);

		// ACHTUNG: unter Linux funktioniert "Math.round" ab 2147483648 nicht mehr!!!
		difference=Math.round((Date.parse(term)-Date.parse(todaystring))/(24*60*60*1000))
		if (difference==0)
  		alert (msg1);
		else if (difference==1)
			alert(msg2);
		else if ((difference>1)&&(difference<8))
			alert(msg3);
		else
			return;

}


// -------------------------------------------------------------
	
// TEST-Funktion

function test(){
    alert ("JS-Datei Test")
}


// -------------------------------------------------------------
	
/* Diese Funktion wechselt das Image des Klickbuttons in der Navileiste */
/*		<!-- Diese Zeilen nicht verändern -->*/

		function Bildwechsel (imgName, stat) {
			if (ClickedImg == imgName) {
				return true;
			}
			
			if (stat == 'on') {
				Source = eval (imgName + "_on.src");
			}
			else {
				Source = eval (imgName + "_off.src");
			}
			document [imgName].src = Source;
		}
		

// -------------------------------------------------------------
	
/* Diese Funktion hält das angeklickte Image des Klickbuttons in der Navileiste */

		function Halte(imgName, stat) {
			OldImg=ClickedImg;
			ClickedImg=imgName;
			if (OldImg > "") {
				Bildwechsel(OldImg, 'off');
			}
		}

		
// -------------------------------------------------------------
	
/* Diese Funktion lädt alle Grafiken für die Clickbuttons*/
/* <!-- zuerst alle Grafiken laden --> */
/* Wenn wieder die "xZZZ-Buttons geladen werden sollen, hier vor "buttons" ein "y" stellen */

	function load_buttons(){

	/* zuerst "off" */
	home_off = new Image(160,20); home_off.src = "grafik/yhome-off.gif";
	bau_off = new Image(160,20); bau_off.src = "grafik/ybau-off.gif";
	ov_off = new Image(160,20); ov_off.src = "grafik/yov-off.gif";
	ber_off = new Image(160,20); ber_off.src = "grafik/yber-off.gif";
	jrk_off = new Image(160,20); jrk_off.src = "grafik/yjrk-off.gif";
	hvo_off = new Image(160,20); hvo_off.src = "grafik/yhvo-off.gif";
	seg_off = new Image(160,20); seg_off.src = "grafik/yseg-off.gif";
	kats_off = new Image(160,20); kats_off.src = "grafik/ykats-off.gif";
	bs_off = new Image(160,20); bs_off.src = "grafik/ybs-off.gif";
	term_off = new Image(160,20); term_off.src = "grafik/yterm-off.gif";
	kon_off = new Image(160,20); kon_off.src = "grafik/ykon-off.gif";
	dst_off = new Image(160,20); dst_off.src = "grafik/ydst-off.gif";
	int_off = new Image(160,20); int_off.src = "grafik/yint-off.gif";
	gb_off = new Image(160,20); gb_off.src = "grafik/ygb-off.gif";

	/* danach "on", weil die erst beim Überfahren gebraucht werden */
	home_on = new Image(160,20); home_on.src = "grafik/yhome-on.gif";
	bau_on = new Image(160,20); bau_on.src = "grafik/ybau-on.gif";
	ov_on = new Image(160,20); ov_on.src = "grafik/yov-on.gif";
	ber_on = new Image(160,20); ber_on.src = "grafik/yber-on.gif";
	jrk_on = new Image(160,20); jrk_on.src = "grafik/yjrk-on.gif";
	hvo_on = new Image(160,20); hvo_on.src = "grafik/yhvo-on.gif";
	seg_on = new Image(160,20); seg_on.src = "grafik/yseg-on.gif";
	kats_on = new Image(160,20); kats_on.src = "grafik/ykats-on.gif";
	bs_on = new Image(160,20); bs_on.src = "grafik/ybs-on.gif";
	term_on = new Image(160,20); term_on.src = "grafik/yterm-on.gif";
	kon_on = new Image(160,20); kon_on.src = "grafik/ykon-on.gif";
	dst_on = new Image(160,20); dst_on.src = "grafik/ydst-on.gif";
	int_on = new Image(160,20); int_on.src = "grafik/yint-on.gif";
	gb_on = new Image(160,20); gb_on.src = "grafik/ygb-on.gif";

	}
	
// -------------------------------------------------------------

/* Diese Funktion lädt alle Grafiken für die Clickbuttons*/
/* <!-- zuerst alle Grafiken laden --> */
/* x vor "buttons" entfernen, damit diese Fkt. wieder die "xZZZ-Buttons" lädt*/

	function load_xbuttons(){

	/* zuerst "off" */
	home_off = new Image(160,20); home_off.src = "grafik/xhome-off.gif";
	bau_off = new Image(160,20); bau_off.src = "grafik/xbau-off.gif";
	ov_off = new Image(160,20); ov_off.src = "grafik/xov-off.gif";
	ber_off = new Image(160,20); ber_off.src = "grafik/xber-off.gif";
	jrk_off = new Image(160,20); jrk_off.src = "grafik/xjrk-off.gif";
	hvo_off = new Image(160,20); hvo_off.src = "grafik/xhvo-off.gif";
	seg_off = new Image(160,20); seg_off.src = "grafik/xseg-off.gif";
	kats_off = new Image(160,20); kats_off.src = "grafik/xkats-off.gif";
	bs_off = new Image(160,20); bs_off.src = "grafik/xbs-off.gif";
	term_off = new Image(160,20); term_off.src = "grafik/xterm-off.gif";
	kon_off = new Image(160,20); kon_off.src = "grafik/xkon-off.gif";
	dst_off = new Image(160,20); dst_off.src = "grafik/xdst-off.gif";
	int_off = new Image(160,20); int_off.src = "grafik/xint-off.gif";
	gb_off = new Image(160,20); gb_off.src = "grafik/xgb-off.gif";

	/* danach "on", weil die erst beim Überfahren gebraucht werden */
	home_on = new Image(160,20); home_on.src = "grafik/xhome-on.gif";
	bau_on = new Image(160,20); bau_on.src = "grafik/xbau-on.gif";
	ov_on = new Image(160,20); ov_on.src = "grafik/xov-on.gif";
	ber_on = new Image(160,20); ber_on.src = "grafik/xber-on.gif";
	jrk_on = new Image(160,20); jrk_on.src = "grafik/xjrk-on.gif";
	hvo_on = new Image(160,20); hvo_on.src = "grafik/xhvo-on.gif";
	seg_on = new Image(160,20); seg_on.src = "grafik/xseg-on.gif";
	kats_on = new Image(160,20); kats_on.src = "grafik/xkats-on.gif";
	bs_on = new Image(160,20); bs_on.src = "grafik/xbs-on.gif";
	term_on = new Image(160,20); term_on.src = "grafik/xterm-on.gif";
	kon_on = new Image(160,20); kon_on.src = "grafik/xkon-on.gif";
	dst_on = new Image(160,20); dst_on.src = "grafik/xdst-on.gif";
	int_on = new Image(160,20); int_on.src = "grafik/xint-on.gif";
	gb_on = new Image(160,20); gb_on.src = "grafik/xgb-on.gif";

	}

// -------------------------------------------------------------


// ############################################ \\
// # Schneefall in einem definierten Bereich. # \\
// ############################################ \\

/* Diese Funktionen lassen es schneien
   Damit es schneit, wird ein Element benötigt, das die ID "schnee" hat:
   z.B. <body id="schnee"> oder <div id="schnee"> oder auch <img id="schnee" src=...>
   sollte auch mit mehreren Elementen auf einer Seite funktionieren!
*/

// # KONFIGURATION # \\
var snow_area_id = 'schnee';		  // die ID des HTML-Elements, in dem es schneien soll
var snow_flake_count = 50;			  // maximale Anzahl der sichtbaren Schneeflocken
var snow_colors = new Array('#AAAACC','#DDDDFF','#CCCCDD','#F3F3F3','#F0FFFF');		  // die verschiedenen Farbe, die die Schneeflocken haben sollen
var snow_fonts  = new Array('Arial Black', 'Arial Narrow', 'Times', 'Comic Sans MS'); // die Schriftarten, aus denen die Schneeflocken bestehen sollen

var snow_char = '*';		// das Zeichen, das als Schneeflocke verwendet wird
var snow_gravity = 1.0;		// wie schnell die Schneeflocken fallen
var snow_max_size = 30;		// die maximale Schriftgröße einer Schneeflocke
var snow_min_size = 10;		// die minimale Schriftgröße einer Schneeflocke
var snow_init_delay = 5;	// Verzögerungszeit in Millisekunden, bevor es zu schneien anfängt (org. = 50)

// ############################################################################################ \\
// # HIER ENDET DIE KONFIGURATION. ÄNDERUNGEN IM FOLGENDEN SETZEN JAVSCRIPT-KENNTNISSE VORAUS # \\

var snow_init_time = 0;
var snowflakes = new Array();
var snow_area_el = null;

function createSnowflakes()
{
	var style = 'position:absolute; top:-' + snow_max_size + 'px; z-index:99;';
	for (var i = 0; i <= snow_flake_count; i++)
		document.write('<sp' + 'an id="snwflk' + i + '" style="' + style + '">' + snow_char + '</sp' + 'an>');
}

function randInt(range) { return Math.floor(Math.random() * range); }

function initSnow()
{
	snow_area_el = document.getElementById(snow_area_id);

	// reapeat until we have the snow_area_el
	if(!snow_area_el || snow_area_el.offsetWidth <= snow_max_size || snow_area_el.offsetHeight <= snow_max_size) {
		// after 5 secs cancel
		if(snow_init_time < 5000)
			window.setTimeout('initSnow()', 50);

		snow_init_time += 50;
		return;
	}

	// offest fix
	snow_area_el.style.position = 'relative';

	for (var i = 0; i <= snow_flake_count; i++)
	{
		snowflakes[i] = document.getElementById('snwflk' + i);

		snowflakes[i].size = (randInt(snow_max_size - snow_min_size) + snow_min_size);
		snowflakes[i].posx = -snowflakes[i].size;
		snowflakes[i].posy = -snowflakes[i].size;
		snowflakes[i].sink = (snow_gravity * snowflakes[i].size / snow_min_size);
		snowflakes[i].wobamp = (Math.random() * (snowflakes[i].size));
		snowflakes[i].wob = 0.0;
		snowflakes[i].wobspeed = (0.03 + Math.random() / 10.0);

		snowflakes[i].style.fontFamily = snow_fonts[randInt(snow_fonts.length)];
		snowflakes[i].style.fontSize = snowflakes[i].size + 'px';
		snowflakes[i].style.color = snow_colors[randInt(snow_colors.length)];
	}

	window.setInterval('updateSnow()', 50);
}

function updateSnow()
{
	var bl = snow_area_el.offsetLeft;
	var bt = snow_area_el.offsetTop;
	var bw = snow_area_el.offsetWidth;
	var bh = snow_area_el.offsetHeight;
	var br = bl + bw;
	var bb = bt + bh;

	for (var i = 0; i <= snow_flake_count; i++)
	{
		snowflakes[i].wob += snowflakes[i].wobspeed;
		var x = snowflakes[i].posx + (snowflakes[i].wobamp * Math.sin(snowflakes[i].wob));
		snowflakes[i].posy += snowflakes[i].sink;

		snowflakes[i].style.left = Math.round(x) + 'px';
		snowflakes[i].style.top = Math.round(snowflakes[i].posy) + 'px';

		var s = snowflakes[i].size;
		// check bounds
		if (snowflakes[i].posy > (bb - s) || x < bl || x  > (br - s))
		{
			snowflakes[i].posx = bl + s + randInt(bw - (3 * s));

			if(snowflakes[i].posy < 0)
				snowflakes[i].posy = bt + randInt(bh - 2 * s);
			else
				snowflakes[i].posy = bt;
		}
	}
}

// ############################# \\
// # ENDE DER SCHNEEFUNKTIONEN # \\
// ############################# \\

//-------------------------------------------------------------------\\
// nachfolgenden Code im Bodybereich der Seite einfügen!             \\
// (wird über php-Funktion "winterlook()" terminabhängig eingefügt!) \\
//-------------------------------------------------------------------\\

/*
<script type='text/javascript'>
<!--
// Schnee initialisieren
createSnowflakes();
window.setTimeout('initSnow()', Math.max(50, snow_init_delay));
//-->
</script>
*/
