// JavaScript Document
// ---------------
// Funktions-Timer
// ---------------
Function.prototype.Timer = function (interval, calls, onend) 
{
	// http://aktuell.de.selfhtml.org/artikel/javascript/timer/
	var count				= 0;
	var payloadFunction		= this;																					// das übergeordnete Funtionsobjekt
	var startTime			= new Date();
	var callbackFunction	= function () 
							  {
							      return payloadFunction(startTime, count);											// ruft die übergeordnete Funktion auf 
							  };
	var endFunction 		= function () 
							  {
							      if (onend)	onend(startTime, count, calls);										// ruft die Funktion für den letzten Aufruf auf
							  };
	var timerFunction 		= function () 
							  {
							      count++;
							      if ((count<calls) && 																// falls Aufrufe noch nicht abgearbeitet und übergeordnete Funktion nicht false zurückliefert
									  (callbackFunction()!=false))	window.setTimeout(timerFunction, interval);		// timer erneut starten
							      else								endFunction();									// ansonsten letzte funktion aufrufen
							  };
	timerFunction();
};
// ---------------
// Hilfsfunktionen
// ---------------
function addLeading0(s)
{
	s = s + "";
	if(s.length==1) s= "0" + s;
	return s;
}
function getTimeStr()
{
	dat = new Date();
	h	= dat.getHours();
	m	= dat.getMinutes();
	s	= dat.getSeconds();
	str	= addLeading0(h) + ":" + addLeading0(m) + ":" + addLeading0(s);
	return str;
}
// ----------------------------------------------------
// Funktion zum erneuten Laden des Ganglinien-Diagramms
// für diese Funktion notwendig:
//	(1)	variable "hydroCurveDiagramSRC" muss die source des Diagramms (incl Größe enthalten)
//	(2)	element mit der id "reloadcounter"  sollte existieren, falls Counter-Daten ausgegeben werden sollen
//	(3)	element mit der id "hydrocurvediagram" sollte existieren, wen
// ----------------------------------------------------
reloadCounter 			= 0;
hydroCurveDiagramSRC	= null;
function reloadHydroCurveDiagram()
{
	element = document.getElementById('reloadcounter');				// Ausgabe der Counter-Daten
	if(element)														// falls ein entsprechendes Element existiert: Counter ausgeben
	{
		element.innerHTML = "upd: " /* + reloadCounter + " - " */ + getTimeStr();
	}
	
	reloadCounter++;	
	element = document.getElementById('hydrocurvediagram');			// reload des Diagramms
	if(element)														// falls entsprechendes Element existiert
	{
		if(hydroCurveDiagramSRC)									// falls SRC zum reloaden angegeben wurde
		{
			element.src = hydroCurveDiagramSRC 						// eigentliche source
						  + '?' + (new Date()).getTime();			// Dummy-Modifikator, damit Grafik neu geladen und nicht aus Cache
		}
	}
	return true;
}
// ----------------------------------------------------------------
// Funktion zum Reloaden einer ganzen Seite
//	führt ein einfaches Relaod nach angegebenen Millisekunden durch
// ----------------------------------------------------------------
function reloadPage(interval)
{
	element = document.getElementById('reloadcounter');				// Ausgabe der Counter-Daten
	if(element)														// falls ein entsprechendes Element existiert: Counter ausgeben
	{
		element.innerHTML = "upd: " + getTimeStr();
	}

	window.setTimeout("window.location.reload(true);", interval);
}




