/**
 * buecherautomat.js
 * Logik für den Bücherautomaten
 * @author Klaus Meyer
 * @date 19.01.2010
 */
 
$(document).ready(
	function() {
		/**
		 * Slider für Altersauswahl
		 */
		$("#slider_alter").slider({
			 min: 4
			,max: 11
			,value: 11
			,step: 1
			,slide: function(event,ui)  {
				ui.value = ui.value == 11 ? "egal" : ui.value;
				$("#field_value_alter").val(ui.value);
				setDropdown("alter",ui.value);
			}
		});
		/**
		 * Slider für Geschlechtsauswahl
		 */
		$("#slider_geschlecht").slider({
			 min: 1
			,max: 3
			,value: 2
			,step: 1
			,slide: function(event,ui)  {
				var mapping = ["leer","maedchen","egal","jungs"];
				var value = mapping[ui.value];
				$("#field_value_geschlecht").val(ui.value);
				setDropdown("geschlecht",ui.value);
			}
		});
		/**
		 * Flash Elemente laden
		 */
		$("#buecherautomat #animation_arm").flash({
			 src: "/themes/kinderbuch/images/buecherautomat/arm.swf"
			,width:		70
			,height:	135
			,wmode:     "transparent"
			,flashvars: {
				wmode: "transparent"
			}
		});

		$("#buecherautomat #animation_blink").flash({
			 src: "/themes/kinderbuch/images/buecherautomat/blink.swf"
			,width:		299
			,height:	59
			,wmode:     "transparent"
			,flashvars: {
				wmode: "transparent"
			}
		});
		$("#tapeten #tapeten-blink").flash({
			 src: "/themes/kinderbuch/images/buecherautomat/blink_tapete.swf"
			,width:		40
			,height:	40
			,wmode:     "transparent"
			,flashvars: {
				wmode: "transparent"
			}
		});
	}
);

var themen_selected = [];

/**
 * add_thema(string thema)
 * Fügt ein Thema hinzu
 * @param string thema
 */
function add_thema(thema) {
	themen_selected.push(thema);
}

/**
 * remove_thema(string thema)
 * Entfernt ein Thema
 * @param string thema
 */
function remove_thema(thema) {
	for(var i=0;i<themen_selected.length;i++) {
		if(themen_selected[i] == thema) {
			themen_selected.splice(i,1);
			return true;
		}
	}
	return false;
}

/**
 * is_thema_selected(string thema)
 * Prüft ob ein Thema ausgewählt ist
 * @param string thema
 * @return bool
 */
function is_thema_selected(thema) {
	for(var i=0;i<themen_selected.length;i++) {
		if(themen_selected[i] == thema) {
			return true;
		}
	}
	return false;
}

/**
 * array_pos(array arr, any elem)
 * Gibt den Index, des Elements elem in dem Array arr zurück.
 * Wird das Element nicht gefunden, so wird -1 zurückgegeben
 * @param array arr
 * @param any elem
 * @return integer
 */
function array_pos(arr, elem) {
	for(var i=0;i<arr.length;i++) {
		if(arr[i] == elem) {
			return i;
		}
	}
	return -1;
}

/**
 * hover_thema(int thema_nr)
 * Ändert das Themen-Bild beim Hover
 * @param string thema
 */
function hover_thema(a) {
	var thema = $(a).attr("rel");
	$("#thema_selected").css("background-image","url('/themes/kinderbuch/images/themen/thema_" + thema + ".jpg')");
}

/**
 * toggle_thema(int thema_nr)
 * Selektiert ein Thema im Bücherautomat
 * @param string thema
 */
function toggle_thema(a) {
	var thema = typeof(a) == "string" ? a : $(a).attr("rel");
	// Feld in Array einlesen
	if(jQuery.trim($("#field_value_themen").val()) != "egal") {
		themen_selected = $("#field_value_themen").val().split(",");
	}
	// Thema ist ausgewählt -> abwählen
	if(is_thema_selected(thema)) {
		//console.log("> Thema ist schon ausgewählt.");
		remove_thema(thema);
		$("a[rel="+thema+"]").removeClass("active");
	}
	// Thema ist nicht ausgewählt -> auswählen
	else {
		//console.log("> Thema ist noch nicht ausgewählt.");
		add_thema(thema);	
		$("a[rel="+thema+"]").addClass("active");
	}
	// Hidden Field befüllen
	$("#field_value_themen").val(themen_selected.join(","));
	// console.log("Themen Field: " + $("#field_value_themen").val());
}

/**
 * function setSlider(slider,value)
 * Setzt den Wert eines Sliders
 * @param slider String Typ des Slider (alter bzw geschlecht)
 * @param value    String Wert für den Slider
 */
function setSlider(slider,value) {
	switch(slider) {
		case "alter":
			$("#slider_alter").slider("value",value);
			$("#field_value_alter").val(value);
			break;
		case "geschlecht":
			var mapping_value   = ["leer","maedchen","egal","jungs"];
			if(typeof(value) == "string") {
				$("#slider_geschlecht").slider("value",array_pos(mapping_value,value));
				$("#field_value_geschlecht").val(array_pos(mapping_value,value));
			}
			else {
				$("#slider_geschlecht").slider("value",value);
				$("#field_value_geschlecht").val(value);
			}
			break;
	}
	// console.log("Setze Slider " + slider + " auf " + value + ".");
}

/**
 * function setDropdown(dropdown,value)
 * Setzt den Wert eines WH-Dropdowns
 * @param dropdown String Typ des Dropdowns (alter bzw geschlecht)
 * @param value    String Wert für das Dropdown
 */
function setDropdown(dropdown,value) {
	switch(dropdown) {
		case "alter":
			var $input = $("input[name=filter_alter]");
			$input.val(value);
			if(value == 11) { value = "egal"; }
			$input.siblings("div.jquery-wh-select").find("span.jquery-wh-caption").html(value);
			break;
		case "geschlecht":
			var $input = $("input[name=filter_geschlecht]");
			var mapping_caption = ["leer","M&auml;dchen","egal","Jungs"];
			var mapping_value   = ["leer","maedchen","egal","jungs"];
			$input.val(mapping_value[value]);
			$input.siblings("div.jquery-wh-select").find("span.jquery-wh-caption").html(mapping_caption[value]);
			break;
	}
}

/**
 * function schraubeAnimieren()
 * Animiert die Schraube des Bücherautomats
 */
function schraubeAnimieren() {
	$("#buecherautomat #animation_schraube").css("background","none").flash({
		 src: "/themes/kinderbuch/images/buecherautomat/schraube.swf"
		,width:		52
		,height:	64
		,wmode:     "transparent"
		,flashvars: {
			wmode: "transparent"
		}
	});
}
