/* ---------------------------------------------------------------------------------------------------------------- */
/* Buchfinder Javascript																							*/
/* Wirth & Horn Informationssysteme GmbH																			*/
/* 30.03.2009 KM																									*/
/* ---------------------------------------------------------------------------------------------------------------- */

/*
 * Wert eines GET-Parameters aus einem URL-String bestimmen
 * Parameter:
 *  string  URL-String
 *  key		Name des Get Parameters
 * Rückgabe:
 *  string	Wert des Parameters, falls gefunden
 *  false	wenn Parameter nicht gefunden wird
 */
function getValueFromURLString(string,key,defaultValue) {
	if(typeof(string) != "undefined") {
		var queryString = string.split("?")[1];
		var arrData = queryString.split("&");
		for(var i=0;i<arrData.length;i++) {
			var tmpData = arrData[i].split("=");
			if(tmpData[0] == key) {
				return tmpData[1];
			}
		}
	}
	return defaultValue;
}

/*
 * Initialisierung des Buchfinders
 *  - Setzen der Event Handler
 *  - Scrollbalken laden
 */
function initFinder() {
	// onClick Event setzen
	$("div.buchfinder ul li").unbind("click").click(function (e) {
		// Setze aktuelles Element als "selected"
		if(jQuery.trim($(this).html()) != "&nbsp;") {
			$(this).parent("ul:eq(0)").children("li").removeClass("bf-selected");
			$(this).addClass("bf-selected");
			// Nächste Spalte per AJAX nachladen, bzw. Splider ändern
			var colNr 	= parseInt($(this).parent().attr("class").replace("bf-c",""));
			var colNext = (colNr+1);
			var elemId 	= $(this).find("a:eq(0)").length == 1 ? parseInt($(this).find("a:eq(0)").attr("rel").replace("bf-id-","")) 				: 0;
			var elemTyp	= $(this).find("a:eq(0)").length == 1 ? getValueFromURLString($(this).find("a:eq(0)").attr("href"),"finder_t"+colNr)	: "thema";
			// Eigenschaften des vorherigen Elements
			var prevCol = colNr - 1;
			var prevLink = $("ul.bf-c" + prevCol + " li.bf-selected").find("a:eq(0)").attr("href");
			var prevID  = getValueFromURLString(prevLink,"finder_p" + prevCol,bf_content_id);
			var prevTyp = getValueFromURLString(prevLink,"finder_t" + prevCol,"thema");
			
			var caption = $(this).html();
			
			var widgetID = $("div.buchfinder:eq(0)").attr("id").replace("widget_buchfinder_","");
			
			var sortByAutor = true;
			
			// Wenn Autoren ausgeblendet sind dritte Spalte füllen...
			if(colNext == 2 && $("ul.bf-c2").length == 0) {
				colNext++;
				sortByAutor = false;
			}
			
			// Spalten leeren, vor AJAX Load
			if(colNr == 1) {
				$("ul.bf-c2, ul.bf-c3").empty();
				for(var i=0;i<13;i++) {
					$("ul.bf-c2, ul.bf-c3").append("<li class='bf" + i % 2 + " bf-empty'>&nbsp;</li>");
				}
			}
			
			// AJAX Loader
			$("ul.bf-c" + colNext).html("<li class='bf1 bf-empty'><img src='/themes/jugendbuch/images/ajax-loader.gif' alt='loading...' style='position: absolute; left: 100px; top: 80px;' /></li>");
			$.ajax({
				 url: "/_ajax/finder_slider.cfm"
				,dataType: "text"
				,data: { element_id: elemId, element_typ: elemTyp, prev_elem_id: prevID, prev_elem_type: prevTyp, widget_id: widgetID, headline: caption, sortByAutor: sortByAutor }
				,type: "get"
				,success: function(data,statusText) {
					$("div.bf-slider").html(data);
					if($(".jcarousel-clip .jcarousel-item").length <= 4) {
						$("div.bf-line-right").hide();
					}
					else {
						$("div.bf-line-right").show();
						$("div.bf-line-right span.elem_count").html($("ul.bf-c" + colNext).find("li a").length);
					}
					initTooltips();
					tb_init('bf-slider a.thickbox, bf-slider area.thickbox, bf-slider input.thickbox');
					$("#slider" + widgetID).jcarousel({"scroll" : 4});
				}
			});
			$.ajax({
				 url: "/_ajax/finder_data.cfm"
				,dataType: "text"
				,data: { spalte: colNext, element_id: elemId, element_type: elemTyp, prev_elem_id: prevID, prev_elem_type: prevTyp }
				,type: "get"
				,success: function(data,statusText) {
					if(colNext < 4) {
						$("ul.bf-c" + colNext).html(data);
						initFinder();
					}
					$("div.buchfinder div.bf-line-left").html($("a[rel=bf-id-" + elemId + "]").html());
					// Hier liegt der Hund begraben!!!
					if($(".scroll-pane").length > 0) { $(".scroll-pane").jScrollPane({ scrollbarMargin: 0, scrollbarWidth: 10}); }
				}
				,error: function() {
					$("ul.bf-c" + colNext).empty();
					for(var i=0;i<13;i++) {
						if(i == 5) {
							$("ul.bf-c" + colNext).append("<li class='bf" + i % 2 + "' style='padding-left: 20px;'>Es ist ein Fehler aufgetreten.</li>");
						}
						else {
							$("ul.bf-c" + colNext).append("<li class='bf" + i % 2 + "'>&nbsp;</li>");
						}
					}
					initFinder();
					$(".scroll-pane").jScrollPane({ scrollbarMargin: 0, scrollbarWidth: 10});
				}
			});
			// Cover Slider updaten
			$("div.bf-slider").html("<div style='text-align: center; width: 700x; height: 215px;'><img src='/themes/jugendbuch/images/ajax-loader.gif' alt='loading...' /></div>");
			// Cluetip ausblenden
			$("#cluetip").hide();
		}
	});
	// kein onClick für Zwischenüberschriften
	$("div.buchfinder ul li span").parent("li:eq(0)").unbind("click");
}

function initScrollbars() {
	$(".scroll-pane").jScrollPane({ scrollbarMargin: 0, scrollbarWidth: 10});
}

/*
 * Aufruf des Buchfinders onPageLoad
 */
$(document).ready(function() {
	initFinder();
	// Default Inhalt Laden
	// 1. Ebene: erster Punkt der Liste
	// 2. Ebene: Unterpunkte des in Ebene 1 ausgewählten Punkts
	if($("ul.bf-c1 li:eq(0)").length > 0) { $("ul.bf-c1 li:eq(0)").click(); }
	if($("ul.bf-c2 li:eq(0)").length > 0) { $("ul.bf-c2 li:eq(0)").click(); }
});

$(document).load(function() {
	// Scrollbars mit minimaler Verzögerung aufrufen
	// behebt Problem im Firefox
	window.setTimeout(initScrollbars,100);
});
