// Arrays für Timerfunktion
timer_running = new Array();
timer_target = new Array();
timer_time = new Array();
timer_name = new Array();
timer_run_text = new Array();
timer_end_text = new Array();
var Site;
var lowest_time;
var firstTimer;

// neuen Timer initialsieren
function new_timer(t_name, t_time, t_run_text, t_end_text, site) {
	// t_name -> HTML-ID des Timer (<span id="t_name"></span>)
	// t_time -> Restzeit in Sekunden
	// t_run_text -> String für Laufzeit des Timers (für Lokalisierung)
	// t_end_text -> String für Ablauf des Timers (für Lokalisierung)
	if (document.getElementById(t_name)) {
		var t_id = timer_running.length;
		timer_running[t_id] = 1;
		timer_target[t_id] = document.getElementById(t_name);
		timer_name[t_id] = t_name;
		timer_time[t_id] = t_time;
		timer_run_text[t_id] = t_run_text;
		timer_end_text[t_id] = t_end_text;
		Site = site;
		if (timer_time[t_id] < lowest_time || lowest_time == null) {
			if (timer_time[t_id] > 0) {
				lowest_time = timer_time[t_id];
				firstTimer = t_id;
			}
		}
	}
}

// initialisierte Timer abarbeiten
function start_timer() {
	for (t_id = 0; t_id < timer_running.length; t_id++) {
		if (timer_running[t_id] == 1) {
			// Timer läuft
			var time_left = timer_time[t_id];
			if (time_left > 0) {
				// Restzeit anzeigen
				var s = time_left % 60;
				var m = ((time_left - s) / 60) % 60;
				var h = ((time_left - s - (m * 60)) / 3600);
				var time_string = l_z(h) + ':' + l_z(m) + ':' + l_z(s);
				switch (timer_name[t_id]) {
					// aktuelle Systemzeit anzeigen
					case 'system_timer':
						var to = system_timer(timer_end_text[t_id]);
						output_string = eval(timer_run_text[t_id]);
						timer_time[t_id] += 2;
					break;
					// Rohstofftimer anzeigen
					case 'ress_timer':
						output_string = '<span style="color:green;">'+time_string+'</span>';
					break;
					// Standardtimer
					default:
						output_string = time_string;
					break;
				}
				// Restzeit um eine Sekunde reduzieren
				timer_time[t_id]--;
			} else {
				// Restzeit ist abgelaufen
				switch (timer_name[t_id]) {
					// Rohstofftimer anzeigen
					case 'ress_timer':
						var output_string = '<a href="game.php?cwp='+timer_run_text[t_id]+'&ac=main">'+timer_end_text[t_id]+'</a>';
					break;
					// Standardtimer
					default:
						if (timer_end_text[t_id] != "") {
							output_string = timer_end_text[t_id];
						} else {
							output_string = "00:00:00";
						}
					break;
				}
				// Timer-Ausführung stoppen
				timer_running[t_id] = 0;
				switch (Site){
					case 'buddeln':
						document.forms['form_'+timer_name[t_id]].time_typ.disabled = '';
						document.forms['form_'+timer_name[t_id]].inaction_typ.disabled = '';
						document.forms['form_'+timer_name[t_id]].sub.disabled = '';
						document.forms['form_'+timer_name[t_id]].sub.className = 'BuddelIcon';
						break;
					
					default:
						break;			
				}
			}
			if (t_id == firstTimer) {
				document.title = output_string + ' Dig\'n\'Fight';
			}
			// Ausgabe des Strings in die betreffende Zelle
			timer_target[t_id].innerHTML = output_string;
		}
	}
	// Timer-Funktion nach einer Sekunde erneut aufrufen
	window.setTimeout("start_timer()", 1000);
}

// führende Null bei einstelligen Zahlen
function l_z(number) {
	if (number < 10) {
		return "0" + number.toString();
	} else {
		return number.toString();
	}
}

// Funktion für system_timer
function system_timer(ts){
	var start_time = new Date(ts.substr(6,4), ts.substr(0,2), ts.substr(3,2), ts.substr(11,2), ts.substr(14,2), ts.substr(17,2));
	return new Date(start_time.getTime() + (timer_time[t_id] * 1000));
}