// gibt nützliche kleine hilfestellungen für das design der seite
// created by zber@webcenter@IAS@ZHAW 04.11.2010

// function aa2_firstlast - 04.11.2010
// kennzeichnet mit css markierte elemente als first/last
// äusseres element mit klasse aa2_firstlast markieren
function aa2_firstlast() {
	$(".aa2_firstlast").children(":first-child").addClass("first");
	$(".aa2_firstlast").children(":last-child").addClass("last");
}

// function aa2_oddeven - 04.11.2010
// kennzeichnet mit css markierte elemente als odd/even
// äusseres element mit klasse aa2_oddeven markieren
function aa2_oddeven() {
	$(".aa2_oddeven:nth-child(odd)").addClass("odd");
	$(".aa2_oddeven:nth-child(even)").addClass("even");
}

// function aa2_shuffle - 04.11.2010
// mischelt mit css markierte elemente durcheinander
// äusseres element mit klasse aa2_schuffle markieren
function aa2_shuffle() {
	$(".aa2_shuffle").each(function () {
		elems = $(this).children();
		elems.sort(function() { return (Math.round(Math.random())-0.5); });
		$(this).empty();
		for (var i=0; i<elems.length; i++) {
			$(this).append(elems[i]);
		}
		// muss noch ausgebaut werden, dass das jedes element selbst merkt
		if ( $(this).find(".aa2firstlast").length > 0 ) {
			aa2_firstlast(); // neu geschüttelte elemente wieder richtig beklassen
		}
		if ( $(this).find(".aa2oddeven").length > 0 ) {
			aa2_aa2oddeven(); // neu geschüttelte elemente wieder richtig beklassen
		}
	});
}

// function aa2_showonly - 04.11.2010
// blendet alle überzähligen elemente aus
// das element aa2_showonly_count soll den Funktionsnamen und Timeout in Sekunden im rel enthalten
function aa2_showonly() {
	aa2_shuffle();
	$(".aa2_showonly").each(function (index) {
		elems = $(this).children();
		for (var i=0; i<elems.length; i++) {
			$(elems[i]).show();
			if ( i >= $(".aa2_showonly_count").attr("rel")) {
				$(elems[i]).hide();
			}
		}
	});
}

// function aa2_again - 04.11.2010
// wiederholt eine bestimmte aktion nach x sekunden
// das element aa2_again soll den Funktionsnamen und Timeout in Sekunden im rel enthalten
function aa2_again() {
	$(".aa2_again").each( function() {
		content = $(this).attr('rel').split(",");
		befehl = content[0]+"()";
		zeit = parseInt(content[1]*1000);
		window.setInterval("window[" + befehl + "]", zeit);
	});
}

// diese funktion findet selbständig die nötigen funktionen und ruft sie aus
// diese funktion muss auf "ready" ausgeführt werden
$(document).ready( function () {
	aa2_firstlast();
	aa2_oddeven();
	aa2_shuffle();
	aa2_showonly();
	aa2_again();
	// css durchsuchen nach trigger "aa2_"
		// funktionsnamen eruieren
		// funktion aufrufen
 });
