
/*!
 * Bootstrap v3.3.5 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under the MIT license
 */
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.5",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),
d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.5",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
$(document).ready(function() {
  /* convert timestamp */
  function ac_backend_convert_timestamp(timestamp) {
    var dtDate = new Date(timestamp * 1000);
    var strDay = "0" + dtDate.getDate();
    var strMonth = "0" + (dtDate.getMonth() + 1);
    var strYear = dtDate.getFullYear().toString();
    dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + "." + strYear; //.slice(-2);
    return dtDate;
  }

  function ac_backend_convert_timestamp_trim(timestamp) {
    var dtDate = new Date(timestamp * 1000);
    var strDay = "0" + dtDate.getDate();
    var strMonth = "0" + (dtDate.getMonth() + 1);
    dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + ".";
    return dtDate;
  }
  /* END convert timestamp */

  /* pricetable 1 */
  /* pricetable 1 version 1 th_room_duration */
  function ac_backend_get_th_room_duration(data, sprache) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = "<br>" + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<th><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_backend_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strRoomName + "</a>" + strRoomDescription + "</th>";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th><th>" + strDuration + "</th>" + strAusgabe + "</tr>";
  }

  function ac_backend_get_td_seasons_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";

    var ac_pricetable_labels = {
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<tr>" +
          "   <td>";

        for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
          dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
          dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

          var prevItem = 0;
          if (k > 0) {
            prevItem = k - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              strAusgabe += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "</td>" +
          "<td>";

        for (var m = 0; m < data.ac_pricetable[i].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; m++) {
          strAusgabe += "<span>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[m].ac_rate[0].ac_name[sprache] + "</span>";
        }

        strAusgabe += "</td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

          strAusgabe += "<td>";

          for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
            var strPrice = "&nbsp;";
            if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != "") {
              strPrice = "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b>";
            }

            strAusgabe += "<span>" + strPrice + "</span>";
          }

          strAusgabe += "</td>";
        }

        strAusgabe += "</tr>";
      }
    }

    return strAusgabe;
  }
  /* END pricetable 1 version 1 th_room_duration */

  /* pricetable 1 version 2 th_room */
  function ac_backend_get_th_room(data, sprache) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = "<br>" + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<th><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_backend_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strRoomName + "</a>" + strRoomDescription + "</th>";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th>" + strAusgabe + "</tr>";
  }

  function ac_backend_get_td_seasons_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";

    var ac_pricetable_labels = {
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<tr>" +
          "   <td>";

        for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
          dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
          dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

          var prevItem = 0;
          if (k > 0) {
            prevItem = k - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              strAusgabe += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "</td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

          strAusgabe += "<td>";

          for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
            if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices) {
              var strRateName = "";
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length > 1) {
                strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] + " ";
              }

              strAusgabe += "<span class='outer'><span class='inner'>" + strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b></span></span>";
            }
          }

          strAusgabe += "</td>";
        }

        strAusgabe += "</tr>";
      }
    }

    return strAusgabe;
  }
  /* END pricetable 1 version 2 th_room */

  /* pricetable 1 version 3 th_seasons_duration */
  function ac_backend_get_th_seasons_duration(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
          dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
          dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

          var prevItem = 0;
          if (j > 0) {
            prevItem = j - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              dtDaten += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "<th>" + dtDaten + "</th>";
      }

      dtDaten = "";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th>" /*<th>" + strDuration + "</th>" '*/ + strAusgabe + "</tr>";
  }

  function ac_backend_get_prices(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strDauer = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0] == strRoomCode) {
            var ratesLength = 0;
            for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != "" && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != 0) {
                ratesLength++;
              }
            }

            for (var k = 0; k < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; k++) {
              var strPrice = "&nbsp;";
              var strRateName = "";
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices != "" && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices != 0) {
                if (ratesLength > 1) {
                  strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[0].ac_name[sprache] + " ";
                }
                strPrice = "<b class='outer'>" + strRateName + "<b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices + " &euro;</b></b>";

                strAusgabe += "<span>" + strPrice + "</span>";
              }
            }
          }
        }

        strAusgabe += "</td>";
      }

      for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; l++) {
        if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[l].ac_roomtypes[0].ac_roomtypecode[0] == strRoomCode) {
          for (var m = 0; m < data.ac_pricetable[i].ac_seasons[2].ac_rooms[l].ac_roomtypes[1].ac_rates.length; m++) {
            if (i == 0) {
              strDauer += "<span>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[l].ac_roomtypes[1].ac_rates[m].ac_rate[0].ac_name[sprache] + "</span>";
            }
          }
        }
      }
    }

    return /*"<td>" + strDauer + "</td>" + */ strAusgabe;
  }

  function ac_backend_get_td_rooms_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = " - " + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<tr><td>" + strRoomName + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_backend_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></td>" + ac_backend_get_prices(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) + "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable 1 version 3 th_seasons_duration */

  /* pricetable 1 version 4 th_seasons */
  function ac_backend_get_th_seasons(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
          dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
          dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

          var prevItem = 0;
          if (j > 0) {
            prevItem = j - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              dtDaten += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "<th>" + dtDaten + "</th>";
      }
      dtDaten = "";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th>" + strAusgabe + "</tr>";
  }

  function ac_backend_get_prices_duration(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0] == strRoomCode) {
            for (var k = 0; k < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; k++) {
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices) {
                var strRateName = "";
                if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length > 1) {
                  strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[0].ac_name[sprache] + " ";
                }

                strAusgabe += "<span class='outer'><span class='inner'>" + strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices + "</b> &euro;</b></span></span>";

              }
            }
          }
        }

        strAusgabe += "</td>";
      }
    }

    return strAusgabe;
  }

  function ac_backend_get_td_rooms_prices(data, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = " - " + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<tr><td>" + strRoomName + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_backend_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></td>" + ac_backend_get_prices_duration(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) + "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable 1 version 4 th_seasons */

  /* pricetable 1 version 5 table_rooms */
  function ac_backend_get_th_seasons_rooms(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var strAusgabe = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    if (objRooms[0].ac_roomtypes[1].ac_rates.length > 1) {
      strAusgabe += "<th>" + strRoomtype + " / " + strPeriod + "</th>";
    }

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
          dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
          dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

          var prevItem = 0;
          if (j > 0) {
            prevItem = j - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              dtDaten += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "<th>" + dtDaten + "</th>";
      }

      dtDaten = "";
    }

    return "<tr>" + strAusgabe + "</tr>";
  }

  function ac_backend_get_td_rooms(data, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      strRoomDescription = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      var colspan = data.ac_pricetable.length;
      if (objRooms[i].ac_roomtypes[1].ac_rates.length > 1) {
        colspan++;
      }

      /* check if period is actual */
      var allValidPeriods = 0;
      var allPeriods = 0;
      var validPeriods = 0;
      for (var x = 0; x < data.ac_pricetable.length; x++) {
        allPeriods++;
        for (var z = 0; z < data.ac_pricetable[x].ac_seasons[1].ac_periods.length; z++) {
          if (parseInt(data.ac_pricetable[x].ac_seasons[1].ac_periods[z].ac_end_date) * 1000 >= dtCurrent) {
            validPeriods++;
          }
        }
      }
      allValidPeriods = allPeriods - validPeriods;
      /* END check if period is actual */

      if (hideExpiredPeriods == 1) {
        colspan = colspan - allValidPeriods;
      }

      strAusgabe += "<tbody>" +
        "   <tr><td colspan='" + colspan + "'><b>" + strRoomName + "</b> " + strRoomDescription + " <a href='javascript:;' title='" + strDetails + "' onclick='ac_backend_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></td></tr>";

      for (var j = 0; j < objRooms[i].ac_roomtypes[1].ac_rates.length; j++) {
        strAusgabe += "<tr>";

        if (objRooms[i].ac_roomtypes[1].ac_rates.length > 1) {
          strAusgabe += "<td><span>" + objRooms[i].ac_roomtypes[1].ac_rates[j].ac_rate[0].ac_name[sprache] + "</span></td>";
        }

        for (var k = 0; k < data.ac_pricetable.length; k++) {
          /* check if period is actual */
          var isPeriodExpired = hideExpiredPeriods;
          for (var y = 0; y < data.ac_pricetable[k].ac_seasons[1].ac_periods.length; y++) {
            if (parseInt(data.ac_pricetable[k].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
              isPeriodExpired = 0;
            }
          }
          /* END check if period is actual */

          if (isPeriodExpired == 0) {
            var strPrice = "&nbsp;";
            if (data.ac_pricetable[k].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[j].ac_rate[1].ac_prices != "") {
              strPrice = "<b class='outer'><b class='inner'>" + data.ac_pricetable[k].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[j].ac_rate[1].ac_prices + "</b> &euro;</b>";
            }

            strAusgabe += "<td><span>" + strPrice + "</span></td>";
          }
        }

        strAusgabe += "</tr>";
      }

      strAusgabe += "</tbody>";
    }

    return strAusgabe;
  }
  /* END pricetable 1 version 5 table_rooms */

  /* responsive table */
  function ac_backend_get_responsive_table_items(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var strAusgabe = "";
    var strNavigation = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'allperiods': {
        'de': 'Alle Zeiträume',
        'it': 'Tutti i periodi',
        'en': 'All periods',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var allPeriods = eval('ac_pricetable_labels.allperiods.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    strNavigation += "<div class='responsive_table_navigation_wrapper clearfix'>" +
      "   <div class='responsive_table_navigation_inner_wrapper clearfix'>" +
      "       <select name='responsive_table_navigation' id='responsive_table_navigation' onchange='ac_backend_responsiveTablePeriodFilter()'>" +
      "           <option value='period'>" + allPeriods + "</option>";

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      strRoomDescription = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      if (strRoomDescription != "") {
        strRoomDescription = "<br><i>" + strRoomDescription + "</i>";
      }

      /* check if room has one price min. */
      var emptyRoom = 0;
      for (var o = 0; o < data.ac_pricetable.length; o++) {
        for (var p = 0; p < data.ac_pricetable[o].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates.length; p++) {
          if (data.ac_pricetable[o].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[p].ac_rate[1].ac_prices != '') {
            emptyRoom = 1;
          }
        }
      }
      /* END check if room has one price min. */

      if (emptyRoom == 1) {
        strAusgabe += "<table class='responsive_table_item' id='responsive_table_item_" + strRoomCode + "' data-roomtypecode='" + strRoomCode + "'>" +
          "   <thead>" +
          "   <tr>" +
          "       <th><b>" + strRoomName + "</b>" + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' onclick='ac_backend_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></th>" +
          "   </tr>" +
          "   </thead>" +
          "   <tbody>";


        for (var j = 0; j < data.ac_pricetable.length; j++) {
          /* check if period is actual */
          var isPeriodExpired = hideExpiredPeriods;
          for (var y = 0; y < data.ac_pricetable[j].ac_seasons[1].ac_periods.length; y++) {
            if (parseInt(data.ac_pricetable[j].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
              isPeriodExpired = 0;
            }
          }
          /* END check if period is actual */

          if (isPeriodExpired == 0) {
            var strClass = "";
            var strClassItems = "";
            for (var m = 0; m < data.ac_pricetable[j].ac_seasons[1].ac_periods.length; m++) {
              strClassItems += " period_" + j.toString() + m.toString();
            }

            /* check id period has one price min. */
            var emptyPeriod = 0;
            for (var n = 0; n < data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates.length; n++) {
              if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[n].ac_rate[1].ac_prices != '') {
                emptyPeriod = 1;
              }
            }
            /* END check id period has one price min. */

            if (emptyPeriod == 1) {
              strAusgabe += "<tbody class='period" + strClassItems + "'>" +
                "<tr>" +
                "   <td>";

              var dtStart = "";
              var dtEnde = "";
              var strSeason = "";
              var dtDaten = "";

              for (var k = 0; k < data.ac_pricetable[j].ac_seasons[1].ac_periods.length; k++) {
                dtStart = ac_backend_convert_timestamp(data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_start_date);
                dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_end_date);

                var prevItem = 0;
                if (k > 0) {
                  prevItem = k - 1;
                  if (parseInt(data.ac_pricetable[j].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
                    dtDaten += "<br>";
                  }
                }

                if (sprache == "de" && data.ac_pricetable[j].ac_seasons[0].ac_names[k].de != "") {
                  strSeason = data.ac_pricetable[j].ac_seasons[0].ac_names[k].de + "<br>";
                  if (k > 0 && (data.ac_pricetable[j].ac_seasons[0].ac_names[k].de == data.ac_pricetable[j].ac_seasons[0].ac_names[prevItem].de)) {
                    strSeason = "";
                  }
                } else if (sprache == "it" && data.ac_pricetable[j].ac_seasons[0].ac_names[k].it != "") {
                  strSeason = data.ac_pricetable[j].ac_seasons[0].ac_names[k].it + "<br>";
                  if (k > 0 && (data.ac_pricetable[j].ac_seasons[0].ac_names[k].it == data.ac_pricetable[j].ac_seasons[0].ac_names[prevItem].it)) {
                    strSeason = "";
                  }
                } else if (sprache == "en" && data.ac_pricetable[j].ac_seasons[0].ac_names[k].en != "") {
                  strSeason = data.ac_pricetable[j].ac_seasons[0].ac_names[k].en + "<br>";
                  if (k > 0 && (data.ac_pricetable[j].ac_seasons[0].ac_names[k].en == data.ac_pricetable[j].ac_seasons[0].ac_names[prevItem].en)) {
                    strSeason = "";
                  }
                }

                if ((parseInt(data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
                  dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
                  if (i == 0) {
                    strNavigation += "<option value='period_" + j.toString() + k.toString() + "'>" + dtStart + " - " + dtEnde + "</option>";
                  }

                  if (data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_dummy_1 == 1) {
                    dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
                  }
                }
              }

              strAusgabe += dtDaten + "</td>" +
                "</tr>";

              for (var l = 0; l < data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates.length; l++) {
                if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != "") {
                  strAusgabe += "<tr class='" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name['db'] + "'>";

                  var strColspan = "";
                  if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] != '') {
                    //strAusgabe += "<td><span>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] + "</span></td>";
                  } else {
                    //strColspan = " colspan='2'";
                  }

                  strAusgabe += "<td " + strColspan + "><span><b class='outer'><b class='inner'>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b></span></td>" +
                    "</tr>";
                }
              }

              strAusgabe += "</tbody>";
            }
          }
        }

        strAusgabe += "</table>";
      }
    }

    strNavigation += "</select>" +
      "   </div>" +
      "</div>";

    return strNavigation + strAusgabe;
  }
  /* END responsive table */

  /* make pricetable 1 */
  (function($) {
    $.fn.make_pricelist_1 = function(responsive) {
      var strElement = this;
      var sprache = $('html').attr('lang');
      var dummy = $(strElement).attr('data-dummy'); //.toUpperCase();
      var strTable = "";
      var placeholder = "";
      var inquireUrl = $(strElement).attr('data-inquire');

      var ac_pricetable_labels = {
        'placeholder': {
          'de': 'Preise für die nächste Saison folgen in Kürze.<br> Bitte besuchen Sie uns zu einem späteren Zeitpunkt noch einmal oder stellen Sie eine <a href="' + inquireUrl + '" target="_blank">unverbindliche Anfrage</a>.',
          'it': 'I prezzi per la prossima stagione seguiranno a breve.<br> Si prega di visitare di nuovo in seguito o di fare una <a href="' + inquireUrl + '" target="_blank">richiesta non vincolante</a>.',
          'en': 'Prices for next season will follow shortly.<br> Please visit us at a later time again or make a <a href="' + inquireUrl + '" target="_blank">non-binding request</a>.',
          'fr': '',
          'nl': ''
        }
      };

      var placeholder = eval('ac_pricetable_labels.placeholder.' + sprache);

      $.getJSON('/typo3conf/ext/ac_backend/Resources/Public/preistabelle/cache/rooms.json', function(data) {
        /* check if period is actual */
        var dtCurrent = (new Date()).getTime();
        // isPeriodExpired: 1 = enabled, 0 = disabled
        var hideExpiredPeriods = 0;
        var isPeriodExpired = hideExpiredPeriods;
        for (var x = 0; x < data.ac_pricetable.length; x++) {
          for (var y = 0; y < data.ac_pricetable[x].ac_seasons[1].ac_periods.length; y++) {
            if (parseInt(data.ac_pricetable[x].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
              isPeriodExpired = 0;
            }
          }
        }
        /* END check if period is actual */

        if (isPeriodExpired == 0) {
          if (responsive == true) {
            strTable += "<div class='responsive_table_wrapper clearfix'>" +
              "   <div class='responsive_table clearfix'>" + ac_backend_get_responsive_table_items(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</div>" +
              "</div>";
          } else {
            var pricetableTemplate = data.ac_pricetable_settings.ac_template_pricetable;
            if (pricetableTemplate == 1) {
              strTable += "<table class='th_room_duration'><thead>" + ac_backend_get_th_room_duration(data, sprache) + "</thead><tbody>" + ac_backend_get_td_seasons_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</tbody></table>";
            } else if (pricetableTemplate == 2) {
              strTable += "<table class='th_room'><thead>" + ac_backend_get_th_room(data, sprache) + "</thead><tbody>" + ac_backend_get_td_seasons_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</tbody></table>";
            } else if (pricetableTemplate == 3) {
              strTable += "<table class='th_season_duration'><thead>" + ac_backend_get_th_seasons_duration(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</thead><tbody>" + ac_backend_get_td_rooms_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent) + "</tbody></table>";
            } else if (pricetableTemplate == 4) {
              strTable += "<table class='th_season'><thead>" + ac_backend_get_th_seasons(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</thead><tbody>" + ac_backend_get_td_rooms_prices(data, sprache, hideExpiredPeriods, dtCurrent) + "</tbody></table>";
            } else if (pricetableTemplate == 5) {
              strTable += "<table class='table_rooms'><thead>" + ac_backend_get_th_seasons_rooms(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</thead>" + ac_backend_get_td_rooms(data, sprache, hideExpiredPeriods, dtCurrent) + "</table>";
            }
          }

          $(strElement).append(strTable);
        } else {
          // Formatierung ist noch anzupassen !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          $(strElement).append("<p style='padding: 20px 15px;'>" + placeholder + "</p>");
        }
      });
    }
  })(jQuery);
  /* END make pricetable 1 */
  /* END pricetable 1 */

  /* pricetable living 1 */
  /* pricetable living 1 version 1 th_label */
  function ac_backend_get_th_label(data, sprache) {
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'prices': {
        'de': 'Preise',
        'it': 'Prezzi',
        'en': 'Prices',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strPrice = eval('ac_pricetable_labels.prices.' + sprache);

    strAusgabe += "<tr><th>" + strPeriod + "</th><th>" + strPrice + "</th></tr>";

    return strAusgabe;
  }

  function ac_backend_get_td_seasons_prices_living(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";
    var currentSetting = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      strAusgabe += "<tr>";

      strAusgabe += "<td>";
      for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
        dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
        dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

        var prevItem = 0;
        if (k > 0) {
          prevItem = k - 1;
          strAusgabe += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }
      strAusgabe += "</td>";

      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
        strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

        strAusgabe += "<td>";

        var ratesLength = 0;
        for (var m = 0; m < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; m++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[m].ac_rate[1].ac_prices != '' && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[m].ac_rate[1].ac_prices != 0) {
            ratesLength++;
          }
        }

        for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != '' && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != 0) {
            var strRateName = "";
            if (ratesLength > 1) {
              strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] + " ";
            }

            strAusgabe += "<span class='outer'><span class='inner'>" + strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b></span></span>";
          }
        }

        strAusgabe += "</td>";
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 1 version 1 th_label */

  /* pricetable living 1 version 2 th_season_duration */
  function ac_backend_get_th_seasons_duration_living(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var seasonName = "";
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
        dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
        dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

        var prevItem = 0;
        if (j > 0) {
          prevItem = j - 1;
          dtDaten += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }

      strAusgabe += "<th>" + dtDaten + "</th>";
      dtDaten = "";
    }

    return "<tr><th>" + strDuration + "</th>" + strAusgabe + "</tr>";
  }

  function ac_backend_get_td_duration_prices(data, sprache) {
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; i++) {
      strAusgabe += "<tr>";

      strAusgabe += "<td>" + data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[0].ac_name[sprache] + "</td>";

      for (var j = 0; j < data.ac_pricetable.length; j++) {
        var strPrice = "&nbsp;";
        if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices != "") {
          strPrice = "<b class='outer'><b class='inner'>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices + "</b> &euro;</b>";
        }
        strAusgabe += "<td><span>" + strPrice + "</span></td>";
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 1 version 2 th_season_duration */

  /* pricetable living 1 version 3 th_duration */
  function ac_backend_get_th_duration(data, sprache) {
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    strAusgabe += "<tr>";

    strAusgabe += "<th>" + strPeriod + "</th>";

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; i++) {
      strAusgabe += "<th>" + data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[0].ac_name[sprache] + "</th>";
    }

    strAusgabe += "</tr>";

    return strAusgabe;
  }

  function ac_backend_get_td_seasons_duration(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";
    var currentSetting = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      strAusgabe += "<tr>";

      strAusgabe += "<td>";
      for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
        dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
        dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

        var prevItem = 0;
        if (k > 0) {
          prevItem = k - 1;
          strAusgabe += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }
      strAusgabe += "</td>";

      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
        strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

        for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
          strAusgabe += "<td><span>";
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices) {
            strAusgabe += "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b>";
          }
          strAusgabe += "</span></td>";
        }
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 1 version 3 th_duration */

  /* pricetable living 1 version 4 th_season */
  function ac_backend_get_th_seasons_living(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var seasonName = "";
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
        dtStart = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
        dtEnde = ac_backend_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

        var prevItem = 0;
        if (j > 0) {
          prevItem = j - 1;
          dtDaten += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }

      strAusgabe += "<th>" + dtDaten + "</th>";
      dtDaten = "";
    }

    return "<tr>" + strAusgabe + "</tr>";
  }

  function ac_backend_get_td_prices(data, sprache) {
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; i++) {
      strAusgabe += "<tr>";

      for (var j = 0; j < data.ac_pricetable.length; j++) {
        var strRateName = "";
        if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length > 1) {
          strRateName = data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[0].ac_name[sprache] + " ";
        }

        var strPrice = "&nbsp;";
        if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices != "") {
          strPrice = strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices + "</b> &euro;</b>";
        }

        strAusgabe += "<td><span class='outer'><span class='inner'>" + strPrice + "</span></span></td>";
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 1 version 4 th_season */

  /* make pricetable living 1 */
  (function($) {
    $.fn.make_pricelist_living_1 = function() {
      var strElement = this;
      var sprache = $('html').attr('lang');
      var strRoomcode = $(strElement).attr('data-roomcode');
      var strTable = "";

      $.getJSON('/typo3conf/ext/ac_backend/Resources/Public/preistabelle/cache/room_' + strRoomcode + '.json', function(data) {
        var pricetableTemplate = data.ac_pricetable_settings.ac_template_pricetable_living;

        if (pricetableTemplate == 1) {
          strTable += "<table class='th_label d'><thead>" + ac_backend_get_th_label(data, sprache) + "</thead><tbody>" + ac_backend_get_td_seasons_prices_living(data, sprache) + "</tbody></table>";
        } else if (pricetableTemplate == 2) {
          strTable += "<table class='th_season_duration'><thead>" + ac_backend_get_th_seasons_duration_living(data, sprache) + "</thead><tbody>" + ac_backend_get_td_duration_prices(data, sprache) + "</tbody></table>";
        } else if (pricetableTemplate == 3) {
          strTable += "<table class='th_duration'><thead>" + ac_backend_get_th_duration(data, sprache) + "</thead><tbody>" + ac_backend_get_td_seasons_duration(data, sprache) + "</tbody></table>";
        } else if (pricetableTemplate == 4) {
          strTable += "<table class='th_season'><thead>" + ac_backend_get_th_seasons_living(data, sprache) + "</thead><tbody>" + ac_backend_get_td_prices(data, sprache) + "</tbody></table>";
        }

        $(strElement).append(strTable);
      });
    }
  })(jQuery);
  /* END make pricetable living 1 */
  /* END pricetable living 1 */
});

/* responsive table period filter */
function ac_backend_responsiveTablePeriodFilter() {
  var strVal = $('#responsive_table_navigation').val();
  var strClass = "." + strVal;
  $('table.responsive_table_item').each(function() {
    if ($('tbody.period', this).length <= 1 && !$('tbody.period', this).hasClass(strVal)) {
      $(this).hide();
    } else {
      $(this).show();
    }
    $('tbody.period', this).hide();
    $('tbody' + strClass, this).show();
  });
}
/* END responsive table period filter */

/* room detail */
function ac_backend_roomDetails(roomTypeCode, pageID, sprache) {
  var l = 0;
  if (sprache == "it")
    l = 1;
  else if (sprache == "en")
    l = 2

  if (pageID == '') {
    pageID = 31;
  }

  $.get('index.php?id=' + pageID + '&L=' + l + '&ADMCMD_cooluri=1', function(data) {
    if (data) {
      var content = $('<div/>').append(data);
      if (content.find('.room_data').length > 0) {
        var roomData = content.find('.room_data');
        $.each(roomData, function(index, room) {
          string_a = roomTypeCode;
          string_b = $(this).attr('data-room-roomtypecode');

          var match = string_a.localeCompare(string_b);

          if (match === 0) {
            var mRoom = $(roomData[index]).clone();

            var roomTitle = $(mRoom).attr('data-room-title');
            var roomSubtitle = $(mRoom).attr('data-room-subtitle');

            var roomTextWrapper = $(mRoom).attr('data-room-text');
            var roomText = "";
            if (content.find(roomTextWrapper).length > 0) {
              roomText = content.find(roomTextWrapper).html();
            }

            var roomImgWrapper = $(mRoom).attr('data-room-img');
            var roomImg = "";
            if (content.find(roomImgWrapper).length > 0) {
              roomImg = content.find(roomImgWrapper).html();
            }

            //roomImg = roomImg.split(',');

            var roomInquireURL = $(mRoom).attr('data-room-inquire') + '?ac_roomtypecode=' + roomTypeCode;
            var roomBookingURL = $(mRoom).attr('data-room-booking');

            var slideshow = '';
            var countImg = 0;

            /*
            $(roomImg).each(function (eimg) {
                if(roomImg[eimg] != ''){
                    slideshow += '<!--pass ' + eimg + '-->' +
                        '<div class="room_popup_slideshow_slide ac_clearfix">' +
                        '   <span class="room_popup_slideshow_img_fallback" style="background-image: url(\'' + roomImg[eimg] + '\')"></span>' +
                        '   <img src="' + roomImg[eimg] + '" alt="' + roomTitle + '">' +
                        '</div>';
                    countImg ++;
                }
            });
            */

            var ac_pricetable_labels = {
              'inquire': {
                'de': 'Anfragen',
                'it': 'richiedere',
                'en': 'inquire',
                'fr': 'demander',
                'nl': ''
              },
              'book': {
                'de': 'Buchen',
                'it': 'prenotare',
                'en': 'book',
                'fr': 'réserver',
                'nl': ''
              }
            };

            var strInquire = eval('ac_pricetable_labels.inquire.' + sprache);
            var strBook = eval('ac_pricetable_labels.book.' + sprache);

            var pager = '';
            if (countImg > 1) {
              pager = '<div class="room_popup_slideshow_pager ac_clearfix">' +
                '   <div id="room_popup_slideshow_prev_' + index + '" class="room_popup_slideshow_prev ac_clearfix"></div>' +
                '   <div id="room_popup_slideshow_next_' + index + '" class="room_popup_slideshow_next ac_clearfix"></div>' +
                '</div>';
            }

            var room = '<div class="room_popup ac_clearfix" id="room_popup_' + index + '" data-roomtypecode="' + roomTypeCode + '">' +
              '   <div class="room_popup_img_wrapper ac_clearfix">' +
              '       <div class="room_popup_slideshow_wrapper ac_clearfix">' +
              '           <div class="room_popup_slideshow room_popup_slideshow_' + index + ' ac_clearfix" data-cycle-timeout="0" data-cycle-log="false" data-cycle-swipe=true data-cycle-prev="#room_popup_slideshow_prev_' + index + '" data-cycle-next="#room_popup_slideshow_next_' + index + '" data-cycle-slides="> div, > a, > img">' + roomImg + '</div>' +
              '       </div>' +
              '       ' + pager +
              '   </div>' +
              '   <div class="room_popup_content_wrapper ac_clearfix">' +
              '       <div class="room_popup_content ac_clearfix">' +
              '           <div class="room_popup_header ac_clearfix">' +
              '               <div class="room_popup_title ac_clearfix">' + roomTitle + '</div>' +
              '               <div class="room_popup_subtitle ac_clearfix">' + roomSubtitle + '</div>' +
              '           </div>' +
              '           <div class="room_popup_text ac_clearfix">' + roomText + '</div>' +
              '			<div class="room_popup_button_wrapper ac_clearfix">' +
              '			    <div class="room_popup_button ac_clearfix">' +
              '				    <ul>' +
              '					    <li><a href="' + roomInquireURL + '">' + strInquire + '</a></li>' +
              '					    <li><a href="' + roomBookingURL + '" target="_blank">' + strBook + '</a></li>' +
              '				    </ul>' +
              '			    </div>' +
              '			</div>' +
              '       </div>' +
              '   </div>' +
              '</div>';

            /* +
                '   <div class="room_popup_img_wrapper ac_clearfix">' +
                '       <div class="room_popup_slideshow_wrapper ac_clearfix">' +
                '           <div class="room_popup_slideshow room_popup_slideshow_' + index + ' ac_clearfix" data-cycle-timeout="0" data-cycle-log="false" data-cycle-swipe=true data-cycle-prev="#room_popup_slideshow_prev_' + index + '" data-cycle-next="#room_popup_slideshow_next_' + index + '" data-cycle-slides="> div, > a, > img">' + slideshow + '</div>' +
                '       </div>' +
                '       ' + pager +
                '   </div>' +
                '</div>';*/

            if ($('.modal_' + string_b).length < 1) {

              var mM = $('#myModal').clone();
              mM.addClass('modal_' + string_b);
              mM.insertAfter($('#myModal'));
              mM.removeAttr('id');
              $('.modal_' + string_b + ' .modal-body').append(room);

              $(this).find('.cycle-slideshow').cycle();
            }

            $('.modal_' + string_b).modal('show');

            $('.room_popup_slideshow_' + index).cycle();

          }
        });
      }
    }
  });
}
/* END room detail */

$(document).ready(function() {
  /* convert timestamp */
  function ac_preisliste_convert_timestamp(timestamp) {
    var dtDate = new Date(timestamp * 1000);
    var strDay = "0" + dtDate.getDate();
    var strMonth = "0" + (dtDate.getMonth() + 1);
    var strYear = dtDate.getFullYear().toString();
    dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + "." + strYear; //.slice(-2);
    return dtDate;
  }

  function ac_preisliste_convert_timestamp_trim(timestamp) {
    var dtDate = new Date(timestamp * 1000);
    var strDay = "0" + dtDate.getDate();
    var strMonth = "0" + (dtDate.getMonth() + 1);
    dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + ".";
    return dtDate;
  }
  /* END convert timestamp */

  /* pricetable 2 */
  /* pricetable 2 version 1 th_room_duration */
  function ac_preisliste_get_th_room_duration(data, sprache) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = "<br>" + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<th><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strRoomName + "</a>" + strRoomDescription + "</th>";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th><th>" + strDuration + "</th>" + strAusgabe + "</tr>";
  }

  function ac_preisliste_get_td_seasons_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";

    var ac_pricetable_labels = {
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<tr>" +
          "   <td>";

        for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
          dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
          dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

          var prevItem = 0;
          if (k > 0) {
            prevItem = k - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              strAusgabe += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "</td>" +
          "<td>";

        for (var m = 0; m < data.ac_pricetable[i].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; m++) {
          strAusgabe += "<span>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[m].ac_rate[0].ac_name[sprache] + "</span>";
        }

        strAusgabe += "</td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

          strAusgabe += "<td>";

          for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
            var strPrice = "&nbsp;";
            if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != "") {
              strPrice = "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b>";
            }

            strAusgabe += "<span>" + strPrice + "</span>";
          }

          strAusgabe += "</td>";
        }

        strAusgabe += "</tr>";
      }
    }

    return strAusgabe;
  }
  /* END pricetable 2 version 1 th_room_duration */

  /* pricetable 2 version 2 th_room */
  function ac_preisliste_get_th_room(data, sprache) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = "<br>" + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<th><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strRoomName + "</a>" + strRoomDescription + "</th>";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th>" + strAusgabe + "</tr>";
  }

  function ac_preisliste_get_td_seasons_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";

    var ac_pricetable_labels = {
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<tr>" +
          "   <td>";

        for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
          dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
          dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

          var prevItem = 0;
          if (k > 0) {
            prevItem = k - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              strAusgabe += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
            if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "</td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

          strAusgabe += "<td>";

          for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
            if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices) {
              var strRateName = "";
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length > 1) {
                strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] + " ";
              }

              strAusgabe += "<span class='outer'><span class='inner'>" + strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b></span></span>";
            }
          }

          strAusgabe += "</td>";
        }

        strAusgabe += "</tr>";
      }
    }

    return strAusgabe;
  }
  /* END pricetable 2 version 2 th_room */

  /* pricetable 2 version 3 th_seasons_duration */
  function ac_preisliste_get_th_seasons_duration(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
          dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
          dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

          var prevItem = 0;
          if (j > 0) {
            prevItem = j - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              dtDaten += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "<th>" + dtDaten + "</th>";
      }

      dtDaten = "";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th>" + /*"<th>" + strDuration + "</th>" + */ strAusgabe + "</tr>";
  }

  function ac_preisliste_get_prices(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strDauer = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0] == strRoomCode) {
            var ratesLength = 0;
            for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != "" && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != 0) {
                ratesLength++;
              }
            }

            for (var k = 0; k < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; k++) {
              var strPrice = "&nbsp;";
              var strRateName = "";
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices != "" && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices != 0) {
                if (ratesLength > 1) {
                  strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[0].ac_name[sprache] + " ";
                }
                strPrice = "<b class='outer'>" + strRateName + "<b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices + " &euro;</b></b>";

                strAusgabe += "<span>" + strPrice + "</span>";
              }
            }
          }
        }

        strAusgabe += "</td>";
      }

      for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; l++) {
        if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[l].ac_roomtypes[0].ac_roomtypecode[0] == strRoomCode) {
          for (var m = 0; m < data.ac_pricetable[i].ac_seasons[2].ac_rooms[l].ac_roomtypes[1].ac_rates.length; m++) {
            if (i == 0) {
              strDauer += "<span>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[l].ac_roomtypes[1].ac_rates[m].ac_rate[0].ac_name[sprache] + "</span>";
            }
          }
        }
      }
    }

    return /*"<td>" + strDauer + "</td>" + */ strAusgabe;
  }

  function ac_preisliste_get_td_rooms_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = " - " + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<tr><td>" + strRoomName + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></td>" + ac_preisliste_get_prices(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) + "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable 2 version 3 th_seasons_duration */

  /* pricetable 2 version 4 th_seasons */
  function ac_preisliste_get_th_seasons(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
          dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
          dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

          var prevItem = 0;
          if (j > 0) {
            prevItem = j - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              dtDaten += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "<th>" + dtDaten + "</th>";
      }
      dtDaten = "";
    }

    return "<tr><th>" + strRoomtype + " / " + strPeriod + "</th>" + strAusgabe + "</tr>";
  }

  function ac_preisliste_get_prices_duration(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        strAusgabe += "<td>";

        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0] == strRoomCode) {
            for (var k = 0; k < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; k++) {
              if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices) {
                var strRateName = "";
                if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length > 1) {
                  strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[0].ac_name[sprache] + " ";
                }

                strAusgabe += "<span class='outer'><span class='inner'>" + strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[k].ac_rate[1].ac_prices + "</b> &euro;</b></span></span>";

              }
            }
          }
        }

        strAusgabe += "</td>";
      }
    }

    return strAusgabe;
  }

  function ac_preisliste_get_td_rooms_prices(data, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      if (objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache] != "") {
        strRoomDescription = " - " + objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      } else {
        strRoomDescription = "";
      }
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      strAusgabe += "<tr><td>" + strRoomName + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' class='pricetable_anchor' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></td>" + ac_preisliste_get_prices_duration(data, strRoomCode, sprache, hideExpiredPeriods, dtCurrent) + "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable 2 version 4 th_seasons */

  /* pricetable 2 version 5 table_rooms */
  function ac_preisliste_get_th_seasons_rooms(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var strAusgabe = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    if (objRooms[0].ac_roomtypes[1].ac_rates.length > 1) {
      strAusgabe += "<th>" + strRoomtype + " / " + strPeriod + "</th>";
    }

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      /* check if period is actual */
      var isPeriodExpired = hideExpiredPeriods;
      for (var y = 0; y < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; y++) {
        if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
          isPeriodExpired = 0;
        }
      }
      /* END check if period is actual */

      if (isPeriodExpired == 0) {
        for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
          dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
          dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

          var prevItem = 0;
          if (j > 0) {
            prevItem = j - 1;
            if (parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
              dtDaten += "<br>";
            }
          }

          if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
              strSeason = "";
            }
          } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
              strSeason = "";
            }
          } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
            strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
            if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
              strSeason = "";
            }
          } else {
            strSeason = "";
          }

          if ((parseInt(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
            dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";

            if (data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_dummy_1 == 1) {
              dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
            }
          }
        }

        strAusgabe += "<th>" + dtDaten + "</th>";
      }

      dtDaten = "";
    }

    return "<tr>" + strAusgabe + "</tr>";
  }

  function ac_preisliste_get_td_rooms(data, sprache, hideExpiredPeriods, dtCurrent) {
    var strAusgabe = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      strRoomDescription = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      var colspan = data.ac_pricetable.length;
      if (objRooms[i].ac_roomtypes[1].ac_rates.length > 1) {
        colspan++;
      }

      /* check if period is actual */
      var allValidPeriods = 0;
      var allPeriods = 0;
      var validPeriods = 0;
      for (var x = 0; x < data.ac_pricetable.length; x++) {
        allPeriods++;
        for (var z = 0; z < data.ac_pricetable[x].ac_seasons[1].ac_periods.length; z++) {
          if (parseInt(data.ac_pricetable[x].ac_seasons[1].ac_periods[z].ac_end_date) * 1000 >= dtCurrent) {
            validPeriods++;
          }
        }
      }
      allValidPeriods = allPeriods - validPeriods;
      /* END check if period is actual */

      if (hideExpiredPeriods == 1) {
        colspan = colspan - allValidPeriods;
      }

      strAusgabe += "<tbody>" +
        "   <tr><td colspan='" + colspan + "'><b>" + strRoomName + "</b> " + strRoomDescription + " <a href='javascript:;' title='" + strDetails + "' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></td></tr>";

      for (var j = 0; j < objRooms[i].ac_roomtypes[1].ac_rates.length; j++) {
        strAusgabe += "<tr>";

        if (objRooms[i].ac_roomtypes[1].ac_rates.length > 1) {
          strAusgabe += "<td><span>" + objRooms[i].ac_roomtypes[1].ac_rates[j].ac_rate[0].ac_name[sprache] + "</span></td>";
        }

        for (var k = 0; k < data.ac_pricetable.length; k++) {
          /* check if period is actual */
          var isPeriodExpired = hideExpiredPeriods;
          for (var y = 0; y < data.ac_pricetable[k].ac_seasons[1].ac_periods.length; y++) {
            if (parseInt(data.ac_pricetable[k].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
              isPeriodExpired = 0;
            }
          }
          /* END check if period is actual */

          if (isPeriodExpired == 0) {
            var strPrice = "&nbsp;";
            if (data.ac_pricetable[k].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[j].ac_rate[1].ac_prices != "") {
              strPrice = "<b class='outer'><b class='inner'>" + data.ac_pricetable[k].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[j].ac_rate[1].ac_prices + "</b> &euro;</b>";
            }

            strAusgabe += "<td><span>" + strPrice + "</span></td>";
          }
        }

        strAusgabe += "</tr>";
      }

      strAusgabe += "</tbody>";
    }

    return strAusgabe;
  }
  /* END pricetable 2 version 5 table_rooms */

  /* responsive table */
  function ac_preisliste_get_responsive_table_items(data, sprache, hideExpiredPeriods, dtCurrent, dummy) {
    var strAusgabe = "";
    var strNavigation = "";
    var strRoomCode = "";
    var strRoomName = "";
    var strRoomDescription = "";
    var strRoomId = "";
    var objRooms = data.ac_pricetable[0].ac_seasons[2].ac_rooms;

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      },
      'allperiods': {
        'de': 'Alle Zeiträume',
        'it': 'Tutti i periodi',
        'en': 'All periods',
        'fr': '',
        'nl': ''
      },
      'dummytext': {
        'de': 'inkl. Meran Card',
        'it': 'incl. Meran Card',
        'en': 'incl. Meran Card',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);
    var allPeriods = eval('ac_pricetable_labels.allperiods.' + sprache);
    var strDummyText = eval('ac_pricetable_labels.dummytext.' + sprache);

    strNavigation += "<div class='responsive_table_navigation_wrapper ac_clearfix'>" +
      "   <div class='responsive_table_navigation_inner_wrapper ac_clearfix'>" +
      "       <select name='responsive_table_navigation' id='responsive_table_navigation' onchange='ac_preisliste_responsiveTablePeriodFilter()'>" +
      "           <option value='period'>" + allPeriods + "</option>";

    for (var i = 0; i < objRooms.length; i++) {
      strRoomCode = (objRooms[i].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();
      strRoomName = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_names[sprache];
      strRoomDescription = objRooms[i].ac_roomtypes[0].ac_roomtypecode[1].ac_roomtypes_description[sprache];
      strRoomId = objRooms[i].ac_roomtypes[0].ac_roomtypecode[2].ac_roomtypes_info[0].ac_page_id;

      if (strRoomDescription != "") {
        strRoomDescription = "<br><i>" + strRoomDescription + "</i>";
      }

      /* check if room has one price min. */
      var emptyRoom = 0;
      for (var o = 0; o < data.ac_pricetable.length; o++) {
        for (var p = 0; p < data.ac_pricetable[o].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates.length; p++) {
          if (data.ac_pricetable[o].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[p].ac_rate[1].ac_prices != '') {
            emptyRoom = 1;
          }
        }
      }
      /* END check if room has one price min. */

      if (emptyRoom == 1) {
        strAusgabe += "<table class='responsive_table_item' id='responsive_table_item_" + strRoomCode + "' data-roomtypecode='" + strRoomCode + "'>" +
          "   <thead>" +
          "   <tr>" +
          "       <th><b>" + strRoomName + "</b>" + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></th>" +
          "   </tr>" +
          "   </thead>" +
          "   <tbody>";



        //"       <th colspan='2'><b>" + strRoomName + "</b>" + strRoomDescription + "<br><a href='javascript:;' title='" + strDetails + "' onclick='ac_preisliste_roomDetails(\"" + strRoomCode + "\", \"" + strRoomId + "\", \"" + sprache + "\")' data-roomtypecode='" + strRoomCode + "'>" + strDetails + "</a></th>" +

        for (var j = 0; j < data.ac_pricetable.length; j++) {
          /* check if period is actual */
          var isPeriodExpired = hideExpiredPeriods;
          for (var y = 0; y < data.ac_pricetable[j].ac_seasons[1].ac_periods.length; y++) {
            if (parseInt(data.ac_pricetable[j].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
              isPeriodExpired = 0;
            }
          }
          /* END check if period is actual */

          if (isPeriodExpired == 0) {
            var strClass = "";
            var strClassItems = "";
            for (var m = 0; m < data.ac_pricetable[j].ac_seasons[1].ac_periods.length; m++) {
              strClassItems += " period_" + j.toString() + m.toString();
            }

            /* check id period has one price min. */
            var emptyPeriod = 0;
            for (var n = 0; n < data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates.length; n++) {
              if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[n].ac_rate[1].ac_prices != '') {
                emptyPeriod = 1;
              }
            }
            /* END check id period has one price min. */

            if (emptyPeriod == 1) {
              strAusgabe += "<tbody class='period" + strClassItems + "'>" +
                "<tr>" +
                "   <td>";
              //"   <td colspan='2'>";

              var dtStart = "";
              var dtEnde = "";
              var strSeason = "";
              var dtDaten = "";

              for (var k = 0; k < data.ac_pricetable[j].ac_seasons[1].ac_periods.length; k++) {
                dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_start_date);
                dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_end_date);

                var prevItem = 0;
                if (k > 0) {
                  prevItem = k - 1;
                  if (parseInt(data.ac_pricetable[j].ac_seasons[1].ac_periods[prevItem].ac_end_date) * 1000 >= dtCurrent || hideExpiredPeriods == 0) {
                    dtDaten += "<br>";
                  }
                }

                if (sprache == "de" && data.ac_pricetable[j].ac_seasons[0].ac_names[k].de != "") {
                  strSeason = data.ac_pricetable[j].ac_seasons[0].ac_names[k].de + "<br>";
                  if (k > 0 && (data.ac_pricetable[j].ac_seasons[0].ac_names[k].de == data.ac_pricetable[j].ac_seasons[0].ac_names[prevItem].de)) {
                    strSeason = "";
                  }
                } else if (sprache == "it" && data.ac_pricetable[j].ac_seasons[0].ac_names[k].it != "") {
                  strSeason = data.ac_pricetable[j].ac_seasons[0].ac_names[k].it + "<br>";
                  if (k > 0 && (data.ac_pricetable[j].ac_seasons[0].ac_names[k].it == data.ac_pricetable[j].ac_seasons[0].ac_names[prevItem].it)) {
                    strSeason = "";
                  }
                } else if (sprache == "en" && data.ac_pricetable[j].ac_seasons[0].ac_names[k].en != "") {
                  strSeason = data.ac_pricetable[j].ac_seasons[0].ac_names[k].en + "<br>";
                  if (k > 0 && (data.ac_pricetable[j].ac_seasons[0].ac_names[k].en == data.ac_pricetable[j].ac_seasons[0].ac_names[prevItem].en)) {
                    strSeason = "";
                  }
                }

                if ((parseInt(data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_end_date) * 1000 >= dtCurrent) || hideExpiredPeriods == 0) {
                  dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
                  if (i == 0) {
                    strNavigation += "<option value='period_" + j.toString() + k.toString() + "'>" + dtStart + " - " + dtEnde + "</option>";
                  }

                  if (data.ac_pricetable[j].ac_seasons[1].ac_periods[k].ac_dummy_1 == 1) {
                    dtDaten += "<br><a href='" + dummy + "' target='_blank'>" + strDummyText + "</a>";
                  }
                }
              }

              strAusgabe += dtDaten + "</td>" +
                "</tr>";

              for (var l = 0; l < data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates.length; l++) {
                if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != "") {
                  strAusgabe += "<tr class='" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name['db'] + "'>";

                  var strColspan = "";
                  if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] != '') {
                    //strAusgabe += "<td><span>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] + "</span></td>";
                  } else {
                    //strColspan = " colspan='2'";
                  }

                  strAusgabe += "<td " + strColspan + "><span><b class='outer'><b class='inner'>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[i].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b></span></td>" +
                    "</tr>";
                }
              }

              strAusgabe += "</tbody>";
            }
          }
        }

        strAusgabe += "</table>";
      }
    }

    strNavigation += "</select>" +
      "   </div>" +
      "</div>";

    return strNavigation + strAusgabe;
  }
  /* END responsive table */

  /* make pricetable 2 */
  (function($) {
    $.fn.make_pricelist_2 = function(responsive) {
      var strElement = this;
      var sprache = $('html').attr('lang');
      var dummy = $(strElement).attr('data-dummy'); //.toUpperCase();
      var strTable = "";
      var placeholder = "";
      var inquireUrl = $(strElement).attr('data-inquire');

      var ac_pricetable_labels = {
        'placeholder': {
          'de': 'Preise für die nächste Saison folgen in Kürze.<br> Bitte besuchen Sie uns zu einem späteren Zeitpunkt noch einmal oder stellen Sie eine <a href="' + inquireUrl + '" target="_blank">unverbindliche Anfrage</a>.',
          'it': 'I prezzi per la prossima stagione seguiranno a breve.<br> Si prega di visitare di nuovo in seguito o di fare una <a href="' + inquireUrl + '" target="_blank">richiesta non vincolante</a>.',
          'en': 'Prices for next season will follow shortly.<br> Please visit us at a later time again or make a <a href="' + inquireUrl + '" target="_blank">non-binding request</a>.',
          'fr': '',
          'nl': ''
        }
      };

      var placeholder = eval('ac_pricetable_labels.placeholder.' + sprache);

      $.getJSON('/typo3conf/ext/ac_preisliste/Resources/Public/preistabelle/cache/rooms.json', function(data) {
        /* check if period is actual */
        var dtCurrent = (new Date()).getTime();
        // isPeriodExpired: 1 = enabled, 0 = disabled
        var hideExpiredPeriods = 0;
        var isPeriodExpired = hideExpiredPeriods;
        for (var x = 0; x < data.ac_pricetable.length; x++) {
          for (var y = 0; y < data.ac_pricetable[x].ac_seasons[1].ac_periods.length; y++) {
            if (parseInt(data.ac_pricetable[x].ac_seasons[1].ac_periods[y].ac_end_date) * 1000 >= dtCurrent) {
              isPeriodExpired = 0;
            }
          }
        }
        /* END check if period is actual */

        if (isPeriodExpired == 0) {
          if (responsive == true) {
            strTable += "<div class='responsive_table_wrapper ac_clearfix'>" +
              "   <div class='responsive_table ac_clearfix'>" + ac_preisliste_get_responsive_table_items(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</div>" +
              "</div>";
          } else {
            var pricetableTemplate = data.ac_pricetable_settings.ac_template_pricetable;
            if (pricetableTemplate == 1) {
              strTable += "<table class='th_room_duration'><thead>" + ac_preisliste_get_th_room_duration(data, sprache) + "</thead><tbody>" + ac_preisliste_get_td_seasons_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</tbody></table>";
            } else if (pricetableTemplate == 2) {
              strTable += "<table class='th_room'><thead>" + ac_preisliste_get_th_room(data, sprache) + "</thead><tbody>" + ac_preisliste_get_td_seasons_prices(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</tbody></table>";
            } else if (pricetableTemplate == 3) {
              strTable += "<table class='th_season_duration'><thead>" + ac_preisliste_get_th_seasons_duration(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</thead><tbody>" + ac_preisliste_get_td_rooms_duration_prices(data, sprache, hideExpiredPeriods, dtCurrent) + "</tbody></table>";
            } else if (pricetableTemplate == 4) {
              strTable += "<table class='th_season'><thead>" + ac_preisliste_get_th_seasons(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</thead><tbody>" + ac_preisliste_get_td_rooms_prices(data, sprache, hideExpiredPeriods, dtCurrent) + "</tbody></table>";
            } else if (pricetableTemplate == 5) {
              strTable += "<table class='table_rooms'><thead>" + ac_preisliste_get_th_seasons_rooms(data, sprache, hideExpiredPeriods, dtCurrent, dummy) + "</thead>" + ac_preisliste_get_td_rooms(data, sprache, hideExpiredPeriods, dtCurrent) + "</table>";
            }
          }

          $(strElement).append(strTable);
        } else {
          // Formatierung ist noch anzupassen !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
          $(strElement).append("<p style='padding: 20px 15px;'>" + placeholder + "</p>");
        }
      });
    }
  })(jQuery);
  /* END make pricetable 2 */
  /* END pricetable 2 */

  /* pricetable living 2 */
  /* pricetable living 2 version 1 th_label */
  function ac_preisliste_get_th_label(data, sprache) {
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'prices': {
        'de': 'Preise',
        'it': 'Prezzi',
        'en': 'Prices',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strPrice = eval('ac_pricetable_labels.prices.' + sprache);

    strAusgabe += "<tr><th>" + strPeriod + "</th><th>" + strPrice + "</th></tr>";

    return strAusgabe;
  }

  function ac_preisliste_get_td_seasons_prices_living(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";
    var currentSetting = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      strAusgabe += "<tr>";

      strAusgabe += "<td>";
      for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
        dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
        dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

        var prevItem = 0;
        if (k > 0) {
          prevItem = k - 1;
          strAusgabe += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }
      strAusgabe += "</td>";

      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
        strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

        strAusgabe += "<td>";

        var ratesLength = 0;
        for (var m = 0; m < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; m++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[m].ac_rate[1].ac_prices != '' && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[m].ac_rate[1].ac_prices != 0) {
            ratesLength++;
          }
        }

        for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != '' && data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices != 0) {
            var strRateName = "";
            if (ratesLength > 1) {
              strRateName = data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[0].ac_name[sprache] + " ";
            }

            strAusgabe += "<span class='outer'><span class='inner'>" + strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b></span></span>";
          }
        }

        strAusgabe += "</td>";
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 2 version 1 th_label */

  /* pricetable living 2 version 2 th_season_duration */
  function ac_preisliste_get_th_seasons_duration_living(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var seasonName = "";
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
        dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
        dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

        var prevItem = 0;
        if (j > 0) {
          prevItem = j - 1;
          dtDaten += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }

      strAusgabe += "<th>" + dtDaten + "</th>";
      dtDaten = "";
    }

    return "<tr><th>" + strDuration + "</th>" + strAusgabe + "</tr>";
  }

  function ac_preisliste_get_td_duration_prices(data, sprache) {
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; i++) {
      strAusgabe += "<tr>";

      strAusgabe += "<td>" + data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[0].ac_name[sprache] + "</td>";

      for (var j = 0; j < data.ac_pricetable.length; j++) {
        var strPrice = "&nbsp;";
        if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices != "") {
          strPrice = "<b class='outer'><b class='inner'>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices + "</b> &euro;</b>";
        }
        strAusgabe += "<td><span>" + strPrice + "</span></td>";
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 2 version 2 th_season_duration */

  /* pricetable living 2 version 3 th_duration */
  function ac_preisliste_get_th_duration(data, sprache) {
    var strAusgabe = "";

    var ac_pricetable_labels = {
      'period': {
        'de': 'Zeitraum',
        'it': 'Periodo',
        'en': 'Period',
        'fr': '',
        'nl': ''
      },
      'roomtype': {
        'de': 'Zimmertyp',
        'it': 'Tipo di camera',
        'en': 'Roomtype',
        'fr': '',
        'nl': ''
      },
      'room': {
        'de': 'Zimmer',
        'it': 'Camera',
        'en': 'Room',
        'fr': '',
        'nl': ''
      },
      'details': {
        'de': 'Details',
        'it': 'Dettagli',
        'en': 'Details',
        'fr': '',
        'nl': ''
      },
      'nights': {
        'de': 'Nächte',
        'it': 'notti',
        'en': 'nights',
        'fr': '',
        'nl': ''
      },
      'duration': {
        'de': 'Dauer',
        'it': 'Durata',
        'en': 'Duration',
        'fr': '',
        'nl': ''
      }
    };

    var strPeriod = eval('ac_pricetable_labels.period.' + sprache);
    var strRoomtype = eval('ac_pricetable_labels.roomtype.' + sprache);
    var strRoom = eval('ac_pricetable_labels.room.' + sprache);
    var strDetails = eval('ac_pricetable_labels.details.' + sprache);
    var strNights = eval('ac_pricetable_labels.nights.' + sprache);
    var strDuration = eval('ac_pricetable_labels.duration.' + sprache);

    strAusgabe += "<tr>";

    strAusgabe += "<th>" + strPeriod + "</th>";

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; i++) {
      strAusgabe += "<th>" + data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[0].ac_name[sprache] + "</th>";
    }

    strAusgabe += "</tr>";

    return strAusgabe;
  }

  function ac_preisliste_get_td_seasons_duration(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var strSeason = "";
    var strAusgabe = "";
    var strRoomCode = "";
    var strDauer = "";
    var currentSetting = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      strAusgabe += "<tr>";

      strAusgabe += "<td>";
      for (var k = 0; k < data.ac_pricetable[i].ac_seasons[0].ac_names.length; k++) {
        dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_start_date);
        dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[k].ac_end_date);

        var prevItem = 0;
        if (k > 0) {
          prevItem = k - 1;
          strAusgabe += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].de + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].it + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[k].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[k].en + "<br>";
          if (k > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[k].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        strAusgabe += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }
      strAusgabe += "</td>";

      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[2].ac_rooms.length; j++) {
        strRoomCode = (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[0].ac_roomtypecode[0]).toUpperCase();

        for (var l = 0; l < data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates.length; l++) {
          strAusgabe += "<td><span>";
          if (data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices) {
            strAusgabe += "<b class='outer'><b class='inner'>" + data.ac_pricetable[i].ac_seasons[2].ac_rooms[j].ac_roomtypes[1].ac_rates[l].ac_rate[1].ac_prices + "</b> &euro;</b>";
          }
          strAusgabe += "</span></td>";
        }
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 2 version 3 th_duration */

  /* pricetable living 2 version 4 th_season */
  function ac_preisliste_get_th_seasons_living(data, sprache) {
    var dtStart = "";
    var dtEnde = "";
    var dtDaten = "";
    var seasonName = "";
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable.length; i++) {
      for (var j = 0; j < data.ac_pricetable[i].ac_seasons[1].ac_periods.length; j++) {
        dtStart = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_start_date);
        dtEnde = ac_preisliste_convert_timestamp(data.ac_pricetable[i].ac_seasons[1].ac_periods[j].ac_end_date);

        var prevItem = 0;
        if (j > 0) {
          prevItem = j - 1;
          dtDaten += "<br>";
        }

        if (sprache == "de" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].de != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].de + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].de == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].de)) {
            strSeason = "";
          }
        } else if (sprache == "it" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].it != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].it + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].it == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].it)) {
            strSeason = "";
          }
        } else if (sprache == "en" && data.ac_pricetable[i].ac_seasons[0].ac_names[j].en != "") {
          strSeason = data.ac_pricetable[i].ac_seasons[0].ac_names[j].en + "<br>";
          if (j > 0 && (data.ac_pricetable[i].ac_seasons[0].ac_names[j].en == data.ac_pricetable[i].ac_seasons[0].ac_names[prevItem].en)) {
            strSeason = "";
          }
        } else {
          strSeason = "";
        }

        dtDaten += strSeason + "<b>" + dtStart + " - " + dtEnde + "</b>";
      }

      strAusgabe += "<th>" + dtDaten + "</th>";
      dtDaten = "";
    }

    return "<tr>" + strAusgabe + "</tr>";
  }

  function ac_preisliste_get_td_prices(data, sprache) {
    var strAusgabe = "";

    for (var i = 0; i < data.ac_pricetable[0].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length; i++) {
      strAusgabe += "<tr>";

      for (var j = 0; j < data.ac_pricetable.length; j++) {
        var strRateName = "";
        if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates.length > 1) {
          strRateName = data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[0].ac_name[sprache] + " ";
        }

        var strPrice = "&nbsp;";
        if (data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices != "") {
          strPrice = strRateName + "<b class='outer'><b class='inner'>" + data.ac_pricetable[j].ac_seasons[2].ac_rooms[0].ac_roomtypes[1].ac_rates[i].ac_rate[1].ac_prices + "</b> &euro;</b>";
        }

        strAusgabe += "<td><span class='outer'><span class='inner'>" + strPrice + "</span></span></td>";
      }

      strAusgabe += "</tr>";
    }

    return strAusgabe;
  }
  /* END pricetable living 2 version 4 th_season */

  /* make pricetable living 2 */
  (function($) {
    $.fn.make_pricelist_living_2 = function() {
      var strElement = this;
      var sprache = $('html').attr('lang');
      var strRoomcode = $(strElement).attr('data-roomcode');
      var strTable = "";

      $.getJSON('/typo3conf/ext/ac_preisliste/Resources/Public/preistabelle/cache/room_' + strRoomcode + '.json', function(data) {
        var pricetableTemplate = data.ac_pricetable_settings.ac_template_pricetable_living;

        if (pricetableTemplate == 1) {
          strTable += "<table class='th_label d'><thead>" + ac_preisliste_get_th_label(data, sprache) + "</thead><tbody>" + ac_preisliste_get_td_seasons_prices_living(data, sprache) + "</tbody></table>";
        } else if (pricetableTemplate == 2) {
          strTable += "<table class='th_season_duration'><thead>" + ac_preisliste_get_th_seasons_duration_living(data, sprache) + "</thead><tbody>" + ac_preisliste_get_td_duration_prices(data, sprache) + "</tbody></table>";
        } else if (pricetableTemplate == 3) {
          strTable += "<table class='th_duration'><thead>" + ac_preisliste_get_th_duration(data, sprache) + "</thead><tbody>" + ac_preisliste_get_td_seasons_duration(data, sprache) + "</tbody></table>";
        } else if (pricetableTemplate == 4) {
          strTable += "<table class='th_season'><thead>" + ac_preisliste_get_th_seasons_living(data, sprache) + "</thead><tbody>" + ac_preisliste_get_td_prices(data, sprache) + "</tbody></table>";
        }

        $(strElement).append(strTable);
      });
    }
  })(jQuery);
  /* END make pricetable living 2 */
  /* END pricetable living 2 */
});

/* responsive table period filter */
function ac_preisliste_responsiveTablePeriodFilter() {
  var strVal = $('#responsive_table_navigation').val();
  var strClass = "." + strVal;
  $('table.responsive_table_item').each(function() {
    if ($('tbody.period', this).length <= 1 && !$('tbody.period', this).hasClass(strVal)) {
      $(this).hide();
    } else {
      $(this).show();
    }
    $('tbody.period', this).hide();
    $('tbody' + strClass, this).show();
  });
}
/* END responsive table period filter */

/* room detail */
function ac_preisliste_roomDetails(roomTypeCode, pageID, sprache) {
  var l = 0;
  if (sprache == "it")
    l = 1;
  else if (sprache == "en")
    l = 2

  if (pageID == '') {
    pageID = 31;
  }

  $.get('index.php?id=' + pageID + '&L=' + l + '&ADMCMD_cooluri=1', function(data) {
    if (data) {
      var content = $('<div/>').append(data);
      if (content.find('.room_data').length > 0) {
        var roomData = content.find('.room_data');
        $.each(roomData, function(index, room) {
          string_a = roomTypeCode;
          string_b = $(this).attr('data-room-roomtypecode');

          var match = string_a.localeCompare(string_b);

          if (match === 0) {
            var mRoom = $(roomData[index]).clone();

            var roomTitle = $(mRoom).attr('data-room-title');
            var roomSubtitle = $(mRoom).attr('data-room-subtitle');

            var roomTextWrapper = $(mRoom).attr('data-room-text');
            var roomText = "";
            if (content.find(roomTextWrapper).length > 0) {
              roomText = content.find(roomTextWrapper).html();
            }

            var roomImgWrapper = $(mRoom).attr('data-room-img');
            var roomImg = "";
            if (content.find(roomImgWrapper).length > 0) {
              roomImg = content.find(roomImgWrapper).html();
            }

            //roomImg = roomImg.split(',');

            var roomInquireURL = $(mRoom).attr('data-room-inquire') + '?ac_roomtypecode=' + roomTypeCode;
            var roomBookingURL = $(mRoom).attr('data-room-booking');

            var slideshow = '';
            var countImg = 0;

            /*
            $(roomImg).each(function (eimg) {
                if(roomImg[eimg] != ''){
                    slideshow += '<!--pass ' + eimg + '-->' +
                        '<div class="room_popup_slideshow_slide ac_clearfix">' +
                        '   <span class="room_popup_slideshow_img_fallback" style="background-image: url(\'' + roomImg[eimg] + '\')"></span>' +
                        '   <img src="' + roomImg[eimg] + '" alt="' + roomTitle + '">' +
                        '</div>';
                    countImg ++;
                }
            });
            */

            var ac_pricetable_labels = {
              'inquire': {
                'de': 'Anfragen',
                'it': 'richiedere',
                'en': 'inquire',
                'fr': 'demander',
                'nl': ''
              },
              'book': {
                'de': 'Buchen',
                'it': 'prenotare',
                'en': 'book',
                'fr': 'réserver',
                'nl': ''
              }
            };

            var strInquire = eval('ac_pricetable_labels.inquire.' + sprache);
            var strBook = eval('ac_pricetable_labels.book.' + sprache);

            var pager = '';
            if (countImg > 1) {
              pager = '<div class="room_popup_slideshow_pager ac_clearfix">' +
                '   <div id="room_popup_slideshow_prev_' + index + '" class="room_popup_slideshow_prev ac_clearfix"></div>' +
                '   <div id="room_popup_slideshow_next_' + index + '" class="room_popup_slideshow_next ac_clearfix"></div>' +
                '</div>';
            }

            var room = '<div class="room_popup ac_clearfix" id="room_popup_' + index + '" data-roomtypecode="' + roomTypeCode + '">' +
              '   <div class="room_popup_img_wrapper ac_clearfix">' +
              '       <div class="room_popup_slideshow_wrapper ac_clearfix">' +
              '           <div class="room_popup_slideshow room_popup_slideshow_' + index + ' ac_clearfix" data-cycle-timeout="0" data-cycle-log="false" data-cycle-swipe=true data-cycle-prev="#room_popup_slideshow_prev_' + index + '" data-cycle-next="#room_popup_slideshow_next_' + index + '" data-cycle-slides="> div, > a, > img">' + roomImg + '</div>' +
              '       </div>' +
              '       ' + pager +
              '   </div>' +
              '   <div class="room_popup_content_wrapper ac_clearfix">' +
              '       <div class="room_popup_content ac_clearfix">' +
              '           <div class="room_popup_header ac_clearfix">' +
              '               <div class="room_popup_title ac_clearfix">' + roomTitle + '</div>' +
              '               <div class="room_popup_subtitle ac_clearfix">' + roomSubtitle + '</div>' +
              '           </div>' +
              '           <div class="room_popup_text ac_clearfix">' + roomText + '</div>' +
              '			<div class="room_popup_button_wrapper ac_clearfix">' +
              '			    <div class="room_popup_button ac_clearfix">' +
              '				    <ul>' +
              '					    <li><a href="' + roomInquireURL + '">' + strInquire + '</a></li>' +
              '					    <li><a href="' + roomBookingURL + '" target="_blank">' + strBook + '</a></li>' +
              '				    </ul>' +
              '			    </div>' +
              '			</div>' +
              '       </div>' +
              '   </div>' +
              '</div>';

            /* +
                '   <div class="room_popup_img_wrapper ac_clearfix">' +
                '       <div class="room_popup_slideshow_wrapper ac_clearfix">' +
                '           <div class="room_popup_slideshow room_popup_slideshow_' + index + ' ac_clearfix" data-cycle-timeout="0" data-cycle-log="false" data-cycle-swipe=true data-cycle-prev="#room_popup_slideshow_prev_' + index + '" data-cycle-next="#room_popup_slideshow_next_' + index + '" data-cycle-slides="> div, > a, > img">' + slideshow + '</div>' +
                '       </div>' +
                '       ' + pager +
                '   </div>' +
                '</div>';*/

            if ($('.modal_' + string_b).length < 1) {

              var mM = $('#myModal').clone();
              mM.addClass('modal_' + string_b);
              mM.insertAfter($('#myModal'));
              mM.removeAttr('id');
              $('.modal_' + string_b + ' .modal-body').append(room);

              $(this).find('.cycle-slideshow').cycle();
            }

            $('.modal_' + string_b).modal('show');

            $('.room_popup_slideshow_' + index).cycle();

          }
        });
      }
    }
  });
}
/* END room detail */

$(document).ready(function () {
    /* convert timestamp */
    function ac_angebote_convert_timestamp(timestamp) {
        var dtDate = new Date(timestamp * 1000);
        var strDay = "0" + dtDate.getDate();
        var strMonth = "0" + (dtDate.getMonth() + 1);
        var strYear = dtDate.getFullYear().toString();
        dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + "." + strYear;//.slice(-2);
        return dtDate;
    }

    function ac_angebote_convert_timestamp_trim(timestamp) {
        var dtDate = new Date(timestamp * 1000);
        var strDay = "0" + dtDate.getDate();
        var strMonth = "0" + (dtDate.getMonth() + 1);
        dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + ".";
        return dtDate;
    }

    /* convert timestamp */

    /* offer */
    function showOfferDetail(offerID) {
        $('main > *').hide();
        $('main > section.offer#offer' + offerID).show();
        scrollDown($('main > section.offer#offer' + offerID).offset().top - $('.top-bar').height());
        history.pushState({offer_overview: "offer_detail"}, 'offer_detail');
    }

    function hideOfferDetail() {
        $('main > *').show();
        $('main > section.offer').hide();
        scrollDown($('main > .offer_overview_outer_wrapper').offset().top - $('.top-bar').height() - 20);
    }

    /* offer overview & detail */
    /* make offer */
    (function ($) {
        $.fn.make_offer = function () {
            var strElement = this;
            var sprache = $('html').attr('lang');
            var offerID = $(strElement).attr('data-offer-pid');
            var offerCategory = $(strElement).attr('data-category');
            offerCategory = offerCategory.split(',');
            var strOffers = "";
            var strOffersDetail = "";
            var countItems = 0;

            var ac_pricetable_labels = {
                'from': {
                    'de': 'ab',
                    'it': 'da',
                    'en': 'from',
                    'fr': 'de',
                    'nl': ''
                },
                'von': {
                    'de': 'von',
                    'it': 'da',
                    'en': 'from',
                    'fr': 'de',
                    'nl': ''
                },
                'bis': {
                    'de': 'bis',
                    'it': 'a',
                    'en': 'to',
                    'fr': '',
                    'nl': ''
                },
                'go_to_offer': {
                    'de': 'zum Angebot',
                    'it': 'all\'offerta',
                    'en': 'to the offer',
                    'fr': 'À l‘offre',
                    'nl': ''
                },
                'back_to_overview': {
                    'de': 'zurück zur Übersicht',
                    'it': 'indietro',
                    'en': 'back to overview',
                    'fr': 'Retour à l\'aperçu',
                    'nl': ''
                },
                'prices': {
                    'de': 'Preise',
                    'it': 'prezzi',
                    'en': 'prices',
                    'fr': 'Prix',
                    'nl': ''
                },
                'inquire': {
                    'de': 'Anfragen',
                    'it': 'richiedere',
                    'en': 'inquire',
                    'fr': 'demander',
                    'nl': ''
                },
                'inquire_now': {
                    'de': 'Jetzt <b>Angebot anfragen</b>',
                    'it': 'richiedere',
                    'en': 'inquire',
                    'fr': 'demander',
                    'nl': ''
                },
                'book': {
                    'de': 'Buchen',
                    'it': 'prenotare',
                    'en': 'book',
                    'fr': 'réserver',
                    'nl': ''
                },
                'offer': {
                    'de': 'Angebot',
                    'it': 'offerta',
                    'en': 'offer',
                    'fr': 'offre',
                    'nl': ''
                },
                'details': {
                    'de': 'Details',
                    'it': 'dettagli',
                    'en': 'details',
                    'fr': 'Détails',
                    'nl': ''
                },
                'valid_period': {
                    'de': 'Gültiger Zeitraum',
                    'it': 'Periodo valido',
                    'en': 'Valid period',
                    'fr': 'Détails',
                    'nl': ''
                },
                'placeholder':{
                    'de':'Im Moment sind keine Angebote verfügbar.',
                    'it':'Al momento, non ci sono offerte disponibili.',
                    'en':'At the moment there are no offers available.'
                }
            }

            $.getJSON('/typo3conf/ext/ac_angebote/Resources/Public/angebote/cache/offers.json', function (data) {

                for (var i = 0; i < data.ac_offers.length; i++) {
                    var dtCurrent = "";
                    var dtTomorrow = "";
                    var dtStartTrim = "";
                    var dtStartOrg = "";
                    var dtEndeOrg = "";
                    var dtOnlineStartOrg = "";
                    var dtOnlineEndeOrg = "";
                    var dtStart = "";
                    var dtEnde = "";
                    var strCode = "";
                    var strHeader = "";
                    var strTitleOrg = "";
                    var strTitle = "";
                    var strSubtitle = "";
                    var strZusatz = "";
                    var strZusatzBlock2 = "";
                    var strText = "";
                    var strTextTrim = "";
                    var strBackgroundImage = "";
                    var strImage = "";
                    var priceFrom = "";
                    var dummyText = "";
                    var dummy1 = "";
                    var dummy2 = "";
                    var dummy3 = "";
                    var strOffer = "";
                    var enquiryUrl = "";
                    var bookingUrl = "";
                    var specialText = "";

                    dtCurrent = new Date();
                    dtCurrent = dtCurrent.getTime();

                    dtTomorrow = new Date();
                    dtTomorrow = dtTomorrow.getTime() - (24 * 60 * 60 * 1000);

                    dtStartOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_start_date;
                    dtEndeOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_end_date;

                    dtOnlineStartOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_start_online_date;
                    dtOnlineEndeOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_end_online_date;

                    dtStartTrim = ac_angebote_convert_timestamp_trim(dtStartOrg);
                    dtStart = ac_angebote_convert_timestamp(dtStartOrg);
                    dtEnde = ac_angebote_convert_timestamp(dtEndeOrg);

                    strCode = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_code;

                    dummy1 = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_dummy_1;
                    dummy2 = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_dummy_2;
                    dummy3 = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_dummy_3;

                    if (sprache == 'en') {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].en;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].en;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].en;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].en;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].en;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].en;
                        specialText =data.ac_offers[i].ac_offer[1].ac_infos[0].ac_textfields.en;
                    } else if (sprache == 'it') {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].it;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].it;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].it;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].it;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].it;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].it;
                        specialText =data.ac_offers[i].ac_offer[1].ac_infos[0].ac_textfields.it;
                    } else if (sprache == 'fr') {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].fr;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].fr;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].fr;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].fr;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].fr;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].fr;
                    } else {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].de;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].de;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].de;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].de;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].de;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].de;
                        specialText = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_textfields.de;
                    }

                    if(dummyText != ''){
                        strZusatzBlock2 = "<b>" + dummyText + "</b><br>";
                    }

                    if(dummy3 != ''){
                        strZusatzBlock2 += "<span>" + priceFrom + " " + dummy3 + "</span><br>";
                    }

                    var msie = window.navigator.userAgent.indexOf("MSIE");

                    if (data.ac_offers[i].ac_offer[1].ac_infos[0].ac_bild != '') {
                        if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)){
                            strBackgroundImage = 'typo3conf/ext/ac_angebote/Resources/Public/angebote/uploads/' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_bild;
                        }
                        strImage = 'typo3conf/ext/ac_angebote/Resources/Public/angebote/uploads/' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_bild;
                    }

                    if(strBackgroundImage != ''){
                        strBackgroundImage = '<div class="offer_image_fallback ac_clearfix" style="background-image: url(' + strBackgroundImage + ')"></div>';
                    }
                    strImage = '<img src="' + strImage + '" alt="' + strTitle + '" title="' + strTitle + '">';

                    strTitleOrg = strTitle;

                    strTitle = '<div class="offer_overview_title ac_clearfix">' + strTitle + '</div>';

                    strHeader = '<div class="offer_overview_header ac_clearfix">' + strTitle +
                        '   <div class="offer_overview_date ac_clearfix">' + dtStart + ' - ' + dtEnde + '</div>' +
                        '</div>';

                    if (data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice != '') {
                        priceFrom = priceFrom;
                    }

                    strTextTrim = strText;

                    if(strTextTrim.length > 200){
                        strTextTrim = $.trim(strText.substring(0, 200).split(" ").slice(0, -1).join(" ") + '...');
                    }

                    enquiryUrl = $(strElement).attr('data-url') + '?ac_maxfrom=' + dtStart + '&ac_maxto=' + dtEnde + '&ac_title=' + eval('ac_pricetable_labels.offer.' + sprache) + ': ' + strTitleOrg;
                    bookingUrl = $(strElement).attr('data-book-url') + '?offerId=' + strCode;

                    strOffer = data.ac_offers[i].ac_offer;

                    if (((parseInt(dtOnlineStartOrg) * 1000 <= dtCurrent && parseInt(dtOnlineEndeOrg) * 1000 > dtTomorrow) && strTitleOrg != '') && (offerCategory == '' || offerCategory == 0 || $.inArray(dummy1, offerCategory) >= 0)) {
                        var offerUrl = $(strElement).attr('data-offer-url');
                        var offerDetailUrl = offerUrl + '#offer' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_offer_id;
                        countItems++;

                        strOffers += '<div class="offer_overview_wrapper ac_clearfix" data-offer-id="' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_offer_id + '">' +
                            '   <div class="offer_overview ac_clearfix">' +
                            '       <div class="offer_overview_img_wrapper ac_clearfix">' +
                            '           <div class="offer_overview_img">' +
                            '               ' + strBackgroundImage +
                            '               ' + strImage +
                            '           </div>' +
                            '           ' + strHeader +
                            '       </div>' +
                            '       <div class="offer_overview_content_wrapper ac_clearfix">' +
                            '           <div class="offer_overview_content ac_clearfix">' +
                            '               <div class="offer_overview_description_wrapper ac_clearfix">' +
                            '                   <div class="offer_overview_description ac_clearfix">' + strTextTrim + '</div>' +
                            '               </div>' +
                            '               <div class="offer_overview_price_wrapper ac_clearfix">' +
                            '                   <div class="offer_overview_price ac_clearfix">' +
                            '                       <b>' + strZusatz + '</b><br>' +
                            '                       <span>' + priceFrom + ' ' + dummy2 + '</span><br>' +
                            '                       ' + strZusatzBlock2 + strSubtitle +
                            '                   </div>' +
                            '               </div>' +
                            '               <div class="offer_overview_buttons ac_clearfix">' +
                            '                   <ul>' +
                            '                       <li><a href="javascript:;" class="offer_overview_button offer_detail_button"><span>' + eval('ac_pricetable_labels.details.' + sprache) + '</span></a></li>' +
                            '                   </ul>' +
                            '               </div>' +
                            '           </div>' +
                            '       </div>' +
                            '   </div>' +
                            '</div>';

                        strOffersDetail += '<section class="offer ce_text" id="offer' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_offer_id + '">' +
                            '   <div class="container-fluid max-width">' +
                            '       <div class="row">' +
                            '           <div class="col-sm-12">' +
                            '               <div class="inner-text">' +
                            '                   <div class="text">' +
                            '                       <div class="header">' +
                            '                           <h1 class="h1 container-header">' + strTitleOrg + '</h1>' +
                            '                           <h2 class="h2">' + dtStart + ' - ' + dtEnde + '</h2>' +
                            '                       </div>' +
                            '                       <div class="bodytext">' + strText + '</div>' +
                            '                       <div class="offer_content_wrapper ac_clearfix">' +
                            '                           <div class="offer_content ac_clearfix">' +
                            '                               <div class="offer_image ac_clearfix">' +
                            '                                   ' + strBackgroundImage +
                            '                                   ' + strImage +
                            '                               </div>' +
                            '                               <div class="offer_zusatz_wrapper ac_clearfix">' +
                            '                                   <div class="offer_zusatz ac_clearfix">' +
                            '                                       <b>' + strZusatz + '</b><br>' +
                            '                                       <span>' + priceFrom + ' ' + dummy2 + '</span><br>' +
                            '                                       ' + strZusatzBlock2 + strSubtitle +
                            '                                   </div>' +
                            '                               </div>' +
                            '                               <div class="offer_detail_buttons_wrapper ac_clearfix">' +
                            '                                   <div class="offer_detail_buttons ac_clearfix">' +
                            '                                       <ul>' +
                            '                                           <li><a href="' + enquiryUrl + '"><span>' + eval('ac_pricetable_labels.inquire.' + sprache) + '</span></a></li>' +
                            '                                       </ul>' +
                            '                                       <ul>' +
                            '                                           <li><a href="javascript:;" class="offer_back_to_overview">' + eval('ac_pricetable_labels.back_to_overview.' + sprache) + '</a></li>' +
                            '                                       </ul>' +
                            '                                   </div>' +
                            '                               </div>' +
                            '                               <div class="special_text">' + specialText + '</div>' +
                            '                           </div>' +
                            '                       </div>' +
                            '                   </div>' +
                            '               </div>' +
                            '           </div>' +
                            '       </div>' +
                            '   </div>' +
                            '</section>';

                        /*
                            '                                           <li><a href="' + bookingUrl + '" target="_blank"><span>' + eval('ac_pricetable_labels.book.' + sprache) + '</span></a></li>' +
                        */
                    }
                }

                if (data.ac_offers.length > 0 && strOffers != '') {

                    $(strElement).empty().append(strOffers);
                    $(strOffersDetail).insertBefore($(strElement).closest($('.offer_overview_outer_wrapper')));

                    $(strElement).on('click', '.offer_detail_button', function () {
                        var offerID = $(this).closest($('.offer_overview_wrapper ')).attr('data-offer-id');
                        showOfferDetail(offerID);
                        //location.hash = 'offer' + offerID;
                    });
                    $('main').on('click', '.offer_back_to_overview', function () {
                        hideOfferDetail();
                    });

                    setTimeout(function () {
                        var hash = window.location.hash;
                        if ($(hash) && ($(hash).length > 0)) {
                            if ($(hash).hasClass('offer')) {
                                $('main > *').hide();
                                $('main > section.offer' + hash).show();
                                scrollDown($('main > section.offer' + hash).offset().top - $('.top-bar').height());
                            }
                        }
                    }, 90);

                    window.onpopstate = function (event) {
                        if (JSON.stringify(event.state) == 'null') {
                            hideOfferDetail();
                        }
                    };
                } else {
                    $(strElement).find(".ce-bodytext").html('<p>' + eval('ac_pricetable_labels.placeholder.' + sprache) + '</p>');
                }
            });
        }
    })(jQuery);
    /* END make offer */
    /* END offer overview & detail */

    /* offer preview */
    /* make offer preview */
    (function ($) {
        $.fn.make_offer_preview = function () {
            var strElement = this;
            var sprache = $(strElement).attr('data-lng');
            var offerID = $(strElement).attr('data-offer-pid');
            var strOffersPreview = "";
            var strOffersPreviewLength = 0;

            var ac_pricetable_labels = {
                'from': {
                    'de': 'ab',
                    'it': 'da',
                    'en': 'from',
                    'fr': 'de',
                    'nl': ''
                },
                'go_to_offer': {
                    'de': 'zum Angebot',
                    'it': 'all\'offerta',
                    'en': 'Go to offer',
                    'fr': 'À l‘offre',
                    'nl': ''
                },
                'inquire': {
                    'de': 'Anfragen',
                    'it': 'richiedere',
                    'en': 'inquire',
                    'fr': 'demander',
                    'nl': ''
                },
                'book': {
                    'de': 'Buchen',
                    'it': 'prenotare',
                    'en': 'book',
                    'fr': 'réserver',
                    'nl': ''
                },
                'offer': {
                    'de': 'Angebot',
                    'it': 'offerta',
                    'en': 'offer',
                    'fr': 'offre',
                    'nl': ''
                },
                'details': {
                    'de': 'Details',
                    'it': 'dettagli',
                    'en': 'details',
                    'fr': 'Détails',
                    'nl': ''
                }
            }

            $.getJSON('/typo3conf/ext/ac_angebote/Resources/Public/angebote/cache/offers.json', function (data) {
                for (var i = 0; i < data.ac_offers.length; i++) {
                    var dtCurrent = "";
                    var dtTomorrow = "";
                    var dtStartTrim = "";
                    var dtStartOrg = "";
                    var dtEndeOrg = "";
                    var dtOnlineStartOrg = "";
                    var dtOnlineEndeOrg = "";
                    var dtStart = "";
                    var dtEnde = "";
                    var strCode = "";
                    var strTitle = "";
                    var strZusatz = "";
                    var strText = "";
                    var strImage = "";
                    var priceFrom = "";
                    var dummyText = "";
                    var strOffer = "";
                    var enquiryUrl = "";
                    var bookingUrl = "";
                    var offerUrl = "";
                    var offerDetailUrl = "";

                    dtCurrent = new Date();
                    dtCurrent = dtCurrent.getTime();

                    dtTomorrow = new Date();
                    dtTomorrow = dtTomorrow.getTime() - (24 * 60 * 60 * 1000);

                    dtStartOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_start_date;
                    dtEndeOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_end_date;

                    dtOnlineStartOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_start_online_date;
                    dtOnlineEndeOrg = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_end_online_date;

                    dtStartTrim = ac_angebote_convert_timestamp_trim(dtStartOrg);
                    dtStart = ac_angebote_convert_timestamp(dtStartOrg);
                    dtEnde = ac_angebote_convert_timestamp(dtEndeOrg);

                    strCode = data.ac_offers[i].ac_offer[1].ac_infos[0].ac_code;

                    if (sprache == 'en') {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].en;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].en;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].en;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].en;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].en;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].en;
                    } else if (sprache == 'it') {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].it;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].it;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].it;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].it;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].it;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].it;
                    } else if (sprache == 'fr') {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].fr;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].fr;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].fr;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].fr;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].fr;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].fr;
                    } else {
                        strTitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_title[0].de;
                        strSubtitle = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].de;
                        strText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_description[0].de;
                        strZusatz = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_extra[0].de;
                        priceFrom = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].de;
                        dummyText = data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].de;
                    }

                    if (data.ac_offers[i].ac_offer[0].ac_texts[0].ac_text_fromprice != '') {
                        priceFrom = priceFrom;
                    }

                    if (data.ac_offers[i].ac_offer[1].ac_infos[0].ac_bild != '') {
                        strImage = ' style="background-image: url(\'typo3conf/ext/ac_angebote/Resources/Public/angebote/uploads/' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_bild + '\');"';
                    }

                    enquiryUrl = $(strElement).attr('data-url') + '?ac_maxfrom=' + dtStart + '&ac_maxto=' + dtEnde + '&ac_title=' + eval('ac_pricetable_labels.offer.' + sprache) + ': ' + strTitle;
                    bookingUrl = $(strElement).attr('data-book-url') + '?skd-language-code=' + strCode;

                    offerUrl = $(strElement).attr('data-offer-url');
                    offerDetailUrl = offerUrl + '#offer' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_offer_id;

                    strOffer = data.ac_offers[i].ac_offer;

                    if ((parseInt(dtOnlineStartOrg) * 1000 <= dtCurrent && parseInt(dtOnlineEndeOrg) * 1000 > dtTomorrow) && strTitle != '') {
                        strOffersPreview +=
                            '<div class="offer_overview_wrapper ac_clearfix" data-offer-id="' + data.ac_offers[i].ac_offer[1].ac_infos[0].ac_offer_id + '">' +
                            '  <div class="offer_overview ac_clearfix">' +
                            '    <div class="offer_overview_content_wrapper ac_clearfix">' +
                            '      <div class="offer_overview_content ac_clearfix">' +
                            '         <div class="offer_preview_item_header_wrapper ac_clearfix">' +
                            '            <div class="offer_overview_header ac_clearfix">' +
                            '               <div class="offer_overview_title">' +
                            '                  <a href="' + offerDetailUrl + '" class="offer_detail_button">' + strTitle + '</a>' +
                            '               </div>' +
                            '               <div class="offer_overview_date">' + dtStartTrim + '-' + dtEnde + '</div>' +
                            '             </div>' +
                            '           </div>' +
                            '         <div class="offer_overview_price_wrapper">' +
                            '         <div class="offer_overview_price">' +
                            '            ' + strSubtitle +
                            '            <span><b>' + eval('ac_pricetable_labels.from.' + sprache) + ' &euro; ' + priceFrom + '</b><br>' +
                            '                       ' + strZusatz + '</span>' +
                            '         </div>' +
                            '         <div class="offer_overview_buttons ac_clearfix">' +
                            '             <a href="' + offerDetailUrl + '" class="offer_overview_button">' + eval('ac_pricetable_labels.details.' + sprache) + '</a>' +
                            '         </div>' +
                            '       </div>' +
                            '     </div>' +
                            '   </div>' +
                            '   <div class="offer_overview_img_wrapper ac_clearfix">' +
                            '      <div class="offer_overview_img"' + strImage + '>' +
                            '          <a href="' + offerDetailUrl + '" title="' + strTitle + '">' + strTitle + '</a>' +
                            '      </div>' +
                            '   </div>' +
                            ' </div>' +

                            '</div>';

                        strOffersPreviewLength++;
                    }
                }

                if (data.ac_offers.length > 0 && strOffersPreview != '') {
                    $(strElement).empty().append(strOffersPreview);
                    $(strElement).cycle();
                    if (strOffersPreviewLength == 1) {
                        var pagerPrev = $(strElement).attr("data-cycle-prev");
                        var pagerNext = $(strElement).attr("data-cycle-next");
                        var pager = $(strElement).attr("data-cycle-pager");

                        $(pagerPrev).hide();
                        $(pagerNext).hide();
                        $(pager).hide();
                    }
                    offerResize();
                } else {
                    $(strElement).closest('.offer_preview_wrapper').remove();
                    if ($('.special_button_wrapper').length && $('.special_button_wrapper').attr('data-pid') == offerID) {
                        $('.special_button_wrapper').remove();
                    }
                }
            });
        }
    })(jQuery);
    /* END make offer preview */
    /* END offer preview */
    /* END offer */
});

/* offer resize */
function offerResize() {
    $('.offer_preview_slideshow .offer_overview_wrapper').each(function () {
        if ($(window).width() <= 700 && $('.offer_overview_img', this).length && $('.offer_overview_content_wrapper', this).length) {
            $('.offer_overview_img_wrapper', this).insertBefore($('.offer_overview_content_wrapper', this));
        } else if ($(window).width() > 700 && $('.offer_overview_img', this).length && $('.offer_overview_content_wrapper', this).length) {
            $('.offer_overview_img_wrapper', this).insertAfter($('.offer_overview_content_wrapper', this));
        }
    });
}

/* END offer resize */

$(document).ready(function () {
	/* convert timestamp */
	function ac_lastminute_convert_timestamp(timestamp) {
		var dtDate = new Date(timestamp * 1000);
		var strDay = "0" + dtDate.getDate();
		var strMonth = "0" + (dtDate.getMonth() + 1);
		var strYear = dtDate.getFullYear().toString();
		dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + "." + strYear;//.slice(-2);
		return dtDate;
	}

	function ac_lastminute_convert_timestamp_trim(timestamp) {
		var dtDate = new Date(timestamp * 1000);
		var strDay = "0" + dtDate.getDate();
		var strMonth = "0" + (dtDate.getMonth() + 1);
		dtDate = strDay.slice(-2) + "." + strMonth.slice(-2) + ".";
		return dtDate;
	}
	/* convert timestamp */

	/* get room data */
	function ac_lastminute_get_room_data(roomTypeCode, pageID, sprache) {
		var strAusgabe = "";
        var spracheID = 0;
        if(sprache == 'it'){
            spracheID = 1;
        }else if(sprache == 'en'){
            spracheID = 2;
        }

        $.ajax({
            ajax: 'POST',
            async: false,
            url: 'index.php?id=' + pageID + '&L=' + spracheID + '&ADMCMD_cooluri=1',
            success: function (data) {
                if (data) {
                    var content = $('<div/>').append(data);
                    if (content.find('.room_data').length > 0) {
                        var roomData = content.find('.room_data');
                        $.each(roomData, function (index, room) {
                            string_a = roomTypeCode;
                            string_b = $(this).attr('data-room-roomtypecode');

                            var match = string_a.localeCompare(string_b);

                            if (match === 0) {
                                var mRoom = $(roomData[index]).clone();

                                var roomTitle = $(mRoom).attr('data-room-title');
                                var roomSubtitle = $(mRoom).attr('data-room-subtitle');

                                //var roomText = $(mRoom).attr('data-room-text');
                                var roomTextWrapper = $(mRoom).attr('data-room-text');
                                var roomText = "";
                                if(content.find(roomTextWrapper).length > 0){
                                    roomText = content.find(roomTextWrapper).html();
                                }

                                var roomDescription = '';//$(mRoom).attr('data-room-description');

                                //var roomImg = $(mRoom).attr('data-room-img');
                                //roomImg = roomImg.split(',');
                                var roomImgWrapper = $(mRoom).attr('data-room-img');

                                var roomImg = "";
                                //if(content.find(roomImgWrapper + ' .room_slideshow_slide').length > 0){
                                if(content.find(roomImgWrapper + ' .room_slideshow_slide').first().find('img').length){
                                    //roomImg = content.find(roomImgWrapper).html();
                                    roomImg = content.find(roomImgWrapper + ' .room_slideshow_slide').first().find('img').attr('src');
                                }

                                strAusgabe = {
                                    roomTitle: roomTitle,
                                    roomSubtitle: roomSubtitle,
                                    roomText: roomText,
                                    roomDescription: roomDescription,
                                    roomImg: roomImg
                                }
                            }
                        });
                    }
                }
            }
        });

        return strAusgabe;
    }
	/* END get room data */

	/* last minute */
	function ac_lastminute_calculate_days(dtStartOrg, dtEndeOrg){
		var dayDiff = 0;
		dayDiff = (((dtStartOrg - dtEndeOrg)/60/60)/24) * (-1);
		return dayDiff;
	}

	/* make lastminute offer */
	(function( $ ){
		$.fn.make_lastminute_offer = function(){
			var strElement = this;
            var sprache = $('html').attr('lang');
			var strLastMinuteOffers = "";
			var layout = 0;//$(strElement).attr('data-layout');
            var dtCurrent = dtCurrent = new Date();
            dtCurrent = dtCurrent.getTime();
            var dtTomorrow = new Date();
            dtTomorrow = dtTomorrow.getTime() - (24*60*60*1000);
            var pageID = 7;

			var ac_pricetable_labels = {
                'from':{
                    'de': 'ab',
                    'it': 'da',
                    'en': 'from',
                    'fr': 'de',
                    'nl': ''
                },
                'instead':{
                    'de': 'statt',
                    'it': 'invece di',
                    'en': 'instead of',
                    'fr': '',
                    'nl': ''
                },
                'just':{
                    'de': 'nur',
                    'it': 'solo',
                    'en': 'just',
                    'fr': '',
                    'nl': ''
                },
                'inquire':{
                    'de': 'Anfragen',
                    'it': 'richiedere',
                    'en': 'inquire',
                    'fr': 'demander',
                    'nl': ''
                },
                'book':{
                    'de': 'Buchen',
                    'it': 'prenotare',
                    'en': 'book',
                    'fr': 'réserver',
                    'nl': ''
                },
                'details':{
                    'de': 'Details',
                    'it': 'dettagli',
                    'en': 'details',
                    'fr': 'Détails',
                    'nl': ''
                },
				'day':{
                    'de': 'Tag',
                    'it': 'giorno',
                    'en': 'day',
                    'fr': 'jour',
                    'nl': ''
                },
                'days':{
                    'de': 'Tage',
                    'it': 'giorni',
                    'en': 'days',
                    'fr': 'journées',
                    'nl': ''
                },
                'placeholder':{
                    'de':'Im Moment sind keine Restplätze verfügbar.',
                    'it':'Al momento, non ci sono offerte last minute disponibili.',
                    'en':'At the moment there are no last minute offers available.',
                    'fr': '',
                    'nl': ''
                }
			};

            var strFrom = eval('ac_pricetable_labels.from.' + sprache);
            var strInstead = eval('ac_pricetable_labels.instead.' + sprache);
            var strJust = eval('ac_pricetable_labels.just.' + sprache);
            var strInquire = eval('ac_pricetable_labels.inquire.' + sprache);
            var strBook = eval('ac_pricetable_labels.book.' + sprache);
            var strDetails = eval('ac_pricetable_labels.details.' + sprache);
            var strDay = eval('ac_pricetable_labels.details.' + sprache);
            var strDays = eval('ac_pricetable_labels.details.' + sprache);

			$.getJSON('/typo3conf/ext/ac_lastminute/Resources/Public/lastminute/cache/offers.json', function(data) {
				for (var i = 0; i < data.ac_lastminute.length; i++) {
					var strTitle = "";
					var strTitleRaw = "";
					var strSubtitle = "";
					var strDescription = "";
					var strText = "";
					var strInformation = "";
                    var strBackgroundImage = "";
                    var strImage = "";
                    var strPriceOld = "";
                    var strPriceNew = "";
                    var strDiscount = "";
                    var strDiscountBox = "";
                    var strRoomCode = "";
                    var strEnquiryUrl = "";
                    var strContentLarge = "";

                    /* last minute offer information */
                    var dtStartOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_start_date;
                    var dtEndeOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_end_date;
                    var dtStart = ac_lastminute_convert_timestamp(dtStartOrg);
                    var dtStartTrim = ac_lastminute_convert_timestamp_trim(dtStartOrg);
                    var dtEnde = ac_lastminute_convert_timestamp(dtEndeOrg);
                    var dtEndeTrim = ac_lastminute_convert_timestamp_trim(dtEndeOrg);
                    var dtOnlineStartOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_start_online_date;
                    var dtOnlineEndeOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_end_online_date;
                    var strDayDiff = "";
                    var dayDiff = ac_lastminute_calculate_days(dtStartOrg, dtEndeOrg);
                    if(dayDiff > 1){
                        strDayDiff = eval('ac_pricetable_labels.days.' + sprache);
                    }else{
                        strDayDiff = eval('ac_pricetable_labels.day.' + sprache);
                    }
                    strDayDiff = dayDiff + ' ' + strDayDiff;

                    var lmoImage = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_bild;

                    var lmoCode = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_code;
                    var lmoDummy1 = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_dummy_1;
                    var lmoDummy2 = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_dummy_2;
                    var lmoDummy3 = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_dummy_3;
                    var lmoDummy4 = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_dummy_4;

                    strPriceOld = lmoDummy1;
                    strPriceNew = lmoDummy2;
                    strDiscount = lmoDummy3;
                    strRoomCode = lmoDummy4;
                    /* END last minute offer information */

                    /* room data information */
                    var roomData = ac_lastminute_get_room_data(strRoomCode, pageID, sprache);

                    var roomDataTitle = roomData["roomTitle"];
                    var roomDataSubtitle = roomData["roomSubtitle"];
                    var roomDataText = roomData["roomText"];
                    var roomDataDescription = roomData["roomDescription"];
                    var roomDataImage = roomData["roomImg"];
                    /* END room data information */

                    /* last minute offer fields */
                    var lmoTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].de;
                    var lmoSubtitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].de;
                    var lmoText = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_description[0].de;
                    var lmoExtra = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_extra[0].de;
					//var lmoFromPrice = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].de;
                    var lmoDummySprache = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].de;

                    if(sprache == 'it') {
                        lmoTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].it;
                        lmoSubtitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].it;
                        lmoText = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_description[0].it;
                        lmoExtra = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_extra[0].it;
                        //lmoFromPrice = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].it;
                        lmoDummySprache = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].it;
                    }else if(sprache == 'en') {
                        lmoTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].en;
                        lmoSubtitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].en;
                        lmoText = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_description[0].en;
                        lmoExtra = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_extra[0].en;
                        //lmoFromPrice = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].en;
                        lmoDummySprache = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].en;
                    }else if(sprache == 'fr') {
                        lmoTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].fr;
                        lmoSubtitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].fr;
                        lmoText = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_description[0].fr;
                        lmoExtra = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_extra[0].fr;
                        //lmoFromPrice = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].fr;
                        lmoDummySprache = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].fr;
                    }else if(sprache == 'nl') {
                        lmoTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].nl;
                        lmoSubtitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_subtitle[0].nl;
                        lmoText = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_description[0].nl;
                        lmoExtra = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_extra[0].nl;
                        //lmoFromPrice = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_fromprice[0].nl;
                        lmoDummySprache = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_dummy[0].nl;
                    }
                    /* END last minute offer fields */

                    /* overwrites */
                    if(lmoTitle != ''){
                        strTitle = lmoTitle;
					}else{
                    	strTitle = roomDataTitle;
					}
                    strTitleRaw = strTitle;
                    strTitle = '<div class="last_minute_item_title ac_clearfix"><a href="javascript:;" onclick="ac_lastminute_roomDetails(\'' + strRoomCode + '\', \'' + sprache + '\', 7)">' + strTitle + '</a></div>';

                    if(lmoSubtitle != ''){
                        strSubtitle = lmoSubtitle;
					}else{
                    	strSubtitle = roomDataSubtitle;
					}
                    strSubtitle = '<div class="last_minute_item_subtitle ac_clearfix">' + strSubtitle + '</div>';

                    strDescription = '<div class="last_minute_item_text last_minute_item_description ac_clearfix">' + roomDataDescription + '</div>';

                    if(lmoText != ''){
                        strText = lmoText;
                    }else{
                        strText = roomDataText;
                    }
                    strText = '<div class="last_minute_item_text ac_clearfix">' + strText + '</div>';

                    if(lmoImage != ""){
                        strBackgroundImage = 'typo3conf/ext/ac_lastminute/Resources/Public/lastminute/uploads/' + lmoImage;
                        strImage = 'typo3conf/ext/ac_lastminute/Resources/Public/lastminute/uploads/' + lmoImage;
                    }else{
                        strBackgroundImage = roomDataImage;
                        strImage = roomDataImage;
					}
                    strBackgroundImage = '<div class="last_minute_item_img_fallback ac_clearfix" style="background-image: url(' + strBackgroundImage + ')"></div>';
                    strImage = '<img src="' + strImage + '" alt="' + strTitleRaw + '" title="' + strTitleRaw + '">';

                    // kann noch übergeben werden: Tagesdifferenz, neuer Preis;
                    strEnquiryUrl = $(strElement).attr('data-url') + '?ac_roomtypecode=' + strRoomCode + '&ac_arrival=' + dtStart + '&ac_departure=' + dtEnde + '&ac_maxfrom=' + dtStart + '&ac_maxto=' + dtEnde + '&ac_title=Last minute: ' + strTitleRaw;

                    if(lmoExtra != ''){
                        strInformation += strDayDiff + ' ' + lmoExtra + '<br>';
					}else{
                        strInformation += strDayDiff + '<br>';
					}

                    if(strPriceOld != ''){
                        strInformation += strInstead + ' <span class="stroke">' + strPriceOld + ' &euro;</span><br>';
					}

					if(strDiscount != '' && strPriceOld != '' && strPriceNew == ''){
                    	strDiscountBox = '<div class="last_minute_item_discount_box_wrapper ac_clearfix">' +
							'	<div class="last_minute_item_discount_box ac_clearfix">' +
							'		-' + strDiscount + ' %' +
							'	</div>' +
							'</div>';
                        strDiscount = (100 - parseFloat(strDiscount.replace(',', '.'))) / 100;
						strInformation += strJust + ' <b>' + ((parseFloat(strPriceOld.replace(',', '.')) * strDiscount).toFixed(2)).replace('.', ',') + ' &euro;</b>';
					}else if(strPriceNew != ''){
                    	strInformation += strJust + ' <b>' + strPriceNew + ' &euro;</b>';
					}

                    strInformation = '<div class="last_minute_item_text last_minute_item_information ac_clearfix"><p>' + strInformation + '</p></div>';
                    /* END overwrites */

                    strContentLarge = strDescription + strText;

                    if(parseInt(dtOnlineStartOrg) * 1000 <= dtCurrent && parseInt(dtOnlineEndeOrg) * 1000 > dtTomorrow) {
                        strLastMinuteOffers += '<div class="last_minue_item_outer_wrapper ac_clearfix">' +
                            '	<div class="last_minue_item_wrapper ac_clearfix">' +
                            '		<div class="last_minue_item ac_clearfix">' +
                            '			<div class="last_minute_item_image_wrapper ac_clearfix">' +
                            '				<div class="last_minute_item_image ac_clearfix">' +
                            '					' + strBackgroundImage +
                            '					' + strImage +
                            '				</div>' +
                            '			</div>' +
                            '			<div class="last_minute_item_content_outer_wrapper ac_clearfix">' +
                            '				<div class="last_minute_item_content_wrapper ac_clearfix">' +
                            '					<div class="last_minute_item_content_box_wrapper ac_clearfix">' +
                            '						<div class="last_minute_item_content_box ac_clearfix">' +
                            '							<div class="last_minute_item_header ac_clearfix">' +
                            '								' + strTitle +
                            '								' + strSubtitle +
                            '								<div class="last_minute_item_date ac_clearfix">' + dtStart + ' - ' + dtEnde + '</div>' +
                            '							</div>';

                        if(!(layout == 22 || layout == 23)){
                            strLastMinuteOffers += strContentLarge;
                        }

                        strLastMinuteOffers += '    </div>' +
                            '					</div>' +
                            '					<div class="last_minute_item_content_box_wrapper ac_clearfix">' +
                            '						<div class="last_minute_item_content_box ac_clearfix">' +
                            '							' + strInformation +
                            '							' + strDiscountBox +
                            '							<div class="last_minute_item_button ac_clearfix">' +
                            '								<ul>' +
                            '									<li><a href="' + strEnquiryUrl + '">' + strInquire + '</a></li>' +
                            '								</ul>' +
                            '							</div>' +
                            '						</div>' +
                            '					</div>' +
                            '				</div>' +
                            '			</div>' +
                            '		</div>' +
                            '	</div>' +
                            '</div>';
                    }
				}

				if(strLastMinuteOffers.length > 0 && strLastMinuteOffers != '') {
					$(strElement).empty().append(strLastMinuteOffers);

					var rowLength = 0;
					if(layout == 12 || layout == 22){
                        rowLength = 2;
                    }else if(layout == 23){
                        rowLength = 3;
                    }
                    if(rowLength != 0){
                        $('.last_minue_item_outer_wrapper', strElement).each(function(){
                            if($(this).prev().hasClass('last_minute_row') && $(this).prev().find('.last_minue_item_outer_wrapper').length < rowLength){
                                $(this).prev().append($(this));
                            }else{
                                $(this).wrap('<div class="last_minute_row ac_clearfix"></div>');
                            }
                        });
                    }
				} else {
                    $(strElement).find(".ce-bodytext").html('<p>' + eval('ac_pricetable_labels.placeholder.' + sprache) + '</p>');
                }
			});
		}
	})( jQuery );
	/* END make lastminute offer */

	/* check lastminute offer */
	(function( $ ){
		$.fn.check_lastminute_offer = function(){
			var strElement = this;
			var sprache = $('html').attr('lang');
			var strLastMinuteOffers = 0;

			$.getJSON('/typo3conf/ext/ac_lastminute/Resources/Public/lastminute/cache/offers.json', function(data) {
				for (var i = 0; i < data.ac_lastminute.length; i++) {
					var dtCurrent = "";
					var dtTomorrow = "";
					var dtOnlineStartOrg = "";
					var dtOnlineEndeOrg = "";
					var dtEndeOrg = "";
					var strTitle = "";

					dtCurrent = new Date();
					dtCurrent = dtCurrent.getTime();

                    dtTomorrow = new Date();
                    dtTomorrow = dtTomorrow.getTime() - (24*60*60*1000);

					dtOnlineStartOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_start_online_date;
					dtOnlineEndeOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_end_online_date;

					dtEndeOrg = data.ac_lastminute[i].ac_offer[1].ac_infos[0].ac_end_date;

					if(sprache == 'en') {
						strTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].en;
					}else if(sprache == 'it'){
						strTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].it;
					}else if(sprache == 'fr'){
						strTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].fr;
					}else{
						strTitle = data.ac_lastminute[i].ac_offer[0].ac_texts[0].ac_text_title[0].de;
					}

                    if(parseInt(dtOnlineStartOrg) * 1000 <= dtCurrent && parseInt(dtOnlineEndeOrg) * 1000 > dtTomorrow){
						strLastMinuteOffers ++;
					}
				}

				if(strLastMinuteOffers == 0) {
					$(strElement).remove();
				}
			});
		}
	})( jQuery );
	/* END check lastminute offer */
	/* END last minute */
});

// Funktioniert --> ac_lastminute_roomDetails('C', 'de'); !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

/* room detail */
function ac_lastminute_roomDetails(roomTypeCode, sprache, pageID){
    var l = 0;
    if ($('html').data('l')) {
        var l = $('html').data('l');
    }

    if(pageID == ''){
        pageID = 7;
    }

    $.get('index.php?id=' + pageID + '&L=' + l + '&ADMCMD_cooluri=1', function (data) {
        if (data) {
            var content = $('<div/>').append(data);
            if(content.find('.room_data').length > 0){
                var roomData = content.find('.room_data');
                $.each(roomData, function(index, room){
                    string_a = roomTypeCode;
                    string_b = $(this).attr('data-room-roomtypecode');

                    var match = string_a.localeCompare(string_b);

                    if (match === 0) {
                        var mRoom = $(roomData[index]).clone();

                        var roomTitle = $(mRoom).attr('data-room-title');
                        var roomSubtitle = $(mRoom).attr('data-room-subtitle');

                        var roomTextWrapper = $(mRoom).attr('data-room-text');
                        var roomText = "";
                        if(content.find(roomTextWrapper).length > 0){
                            roomText = content.find(roomTextWrapper).html();
                        }

                        var roomImgWrapper = $(mRoom).attr('data-room-img');
                        var roomImg = "";
                        if(content.find(roomImgWrapper).length > 0){
                            roomImg = content.find(roomImgWrapper).html();
                        }

                        //roomImg = roomImg.split(',');

                        var roomInquireURL = $(mRoom).attr('data-room-inquire') + '?ac_roomtypecode=' + roomTypeCode;
                        var roomBookingURL = $(mRoom).attr('data-room-booking');

                        var slideshow = '';
                        var countImg = 0;

                        /*
                        $(roomImg).each(function (eimg) {
                            if(roomImg[eimg] != ''){
                                slideshow += '<!--pass ' + eimg + '-->' +
                                    '<div class="room_popup_slideshow_slide ac_ac_clearfix">' +
                                    '   <span class="room_popup_slideshow_img_fallback" style="background-image: url(\'' + roomImg[eimg] + '\')"></span>' +
                                    '   <img src="' + roomImg[eimg] + '" alt="' + roomTitle + '">' +
                                    '</div>';
                                countImg ++;
                            }
                        });
                        */

                        var ac_pricetable_labels = {
                            'inquire':{
                                'de': 'Anfragen',
                                'it': 'richiedere',
                                'en': 'inquire',
                                'fr': 'demander',
                                'nl': ''
                            },
                            'book':{
                                'de': 'Buchen',
                                'it': 'prenotare',
                                'en': 'book',
                                'fr': 'réserver',
                                'nl': ''
                            }
                        };

                        var strInquire = eval('ac_pricetable_labels.inquire.' + sprache);
                        var strBook = eval('ac_pricetable_labels.book.' + sprache);

                        var pager = '';
                        if(countImg > 1){
                            pager = '<div class="room_popup_slideshow_pager ac_ac_clearfix">' +
                                '   <div id="room_popup_slideshow_prev_' + index + '" class="room_popup_slideshow_prev ac_ac_clearfix"></div>' +
                                '   <div id="room_popup_slideshow_next_' + index + '" class="room_popup_slideshow_next ac_ac_clearfix"></div>' +
                                '</div>';
                        }

                        var room = '<div class="room_popup ac_ac_clearfix" id="room_popup_' + index + '" data-roomtypecode="' + roomTypeCode + '">' +
                            '   <div class="room_popup_img_wrapper ac_ac_clearfix">' +
                            '       <div class="room_popup_slideshow_wrapper ac_ac_clearfix">' +
                            '           <div class="room_popup_slideshow room_popup_slideshow_' + index + ' ac_ac_clearfix" data-cycle-timeout="0" data-cycle-log="false" data-cycle-swipe=true data-cycle-prev="#room_popup_slideshow_prev_' + index + '" data-cycle-next="#room_popup_slideshow_next_' + index + '" data-cycle-slides="> div, > a, > img">' + roomImg + '</div>' +
                            '       </div>' +
                            '       ' + pager +
                            '   </div>' +
                            '   <div class="room_popup_content_wrapper ac_ac_clearfix">' +
                            '       <div class="room_popup_content ac_ac_clearfix">' +
                            '           <div class="room_popup_header ac_ac_clearfix">' +
                            '               <div class="room_popup_title ac_ac_clearfix">' + roomTitle + '</div>' +
                            '               <div class="room_popup_subtitle ac_ac_clearfix">' + roomSubtitle + '</div>' +
                            '           </div>' +
                            '           <div class="room_popup_text ac_ac_clearfix">' + roomText + '</div>' +
                            '       </div>' +
                            '   </div>' +
                            '</div>';

                        /* +
                            '   <div class="room_popup_img_wrapper ac_ac_clearfix">' +
                            '       <div class="room_popup_slideshow_wrapper ac_ac_clearfix">' +
                            '           <div class="room_popup_slideshow room_popup_slideshow_' + index + ' ac_ac_clearfix" data-cycle-timeout="0" data-cycle-log="false" data-cycle-swipe=true data-cycle-prev="#room_popup_slideshow_prev_' + index + '" data-cycle-next="#room_popup_slideshow_next_' + index + '" data-cycle-slides="> div, > a, > img">' + slideshow + '</div>' +
                            '       </div>' +
                            '       ' + pager +
                            '   </div>' +
                            '</div>';

                            '			<div class="room_popup_button_wrapper ac_ac_clearfix">' +
                            '			    <div class="room_popup_button ac_ac_clearfix">' +
                            '				    <ul>' +
                            '					    <li><a href="' + roomInquireURL + '">' + strInquire + '</a></li>' +
                            '					    <li><a href="' + roomBookingURL + '" target="_blank">' + strBook + '</a></li>' +
                            '				    </ul>' +
                            '			    </div>' +
                            '			</div>' +

                            */

                        if ($('.modal_' + string_b).length < 1) {

                            var mM = $('#myModal').clone();
                            mM.addClass('modal_' + string_b);
                            mM.insertAfter($('#myModal'));
                            mM.removeAttr('id');
                            $('.modal_' + string_b + ' .modal-body').append(room);

                            $(this).find('.cycle-slideshow').cycle();
                        }

                        $('.modal_' + string_b).modal('show');

                        $('.room_popup_slideshow_' + index).cycle();

                    }
                });
            }
        }
    });
}
/* END room detail */
/*!
* jQuery Cycle2; version: 2.1.6 build: 20141007
* http://jquery.malsup.com/cycle2/
* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL
*/
!function(a){"use strict";function b(a){return(a||"").toLowerCase()}var c="2.1.6";a.fn.cycle=function(c){var d;return 0!==this.length||a.isReady?this.each(function(){var d,e,f,g,h=a(this),i=a.fn.cycle.log;if(!h.data("cycle.opts")){(h.data("cycle-log")===!1||c&&c.log===!1||e&&e.log===!1)&&(i=a.noop),i("--c2 init--"),d=h.data();for(var j in d)d.hasOwnProperty(j)&&/^cycle[A-Z]+/.test(j)&&(g=d[j],f=j.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),i(f+":",g,"("+typeof g+")"),d[f]=g);e=a.extend({},a.fn.cycle.defaults,d,c||{}),e.timeoutId=0,e.paused=e.paused||!1,e.container=h,e._maxZ=e.maxZ,e.API=a.extend({_container:h},a.fn.cycle.API),e.API.log=i,e.API.trigger=function(a,b){return e.container.trigger(a,b),e.API},h.data("cycle.opts",e),h.data("cycle.API",e.API),e.API.trigger("cycle-bootstrap",[e,e.API]),e.API.addInitialSlides(),e.API.preInitSlideshow(),e.slides.length&&e.API.initSlideshow()}}):(d={s:this.selector,c:this.context},a.fn.cycle.log("requeuing slideshow (dom not ready)"),a(function(){a(d.s,d.c).cycle(c)}),this)},a.fn.cycle.API={opts:function(){return this._container.data("cycle.opts")},addInitialSlides:function(){var b=this.opts(),c=b.slides;b.slideCount=0,b.slides=a(),c=c.jquery?c:b.container.find(c),b.random&&c.sort(function(){return Math.random()-.5}),b.API.add(c)},preInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-pre-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.preInit)&&c.preInit(b),b._preInitialized=!0},postInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-post-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.postInit)&&c.postInit(b)},initSlideshow:function(){var b,c=this.opts(),d=c.container;c.API.calcFirstSlide(),"static"==c.container.css("position")&&c.container.css("position","relative"),a(c.slides[c.currSlide]).css({opacity:1,display:"block",visibility:"visible"}),c.API.stackSlides(c.slides[c.currSlide],c.slides[c.nextSlide],!c.reverse),c.pauseOnHover&&(c.pauseOnHover!==!0&&(d=a(c.pauseOnHover)),d.hover(function(){c.API.pause(!0)},function(){c.API.resume(!0)})),c.timeout&&(b=c.API.getSlideOpts(c.currSlide),c.API.queueTransition(b,b.timeout+c.delay)),c._initialized=!0,c.API.updateView(!0),c.API.trigger("cycle-initialized",[c]),c.API.postInitSlideshow()},pause:function(b){var c=this.opts(),d=c.API.getSlideOpts(),e=c.hoverPaused||c.paused;b?c.hoverPaused=!0:c.paused=!0,e||(c.container.addClass("cycle-paused"),c.API.trigger("cycle-paused",[c]).log("cycle-paused"),d.timeout&&(clearTimeout(c.timeoutId),c.timeoutId=0,c._remainingTimeout-=a.now()-c._lastQueue,(c._remainingTimeout<0||isNaN(c._remainingTimeout))&&(c._remainingTimeout=void 0)))},resume:function(a){var b=this.opts(),c=!b.hoverPaused&&!b.paused;a?b.hoverPaused=!1:b.paused=!1,c||(b.container.removeClass("cycle-paused"),0===b.slides.filter(":animated").length&&b.API.queueTransition(b.API.getSlideOpts(),b._remainingTimeout),b.API.trigger("cycle-resumed",[b,b._remainingTimeout]).log("cycle-resumed"))},add:function(b,c){var d,e=this.opts(),f=e.slideCount,g=!1;"string"==a.type(b)&&(b=a.trim(b)),a(b).each(function(){var b,d=a(this);c?e.container.prepend(d):e.container.append(d),e.slideCount++,b=e.API.buildSlideOpts(d),e.slides=c?a(d).add(e.slides):e.slides.add(d),e.API.initSlide(b,d,--e._maxZ),d.data("cycle.opts",b),e.API.trigger("cycle-slide-added",[e,b,d])}),e.API.updateView(!0),g=e._preInitialized&&2>f&&e.slideCount>=1,g&&(e._initialized?e.timeout&&(d=e.slides.length,e.nextSlide=e.reverse?d-1:1,e.timeoutId||e.API.queueTransition(e)):e.API.initSlideshow())},calcFirstSlide:function(){var a,b=this.opts();a=parseInt(b.startingSlide||0,10),(a>=b.slides.length||0>a)&&(a=0),b.currSlide=a,b.reverse?(b.nextSlide=a-1,b.nextSlide<0&&(b.nextSlide=b.slides.length-1)):(b.nextSlide=a+1,b.nextSlide==b.slides.length&&(b.nextSlide=0))},calcNextSlide:function(){var a,b=this.opts();b.reverse?(a=b.nextSlide-1<0,b.nextSlide=a?b.slideCount-1:b.nextSlide-1,b.currSlide=a?0:b.nextSlide+1):(a=b.nextSlide+1==b.slides.length,b.nextSlide=a?0:b.nextSlide+1,b.currSlide=a?b.slides.length-1:b.nextSlide-1)},calcTx:function(b,c){var d,e=b;return e._tempFx?d=a.fn.cycle.transitions[e._tempFx]:c&&e.manualFx&&(d=a.fn.cycle.transitions[e.manualFx]),d||(d=a.fn.cycle.transitions[e.fx]),e._tempFx=null,this.opts()._tempFx=null,d||(d=a.fn.cycle.transitions.fade,e.API.log('Transition "'+e.fx+'" not found.  Using fade.')),d},prepareTx:function(a,b){var c,d,e,f,g,h=this.opts();return h.slideCount<2?void(h.timeoutId=0):(!a||h.busy&&!h.manualTrump||(h.API.stopTransition(),h.busy=!1,clearTimeout(h.timeoutId),h.timeoutId=0),void(h.busy||(0!==h.timeoutId||a)&&(d=h.slides[h.currSlide],e=h.slides[h.nextSlide],f=h.API.getSlideOpts(h.nextSlide),g=h.API.calcTx(f,a),h._tx=g,a&&void 0!==f.manualSpeed&&(f.speed=f.manualSpeed),h.nextSlide!=h.currSlide&&(a||!h.paused&&!h.hoverPaused&&h.timeout)?(h.API.trigger("cycle-before",[f,d,e,b]),g.before&&g.before(f,d,e,b),c=function(){h.busy=!1,h.container.data("cycle.opts")&&(g.after&&g.after(f,d,e,b),h.API.trigger("cycle-after",[f,d,e,b]),h.API.queueTransition(f),h.API.updateView(!0))},h.busy=!0,g.transition?g.transition(f,d,e,b,c):h.API.doTransition(f,d,e,b,c),h.API.calcNextSlide(),h.API.updateView()):h.API.queueTransition(f))))},doTransition:function(b,c,d,e,f){var g=b,h=a(c),i=a(d),j=function(){i.animate(g.animIn||{opacity:1},g.speed,g.easeIn||g.easing,f)};i.css(g.cssBefore||{}),h.animate(g.animOut||{},g.speed,g.easeOut||g.easing,function(){h.css(g.cssAfter||{}),g.sync||j()}),g.sync&&j()},queueTransition:function(b,c){var d=this.opts(),e=void 0!==c?c:b.timeout;return 0===d.nextSlide&&0===--d.loop?(d.API.log("terminating; loop=0"),d.timeout=0,e?setTimeout(function(){d.API.trigger("cycle-finished",[d])},e):d.API.trigger("cycle-finished",[d]),void(d.nextSlide=d.currSlide)):void 0!==d.continueAuto&&(d.continueAuto===!1||a.isFunction(d.continueAuto)&&d.continueAuto()===!1)?(d.API.log("terminating automatic transitions"),d.timeout=0,void(d.timeoutId&&clearTimeout(d.timeoutId))):void(e&&(d._lastQueue=a.now(),void 0===c&&(d._remainingTimeout=b.timeout),d.paused||d.hoverPaused||(d.timeoutId=setTimeout(function(){d.API.prepareTx(!1,!d.reverse)},e))))},stopTransition:function(){var a=this.opts();a.slides.filter(":animated").length&&(a.slides.stop(!1,!0),a.API.trigger("cycle-transition-stopped",[a])),a._tx&&a._tx.stopTransition&&a._tx.stopTransition(a)},advanceSlide:function(a){var b=this.opts();return clearTimeout(b.timeoutId),b.timeoutId=0,b.nextSlide=b.currSlide+a,b.nextSlide<0?b.nextSlide=b.slides.length-1:b.nextSlide>=b.slides.length&&(b.nextSlide=0),b.API.prepareTx(!0,a>=0),!1},buildSlideOpts:function(c){var d,e,f=this.opts(),g=c.data()||{};for(var h in g)g.hasOwnProperty(h)&&/^cycle[A-Z]+/.test(h)&&(d=g[h],e=h.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),f.API.log("["+(f.slideCount-1)+"]",e+":",d,"("+typeof d+")"),g[e]=d);g=a.extend({},a.fn.cycle.defaults,f,g),g.slideNum=f.slideCount;try{delete g.API,delete g.slideCount,delete g.currSlide,delete g.nextSlide,delete g.slides}catch(i){}return g},getSlideOpts:function(b){var c=this.opts();void 0===b&&(b=c.currSlide);var d=c.slides[b],e=a(d).data("cycle.opts");return a.extend({},c,e)},initSlide:function(b,c,d){var e=this.opts();c.css(b.slideCss||{}),d>0&&c.css("zIndex",d),isNaN(b.speed)&&(b.speed=a.fx.speeds[b.speed]||a.fx.speeds._default),b.sync||(b.speed=b.speed/2),c.addClass(e.slideClass)},updateView:function(a,b){var c=this.opts();if(c._initialized){var d=c.API.getSlideOpts(),e=c.slides[c.currSlide];!a&&b!==!0&&(c.API.trigger("cycle-update-view-before",[c,d,e]),c.updateView<0)||(c.slideActiveClass&&c.slides.removeClass(c.slideActiveClass).eq(c.currSlide).addClass(c.slideActiveClass),a&&c.hideNonActive&&c.slides.filter(":not(."+c.slideActiveClass+")").css("visibility","hidden"),0===c.updateView&&setTimeout(function(){c.API.trigger("cycle-update-view",[c,d,e,a])},d.speed/(c.sync?2:1)),0!==c.updateView&&c.API.trigger("cycle-update-view",[c,d,e,a]),a&&c.API.trigger("cycle-update-view-after",[c,d,e]))}},getComponent:function(b){var c=this.opts(),d=c[b];return"string"==typeof d?/^\s*[\>|\+|~]/.test(d)?c.container.find(d):a(d):d.jquery?d:a(d)},stackSlides:function(b,c,d){var e=this.opts();b||(b=e.slides[e.currSlide],c=e.slides[e.nextSlide],d=!e.reverse),a(b).css("zIndex",e.maxZ);var f,g=e.maxZ-2,h=e.slideCount;if(d){for(f=e.currSlide+1;h>f;f++)a(e.slides[f]).css("zIndex",g--);for(f=0;f<e.currSlide;f++)a(e.slides[f]).css("zIndex",g--)}else{for(f=e.currSlide-1;f>=0;f--)a(e.slides[f]).css("zIndex",g--);for(f=h-1;f>e.currSlide;f--)a(e.slides[f]).css("zIndex",g--)}a(c).css("zIndex",e.maxZ-1)},getSlideIndex:function(a){return this.opts().slides.index(a)}},a.fn.cycle.log=function(){window.console&&console.log&&console.log("[cycle2] "+Array.prototype.join.call(arguments," "))},a.fn.cycle.version=function(){return"Cycle2: "+c},a.fn.cycle.transitions={custom:{},none:{before:function(a,b,c,d){a.API.stackSlides(c,b,d),a.cssBefore={opacity:1,visibility:"visible",display:"block"}}},fade:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:0,visibility:"visible",display:"block"}),b.animIn={opacity:1},b.animOut={opacity:0}}},fadeout:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:1,visibility:"visible",display:"block"}),b.animOut={opacity:0}}},scrollHorz:{before:function(a,b,c,d){a.API.stackSlides(b,c,d);var e=a.container.css("overflow","hidden").width();a.cssBefore={left:d?e:-e,top:0,opacity:1,visibility:"visible",display:"block"},a.cssAfter={zIndex:a._maxZ-2,left:0},a.animIn={left:0},a.animOut={left:d?-e:e}}}},a.fn.cycle.defaults={allowWrap:!0,autoSelector:".cycle-slideshow[data-cycle-auto-init!=false]",delay:0,easing:null,fx:"fade",hideNonActive:!0,loop:0,manualFx:void 0,manualSpeed:void 0,manualTrump:!0,maxZ:100,pauseOnHover:!1,reverse:!1,slideActiveClass:"cycle-slide-active",slideClass:"cycle-slide",slideCss:{position:"absolute",top:0,left:0},slides:"> img",speed:500,startingSlide:0,sync:!0,timeout:4e3,updateView:0},a(document).ready(function(){a(a.fn.cycle.defaults.autoSelector).cycle()})}(jQuery),/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */
function(a){"use strict";function b(b,d){var e,f,g,h=d.autoHeight;if("container"==h)f=a(d.slides[d.currSlide]).outerHeight(),d.container.height(f);else if(d._autoHeightRatio)d.container.height(d.container.width()/d._autoHeightRatio);else if("calc"===h||"number"==a.type(h)&&h>=0){if(g="calc"===h?c(b,d):h>=d.slides.length?0:h,g==d._sentinelIndex)return;d._sentinelIndex=g,d._sentinel&&d._sentinel.remove(),e=a(d.slides[g].cloneNode(!0)),e.removeAttr("id name rel").find("[id],[name],[rel]").removeAttr("id name rel"),e.css({position:"static",visibility:"hidden",display:"block"}).prependTo(d.container).addClass("cycle-sentinel cycle-slide").removeClass("cycle-slide-active"),e.find("*").css("visibility","hidden"),d._sentinel=e}}function c(b,c){var d=0,e=-1;return c.slides.each(function(b){var c=a(this).height();c>e&&(e=c,d=b)}),d}function d(b,c,d,e){var f=a(e).outerHeight();c.container.animate({height:f},c.autoHeightSpeed,c.autoHeightEasing)}function e(c,f){f._autoHeightOnResize&&(a(window).off("resize orientationchange",f._autoHeightOnResize),f._autoHeightOnResize=null),f.container.off("cycle-slide-added cycle-slide-removed",b),f.container.off("cycle-destroyed",e),f.container.off("cycle-before",d),f._sentinel&&(f._sentinel.remove(),f._sentinel=null)}a.extend(a.fn.cycle.defaults,{autoHeight:0,autoHeightSpeed:250,autoHeightEasing:null}),a(document).on("cycle-initialized",function(c,f){function g(){b(c,f)}var h,i=f.autoHeight,j=a.type(i),k=null;("string"===j||"number"===j)&&(f.container.on("cycle-slide-added cycle-slide-removed",b),f.container.on("cycle-destroyed",e),"container"==i?f.container.on("cycle-before",d):"string"===j&&/\d+\:\d+/.test(i)&&(h=i.match(/(\d+)\:(\d+)/),h=h[1]/h[2],f._autoHeightRatio=h),"number"!==j&&(f._autoHeightOnResize=function(){clearTimeout(k),k=setTimeout(g,50)},a(window).on("resize orientationchange",f._autoHeightOnResize)),setTimeout(g,30))})}(jQuery),/*! caption plugin for Cycle2;  version: 20130306 */
function(a){"use strict";a.extend(a.fn.cycle.defaults,{caption:"> .cycle-caption",captionTemplate:"{{slideNum}} / {{slideCount}}",overlay:"> .cycle-overlay",overlayTemplate:"<div>{{title}}</div><div>{{desc}}</div>",captionModule:"caption"}),a(document).on("cycle-update-view",function(b,c,d,e){if("caption"===c.captionModule){a.each(["caption","overlay"],function(){var a=this,b=d[a+"Template"],f=c.API.getComponent(a);f.length&&b?(f.html(c.API.tmpl(b,d,c,e)),f.show()):f.hide()})}}),a(document).on("cycle-destroyed",function(b,c){var d;a.each(["caption","overlay"],function(){var a=this,b=c[a+"Template"];c[a]&&b&&(d=c.API.getComponent("caption"),d.empty())})})}(jQuery),/*! command plugin for Cycle2;  version: 20140415 */
function(a){"use strict";var b=a.fn.cycle;a.fn.cycle=function(c){var d,e,f,g=a.makeArray(arguments);return"number"==a.type(c)?this.cycle("goto",c):"string"==a.type(c)?this.each(function(){var h;return d=c,f=a(this).data("cycle.opts"),void 0===f?void b.log('slideshow must be initialized before sending commands; "'+d+'" ignored'):(d="goto"==d?"jump":d,e=f.API[d],a.isFunction(e)?(h=a.makeArray(g),h.shift(),e.apply(f.API,h)):void b.log("unknown command: ",d))}):b.apply(this,arguments)},a.extend(a.fn.cycle,b),a.extend(b.API,{next:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?-1:1;a.allowWrap===!1&&a.currSlide+b>=a.slideCount||(a.API.advanceSlide(b),a.API.trigger("cycle-next",[a]).log("cycle-next"))}},prev:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?1:-1;a.allowWrap===!1&&a.currSlide+b<0||(a.API.advanceSlide(b),a.API.trigger("cycle-prev",[a]).log("cycle-prev"))}},destroy:function(){this.stop();var b=this.opts(),c=a.isFunction(a._data)?a._data:a.noop;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stop(),b.API.trigger("cycle-destroyed",[b]).log("cycle-destroyed"),b.container.removeData(),c(b.container[0],"parsedAttrs",!1),b.retainStylesOnDestroy||(b.container.removeAttr("style"),b.slides.removeAttr("style"),b.slides.removeClass(b.slideActiveClass)),b.slides.each(function(){var d=a(this);d.removeData(),d.removeClass(b.slideClass),c(this,"parsedAttrs",!1)})},jump:function(a,b){var c,d=this.opts();if(!d.busy||d.manualTrump){var e=parseInt(a,10);if(isNaN(e)||0>e||e>=d.slides.length)return void d.API.log("goto: invalid slide index: "+e);if(e==d.currSlide)return void d.API.log("goto: skipping, already on slide",e);d.nextSlide=e,clearTimeout(d.timeoutId),d.timeoutId=0,d.API.log("goto: ",e," (zero-index)"),c=d.currSlide<d.nextSlide,d._tempFx=b,d.API.prepareTx(!0,c)}},stop:function(){var b=this.opts(),c=b.container;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stopTransition(),b.pauseOnHover&&(b.pauseOnHover!==!0&&(c=a(b.pauseOnHover)),c.off("mouseenter mouseleave")),b.API.trigger("cycle-stopped",[b]).log("cycle-stopped")},reinit:function(){var a=this.opts();a.API.destroy(),a.container.cycle()},remove:function(b){for(var c,d,e=this.opts(),f=[],g=1,h=0;h<e.slides.length;h++)c=e.slides[h],h==b?d=c:(f.push(c),a(c).data("cycle.opts").slideNum=g,g++);d&&(e.slides=a(f),e.slideCount--,a(d).remove(),b==e.currSlide?e.API.advanceSlide(1):b<e.currSlide?e.currSlide--:e.currSlide++,e.API.trigger("cycle-slide-removed",[e,b,d]).log("cycle-slide-removed"),e.API.updateView())}}),a(document).on("click.cycle","[data-cycle-cmd]",function(b){b.preventDefault();var c=a(this),d=c.data("cycle-cmd"),e=c.data("cycle-context")||".cycle-slideshow";a(e).cycle(d,c.data("cycle-arg"))})}(jQuery),/*! hash plugin for Cycle2;  version: 20130905 */
function(a){"use strict";function b(b,c){var d;return b._hashFence?void(b._hashFence=!1):(d=window.location.hash.substring(1),void b.slides.each(function(e){if(a(this).data("cycle-hash")==d){if(c===!0)b.startingSlide=e;else{var f=b.currSlide<e;b.nextSlide=e,b.API.prepareTx(!0,f)}return!1}}))}a(document).on("cycle-pre-initialize",function(c,d){b(d,!0),d._onHashChange=function(){b(d,!1)},a(window).on("hashchange",d._onHashChange)}),a(document).on("cycle-update-view",function(a,b,c){c.hash&&"#"+c.hash!=window.location.hash&&(b._hashFence=!0,window.location.hash=c.hash)}),a(document).on("cycle-destroyed",function(b,c){c._onHashChange&&a(window).off("hashchange",c._onHashChange)})}(jQuery),/*! loader plugin for Cycle2;  version: 20131121 */
function(a){"use strict";a.extend(a.fn.cycle.defaults,{loader:!1}),a(document).on("cycle-bootstrap",function(b,c){function d(b,d){function f(b){var f;"wait"==c.loader?(h.push(b),0===j&&(h.sort(g),e.apply(c.API,[h,d]),c.container.removeClass("cycle-loading"))):(f=a(c.slides[c.currSlide]),e.apply(c.API,[b,d]),f.show(),c.container.removeClass("cycle-loading"))}function g(a,b){return a.data("index")-b.data("index")}var h=[];if("string"==a.type(b))b=a.trim(b);else if("array"===a.type(b))for(var i=0;i<b.length;i++)b[i]=a(b[i])[0];b=a(b);var j=b.length;j&&(b.css("visibility","hidden").appendTo("body").each(function(b){function g(){0===--i&&(--j,f(k))}var i=0,k=a(this),l=k.is("img")?k:k.find("img");return k.data("index",b),l=l.filter(":not(.cycle-loader-ignore)").filter(':not([src=""])'),l.length?(i=l.length,void l.each(function(){this.complete?g():a(this).load(function(){g()}).on("error",function(){0===--i&&(c.API.log("slide skipped; img not loaded:",this.src),0===--j&&"wait"==c.loader&&e.apply(c.API,[h,d]))})})):(--j,void h.push(k))}),j&&c.container.addClass("cycle-loading"))}var e;c.loader&&(e=c.API.add,c.API.add=d)})}(jQuery),/*! pager plugin for Cycle2;  version: 20140415 */
function(a){"use strict";function b(b,c,d){var e,f=b.API.getComponent("pager");f.each(function(){var f=a(this);if(c.pagerTemplate){var g=b.API.tmpl(c.pagerTemplate,c,b,d[0]);e=a(g).appendTo(f)}else e=f.children().eq(b.slideCount-1);e.on(b.pagerEvent,function(a){b.pagerEventBubble||a.preventDefault(),b.API.page(f,a.currentTarget)})})}function c(a,b){var c=this.opts();if(!c.busy||c.manualTrump){var d=a.children().index(b),e=d,f=c.currSlide<e;c.currSlide!=e&&(c.nextSlide=e,c._tempFx=c.pagerFx,c.API.prepareTx(!0,f),c.API.trigger("cycle-pager-activated",[c,a,b]))}}a.extend(a.fn.cycle.defaults,{pager:"> .cycle-pager",pagerActiveClass:"cycle-pager-active",pagerEvent:"click.cycle",pagerEventBubble:void 0,pagerTemplate:"<span>&bull;</span>"}),a(document).on("cycle-bootstrap",function(a,c,d){d.buildPagerLink=b}),a(document).on("cycle-slide-added",function(a,b,d,e){b.pager&&(b.API.buildPagerLink(b,d,e),b.API.page=c)}),a(document).on("cycle-slide-removed",function(b,c,d){if(c.pager){var e=c.API.getComponent("pager");e.each(function(){var b=a(this);a(b.children()[d]).remove()})}}),a(document).on("cycle-update-view",function(b,c){var d;c.pager&&(d=c.API.getComponent("pager"),d.each(function(){a(this).children().removeClass(c.pagerActiveClass).eq(c.currSlide).addClass(c.pagerActiveClass)}))}),a(document).on("cycle-destroyed",function(a,b){var c=b.API.getComponent("pager");c&&(c.children().off(b.pagerEvent),b.pagerTemplate&&c.empty())})}(jQuery),/*! prevnext plugin for Cycle2;  version: 20140408 */
function(a){"use strict";a.extend(a.fn.cycle.defaults,{next:"> .cycle-next",nextEvent:"click.cycle",disabledClass:"disabled",prev:"> .cycle-prev",prevEvent:"click.cycle",swipe:!1}),a(document).on("cycle-initialized",function(a,b){if(b.API.getComponent("next").on(b.nextEvent,function(a){a.preventDefault(),b.API.next()}),b.API.getComponent("prev").on(b.prevEvent,function(a){a.preventDefault(),b.API.prev()}),b.swipe){var c=b.swipeVert?"swipeUp.cycle":"swipeLeft.cycle swipeleft.cycle",d=b.swipeVert?"swipeDown.cycle":"swipeRight.cycle swiperight.cycle";b.container.on(c,function(){b._tempFx=b.swipeFx,b.API.next()}),b.container.on(d,function(){b._tempFx=b.swipeFx,b.API.prev()})}}),a(document).on("cycle-update-view",function(a,b){if(!b.allowWrap){var c=b.disabledClass,d=b.API.getComponent("next"),e=b.API.getComponent("prev"),f=b._prevBoundry||0,g=void 0!==b._nextBoundry?b._nextBoundry:b.slideCount-1;b.currSlide==g?d.addClass(c).prop("disabled",!0):d.removeClass(c).prop("disabled",!1),b.currSlide===f?e.addClass(c).prop("disabled",!0):e.removeClass(c).prop("disabled",!1)}}),a(document).on("cycle-destroyed",function(a,b){b.API.getComponent("prev").off(b.nextEvent),b.API.getComponent("next").off(b.prevEvent),b.container.off("swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle")})}(jQuery),/*! progressive loader plugin for Cycle2;  version: 20130315 */
function(a){"use strict";a.extend(a.fn.cycle.defaults,{progressive:!1}),a(document).on("cycle-pre-initialize",function(b,c){if(c.progressive){var d,e,f=c.API,g=f.next,h=f.prev,i=f.prepareTx,j=a.type(c.progressive);if("array"==j)d=c.progressive;else if(a.isFunction(c.progressive))d=c.progressive(c);else if("string"==j){if(e=a(c.progressive),d=a.trim(e.html()),!d)return;if(/^(\[)/.test(d))try{d=a.parseJSON(d)}catch(k){return void f.log("error parsing progressive slides",k)}else d=d.split(new RegExp(e.data("cycle-split")||"\n")),d[d.length-1]||d.pop()}i&&(f.prepareTx=function(a,b){var e,f;return a||0===d.length?void i.apply(c.API,[a,b]):void(b&&c.currSlide==c.slideCount-1?(f=d[0],d=d.slice(1),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.API.advanceSlide(1)},50)}),c.API.add(f)):b||0!==c.currSlide?i.apply(c.API,[a,b]):(e=d.length-1,f=d[e],d=d.slice(0,e),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.currSlide=1,b.API.advanceSlide(-1)},50)}),c.API.add(f,!0)))}),g&&(f.next=function(){var a=this.opts();if(d.length&&a.currSlide==a.slideCount-1){var b=d[0];d=d.slice(1),a.container.one("cycle-slide-added",function(a,b){g.apply(b.API),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(b)}else g.apply(a.API)}),h&&(f.prev=function(){var a=this.opts();if(d.length&&0===a.currSlide){var b=d.length-1,c=d[b];d=d.slice(0,b),a.container.one("cycle-slide-added",function(a,b){b.currSlide=1,b.API.advanceSlide(-1),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(c,!0)}else h.apply(a.API)})}})}(jQuery),/*! tmpl plugin for Cycle2;  version: 20121227 */
function(a){"use strict";a.extend(a.fn.cycle.defaults,{tmplRegex:"{{((.)?.*?)}}"}),a.extend(a.fn.cycle.API,{tmpl:function(b,c){var d=new RegExp(c.tmplRegex||a.fn.cycle.defaults.tmplRegex,"g"),e=a.makeArray(arguments);return e.shift(),b.replace(d,function(b,c){var d,f,g,h,i=c.split(".");for(d=0;d<e.length;d++)if(g=e[d]){if(i.length>1)for(h=g,f=0;f<i.length;f++)g=h,h=h[i[f]]||c;else h=g[c];if(a.isFunction(h))return h.apply(g,e);if(void 0!==h&&null!==h&&h!=c)return h}return c})}})}(jQuery);
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20130528 */
(function(e){"use strict";e(document).on("cycle-bootstrap",function(e,i,t){"carousel"===i.fx&&(t.getSlideIndex=function(e){var i=this.opts()._carouselWrap.children(),t=i.index(e);return t%i.length},t.next=function(){var e=i.reverse?-1:1;i.allowWrap===!1&&i.currSlide+e>i.slideCount-i.carouselVisible||(i.API.advanceSlide(e),i.API.trigger("cycle-next",[i]).log("cycle-next"))})}),e.fn.cycle.transitions.carousel={preInit:function(i){i.hideNonActive=!1,i.container.on("cycle-destroyed",e.proxy(this.onDestroy,i.API)),i.API.stopTransition=this.stopTransition;for(var t=0;i.startingSlide>t;t++)i.container.append(i.slides[0])},postInit:function(i){var t,n,s,o,l=i.carouselVertical;i.carouselVisible&&i.carouselVisible>i.slideCount&&(i.carouselVisible=i.slideCount-1);var r=i.carouselVisible||i.slides.length,c={display:l?"block":"inline-block",position:"static"};if(i.container.css({position:"relative",overflow:"hidden"}),i.slides.css(c),i._currSlide=i.currSlide,o=e('<div class="cycle-carousel-wrap"></div>').prependTo(i.container).css({margin:0,padding:0,top:0,left:0,position:"absolute"}).append(i.slides),i._carouselWrap=o,l||o.css("white-space","nowrap"),i.allowWrap!==!1){for(n=0;(void 0===i.carouselVisible?2:1)>n;n++){for(t=0;i.slideCount>t;t++)o.append(i.slides[t].cloneNode(!0));for(t=i.slideCount;t--;)o.prepend(i.slides[t].cloneNode(!0))}o.find(".cycle-slide-active").removeClass("cycle-slide-active"),i.slides.eq(i.startingSlide).addClass("cycle-slide-active")}i.pager&&i.allowWrap===!1&&(s=i.slideCount-r,e(i.pager).children().filter(":gt("+s+")").hide()),i._nextBoundry=i.slideCount-i.carouselVisible,this.prepareDimensions(i)},prepareDimensions:function(i){var t,n,s,o=i.carouselVertical,l=i.carouselVisible||i.slides.length;if(i.carouselFluid&&i.carouselVisible?i._carouselResizeThrottle||this.fluidSlides(i):i.carouselVisible&&i.carouselSlideDimension?(t=l*i.carouselSlideDimension,i.container[o?"height":"width"](t)):i.carouselVisible&&(t=l*e(i.slides[0])[o?"outerHeight":"outerWidth"](!0),i.container[o?"height":"width"](t)),n=i.carouselOffset||0,i.allowWrap!==!1)if(i.carouselSlideDimension)n-=(i.slideCount+i.currSlide)*i.carouselSlideDimension;else{s=i._carouselWrap.children();for(var r=0;i.slideCount+i.currSlide>r;r++)n-=e(s[r])[o?"outerHeight":"outerWidth"](!0)}i._carouselWrap.css(o?"top":"left",n)},fluidSlides:function(i){function t(){clearTimeout(s),s=setTimeout(n,20)}function n(){i._carouselWrap.stop(!1,!0);var e=i.container.width()/i.carouselVisible;e=Math.ceil(e-l),i._carouselWrap.children().width(e),i._sentinel&&i._sentinel.width(e),r(i)}var s,o=i.slides.eq(0),l=o.outerWidth()-o.width(),r=this.prepareDimensions;e(window).on("resize",t),i._carouselResizeThrottle=t,n()},transition:function(i,t,n,s,o){var l,r={},c=i.nextSlide-i.currSlide,a=i.carouselVertical,d=i.speed;if(i.allowWrap===!1){s=c>0;var u=i._currSlide,p=i.slideCount-i.carouselVisible;c>0&&i.nextSlide>p&&u==p?c=0:c>0&&i.nextSlide>p?c=i.nextSlide-u-(i.nextSlide-p):0>c&&i.currSlide>p&&i.nextSlide>p?c=0:0>c&&i.currSlide>p?c+=i.currSlide-p:u=i.currSlide,l=this.getScroll(i,a,u,c),i.API.opts()._currSlide=i.nextSlide>p?p:i.nextSlide}else s&&0===i.nextSlide?(l=this.getDim(i,i.currSlide,a),o=this.genCallback(i,s,a,o)):s||i.nextSlide!=i.slideCount-1?l=this.getScroll(i,a,i.currSlide,c):(l=this.getDim(i,i.currSlide,a),o=this.genCallback(i,s,a,o));r[a?"top":"left"]=s?"-="+l:"+="+l,i.throttleSpeed&&(d=l/e(i.slides[0])[a?"height":"width"]()*i.speed),i._carouselWrap.animate(r,d,i.easing,o)},getDim:function(i,t,n){var s=e(i.slides[t]);return s[n?"outerHeight":"outerWidth"](!0)},getScroll:function(e,i,t,n){var s,o=0;if(n>0)for(s=t;t+n>s;s++)o+=this.getDim(e,s,i);else for(s=t;s>t+n;s--)o+=this.getDim(e,s,i);return o},genCallback:function(i,t,n,s){return function(){var t=e(i.slides[i.nextSlide]).position(),o=0-t[n?"top":"left"]+(i.carouselOffset||0);i._carouselWrap.css(i.carouselVertical?"top":"left",o),s()}},stopTransition:function(){var e=this.opts();e.slides.stop(!1,!0),e._carouselWrap.stop(!1,!0)},onDestroy:function(){var i=this.opts();i._carouselResizeThrottle&&e(window).off("resize",i._carouselResizeThrottle),i.slides.prependTo(i.container),i._carouselWrap.remove()}}})(jQuery);
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20140128 */
(function(e){"use strict";e.event.special.swipe=e.event.special.swipe||{scrollSupressionThreshold:10,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,setup:function(){var i=e(this);i.bind("touchstart",function(t){function n(i){if(r){var t=i.originalEvent.touches?i.originalEvent.touches[0]:i;s={time:(new Date).getTime(),coords:[t.pageX,t.pageY]},Math.abs(r.coords[0]-s.coords[0])>e.event.special.swipe.scrollSupressionThreshold&&i.preventDefault()}}var s,o=t.originalEvent.touches?t.originalEvent.touches[0]:t,r={time:(new Date).getTime(),coords:[o.pageX,o.pageY],origin:e(t.target)};i.bind("touchmove",n).one("touchend",function(){i.unbind("touchmove",n),r&&s&&s.time-r.time<e.event.special.swipe.durationThreshold&&Math.abs(r.coords[0]-s.coords[0])>e.event.special.swipe.horizontalDistanceThreshold&&Math.abs(r.coords[1]-s.coords[1])<e.event.special.swipe.verticalDistanceThreshold&&r.origin.trigger("swipe").trigger(r.coords[0]>s.coords[0]?"swipeleft":"swiperight"),r=s=void 0})})}},e.event.special.swipeleft=e.event.special.swipeleft||{setup:function(){e(this).bind("swipe",e.noop)}},e.event.special.swiperight=e.event.special.swiperight||e.event.special.swipeleft})(jQuery);
/* Plugin for Cycle2; Copyright (c) 2012 M. Alsup; v20141007 */
!function(a){"use strict";a.extend(a.fn.cycle.defaults,{progressive:!1}),a(document).on("cycle-pre-initialize",function(b,c){if(c.progressive){var d,e,f=c.API,g=f.next,h=f.prev,i=f.prepareTx,j=a.type(c.progressive);if("array"==j)d=c.progressive;else if(a.isFunction(c.progressive))d=c.progressive(c);else if("string"==j){if(e=a(c.progressive),d=a.trim(e.html()),!d)return;if(/^(\[)/.test(d))try{d=a.parseJSON(d)}catch(k){return void f.log("error parsing progressive slides",k)}else d=d.split(new RegExp(e.data("cycle-split")||"\n")),d[d.length-1]||d.pop()}i&&(f.prepareTx=function(a,b){var e,f;return a||0===d.length?void i.apply(c.API,[a,b]):void(b&&c.currSlide==c.slideCount-1?(f=d[0],d=d.slice(1),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.API.advanceSlide(1)},50)}),c.API.add(f)):b||0!==c.currSlide?i.apply(c.API,[a,b]):(e=d.length-1,f=d[e],d=d.slice(0,e),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.currSlide=1,b.API.advanceSlide(-1)},50)}),c.API.add(f,!0)))}),g&&(f.next=function(){var a=this.opts();if(d.length&&a.currSlide==a.slideCount-1){var b=d[0];d=d.slice(1),a.container.one("cycle-slide-added",function(a,b){g.apply(b.API),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(b)}else g.apply(a.API)}),h&&(f.prev=function(){var a=this.opts();if(d.length&&0===a.currSlide){var b=d.length-1,c=d[b];d=d.slice(0,b),a.container.one("cycle-slide-added",function(a,b){b.currSlide=1,b.API.advanceSlide(-1),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(c,!0)}else h.apply(a.API)})}})}(jQuery);
/* ac functions */
$(document).ready(function() {
  /* auto scroll */
  if (($("body").attr("data-pid") == '85' || $("body").attr("data-pid") == '86' || $("body").attr("data-pid") == '84' || $("body").attr("data-pid") == '90' || $("body").attr("data-pid") == '106' || $("body").attr("data-pid") == '82' || $("body").attr("data-pid") == '17' || $("body").attr("data-pid") == '60' || $("body").attr("data-pid") == '59' || $("body").attr("data-pid") == '57' || $("body").attr("data-pid") == '40' || $("body").attr("data-pid") == '39' || $("body").attr("data-pid") == '36' || $("body").attr("data-pid") == '38' || $("body").attr("data-pid") == '37' || $("body").attr("data-pid") == '35' || $("body").attr("data-pid") == '7' || $("body").attr("data-pid") == '34' || $("body").attr("data-pid") == '33' || $("body").attr("data-pid") == '32' || $("body").attr("data-pid") == '31' || $("body").attr("data-pid") == '30' || $("body").attr("data-pid") == '29' || $("body").attr("data-pid") == '28' || $("body").attr("data-pid") == '27' || $("body").attr("data-pid") == '26' || $("body").attr("data-pid") == '15' || $("body").attr("data-pid") == '12' || $("body").attr("data-pid") == '30' || $("body").attr("data-pid") == '31' || $("body").attr("data-pid") == '32' || $("body").attr("data-pid") == '33' || $("body").attr("data-pid") == '34') || $("body").attr("data-pid") == "5" && $('.header-slider').length) {
    var scroll_height = $('.header-slider').height() / 3 * 2;
    $('html, body').stop().animate({
      scrollTop: scroll_height
    }, 'slow');
  }
  /* END auto scroll */

  /* pricetable */
  if ($('#pricetable_1').length > 0) {
    var responsive = false;
    if ($('#pricetable_1').width() <= 600) {
      responsive = true;
    }
    $('#pricetable_1').make_pricelist_1(responsive);
  }

  if ($('#pricetable_2').length > 0) {
    var responsive = false;
    if ($('#pricetable_2').width() <= 600) {
      responsive = true;
    }
    $('#pricetable_2').make_pricelist_2(responsive);
  }

  /*
  if ($('#pricetable_3').length > 0) {
      var responsive = false;
      if ($('#pricetable_3').width() <= 600) {
          responsive = true;
      }
      $('#pricetable_3').make_pricelist_3(responsive);
  }

  /* pricetable scroll * /
  $('.pricetable_wrapper .pricetable').each(function(){
      if($(this).width() < 1000){
          $('.pricetable_scroll', this).addClass('active');
      }
  });
  /* END pricetable scroll */

  /* pricetable living */
  if ($('.pricetable_living_1').length > 0) {
    $('.pricetable_living_1').each(function() {
      $(this).make_pricelist_living_1();
    });
  }

  if ($('.pricetable_living_2').length > 0) {
    $('.pricetable_living_2').each(function() {
      $(this).make_pricelist_living_2();
    });
  }

  /*
  if ($('.pricetable_living_3').length > 0) {
      $('.pricetable_living_3').each(function () {
          $(this).make_pricelist_living_3();
      });
  }

  /* pricetable living scroll * /
  $('.room_pricetable_wrapper .room_pricetable').each(function(){
      if($(this).width() < 1000){
          $('.pricetable_scroll', this).addClass('active');
      }
  });
  /* END pricetable living scroll */
  /* END pricetable living */

  var obj = getQueryParams(document.location.search);
  if (obj.hasOwnProperty("gclid") && obj["gclid"] != "") {
    document.cookie = "ac_medium=CPC";
  }

  var referrer = get_domain(document.referrer);
  var domain = document.location.host;

  if (typeof referrer !== 'undefined' && referrer != '' && referrer != domain) {
    document.cookie = "ac_source=" + referrer;
  }

  if (obj.hasOwnProperty("utm_medium") && obj["utm_medium"] != "") {
    document.cookie = "ac_medium=" + obj["utm_medium"] + ";path=/";
  }

  if (obj.hasOwnProperty("utm_source") && obj["utm_source"] != "") {
    document.cookie = "ac_source=" + obj["utm_source"] + ";path=/";
  }

  /* last minute */
  if ($('.last_minute_inner_wrapper').length > 0) {
    $('.last_minute_inner_wrapper').make_lastminute_offer();
  }

  if ($('.special_button_wrapper').length) {
    $('.special_button_wrapper').each(function() {
      if ($(this).attr('data-uid') == 33) {
        $(this).check_lastminute_offer();
      }
    });
  }
  /* END last minute */

  /* tab */
  $('.tab_body').each(function(e) {
    var tabBody = $(this);
    var tabId = tabBody.attr('data-tab-id');
    var tabHeader = $('main').find('#tab_header_' + tabId);

    if (tabHeader.length <= 0) {
      tabHeader = $('<ul/>', {
        class: 'tab_header',
        id: 'tab_header_item_' + tabId,
        'data-tab-id': tabId
      }).insertBefore(tabBody);
    }

    $('.tab_body_item', tabBody).each(function(e) {
      var tabHeaderItem = $('<a/>', {
        href: 'javascript:;',
        class: 'tab_header_item',
        id: 'tab_header_item_' + tabId + '_' + e,
        'data-tab-body-item': '#tab_body_item_' + tabId + '_' + e,
        text: $.trim($(this).attr('data-tab-title'))
      });
      if (tabHeader.is('ul')) {
        tabHeaderItem = $('<li/>', {
          class: 'tab_header_li'
        }).append(tabHeaderItem);
      }
      $(tabHeaderItem).appendTo(tabHeader);
      $(this).attr('id', 'tab_body_item_' + tabId + '_' + e).hide();
    });
  });

  $('.tab_header_item').click(function(e) {
    e.preventDefault();
    var tabBodyItem = $(this).attr('data-tab-body-item');
    if ($(this).hasClass('active')) {
      $(this).removeClass('active');
      $(tabBodyItem).stop().slideUp().removeClass('active');
    } else {
      $('.tab_header_item').removeClass('active');
      $('.tab_body_item').stop().slideUp().removeClass('active');
      $(this).addClass('active');
      $(tabBodyItem).stop().slideDown().addClass('active');
    }
  });
  /* END tab */

  /* load offer */
  if ($('.offer_overview_inner_wrapper').length > 0) {
    loadOffer();
  }
  /* END load offer */
  $.fn.isHScrollable = function() {
    return this[0].scrollWidth > this[0].clientWidth;
  };

  $.fn.isVScrollable = function() {
    return this[0].scrollHeight > this[0].clientHeight;
  };

  $.fn.isScrollable = function() {
    return this[0].scrollWidth > this[0].clientWidth || this[0].scrollHeight > this[0].clientHeight;
  };

  /*if (window.location.hash) {
    if (window.location.hash == "#popup") {
      $(".popup_message").addClass("show");
    }
  }*/


  $(".popup_message").addClass("show");


  $(".popup_close").click(function() {
    $(".popup_message").fadeOut(600).promise().done(function() {
      $(this).remove();
    });
  });
  checkPopupScroll();

  $(".popup_scroll_enabled").click(function() {
    $(".popup_inner_wrapper").animate({
      scrollTop: $('.popup_inner_wrapper').prop("scrollHeight")
    }, 600);
  });

  $(".subpage_navigation_wrapper.fixable").each(function() {
    if (($(this).offset().top - $("header .top-bar").height() + 10) < $(window).scrollTop()) {
      $(this).css("height", $(this).height() + "px");
      $("body").addClass("sticky_bc");
    } else {
      $(this).css("height", "auto");
      $("body").removeClass("sticky_bc");
    }
  })

  $("section.ce_specialbox").each(function(i) {
    $(this).addClass((i % 2 == 0) ? "even" : "odd");
  })

  $("body .subpage_navigation a").each(function(){
    if(window.location.pathname == $(this).attr("href")){
      $(this).addClass("active");
    }
  })

  wrapItems(".accordeon", '<div class="accordeons_wrapper">');

  $(".accordeon_title").click(function(){
    $(this).toggleClass("active");
    $(this).parent().find(".accordeon_content").slideToggle();
  })

  $('[href^="tel:"], [href^="mailto:"], [href^="javascript:linkTo_UnCryptMailto"]').click(function() {
    var value = ($(this).attr("href").includes("tel")) ? "+390471610123" : "info@hotel-mondschein.it";
    gtag('event', "click", {
      'event_category': 'CTA click',
      'event_label': ($(this).attr("href").includes("tel")) ? "Telefon" : "E-Mail",
      'value': value
    });
  });
});

function wrapItems(target, wrap) {
  $.fn.reverse = [].reverse;
  var invert = ':not(' + target + ')'; // we create the invert to find the breakpoints
  var breakpoints = $('main > *' + invert); // find the breakpoints in our container

  breakpoints.each(function() {
    $(this).nextUntil(invert).wrapAll(wrap); // get the matching elements efter this breakpoint and wrap them
  });

  breakpoints.first().prevUntil(invert).reverse().wrapAll(wrap); // wrap the elements before the first breakpoint
}

$(window).scroll(function() {
  $(".subpage_navigation_wrapper.fixable").each(function() {
    if (($(this).offset().top - $("header .top-bar").height() + 10) < $(window).scrollTop()) {
      $(this).css("height", $(this).height() + "px");
      $("body").addClass("sticky_bc");
    } else {
      $(this).css("height", "auto");
      $("body").removeClass("sticky_bc");
    }
  })
})

$(window).resize(function() {
  checkPopupScroll();
})

function checkPopupScroll() {
  try {
    if ($(".popup_inner_wrapper").isScrollable() && !$(".popup_inner").hasClass("scrollable")) {
      $(".popup_inner").addClass("scrollable");
    } else if (!$(".popup_inner_wrapper").isScrollable()) {
      $(".popup_inner").removeClass("scrollable");
    }
  } catch (e) {}
}

$(window).resize(function() {
  /* fix responsive pricetable navigation */
  fixResponsivePricetableNavigation();
  /* END fix responsive pricetable navigation */

  /* load offer */
  if ($('.offer_overview_inner_wrapper').length > 0) {
    loadOffer();
  }
  /* END load offer */
});

$(window).scroll(function() {
  /* fix responsive pricetable navigation */
  fixResponsivePricetableNavigation();
  /* END fix responsive pricetable navigation */

  /* load offer */
  if ($('.offer_overview_inner_wrapper').length > 0) {
    loadOffer();
  }
  /* END load offer */
});
/* END ac functions */

/* load offer */
function loadOffer() {
  if ($('.offer_overview_inner_wrapper').isInViewport('reload', 100) && !$('.offer_overview_inner_wrapper').hasClass('loaded')) {
    /* offer */
    $('.offer_overview_inner_wrapper').each(function() {
      $(this).addClass('loaded');
      $(this).make_offer();
    });
    /* END offer */
  }
}
/* END load offer */

/* fix responsive pricetable navigation */
function fixResponsivePricetableNavigation() {
  if ($('.responsive_table_wrapper').length) {
    var offset = 0;
    if ($('.top-bar').length) {
      var offset = $('.top-bar').height();
    }
    if ($('.responsive_table_wrapper').isInViewport('pricetable', offset + 15)) {
      $('.responsive_table_navigation_wrapper').addClass('fixed');
      $('.pricetable .responsive_table .responsive_table_navigation_inner_wrapper').css({
        'top': offset
      });
    } else {
      $('.responsive_table_navigation_wrapper').removeClass('fixed');
      $('.pricetable .responsive_table .responsive_table_navigation_inner_wrapper').css({
        'top': 'auto'
      });
    }
  }
}
/* END fix responsive pricetable navigation */

/* is in viewport */
$.fn.isInViewport = function(type, dummy) {
  var elementTop = 0;
  if (typeof $(this).offset() != "undefined") {
    elementTop = $(this).offset().top;
  }
  var elementBottom = elementTop + $(this).outerHeight();
  var viewportTop = $(window).scrollTop();
  var viewportBottom = viewportTop + $(window).height();
  if (type == 'debug') {
    /* debug */
    console.log('==============');
    console.log('Abstand oben:' + elementTop);
    console.log('Abstand unten:' + elementBottom);
    console.log('Viewport oben:' + viewportTop);
    console.log('Viewport unten:' + viewportBottom);
    console.log('==============');
    /* END debug */
  } else if (type == 'pricetable') {
    /* fix responsive pricetable navigation */
    return ((viewportTop + dummy) > elementTop) && (viewportTop < (elementBottom - dummy));
    /* END fix responsive pricetable navigation */
  } else if (type == 'reload') {
    /* reload */
    return ((viewportBottom + dummy) > elementTop) && (viewportTop < (elementBottom - dummy));
    /* END reload */
  }
};
/* END is in viewport */

/* scroll down */
function scrollDown(distance, element) {
  var scroll_height = distance;
  if (element != '' && element != null && element != undefined) {
    if ($(element).length) {
      scroll_height = $(element).offset().top;
    }
  }

  $('html, body').stop().animate({
    scrollTop: scroll_height
  }, 'slow');
}

/* END scroll down */

function get_domain(url) {
  var referrer = url;
  var arrReferrer = referrer.split("/");

  return arrReferrer[2];
}

function initMap() {
  var locations = [];

  $(".gmaps_poi").each(function() {
    var content = "";
    content += "<div style='font-size: 22px; margin-bottom: 15px; padding: 0px 20px; text-align:center'>" + $(this).attr("data-name") + "</div>";
    content += "<a style='display: block; text-align:center' href='" + $(this).attr("data-link") + "' target='_blank'>";
    content += "<img height='60' src='" + $(this).attr("data-img") + "' />";
    content += "</a>";
    content += "<div style='margin-top: 15px'>" + $(this).attr("data-extratext") + "</div>";

    var loc = $(this).attr("data-loc").split("#");

    var newLoc = {
      lat: loc[0],
      lng: loc[1],
      content: content
    };

    locations.push(newLoc);

    $(this).remove();
  });

  const infowindow = new google.maps.InfoWindow();
  const map = new google.maps.Map(document.getElementById('map'), {
    center: {
      lat: 46.9587962,
      lng: 11.8094108
    },
    zoom: 8
  });

  locations.forEach(placeMarker);

  function placeMarker(loc) {
    const marker = new google.maps.Marker({
      position: new google.maps.LatLng(loc.lat, loc.lng),
      map: map
    });
    google.maps.event.addListener(marker, 'click', function() {
      infowindow.close(); // Close previously opened infowindow
      infowindow.setContent(loc.content);
      infowindow.open(map, marker);
    });
  }
}
