var isLoaded = Array();
var isToggle = Array();

var curKlasse = 0;

// Blendet Liste ein oder aus
var toggleListe = function ( klasse )
{

	// Klasse global speichern
	curKlasse = klasse;
	
    // Liste gerade sichtbar?
	if (isToggle[klasse] == 1) {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_show.jpg" border="0" \>';
		$("t_"+klasse).toggle();
		isToggle[klasse] = 0;
	}
	// nicht sichbar, aber schon geladen?
	else if (isLoaded[klasse] == true) {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_hide.jpg" border="0" \>';
		$("t_"+klasse).toggle();
		toggleListeEffect(klasse);
		isToggle[klasse] = 1;
	}
	// noch nicht geladen (erster Aufruf)
	else {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/loader.gif" border="0" \>';

        // Wenn die Verbindung geklappt hat
		var handlerFunc = function(t) {
			var txt = t.responseText;

			if (txt == 'ERR01') {
				ajaxError(0, "Fehler bei der Verbindung");
			}
			else {
			    res = eval(txt);
			    loadListe(klasse, res);
			}
		}

        // Wenn die Verbindung fehlschlug
		var errFunc = function(t) {
            ajaxError(t.status, t.statusText);
		}

		new Ajax.Request('ajax.phtml', {parameters:'klasse='+klasse, onSuccess:handlerFunc, onFailure:errFunc});
	}
}

// lädt die Daten für eine Liste
var loadListe = function ( klasse, data )
{
	//alert("f: " + data.length);
    var str = "";

    // wenn Einträge vorhanden sind
    if (data.length > 0) {
	    str = "<table cellspacing=0 cellpadding=0 border=0 width=765>";
		var count = 0;
    	for (var i=0, j=data.length;i<j;i++) {
    		var schueler = data[i].split('|');

    		var nachname	= schueler[0];
    		var vorname 	= schueler[1];
    		var sch_id 		= schueler[2];
			if (klasse == "lehrer") {
				var subject    = schueler[3];
			}

            // Tabellen-Zeilen für die Ausgabe erzeugen
			if (!((nachname == "ADMIN" && vorname == "ADMIN"))) {
				count++;
				str += "<tr>";
				
					if (count%2 == 0) {
						str += "<td bgcolor='#DEDEDE' width='21' valign='top'><input type='checkbox' name='schueler["+klasse+"]["+sch_id+"]' id='s_"+sch_id+"' class='c_"+klasse+"'";
					} else {
						str += "<td bgcolor='#D4D4D4' width='21' valign='top'><input type='checkbox' name='schueler["+klasse+"]["+sch_id+"]' id='s_"+sch_id+"' class='c_"+klasse+"'";					
					}
					if ($('i_'+klasse).checked == true) {
						str += " checked='checked'";
					}
					str += " value='1' onclick='checkKlasse(this, \""+klasse+"\")' /></td>";
				if (klasse == "lehrer") {
					if (count%2 == 0) {
						str += "<td bgcolor='#DEDEDE' valign='top'>" + nachname + ", " + vorname + "</td><td align='right' bgcolor='#DEDEDE' style='padding-right:4px;'>";
					} else {
						str += "<td bgcolor='#D4D4D4' valign='top'>" + nachname + ", " + vorname + "</td><td align='right' bgcolor='#D4D4D4' style='padding-right:4px;'>";
					}
					var subjects = subject.split("+");
					for (var x=0, y=subjects.length; x<y; x++) {
						str += subjects[x];
						if (x < y-1)
							str += "<br/>";
					}
					str += "</td>";
				} else {
					if (count%2 == 0) {
						str += "<td bgcolor='#DEDEDE' colspan='2'>" + nachname + ", " + vorname + "</td>";
					} else {
						str += "<td bgcolor='#D4D4D4' colspan='2'>" + nachname + ", " + vorname + "</td>";
					}	
				}
				
				str += "<tr>";
			}
    	}

    	str += "</table>";
    	isLoaded[klasse] = true;
    }
    else str = "kein Eintrag vorhanden.";


	$("k_"+klasse).innerHTML = str;

	$("t_"+klasse).toggle();
	toggleListeEffect(klasse);
	isToggle[klasse] = 1;
	$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_hide.jpg" border="0" \>';
}



// Blendet Liste ein oder aus
var toggleTerminListe = function ( klasse, id )
{

	// Klasse global speichern
	curKlasse = klasse;
	
    // Liste gerade sichtbar?
	if (isToggle[klasse] == 1) {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_show.jpg" border="0" \>';
		$("t_"+klasse).toggle();
		isToggle[klasse] = 0;
	}
	// nicht sichbar, aber schon geladen?
	else if (isLoaded[klasse] == true) {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_hide.jpg" border="0" \>';
		$("t_"+klasse).toggle();
		toggleListeEffect(klasse);
		isToggle[klasse] = 1;
	}
	// noch nicht geladen (erster Aufruf)
	else {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/loader.gif" border="0" \>';

        // Wenn die Verbindung geklappt hat
		var handlerFunc = function(t) {
			var txt = t.responseText;

			if (txt == 'ERR01') {
				ajaxError(0, "Fehler bei der Verbindung");
			}
			else {
			    res = eval(txt);
			    loadTerminListe(klasse, res);
			}
		}

        // Wenn die Verbindung fehlschlug
		var errFunc = function(t) {
            ajaxError(t.status, t.statusText);
		}
		new Ajax.Request('ajax.phtml', {method:'post', postBody:'klasse='+klasse+'&app=true&id='+id, onSuccess:handlerFunc, onFailure:errFunc});
	}
}

// lädt die Daten für eine Liste
var loadTerminListe = function ( klasse, data )
{
	//alert("f: " + data.length);
    var str = "";

    // wenn Einträge vorhanden sind
    if (data.length > 0) {
	    str = "<table cellspacing=0 cellpadding=0 border=0 width=550>";
		var count = 0;
    	for (var i=0, j=data.length;i<j;i++) {
    		var schueler = data[i].split('|');

    		var nachname	= schueler[0];
    		var vorname 	= schueler[1];
    		var sch_id 		= schueler[2];
    		var activated	= schueler[3];
			if (klasse == "lehrer") {
				var subject    = schueler[4];
			}

            // Tabellen-Zeilen für die Ausgabe erzeugen
			if (!((nachname == "ADMIN" && vorname == "ADMIN"))) {
				count++;
				// input
				str += "<tr>";
				if (count%2 == 0) {
					str += "<td bgcolor='#DEDEDE' width='21' valign='top'><input type='checkbox' name='schueler["+klasse+"]["+sch_id+"]' id='s_"+sch_id+"' class='c_"+klasse+"'";
				} else {
					str += "<td bgcolor='#D4D4D4' width='21' valign='top'><input type='checkbox' name='schueler["+klasse+"]["+sch_id+"]' id='s_"+sch_id+"' class='c_"+klasse+"'";					
				}
				if ($('i_'+klasse).checked == true) {
					str += " checked='checked'";
				}
				if (activated == '1') {
					str += " disabled='disabled'";
				}
				str += " value='1' onclick='checkKlasse(this, \""+klasse+"\")' /></td>";
				if (klasse == "lehrer") {
					// data
					if (count%2 == 0) {
						str += "<td bgcolor='#DEDEDE' valign='top'>" + nachname + ", " + vorname + "</td><td align='right' bgcolor='#DEDEDE' style='padding-right:4px;'>";
					} else {
						str += "<td bgcolor='#D4D4D4' valign='top'>" + nachname + ", " + vorname + "</td><td align='right' bgcolor='#D4D4D4' style='padding-right:4px;'>";
					}
					var subjects = subject.split("+");
					for (var x=0, y=subjects.length; x<y; x++) {
						str += subjects[x];
						if (x < y-1)
							str += "&nbsp;<br/>";
					}
					str += "&nbsp;</td>";
				} else {
					// data
					if (count%2 == 0) {
						str += "<td bgcolor='#DEDEDE' colspan='2'>" + nachname + ", " + vorname + "</td>";
					} else {
						str += "<td bgcolor='#D4D4D4' colspan='2'>" + nachname + ", " + vorname + "</td>";
					}	
				}
				
				str += "<tr>";
			}
    	}

    	str += "</table>";
    	isLoaded[klasse] = true;
    }
    else str = "kein Eintrag vorhanden.";


	$("k_"+klasse).innerHTML = str;

	$("t_"+klasse).toggle();
	toggleListeEffect(klasse);
	isToggle[klasse] = 1;
	$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_hide.jpg" border="0" \>';
}




var toggleForumListe = function ( klasse, arrRechte, forenTyp, id )
{
	// Klasse global speichern
	curKlasse = klasse;

    // Liste gerade sichtbar?
	if (isToggle[klasse] == 1) {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_show.jpg" border="0" \>';
		$("t_"+klasse).toggle();
		isToggle[klasse] = 0;
	}
	// nicht sichbar, aber schon geladen?
	else if (isLoaded[klasse] == true) {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_hide.jpg" border="0" \>';
		$("t_"+klasse).toggle();
		toggleListeEffect(klasse);
		isToggle[klasse] = 1;
	}
	// noch nicht geladen (erster Aufruf)
	else {
		$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/loader.gif" border="0" \>';

        // Wenn die Verbindung geklappt hat
		var handlerFunc = function(t) {
			var txt = t.responseText;
			if (txt == 'ERR01') {
				ajaxError(0, "Fehler bei der Verbindung");
			}
			else {
			    res = eval(txt);
			    loadForumListe(klasse, res, arrRechte, forenTyp);
			}
		}

        // Wenn die Verbindung fehlschlug
		var errFunc = function(t) {
            ajaxError(t.status, t.statusText);
		}
		new Ajax.Request('ajax.phtml', {method:'post', postBody:'klasse='+klasse+'&forum=true&id='+id, onSuccess:handlerFunc, onFailure:errFunc});
	}
}


// lädt die Daten für eine Liste
var loadForumListe = function ( klasse, data, arrRechte, forenTyp )
{
	//alert("f: " + data.length);

    var str = "";
	var strhidden = "";

    // wenn Einträge vorhanden sind
    if (data.length > 0) {
	    str = "<table cellspacing=0 cellpadding=1 border=0 width='100%'>";
		str += "<tr><td style='border-bottom:1px solid #c3c3c3;background-color:#E7E7E7;'>&nbsp;</td>";
		for (var x=0, y=arrRechte.length; x<y; x++) {
			str += "<td style='border-bottom:1px solid #c3c3c3;background-color:#E7E7E7;' width='100' align='center'>";
			if (!((forenTyp == 0 && (x == 0 || x == 1)) || (forenTyp == 1 && x == 0))) {
			str += "<a href='javascript:;' onClick='checkAllForum(\""+klasse+"_"+arrRechte[x]+"\"); return false;'><img src='../../lp/lp-design/images/forum_checkall.gif' border='0' height='15' width='20' alt='alle haken setzen' title='alle haken setzen' id='"+klasse+"_"+arrRechte[x]+"'></a>";
			} else {
				str += "&nbsp;";
			}
			str += "</td>";
		}
		str += "</tr>";
		var count = 0;
    	for (var i=0, j=data.length; i<j; i++) {
    		var schueler = data[i].split('|');

    		var nachname	= schueler[0];
    		var vorname 	= schueler[1];
    		var sch_id 		= schueler[2];
			var recht 		= new Array();
			for (var l=0; l<arrRechte.length; l++) {
				recht.push(schueler[l+3]);
			}

            // Tabellen-Zeilen für die Ausgabe erzeugen
			if (!(nachname == "ADMIN" && vorname == "ADMIN")) {
				count++;
				str += "<tr>";
				if (count%2 == 0) {
					str += "<td bgcolor='#DEDEDE' width='100%'>" + nachname + ", " + vorname + "</td>";
				} else {
					str += "<td bgcolor='#D4D4D4' width='100%'>" + nachname + ", " + vorname + "</td>";
				}
				for (var k=0; k<arrRechte.length; k++) {
					if (count%2 == 0) {
						str += "<td bgcolor='#DEDEDE' width='100' align='center'>";
						//alert("c_"+klasse+"_"+(k+1));
					} else {
						str += "<td bgcolor='#D4D4D4' width='100' align='center'>";
						//alert("c_"+klasse+"_"+(k+1));
					}
					str += "<input type='checkbox' name='schueler["+klasse+"]["+sch_id+"]["+arrRechte[k]+"]' id='s_"+sch_id+"_"+arrRechte[k]+"' class='c_"+klasse+"_"+(k+1)+"'";
					strhidden = "<input type='hidden' name='defschueler["+klasse+"]["+sch_id+"]["+arrRechte[k]+"]'";
					//if ($('i_'+klasse+'_'+arrRechte[k]).checked == true) {
					//	str += " checked='checked'";
					//	strhidden += " value='1'";
					//} else {
						if (recht[k] == 1) {
							str += " checked='checked'";
							strhidden += "value='1'";
						} else {
							strhidden += "value='0'";
						}
					//}
					if ((forenTyp == 0 && (k == 0 || k == 1)) || (forenTyp == 1 && k == 0)) {
						str += " disabled";
					}
					strhidden += " />";
					str += " value='1' onclick='checkKlasse(this, \""+klasse+"\")' />"+strhidden+"</td>";
				}
				str += "<tr>";
			}
    	}
		str += "<tr><td width='100%' style='background-color:#b8b8b8;height:10px;'></td>";
		for (var k=0; k<arrRechte.length; k++) {
			str += "<td width='100' style='background-color:#b8b8b8;height:10px;'><img src='../../lp/lp-design/images/leer.gif' width='100' height='1' border='0' /></td>";
		}
		//str += "</tr><tr><td colspan='"+(arrRechte.length+1)+"' style='background-color:#B8B8B8;height:10px;'></td></tr>";
		
		str += "<tr><td colspan='"+(arrRechte.length+1)+"' style='height:6px;'></td></tr>";
		// str += "<div width='100%' style='height:11px;border:1px solid #B8B8B8;background-image:url(../../lp/lp-design/images/forum_stopbar.gif);background-repeat:repeat-x;'></div>\n";
		//str += "</td></tr>";
    	str += "</table>";
    	isLoaded[klasse] = true;
    }
    else str = "kein Eintrag vorhanden.";

	$("k_"+klasse).innerHTML = str;

	$("t_"+klasse).toggle();
	toggleListeEffect(klasse);
	isToggle[klasse] = 1;
	$("a_"+klasse).innerHTML = '<img src="../../lp/lp-design/images/box_hide.jpg" border="0" \>';
}


// Effeckt für das einblenden der Liste
var toggleListeEffect = function ( klasse )
{
    new Effect.Highlight("k_"+klasse, {startcolor:'#CCCCCC', endcolor:'#EFEFEF', duration: 0.2});
}

var ajaxError = function (status, statusText)
{
    alert('Error ' + status + ' -- ' + statusText);
    if (curKlasse) {
    	isLoaded[curKlasse] = false;
    	isToggle[curKlasse] = 0;
    	$("t_"+curKlasse).toggle();
    	$("a_"+curKlasse).innerHTML = '<img src="../../lp/lp-design/images/box_show.jpg" border="0" \>';
    }
}

var allCheckedForumData = new Array();

var checkAllForum = function( klasse )
{
    var boxen = document.getElementsByClassName("c_" + klasse);
	var image = document.getElementById(klasse);
	if (allCheckedForumData[klasse] == null) allCheckedForumData[klasse] = false;
    for (var i=0, j=boxen.length; i<j; i++) {
		if (allCheckedForumData[klasse] == false) {
			boxen[i].checked = 1;
			image.src = "../../lp/lp-design/images/forum_checkall2.gif";
			image.alt = "alle haken entfernen";
			image.title = "alle haken entfernen";
		} else {
			boxen[i].checked = 0;
			image.src = "../../lp/lp-design/images/forum_checkall.gif";
			image.alt = "alle haken setzen";
			image.title = "alle haken setzen";
		}
    }
	allCheckedForumData[klasse] = !allCheckedForumData[klasse];
}

var checkAll = function ( box, klasse )
{
    var boxen = document.getElementsByClassName("c_" + klasse);
	
    for (var i=0, j=boxen.length; i<j; i++) {
		if (boxen[i].disabled == false) {
			boxen[i].checked = box.checked;
		}
    }
}


/**
 *
 * @access public
 * @return void
 **/
var checkKlasse = function ( box, klasse )
{
	//if ($('i_'+klasse).checked != true) {
	//	$('i_'+klasse).checked = true;
	//	Element.setStyle('i_'+klasse, {border:'1px solid #FF0000'} );
	//}
}

