jQuery(function() {
	jQuery.support.borderRadius = false;
	jQuery.each(['BorderRadius','MozBorderRadius','WebkitBorderRadius','OBorderRadius','KhtmlBorderRadius'], function() {
		if(document.body.style[this] !== undefined) jQuery.support.borderRadius = true;
		return (!jQuery.support.borderRadius);
	});
});

jQuery(function() {
	if(!jQuery.support.borderRadius) {
		jQuery('.button').each(function() {
			jQuery(this).wrap('<div class="buttonwrap"></div>')
			.before('<div class="corner tl"></div><div class="corner tr"></div>')
			.after('<div class="corner bl"></div><div class="corner br"></div>');
		});
	}
});


var IBE = {
	startGesamt: {},
	gesamt: 0,
	servicePrices: {},
	userClick: true,
	
	toggleService: function(cont) {
		var btnId = jQuery(cont).attr("id");
		var neutralizedIdArr = btnId.split("_");
		neutralizedIdArr.shift();
		var neutralizedId = neutralizedIdArr.join("_");
		var serviceContainer = "raten_"+neutralizedId;
		jQuery("#"+serviceContainer).slideToggle();
	},
	
	readRateTotals:	function() {
		jQuery("[id^=rate_gesamt_]").each(function(i,el) {
			IBE.startGesamt[jQuery(this).attr("id")] = parseFloat(jQuery(this).val());
		});
	},
	
	setCustomRadios: function(radio) {
		var verfuegbarkeitId = jQuery(radio).attr("id").split("_")[2];
		if(IBE.userClick) {
			if(!multiBooking) {
				jQuery("#individuell_zusatzleistung_"+verfuegbarkeitId).attr("checked","checked");
			} else {
				jQuery(".zusatzleistung_individuell_radio").attr("checked","checked");
			}
		}
	},
	
	updatePrices: function(radio) {
		var verfuegbarkeitId = jQuery(radio).attr("id").split("_")[2];
		
		var priceElId = "#preis_"+jQuery(radio).attr("id");
		if(jQuery(radio).val() != "none") {
			var price = parseFloat(jQuery(priceElId).val());
			IBE.servicePrices[jQuery(radio).attr("name")] = price;
		} else if (jQuery(radio).val() == "none") {
			IBE.servicePrices[jQuery(radio).attr("name")] = 0.0;
		}
		
		var sumServices = 0.0;
		jQuery.each(IBE.servicePrices, function(i,el) {
			sumServices += el;
		});
		
		if(multiBooking) {
			jQuery("#display_rate_gesamt_1").html(iwFormatFloat(IBE.startGesamt["rate_gesamt_1"]+sumServices, decimalSeperator));
		} else {
			jQuery("#display_rate_gesamt_"+verfuegbarkeitId).html(iwFormatFloat(IBE.startGesamt["rate_gesamt_"+verfuegbarkeitId]+sumServices, decimalSeperator));
		}
	}
}

jQuery(document).ready(function() {
  if($("#ibefooter").is(":visible")) {
    $("#loading_animation").remove();
  }
});

jQuery(document).ready(function() {
	// Fancybox / Fotogalerie
	$("a.image_gallery").fancybox({
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic'
	});
	
	jQuery("#profil_buchen_button").click(function() {
		if(($('#ibe #firma').val() == '') && is_firma) { 
			alert(firma_text);
			return false;
		};
		return true;
	});
	
	jQuery(".container-plzort #plz").autocomplete({
		source:  function( request, response ) {
			$.ajax({
				url: zipServiceURI,
				dataType: "json",
				data: {
					country_id: jQuery("#land").val(),
					language: currentLang,
					zip: request.term
				},
				success: function( data ) {
					if(data.result.length === 1) {
						jQuery(".container-plzort #ort").val(data.result[0].city);
						jQuery(".container-plzort #plz").autocomplete("close");
						return;
					}
					
					response( $.map( data.result, function( item ) {
						return {
							label: item.zip + " " + item.city,
							value: item.zip,
							city: item.city
						}
					}));
				}
			});
		},
		minLength: 3,
		select: function( event, ui ) {
			jQuery(".container-plzort #ort").val(ui.item.city);
		}
	});
	
	jQuery("#anz_kinder1, #anz_kinder2, #anz_kinder3").hide();
	
	jQuery("#anz_kinder1, #anz_kinder2, #anz_kinder3").click(function() {
		var kinderContainerId = jQuery(this).attr("id").substring(10,11);
		jQuery("#container-anzkinder_"+kinderContainerId).slideToggle();
	});
	
	jQuery(".kinder_zeile_close").click(function() {
		var kinderContainerId = jQuery(this).attr("id").split("_")[3];
		jQuery("#container-anzkinder_"+kinderContainerId).slideUp();
	});
	
	jQuery(".zimmerAnzKinder").change(function() {
		var kinderContainerId = jQuery(this).attr("id").substring(13,14);
		var kinderSelectedCount = jQuery(this).val();
		var markup = "";
		if(kinderSelectedCount === "0") {
			jQuery("#anz_kinder"+kinderContainerId).hide();
			jQuery("#anz_kinder_hidden"+kinderContainerId).show();
			jQuery("#container-anzkinder_"+kinderContainerId).slideUp();
		} else {
			jQuery("#tableKinderBody_"+kinderContainerId).html("");
			for(var i = 1; i <= kinderSelectedCount; i++) {
				markup += printSelectKinder(kinderContainerId,i);
			}
			jQuery("#anz_kinder_hidden"+kinderContainerId).hide();
			jQuery("#anz_kinder"+kinderContainerId).show();
			jQuery("#tableKinderBody_"+kinderContainerId).html(markup);
			
			for(var i = 1; i <= kinderSelectedCount; i++) {
				var alterId = reqParAlter["zimmerAlterKind"+kinderContainerId+"_"+i];
				if(alterId != "") {
					jQuery("#zimmerAlterKind"+kinderContainerId+"_"+i).val(alterId);
				}
			}
			
			jQuery("#container-anzkinder_"+kinderContainerId).slideDown();
		}
	});
	
	jQuery(".zimmerAnzKinder").each(function(i,el) {
		jQuery(this).trigger("change");
		var kinderContainerId = jQuery(this).attr("id").substring(13,14);
		jQuery("#container-anzkinder_"+kinderContainerId).hide();
	});
	
	if(typeof multiBooking != "undefined") {
		
		IBE.readRateTotals();
		
		jQuery(".zusatzleistung_global_radio").click(function() {
			IBE.userClick = false;
			
			if(multiBooking) {
				var verfuegbarkeitId = jQuery(this).attr("id").split("_")[3];
				jQuery("[name^=zusatzleistung_zimmer_"+verfuegbarkeitId+"_][value="+jQuery(this).val()+"]").trigger("click");
				jQuery("[id^=raten_zusatzleistungen_zimmer_"+verfuegbarkeitId+"_]").slideUp();
			} else {
				var verfuegbarkeitId = jQuery(this).attr("id").split("_")[1];
				jQuery("[id^=zusatzleistung_zimmer_"+verfuegbarkeitId+"_][value="+jQuery(this).val()+"]").trigger("click");
				jQuery("[id^=verfuegbarkeit_"+verfuegbarkeitId+"_]").slideUp();
			}
			jQuery(this).attr("checked","true");
			
			IBE.userClick = true;
		});
		
		
		jQuery(".zusatzleistung_individuell_radio").click(function() {
			var verfuegbarkeitId = parseInt(jQuery(this).attr("id").split("_")[3], 10);
			jQuery("[id^=raten_zusatzleistungen_zimmer_"+verfuegbarkeitId+"_]").slideDown();
		});
		
		jQuery("[id^=individuell_zusatzleistung_]").click(function() {
			var verfuegbarkeitId = parseInt(jQuery(this).attr("id").split("_")[2], 10);
			jQuery("[id^=verfuegbarkeit_"+verfuegbarkeitId+"_]").slideDown();
			jQuery("[id^=verfuegbarkeit_"+verfuegbarkeitId+"_] .raten_content").find("[id^=zusatzleistung_]").each(function(i,el){
				if(!jQuery(el).is(":visible")) {
					jQuery(el).css("display","block");
					jQuery(el).css("display","none");
				}
			});
		});
		
		jQuery(".zusatzleistung_zimmer_radio:checked").each(function() {
			IBE.userClick = false;
			IBE.updatePrices(this);
			IBE.userClick = true;
		});
		
		jQuery(".zusatzleistung_zimmer_radio").click(function() {
			IBE.updatePrices(this);
		});
		
		jQuery(".rate_radio").click(function() {
			var rateStartPrice = parseFloat(jQuery("#preis_"+jQuery(this).attr("id")).val());
			jQuery("#display_rate_gesamt_"+jQuery(this).attr("id").split("_")[1]).html(iwFormatFloat(rateStartPrice,decimalSeperator));
			jQuery("#rate_gesamt_"+jQuery(this).attr("id").split("_")[1]).val(rateStartPrice);
			IBE.readRateTotals();
			IBE.servicePrices = {};
			jQuery("input[value=none]").attr("checked","checked");
		});
	}
});
