var $actual_field = false;

$(document).ready(function() {
	
	//Bilder im Inhaltsbereich anklickbar machen
	$(".entry a>img").parent().fancybox();
	
	//MouseOvereffekt für den kleinen Doorman
	$("#head #doorman a").mouseover(function() {
		$("#head #menu li:first").addClass("over");
	}).mouseout(function() {
		$("#head #menu li:first").removeClass("over");
	});
	
	//Für das Formular
	
	//Kennzeichnen von aktiven Textfeldern
	$(".formular input[type=text]").focus(function() {
		$(this).addClass("aktiv");
	}).blur(function() {
		$(this).removeClass("aktiv");
	});
	
	//Eingabe berechnen bei Änderung
	$(".formular table input.count").keyup(function() {
		
		v = $(this).val();
		amount = 0;
		
		if(v > 0) {
			amount = calc_one($(this).parents("td"));
		}
		else {
			v = 0;
		}
		
		$(this)
			.val(v)
			.parents("tr")
				.find(".amount").text(number_format(amount, 2, ",", ".")).attr("price", amount)
			.end()
			.parents("table").find("tfoot .amount").text(calc_all());
	}).focus(function() {
		$actual_field = $(this);
	});
	
	//Eingabe berechnen bei vorgespeicherten Werten
	$(".formular table input.count").each(function() {
		if($(this).val() > 0) {
			$(this).trigger("keyup");
		}
	});
	
	//Für die Veränderung per Pfeiltasten(!!!)
	$(document).bind('keydown', 'up', function() {
		if($actual_field) {
			v = parseFloat($actual_field.val())+1;
			$actual_field.val(v).trigger("keydown");
		}
	});
	$(document).bind('keydown', 'down', function() {
		if($actual_field) {
			v = parseFloat($actual_field.val())-1;
			$actual_field.val(v).trigger("keydown");
		}
	});
	
});

function calc_one($td) {
	price = $td.parents("tr").attr("price");
	return $("input.count", $td).val() * price;
}

function calc_all() {
	amount = 0;
	$(".formular table tbody .amount").each(function() {
		amount = amount + parseFloat($(this).attr("price"));
	});
	return number_format(amount, 2, ',', '.');
}

function number_format(numeral, decimals, dec_point, thousands_sep) {
	var neu = "";
	
	// Runden
	var f = Math.pow(10, decimals);
	numeral = "" + parseInt(numeral * f + (.5 * (numeral > 0 ? 1: -1))) / f;
	
	// Komma ermittlen
	var idx = numeral.indexOf('.');
	
	// fehlende Nullen einfügen
	if(idx != -1) {
	numeral += (idx == -1 ? '.': '') + f.toString().substring(1);
	}
	
	// Nachkommastellen ermittlen
	idx = numeral.indexOf('.');
	if(idx == -1) idx = numeral.length;
	else neu = dec_point + numeral.substr(idx + 1, decimals);
	
	// Tausendertrennzeichen
	while(idx > 0) {
	if(idx - 3 > 0)
	neu = thousands_sep + numeral.substring(idx - 3, idx) + neu;
	else
	neu = numeral.substring(0, idx) + neu;
	idx -= 3;
	}
	
	return neu;
}
