// hover fix plugin
/* for all elements, add hover class on mouseover and remove on mouseout */
jQuery.fn.fixHover = function(){
	$(this).each(function(){
		var hoverClasses = ' hover';
		if($(this).attr('class')){		
			var classes = $(this).attr('class');
			var classArray = classes.split(' ');
			$(classArray).each(function(){
				hoverClasses += ' ' + this + 'hover';
			});
		}
		$(this).hover(
		function(){
			if(classes) $(this).attr('class', classes + hoverClasses);
			else $(this).addClass('hover');
		},
		function(){
			if(classes) $(this).attr('class', classes);
			else $(this).removeClass('hover');
		}
		);
	});
}

$(document).ready(function() {
	// $("*").fixHover();
	$('.rounded').corners();
	$('.top-rounded').corners("top");	
	$("a#calculate").click(function(options) {
	
		// Jahresgehalt berechnen
		$("#bg").val($("#bg").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));
		if ($("#bg").val().charAt(0) == "") {
			$("#bg").val(0)
		}
		if (isNaN($("#bg").val())) {
			alert("Bitte geben Sie nur Zahlen ein!");
			return false;
		}
		var G = parseFloat($("#bg").val()) * 12;
		$("#bg_pa").text(Math.round(G * 100) / 100 + " €");
	  
		// Sonderzahlungen
		$("#sz").val($("#sz").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#sz").val().charAt(0) == "") {
			$("#sz").val(0)
		}
		if (isNaN($("#sz").val())) {
			alert("Bitte geben Sie nur Zahlen ein!");
			return false;
		}
		var SZ = parseFloat($("#sz").val());
		$("#sz_pa").text(Math.round(SZ * 100) / 100 + " €");

		// Stunden/Woche
	  $("#spw").val($("#spw").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#spw").val().charAt(0) == "") {
			$("#spw").val(0)
		}
		if (isNaN($("#spw").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var SPW = parseInt($("#spw").val());

	  // Urlaubstage/Jahr
	  $("#upj").val($("#upj").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#upj").val().charAt(0) == "") {
			$("#upj").val(0)
		}
		if (isNaN($("#upj").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var UPJ = parseInt($("#upj").val());

	  // Feiertage/Jahr
	  $("#fpj").val($("#fpj").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#fpj").val().charAt(0) == "") {
			$("#fpj").val(0)
		}
		if (isNaN($("#fpj").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var FPJ = parseInt($("#fpj").val());

	  // Krankentage/Jahr
	  $("#kpj").val($("#kpj").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#kpj").val().charAt(0) == "") {
			$("#kpj").val(0)
		}
		if (isNaN($("#kpj").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var KPJ = parseInt($("#kpj").val());
		
	  // Krankenversicherung
	  var KV = Math.round(KV = ((G + SZ)) * parseFloat($("#p_kv").val())) / 100;
		$("#kv").text(KV + " €");

	  // Pflegeversicherung
	  var PV = Math.round(PV = ((G + SZ)) * parseFloat($("#p_pv").val())) / 100;
	  $("#pv").text(PV + " €");

	  // Rentenversicherung
	  var RV = Math.round(RV = ((G + SZ)) * parseFloat($("#p_rv").val())) / 100;
	  $("#rv").text(RV + " €");

		// Arbeitslosenversicherung
		var AV = Math.round(AV = ((G + SZ)) * parseFloat($("#p_av").val())) / 100;
		$("#av").text(AV + "€");

		// Umlage 1
	  var U1 = Math.round(U1 = ((G + SZ)) * parseFloat($("#p_u1").val())) / 100;
	  $("#u1").text(U1 + " €");
	
		// Umlage 1
	  var U2 = Math.round(U2 = ((G + SZ)) * parseFloat($("#p_u2").val())) / 100;
	  $("#u2").text(U2 + " €");
		
		// Insolvenzumlage
	  var IU = Math.round(IU = ((G + SZ)) * parseFloat($("#p_iu").val())) / 100;
	  $("#iu").text(IU + " €");
		// Beitrag Berufsgenossenschaft
		
	  var BGE = Math.round(BGE = ((G + SZ)) * parseFloat($("#p_bge").val())) / 100;
	  $("#bge").text(BGE + " €");
	
		// Schwerbehindertenausgleich
	  var SA = Math.round(SA = ((G + SZ)) * parseFloat($("#p_sa").val())) / 100;
	  $("#sa").text(SA + " €");
		
		
		// Arbeitgeberanteil
	  var AA = Math.round((KV + PV + AV + RV + U1 + U2 +BGE + IU + SA) * 100) / 100;
	  $("#aa_pa").text(AA + " €");

		// Personalverwaltung
  	var PERSOV = Math.round(PERSOV = ((G + SZ)) * parseFloat($("#p_persov").val())) / 100;
  	$("#persov").text(PERSOV + " €");

		// Rekrutierungskosten
		var RK = Math.round(RK = ((G + SZ)) * parseFloat($("#p_rk").val())) / 100;
		$("#rk").text(RK + " €");
		
		// Werbe & Reisekosten
	  var WR = Math.round(WR = ((G + SZ)) * parseFloat($("#p_wr").val())) / 100;
	  $("#wr").text(WR + " €");
	
		// Einrichtungen für Angestellte
  	var EA = Math.round(EA = ((G + SZ)) * parseFloat($("#p_ea").val())) / 100;
  	$("#ea").text(EA + " €");

		// Kosten für Aus- und Weiterbildung 
	  var AW = Math.round(AW = ((G + SZ)) * parseFloat($("#p_aw").val())) / 100;
	  $("#aw").text(AW + " €");

		// Sonstige
	  var S = Math.round(S = ((G + SZ)) * parseFloat($("#p_s").val())) / 100;
	  $("#s").text(S + " €");

	 	// Allgemeine Zusatzkosten
	  var AZ = Math.round((PERSOV + RK + WR + EA + AW + S) * 100) / 100;
	  $("#az_pa").text(AZ + " €");
	
		// Gesamtkosten
  	var GK = Math.round((G + SZ + AA + AZ) * 100) / 100;
  	$("#gk").text(GK + " €");

		// Vergleichsstundenpreis
		var VP = Math.round(GK / ((261 - UPJ - FPJ - KPJ) * SPW / 5) * 100) /100;
		$("#vp").text(VP + " €").parent().effect("highlight",  {}, 1000);

	});
	
	$("input").blur(function(options) {
	
		// Jahresgehalt berechnen
		$("#bg").val($("#bg").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));
		if ($("#bg").val().charAt(0) == "") {
			$("#bg").val(0)
		}
		if (isNaN($("#bg").val())) {
			alert("Bitte geben Sie nur Zahlen ein!");
			return false;
		}
		var G = parseFloat($("#bg").val()) * 12;
		$("#bg_pa").text(Math.round(G * 100) / 100 + " €");
	  
		// Sonderzahlungen
		$("#sz").val($("#sz").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#sz").val().charAt(0) == "") {
			$("#sz").val(0)
		}
		if (isNaN($("#sz").val())) {
			alert("Bitte geben Sie nur Zahlen ein!");
			return false;
		}
		var SZ = parseFloat($("#sz").val());
		$("#sz_pa").text(Math.round(SZ * 100) / 100 + " €");

		// Stunden/Woche
	  $("#spw").val($("#spw").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#spw").val().charAt(0) == "") {
			$("#spw").val(0)
		}
		if (isNaN($("#spw").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var SPW = parseInt($("#spw").val());

	  // Urlaubstage/Jahr
	  $("#upj").val($("#upj").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#upj").val().charAt(0) == "") {
			$("#upj").val(0)
		}
		if (isNaN($("#upj").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var UPJ = parseInt($("#upj").val());

	  // Feiertage/Jahr
	  $("#fpj").val($("#fpj").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#fpj").val().charAt(0) == "") {
			$("#fpj").val(0)
		}
		if (isNaN($("#fpj").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var FPJ = parseInt($("#fpj").val());

	  // Krankentage/Jahr
	  $("#kpj").val($("#kpj").val().replace(/^[ 0]/g,'').replace(/,/g,'.'));  
		if ($("#kpj").val().charAt(0) == "") {
			$("#kpj").val(0)
		}
		if (isNaN($("#kpj").val())) {
			alert("Bitte geben Sie nur ganze Zahlen ein!");
			return false;
		}
		var KPJ = parseInt($("#kpj").val());
		
	  // Krankenversicherung
	  var KV = Math.round(KV = ((G + SZ)) * parseFloat($("#p_kv").val())) / 100;
		$("#kv").text(KV + " €");

	  // Pflegeversicherung
	  var PV = Math.round(PV = ((G + SZ)) * parseFloat($("#p_pv").val())) / 100;
	  $("#pv").text(PV + " €");

	  // Rentenversicherung
	  var RV = Math.round(RV = ((G + SZ)) * parseFloat($("#p_rv").val())) / 100;
	  $("#rv").text(RV + " €");

		// Arbeitslosenversicherung
		var AV = Math.round(AV = ((G + SZ)) * parseFloat($("#p_av").val())) / 100;
		$("#av").text(AV + "€");

		// Umlage 1
	  var U1 = Math.round(U1 = ((G + SZ)) * parseFloat($("#p_u1").val())) / 100;
	  $("#u1").text(U1 + " €");
	
		// Umlage 1
	  var U2 = Math.round(U2 = ((G + SZ)) * parseFloat($("#p_u2").val())) / 100;
	  $("#u2").text(U2 + " €");
		
		// Insolvenzumlage
	  var IU = Math.round(IU = ((G + SZ)) * parseFloat($("#p_iu").val())) / 100;
	  $("#iu").text(IU + " €");
		// Beitrag Berufsgenossenschaft
		
	  var BGE = Math.round(BGE = ((G + SZ)) * parseFloat($("#p_bge").val())) / 100;
	  $("#bge").text(BGE + " €");
	
		// Schwerbehindertenausgleich
	  var SA = Math.round(SA = ((G + SZ)) * parseFloat($("#p_sa").val())) / 100;
	  $("#sa").text(SA + " €");
		
		
		// Arbeitgeberanteil
	  var AA = Math.round((KV + PV + AV + RV + U1 + U2 +BGE + IU + SA) * 100) / 100;
	  $("#aa_pa").text(AA + " €");

		// Personalverwaltung
  	var PERSOV = Math.round(PERSOV = ((G + SZ)) * parseFloat($("#p_persov").val())) / 100;
  	$("#persov").text(PERSOV + " €");

		// Rekrutierungskosten
		var RK = Math.round(RK = ((G + SZ)) * parseFloat($("#p_rk").val())) / 100;
		$("#rk").text(RK + " €");
		
		// Werbe & Reisekosten
	  var WR = Math.round(WR = ((G + SZ)) * parseFloat($("#p_wr").val())) / 100;
	  $("#wr").text(WR + " €");
	
		// Einrichtungen für Angestellte
  	var EA = Math.round(EA = ((G + SZ)) * parseFloat($("#p_ea").val())) / 100;
  	$("#ea").text(EA + " €");

		// Kosten für Aus- und Weiterbildung 
	  var AW = Math.round(AW = ((G + SZ)) * parseFloat($("#p_aw").val())) / 100;
	  $("#aw").text(AW + " €");

		// Sonstige
	  var S = Math.round(S = ((G + SZ)) * parseFloat($("#p_s").val())) / 100;
	  $("#s").text(S + " €");

	 	// Allgemeine Zusatzkosten
	  var AZ = Math.round((PERSOV + RK + WR + EA + AW + S) * 100) / 100;
	  $("#az_pa").text(AZ + " €");
	
		// Gesamtkosten
  	var GK = Math.round((G + SZ + AA + AZ) * 100) / 100;
  	$("#gk").text(GK + " €");

		// Vergleichsstundenpreis
		var VP = Math.round(GK / ((261 - UPJ - FPJ - KPJ) * SPW / 5) * 100) /100;
		$("#vp").text(VP + " €").parent().effect("highlight",  {}, 1000);

	});
	
	$("#payment_period").hide();
	$("#account_id_2").click(function () { 
	      $("#payment_period").show("slow").highlight(); 
	 });
	$("#account_id_1").click(function () { 
	      $("#payment_period").hide("slow");
	 });
	$("#qualification-search-tab.inactive").click(function () { 
	    $("#establishment-search-form").hide('slide', 'slow', function (){
			$("#establishment-search-form").toggleClass('invisible');
			$("#qualification-search-form").toggleClass('invisible').show('slide', 'slow');
			$("#establishment-search-tab").toggleClass('active').toggleClass('inactive');
			$("#qualification-search-tab").toggleClass('active').toggleClass('inactive');
			$("#search_type").attr('value', 'qualification');
		})
	 });
	$("#establishment-search-tab.inactive").click(function () {
		$("#qualification-search-form").hide('slide', 'slow', function (){
			$("#qualification-search-form").toggleClass('invisible');
			$("#establishment-search-form").toggleClass('invisible').show('slide', 'slow');
			$("#qualification-search-tab").toggleClass('active').toggleClass('inactive').unbind("click");
			$("#establishment-search-tab").toggleClass('active').toggleClass('inactive');
			$("#search_type").attr('value', 'establishment');
			$("#qualification-search-tab.inactive").click(function () { 
			    $("#establishment-search-form").hide('slide', 'slow', function (){
					$("#establishment-search-form").toggleClass('invisible');
					$("#qualification-search-form").toggleClass('invisible').show('slide', 'slow');
					$("#qualification-search-tab").toggleClass('active').toggleClass('inactive');
					$("#establishment-search-tab").toggleClass('active').toggleClass('inactive');
					$("#search_type").attr('value', 'qualification');
				})
			 });
		})
	 });
	$("#search_type").attr('value', 'qualification');
	
	
	$("#legalform").hide();
	$("#establishment_own_legal_personality").click(function () { 
	      $("#legalform").toggle("slow"); 
	 });
	$("#tabs").tabs({ 
		fx: { height: 'toggle', opacity: 'toggle', duration:'slow'} 
	});
	
	$(".ajax-loader").hide();
	/* Init Search Autosuggest */
	var options_quali = {
		script: "qualifications_suggest?",
		varname: "quali",
		noresults: "Zu diesem Suchbegriffe gibt es keine Einträge in der Datenbank!",
		maxresults: 35,
		offsety: -5,
		delay: 0
	};
	var options_city = {
		script: "cities_suggest?",
		varname: "city",
		noresults: "Zu diesem Suchbegriffe gibt es keine Einträge in der Datenbank!",
		maxresults: 35,
		offsety: -5,
		delay: 0
	};
	var options_establishment = {
		script: "establishments_suggest?",
		varname: "establishment",
		noresults: "Zu diesem Suchbegriffe gibt es keine Einträge in der Datenbank!",
		maxresults: 35,
		offsety: -5,
		delay: 0
	};
	var as_quali = new bsn.AutoSuggest('search_quali', options_quali);
	var as_city = new bsn.AutoSuggest('search_city', options_city);
	var as_establishment = new bsn.AutoSuggest('search_establishment', options_establishment);
	var as_qualification = new bsn.AutoSuggest('qualifications_qualification', options_quali);
	$("#search_quali").Watermark("z.B. : Koch, Küchenhilfe, ...");
	$("#search_establishment").Watermark("z.B. PRO-B2B GmbH");
	$("#qualifications_qualification").Watermark("z.B. : Koch, Küchenhilfe, ...");
	$("#search_city").Watermark("z.B. : Leipzig, München, ...");
	$(function() {
			$('#aueg_since').datepicker({
				changeMonth: true,
				changeYear: true,
				maxDate: '+0d'
		});
	});
	
	$(".autoHide").animate({opacity: 1.0}, 7000).hide('slide', 'up', 'slow');

	$('#establishment_list li').hover(
		function(){$(this).find('ul.hover-menu:hidden').fadeIn(500);},
		function(){$(this).find('ul.hover-menu:visible').fadeOut(500);}
	);
});

