$(document).ready(function () {

	var isBlockDetail = location.href.indexOf("_detail.html") > -1;

	fontResizer('1.1em', '1.1em', '1.3em');

	var queryParams = Utils.parseQueryString();
	if (queryParams['sent_mail'] == 'true')
		alert("Ihre Email wurde erfolgreich versandt!");
	if (queryParams['sent_mail'] == 'false')
		alert("Ihre Email konnte NICHT versandt werden!");

	imgfix();
	initPagination();
	initTabs();
	initFlashs();
	initMultipleChoice();
	initFancybox();
	initClueTip();

	if (useAjax()) {

		var selectedPanel;
		if ($("#root").length != 0) {
			selectedPanel = 'false';
		} else {
			selectedPanel = parseInt($("#nav-container").attr("class"));
			var clickID = $(".selected-nav").attr('id');
			if (clickID) {
				var noclickDocID = clickID.substring(2);
				$("#img-" + noclickDocID).show();
				$("#span-" + noclickDocID).show();
				$(".selected-nav").parent('div.cont').css("padding-left", "10px");
			}
		}

		$("#accordion").accordion({
			autoHeight: false,
			header: '.header',
			//animated: 'slide',
			animated: 'easeslide',
			active: selectedPanel
		});

		if (!isBlockDetail)
			$.history.init(onNavigationClick);

		$(".nav_text").live("click", function () {

			var contentUrl = $(this).attr("href");
			var docID = $(this).attr("id").substring(2);
			var docLevel = parseInt($(this).attr("rel"));
			var fulldocID = $(this).attr("id");
			var pvar = encodeURIComponent(contentUrl) + "&" + docID + "&" + docLevel + "&" + fulldocID;

			$.history.load(pvar);
			return false;
		});
	} else {

		$(".ui-accordion-content").css("height", "auto");

		var selectedPanel;
		if ($("#root").length != 0) {
			selectedPanel = 'false';
		} else {
			selectedPanel = parseInt($("#nav-container").attr("class"));
			var noclickDocIDStr = $(".selected-nav").attr('id');
			if (noclickDocIDStr) {
				var noclickDocID = noclickDocIDStr.substring(2);
				$("#img-" + noclickDocID).show();
				$("#span-" + noclickDocID).show();
			}
			$(".selected-nav").parent('div.cont').css("padding-left", "10px");
		}

		$("#accordion").accordion({
			autoHeight: false,
			header: '.header',
			animated: 'easeslide',
			//animated: 'slide',
			//event: 'mouseover',
			//active: selectedPanel,
			navigation: true,
			change: function (event, ui) {
				location.href = $("a", ui.newHeader).attr("href");
			}
		});

		$(".nav_text").live("click", function () {
			location.href = $(this).attr("href");
			return false;
		});
	}
});

function useAjax() {
	return false; //window.location.protocol.indexOf("http") == 0 && (typeof DISABLE_AJAX == "undefined" || DISABLE_AJAX !== true);
}

function initMultipleChoice() {
	$(".submit-mc-answer").click(testResponse);
}

function fontResizer(smallFont, medFont, largeFont) {
	function clearSelected() { $(".smallFont").removeClass("curFont"); $(".medFont").removeClass("curFont"); $(".largeFont").removeClass("curFont"); }
	function saveState(curSize) { var date = new Date(); date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); document.cookie = "fontSizer" + "=" + curSize + expires + "; path=/"; }

	$(".smallFont").click(function () { $('html').css('font-size', smallFont); clearSelected(); $(".smallFont").addClass("curFont"); saveState(smallFont); });

	$(".medFont").click(function () { $('html').css('font-size', medFont); clearSelected(); $(".medFont").addClass("curFont"); saveState(medFont); });

	$(".largeFont").click(function () { $('html').css('font-size', largeFont); clearSelected(); $(".largeFont").addClass("curFont"); saveState(largeFont); });

	function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; }

	var savedSize = getCookie('fontSizer');

	if (savedSize != "") { $('html').css('font-size', savedSize); switch (savedSize) { case smallFont: $(".smallFont").addClass("curFont"); break; case medFont: $(".medFont").addClass("curFont"); break; case largeFont: $(".largeFont").addClass("curFont"); break; default: $(".medFont").addClass("curFont"); } }
	else { $('html').css('font-size', medFont); $(".medFont").addClass("curFont"); }
}


function showNewPage(page_index, dir) {

	var new_content = $('#hiddenresult div.result:eq(' + page_index + ')');

	var found = new_content.find("div.Fullscreen");

	if (found.length != 0) {
		$("#nav-container").css("display", "none");
		$(".content-ct").css("width", "1000px").css("float", "none");
	} else {
		$("#nav-container").css("display", "block");
		$(".content-ct").css("width", "720px").css("float", "right");
	}

	new_content.show("slide", {
		direction: dir == "left" ? "right" : "left"
	}, 2000, function () {
		imgfix();
		initTabs();
		initMultipleChoice();
		initFancybox();
		//initClueTip();
	});
}

var currentPageIndex = null;

function pageselectCallback(page_index, jq) {
	$('#hiddenresult div.result').stop(true, true);
	var firstTime = false;
	if (currentPageIndex === null) {
		firstTime = true;
		currentPageIndex = 0;
	}
	var dir = "left";
	if (page_index < currentPageIndex)
		dir = "right";

	var afterHide = function () {
		showNewPage(page_index, dir);

		currentPageIndex = page_index;

		var nextUrl = fixFlashPath($('.block-container').attr('next'));
		var prevUrl = fixFlashPath($('.block-container').attr('prev'));

		$('span.next').html('<a class="nextUrl" href="' + nextUrl + '"></a>');
		$('span.prev').html('<a class="prevUrl" href="' + prevUrl + '"></a>');
	};

	if (!firstTime)
		$('#hiddenresult div.result:eq(' + currentPageIndex + ')').hide("slide", {
			direction: dir
		}, 1000, afterHide);
	else
		afterHide();

	return false;
}

function initPagination() {
	var num_entries = $('#hiddenresult div.result').length;
	// Create pagination element
	$("#Pagination").pagination(num_entries, {
		num_edge_entries: 2,
		num_display_entries: 8,
		callback: pageselectCallback,
		items_per_page: 1
	});
}

function initClueTip() {
	$('.sticky').cluetip({
		sticky: true,
		closePosition: 'title',
		arrows: true,
		positionBy: 'bottomTop',
		activation: 'click',
		local: true,
		width: 450,
		closeText: ''
	});
}

function fixPath(rootPath, data, targetRootPath) {
	var baseURL = location.href;
	if (baseURL.indexOf("#") > -1)
		baseURL = baseURL.substring(0, baseURL.indexOf("#"));
	var counter = 1;
	var tempRootPath = rootPath;
	while (tempRootPath && tempRootPath.indexOf("../") == 0) {
		tempRootPath = tempRootPath.substring(3);
		counter++;
	}

	var targetCounter = 1;
	var tempTargetRootPath = targetRootPath;
	while (tempTargetRootPath && tempTargetRootPath.indexOf("../") == 0) {
		tempTargetRootPath = tempTargetRootPath.substring(3);
		targetCounter++;
	}

	var newBaseURL = baseURL;
	for (var i = 0; i < counter; i++)
		newBaseURL = newBaseURL.substring(0, newBaseURL.lastIndexOf("/"));

	$('img, a', data).each(function () {

		//var attributeName = this.nodeName.toLowerCase() == "a" ? "xref" : "xsrc";
		//var newAttributeName = this.nodeName.toLowerCase() == "a" ? "href" : "src";

		var attributeName;
		if (this.nodeName.toLowerCase() == "a")
			attributeName = "xref";
		else if (this.nodeName.toLowerCase() == "param")
			attributeName = "xvalue";
		else
			attributeName = "xsrc";

		var newAttributeName;
		if (this.nodeName.toLowerCase() == "a")
			newAttributeName = "href";
		else if (this.nodeName.toLowerCase() == "param")
			newAttributeName = "value";
		else
			newAttributeName = "src";

		var src = this.getAttribute(attributeName, 2);

		// restore real attribute
		$(this).attr(newAttributeName, src);


		if (src && (src.indexOf("#") == 0 || src.indexOf("http") == 0 || src.indexOf("mailto") == 0 || src.indexOf("clientsettings") == 0))
			return;

		var srcCounter = 1;

		var origSrc = src;
		while (src && src.indexOf("../") == 0) {
			src = src.substring(3);
			srcCounter++;
		}

		// this is a hack
		if (origSrc && origSrc.indexOf("../") == 0 && $(this).hasClass('link-url')) {
			var tempSrc = rootPath;
			for (var i = targetCounter; i < srcCounter; i++)
				tempSrc += "../";
			src = tempSrc + src;
		}

		if (src)
			if ($(this).hasClass('link-url') || $(this).hasClass('link-mailto')) {
				$(this).attr(newAttributeName, src);
			} else {
				$(this).attr(newAttributeName, newBaseURL + "/" + src);
			}
	});
}

function imgfix() {
	var cssObj = {
		'background': 'none',
		'padding': '0'
	}
	$('.media-theme').parents('.link').css(cssObj);
}

function initTabs() {

	$(".pannelContainer a.link-detail").click(function () {
		$(".tabs").tabs("rotate", 0, false);
	});

	$(".tabs").tabs({ fx: { opacity: 'toggle'} }).tabs("rotate", 5000, false);

	$(".subtabs").tabs({ fx: { opacity: 'toggle'} });


	$(".related-block a").hover(function () {
		$(this).parent('li').addClass('related-arrow');
		$(this).addClass('greentab');
	}, function () {
		$(this).parent('li').removeClass('related-arrow');
		$(this).removeClass('greentab');
	});


	$(".related-block_sub a").hover(function () {
		$(this).parent('li').addClass('related-arrow_sub');
	}, function () {
		$(this).parent('li').removeClass('related-arrow_sub');
	});

	var Aoflinks = $(".tabs ul").attr("id");
	var vminheight = Aoflinks * 165 - 15;
	$(".pannelContainer").css("min-height", vminheight);
}


function initFancybox() {

	$("a.link-detail").fancybox({
		type: "iframe",
		width: 781,
		height: 500,
		transitionIn: "none",
		transitionOut: "none",
		overlayShow: false
	});

}

function initFlashs() {

	$(".flash-ct").each(function () {

		var jt = $(this);

		var path = fixFlashPath(jt.attr("flashUrl"));
		var bgColor = jt.css("background-color");
		var fp = jt.attr("flashParams");
		var fpFixed = fp && fp.indexOf("../") == 0 ? fixFlashPath(fp) : fp;
		var flashVars = fpFixed ? "ident=" + fpFixed : "";
		if (jt.attr("flashParams2"))
			flashVars += fixFlashPath(jt.attr("flashParams2"));

		var customFlashParam1;
		if (jt.attr("customFlashParam1"))
			customFlashParam1 = fixFlashPath(jt.attr("customFlashParam1"));

		var customParams = {};
		if (customFlashParam1)
			customParams.param1 = customFlashParam1;

		var flashParams = {
			quality: "best",
			scale: "exactfit",
			menu: "false",
			wmode: "transparent",
			bgcolor: "#FFFFFF"
		};

		if (flashVars)
			flashParams.flashvars = flashVars;

		swfobject.embedSWF(path, jt.attr("id"), jt.attr("flashWidth"), jt.attr("flashHeight"), "9.0.0", false, customParams, flashParams, { id: "ActiveFlash", name: "ActiveFlash" });
	});
}


function onNavigationClick(pvar) {

	var pArr;
	var contentUrl;
	var docID;
	var docLevel;
	var fulldocID;
	var relStr;

	if (pvar.indexOf("&") == -1) {
		contentUrl = decodeURIComponent(pvar);
	} else {
		pArr = pvar.split("&");
		contentUrl = decodeURIComponent(pArr[0]);
		docID = pArr[1];
		docLevel = parseInt(pArr[2]);
		fulldocID = pArr[3];
	}

	if (typeof fulldocID == "undefined")
		return;

	currentPageIndex = null;

	$(".ui-accordion-content").css("height", "auto");

	$(document).trigger('hideCluetip');

	$('.loading_ajax').show();

	$('#hiddenresult div.result').stop();

	$.ajax({
		url: contentUrl,
		cache: false,
		error: function (xhr, ajaxOptions, thrownError) {
			alert(ajaxOptions);
		},
		success: function (data) {

			$(".loading_ajax").hide();

			data = data.replace(/ href=/g, " xref=").replace(/ src=/g, " xsrc=");

			data = $(data).not('style, meta, link, script, title');

			var rootPath = $(".container").attr('id');

			var targetRootPath = data.get(1) ? $(data.get(1)).attr('id') : null;

			var selectedPanel = parseInt($("#nav-container", data).attr("class"));
			$("#accordion").accordion("option", "active", selectedPanel);

			fixPath(rootPath, data, targetRootPath);

			var thecont = data.find('.content-ct');

			var newCt = $('.content-ct').replaceWith(thecont);

			var related = data.find('.relatedCont');

			var newrelated = $('.relatedCont').replaceWith(related);


			imgfix();
			initPagination();
			initClueTip();
			initTabs();
			initFancybox();
			initFlashs();
			initMultipleChoice();

			$(".subitems a").css('font-weight', 'normal');

			$(".subitemslevels").filter(function () {
				var relStr = $(this).attr("rel");
				var relInt = parseInt(relStr);
				return relInt >= docLevel ? true : false;
			}).remove();

			if (docID) {
				$("#a-" + docID).css('font-weight', 'bold');

				var sublevels = data.find("#ul-" + docID);
				if (docLevel == 2) {
					$("#li-" + docID + " div.cont").append(sublevels);
				} else {
					$("#li-" + docID).append(sublevels);
				}
			}
		}
	});

	return false;
}

function fixFlashPath(src) {
	var rootPath = $(".container").attr('id');
	if (!rootPath)
		return src;
	while (src && src.indexOf("../") == 0)
		src = src.substring(3);

	return rootPath + src;
}

function testResponse() {
	var ct = $(this).parent();

	var inputs = $("input", ct); //document.getElementsByTagName("input");

	var list = new Array(inputs.length);

	for (var i = 0; i < inputs.length; i++) {
		var id = inputs[i].name;
		if (id.substring(0, 2) == "Q_") {
			if (inputs[i].checked) {
				list[id] = "true";
			}
			else {
				if (list[id] != "true")
					list[id] = "false";
			}
		}
	}

	var counter = allCounter = falseCounter = correctCounter = 0;

	for (var id in list) {
		var obj_id = id.substr(2);
		var obj = document.getElementById(obj_id);
		obj.className = "";
		if (list[id] == "false") {
			counter++;
			obj.className = "notAnswered";
		}
	}

	if (counter > 0) {
		// alert ("Bitte füllen Sie alle Fragen aus.");
		return;
	}


	for (var id in list) {
		var obj_id = id.substr(2);
		var obj_false = $("#Expl_" + obj_id);
		var obj_correct = $("#Expl_" + obj_id + "_Correct");

		allCounter++;

		if (check(obj_id)) {
			obj_correct.show();
			obj_false.hide();
			correctCounter++;
		}
		else {
			obj_correct.hide();
			obj_false.show();
			falseCounter++;
		}

	}
}
function check(id) {
	var chosenAnswer = $("input[name=Q_" + id + "]:checked").val();
	var answer = $("#Answer_" + id).text();
	return chosenAnswer == answer;
}
