// <Coman Javascript file>
//
// version: <1.0>
// author: Codingpeople
// email: support@codingpeople.com
// website: http://www.codingpeople.com

$(document).ready(function($) {
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
	// <Pistenbericht SHOW/HIDE>
	$("#top-navigation-wetter-tab").hide();
	/*
	$(".weather_ctrl").hover(function(){
		$("#top-navigation-wetter-tab").show();
	}, function(){
		$("#top-navigation-wetter-tab").hide();
	});
	*/

	$(".weather_ctrl").click(function(e){
		$("#top-navigation-wetter-tab").toggle();
		// console.dir(e);
		if($(e.target).attr("href") == "#")
			return false;
	});

	// <Warenkorb SHOW/HIDE>
	/*
	$("#top-navigation-warenkorb-tab").hide();
	$(".warenkorb").hover(function(){
		$("#top-navigation-warenkorb-tab").show();
	}, function(){
		$("#top-navigation-warenkorb-tab").hide();
	});
	*/

	$("#top-navigation-warenkorb-tab").hide();
	$(".warenkorb").click(function(e){
		$("#top-navigation-warenkorb-tab").toggle();
		if($(e.target).attr("href") == "#")
			return false;
	});

	// Warenkorb und Wetter-Tab schliessen, wenn in die Seite geklickt wird
	$(document).click(function(evt) {
		var evtTarget = evt.target;
		if(!$(evtTarget).is('a.openbox')
			&& $(evtTarget).parents('div#top-navigation-wetter-tab').length == 0
			&& $(evtTarget).parents('div#top-navigation-warenkorb-tab').length == 0) {
		// rufe schliessen-Funktion der Boxen auf
		if(!$("#top-navigation-wetter-tab").is(":hidden")) { $("#top-navigation-wetter-tab").hide(); }
		if(!$("#top-navigation-warenkorb-tab").is(":hidden")) { $("#top-navigation-warenkorb-tab").hide(); }
		}
	});


	// <Slideimage Gallery Function>
	//$('.selectbox').selectbox();
	$(".bannerslider").find(".ex_text:first").show();
	$(".bannerslider .slide").mouseover(function(){
      resize($(this))
    });


	// resize interaktive karte
	$(window).resize(function(){
		var viewportHeight = window.innerHeight ? window.innerHeight : $(window).height();
		$("#interaktivekarte #Laax").height(viewportHeight - $("#footer").height()-$("#header").outerHeight());
	});

	$(window).resize();

	// <accordion Javascript>
	$.fn.accordion = function() {
		var el = $(this),
			items = el.children('li'),
			active = el.find('.accordion-active'),
			cookie = {
				url: $.cookie('laax-accordion-url'), // Cookie has to be site-specific, but IE does not allow to include the file name in a cookie path (http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx)
				item: $.cookie('laax-accordion-item')
			},
			url = location.href;

		if (url.indexOf('?') != -1) {
			url = url.slice(0,location.href.indexOf('?'))
		}

		// Get currently active item: cookie wins over class
		if (cookie.item && cookie.url == url) {
			active.removeClass('accordion-active');
			active = $(items[cookie.item]).addClass('accordion-active');
		} else if (active.length == 0) {
			// Select first item if there is no class or cookie
			active = $(items[0]).addClass('accordion-active');
		}
		var current = items.index(active);

		// Hide all
		items.each(function(){
			var item = $(this);
			//console.log(item);
			if (!item.hasClass('accordion-active')) {
				item.find('.accordion-content').hide();
			}
		});

		// Toggle items
		function showItem(i) {
			if (current == i){ //return false;
				active.removeClass('accordion-active');
				active.find('.accordion-content').hide('normal');

				current = -1;
				return;
			}
			// Hide currently active item
			active.removeClass('accordion-active');
			active.find('.accordion-content').hide('normal');

			// Show new item
			var item = el.find('li:nth-child('+(i+1)+')');
			item.addClass('accordion-active');
			item.find('.accordion-content').show('normal');

			// Set cookies
			if (cookie.url != location.href) {
				$.cookie('laax-accordion-url', location.href);
			}
			$.cookie('laax-accordion-item', i);

			current = i;
			active = item;
		}

		el.find('a.accordion-link').click(function(){
			var link = $(this),
				i = items.index(link.parents('li'));

			showItem(i);
			return false;
		});
	}
	$('.accordion').accordion();




	$('.toggleContent').hide();
	$('.toggleLink').click(function(){
		var link = $(this),
			el = $(this).nextAll('.toggleContent');
		if (el.is(':visible')) {
			el.slideUp('normal');
			link.removeClass('active');
		} else {
			el.slideDown('normal');
			link.addClass('active');
		}
	});


	// tooltips/hoverboxes
	if ($().hoverbox) {
		$('.hoverbox').hoverbox();
		$('.hoverboxcard').hoverbox({id: "hoverboxcard"});

		$('.hoverbox-left').hoverbox({left: -250, top: -15});
		$('.hoverboxcard-left').hoverbox({id: "hoverboxcard", left: -250, top: -15});
	}

	//  datepicker mit anzahl-tage-auswahl

	/*
	$("input.selectdate").datepicker({
		showOn: 'both',
		buttonImage: 'fileadmin/laax_html/icon/date-icon-2.gif',
		buttonImageOnly: true
	});
	*/

	if ($().datepicker) {
		$.datepicker.regional['de'] = {
				closeText: 'schlie§en',
				prevText: '&#x3c;zurck',
				nextText: 'Vor&#x3e;',
				currentText: 'heute',
				monthNames: ['Januar','Februar','Mrz','April','Mai','Juni',
				'Juli','August','September','Oktober','November','Dezember'],
				monthNamesShort: ['Jan','Feb','Mr','Apr','Mai','Jun',
				'Jul','Aug','Sep','Okt','Nov','Dez'],
				dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
				dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
				dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
				weekHeader: 'Wo',
				dateFormat: 'dd.mm.yy',
				firstDay: 1,
				isRTL: false,
				showMonthAfterYear: false,
				yearSuffix: ''
			};
			$.datepicker.setDefaults($.datepicker.regional['de']);

		$.datepicker.setDefaults({
			showOn: 'both',
			buttonImage: 'fileadmin/framework/images/icons/calendar.gif',
			buttonImageOnly: true,
			firstDay: 1,
			minDate: new Date(),
			beforeShowDay: checkDateBooking
		});

		$("input.selectdate.mondaysonly").datepicker({beforeShowDay: function(d){if(d.getDay() == 1) return [1, '']; else return [0, ''];}});
		$("input.selectdate").datepicker();


		// ferienwohnung-second.html: Verfgbarkeitskalender
		$(".availability").each(function(){
			var self = $(this),
				input = $('<input type="text" />').prependTo(self),
				link = self.find('span.link').hide(),
				available = self.find('.available').hide(),
				dates = available.find('span.dates').text().replace(/\s/g,'').split(','),
				today = new Date();

			input.datepicker({
				buttonImage: '',
				buttonImageOnly: false,
				buttonText: link.text(),
				// based on http://emirplicanic.com/javascript/jquery-highlight-multiple-date.php
				beforeShowDay: function(date){
					var state = false;
					$.each(dates,function(i,val){
						val = $.datepicker.parseDate('dd.mm.yy', val);
						if (date - val == 0) {
							state = true;
							return false;
						}
					});
					if (state) {
						return [false,'ui-datepicker-available']
					} else if (date - today < -86399999) {
						return [false,'ui-datepicker-unavailable-inactive'];
					} else {
						return [false,'ui-datepicker-unavailable'];
					}
				}
			});

			if ($.browser.msie && $.browser.version < 9) {
				var width = link.width();
				self.find('button').width(width+20);
			}
		});


		$(".dateblock").each(function(){
			var s = $(this).find(".startdate");
			var e = $(this).find(".enddate");
			var d = $(this).find(".day_select");


			s.change(function(){
				if($(e).datepicker("getDate")){
					var date_start = $(s).datepicker("getDate");
					var date_end = $(e).datepicker("getDate");

					var diff = (date_end.getTime() - date_start.getTime())/(24*60*60*1000);

					$(e).datepicker('option', { minDate: date_start });

					if(diff < 0){
						$(e).datepicker('setDate', date_start);
					}

					if(d.length){
						d.val(diff);
					}

				}else{
					var date = $(s).datepicker("getDate");
					if(d.length){
						date.setDate(date.getDate() + parseInt(d[0].value));
					}else{
						date.setDate(date.getDate() + 1);
					}
					$(e).datepicker("setDate", date);
					$(e).datepicker('option', { minDate: date });
				}
			});

			e.change(function(){
				if($(e).datepicker("getDate")){
					if($(s).datepicker("getDate")){
						var date_start = $(s).datepicker("getDate");
						var date_end = $(e).datepicker("getDate");

						var diff = (date_end.getTime() - date_start.getTime())/(24*60*60*1000);

						if(d.length){
							if(diff > 0 && diff < 15){
								d.val(diff);
							}else{
								d.val('');
							}
						}

					}else{
						var date = $(e).datepicker("getDate");
						if(d.length){
							date.setDate(date.getDate() - parseInt(d[0].value));
						}else{
							date.setDate(date.getDate() - 1);
						}
						$(s).datepicker("setDate", date);
					}
				}
			});


			d.change(function(){
				var date = $(s).datepicker("getDate");
				if(date && this.value){
					date.setDate(date.getDate() + parseInt(this.value));
					$(e).datepicker("setDate", date);
				}
			});

			e.change();

		});
	}


  	/*$("#home-sub-navigation div.accordion").hide();
	$("#home-sub-navigation .accordion:last").slideDown("normal");
  	$("#home-sub-navigation li a:first").removeClass("active");
  	$("#home-sub-navigation .accordion:last").prev().addClass("active");
	$("#home-sub-navigation li a.accordion-link").click(
		function() {
		 var checkElement = $(this).next();
		 if((checkElement.is("div.accordion"))) {
			$("#home-sub-navigation li a").removeClass("active");
			$("#home-sub-navigation .accordion").slideUp("normal",function(){
				checkElement.slideDown("normal");
			});
			$(this).addClass("active");
			return false;
		}
	 });


	$('#interactive_accordion dl.accordion').hide();
  	$('#interactive_accordion li:first .accordion').show();
  	$('#interactive_accordion li a:first').addClass("active");
	$('#interactive_accordion li a.accordion-link').click(
		function() {
		 var checkElement = $(this).next();
		  if((checkElement.is("dl.accordion")) && (checkElement.is(":visible"))) {
		   return false;
			}
		  if((checkElement.is("dl.accordion")) && (!checkElement.is(":visible"))) {
			$("#interactive_accordion dl.accordion:visible").slideUp("normal");
			checkElement.slideDown("normal");
			$("#interactive_accordion li a").removeClass("active");
			$(this).addClass("active");
			return false;
			}
	 });

	 // <accordion Javascript>
	$('#ferienwohnung_accordion div.accordion').hide();
  	$('#ferienwohnung_accordion li:first .accordion').show();
  	$('#ferienwohnung_accordion li a:first').addClass("active");
	$('#ferienwohnung_accordion li a.accordion-link').click(
		function() {
		 var checkElement = $(this).next();
		  if((checkElement.is("div.accordion")) && (checkElement.is(":visible"))) {
		   return false;
			}
		  if((checkElement.is("div.accordion")) && (!checkElement.is(":visible"))) {
			$("#ferienwohnung_accordion div.accordion:visible").slideUp("normal");
			checkElement.slideDown("normal");
			$("#ferienwohnung_accordion li a").removeClass("active");
			$(this).addClass("active");
			return false;
			}
	 });*/

	// <Tab Content Javascript>
	$(".tab_content").hide();
	if ($('ul.tabs li.active').length == 0) {
		$("ul.tabs li:first").addClass("active").show();
		$(".tab_content:first").show();
	}
	else {
		var activeTab = $('ul.tabs li.active').find("a").attr("href");
		$(activeTab).show();
	}
	$("ul.tabs li:last").addClass("noborder");
	//On Click Event
	$("ul.tabs li").click(function() {
		$("ul.tabs li").removeClass("active");
		$(this).addClass("active");
		$(".tab_content").hide();
		var activeTab = $(this).find("a").attr("href");
		$(activeTab).fadeIn();
		return false;
	});

	// <equalHeight Function>
	equalHeight($(".equalheight"));

	// <Play Pause Button Function>

	var ssPlaying = false;
	$("#display-show a").addClass("play");

	$("#slide-show-control .slidepaly a").click( function(){
		$(this).toggleClass("pauseslide", !ssPlaying);
		$("#display-show a").toggleClass("play", ssPlaying);
		$("#display-show a").attr("title", "Pause");
		$("#display-show a").text("Pause");
		var movie = document.getElementById('bgcontent');
		if(ssPlaying){
			movie.pauseSS();
			if($.browser.msie) {
				$("#content").show();
				$("#display-show").hide();
			} else {
				$("#content").show("slide", { direction: "right" }, 800);
				$("#display-show").fadeOut("normal");
			}
		}else{
			movie.playSS();
			if($.browser.msie) {
				$("#content").hide();
				$("#display-show").show();
			} else {
				$("#content").hide("slide", { direction: "right" }, 800);
				setTimeout("$('#display-show').fadeIn('800');",600);
			}
		}
		ssPlaying = !ssPlaying;
		return false;
	});

	$("#display-show a").click( function(){
		$(this).toggleClass("play", ssPlaying);
		$("#slide-show-control .slidepaly a").toggleClass("pauseslide", !ssPlaying);
		var movie = document.getElementById('bgcontent');
		if(ssPlaying){
			$("#slide-show-control .slidepaly a").text("Diashow starten");
			movie.pauseSS();
			$("#content").show("slide", { direction: "right" }, 800);
			$("#display-show").fadeOut("normal");
		}else{
			$("#slide-show-control .slidepaly a").text("Diashow stoppen");
			movie.playSS();
			$("#content").hide("slide", { direction: "right" }, 800);
			setTimeout("$('#display-show').fadeIn('800');",600);		}
		ssPlaying = !ssPlaying;

		return false;
	});


	// <Video Slider js>
	$("#relaunch .video-gallery-content").hide();
	$("#relaunch .bildergalerie-images:last").addClass("bottom-border");
	$("#relaunch .arrow-position a").toggle( function(){
		$(this).parents(".bildergalerie-images").find(".video-gallery-content").slideDown("slow");
		$(this).parents(".bildergalerie-images").find(".video-normalmode").hide();
		$(this).addClass("downarrrow").text("Zuklappen");
	},function(){
		$(this).parents(".bildergalerie-images").find(".video-gallery-content").slideUp("slow");
		$(this).parents(".bildergalerie-images").find(".video-normalmode").show();
		$(this).removeClass("downarrrow").text("Alle anzeigen");
	});


	// <touren Slider js>
	$(".touren-slide .touren-cnt-box").hide();
	$(".touren-slide .touren-cnt .lst a").toggle( function(){
		$(this).parents(".touren-slide").find(".touren-cnt-box").slideDown("slow");
		$(this).parents("ul").removeClass("b-border");
		$(this).parents("ul").addClass("gray");
		$(this).addClass("down");
		$(this).parents(".touren-slide").find(".smallslider").loopedSlider();
	},function(){
		$(this).parents(".touren-slide").find(".touren-cnt-box").slideUp("slow");
		$(this).parents("ul").removeClass("gray");
		$(this).parents("ul").addClass("b-border");
		$(this).removeClass("down");
	});


	// <laax image slider js>
	if($("#laaxslider").length){
		$("#laaxslider").loopedSlider();
	}

	// Checkout: showOverviewAndPayment
	// --------------------------------
	// set form action dynamically on click on some of the submit buttons
	$('#overviewAndPaymentForm button[type=submit]').click(function() {
		$('#overviewAndPaymentForm #formaction').val($(this).attr('rel'));
	});
	// toggle item comment text field
	$('#overviewAndPaymentForm input.toggleItemComment').change(function() {
		var commentInput = $(this).closest('.itemCommentBox').find('.itemCommentInput');
		if ($(this).is(':checked')) {
			commentInput.show().removeAttr('disabled');
		}
		else {
			commentInput.hide().attr('disabled', 'disabled');
		}
	});
	// initialize item comment boxes
	$('#overviewAndPaymentForm .itemCommentBox').each(function() {
		if ($('.itemCommentInput', this).val().length > 0) {
			// check the checkbox if a comment exists
			$('.toggleItemComment', this).attr('checked', 'checked');
		}
		else {
			// hide and disable the input if no comment exists
			$('.itemCommentInput', this).hide().attr('disabled', 'disabled');
		}
	});


/*----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
});

function checkDateBooking(date){

	if( typeof(validBookingDays) != 'undefined' && typeof(availableDates) != 'undefined' ){

		var indexOfD = validBookingDays.indexOf(date.getDay()+',');

		var isAvailAble = false;
		var isAvailAbleColor = '';
		var dateutc = date.getTime()+200;
		if( dateutc >= availableDates.df1.getTime() && dateutc <= availableDates.dt1.getTime() ){ isAvailAbleColor = 'green'; isAvailAble = true; }
		if( dateutc >= availableDates.df2.getTime() && dateutc <= availableDates.dt2.getTime() ){ isAvailAbleColor = 'green'; isAvailAble = true; }
		if( dateutc >= availableDates.df3.getTime() && dateutc <= availableDates.dt3.getTime() ){ isAvailAbleColor = 'green'; isAvailAble = true; }
		if( dateutc >= availableDates.df4.getTime() && dateutc <= availableDates.dt4.getTime() ){ isAvailAbleColor = 'green'; isAvailAble = true; }
		if( dateutc >= availableDates.df5.getTime() && dateutc <= availableDates.dt5.getTime() ){ isAvailAbleColor = 'green'; isAvailAble = true; }


		if( indexOfD>=0 ){
			return [isAvailAble, /* isAvailAbleColor */ '' ];
		}else { return [false, '']; }

	}else {
		return [true, ''];
	}

}
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* set background to avoid strange movement */
function processBannerImgs() {
	var $banner, $slides

	$banner = jQuery("div#banner");
	$slides = $banner.find("div.slide");

	$slides.each(function(){
		var left, imgleft, $img, $that = $(this);

		left = $that.css("left");
		$img = $that.find("img");
		imgleft = $img.css("left");

		$that.data("left", left);
		$img.data("left", imgleft)

	});

	$slides.filter(".active").find("img").css("left", 0);
}


jQuery(function(){
	processBannerImgs();
});

// <Font Resize Function>
function resize($slide){
	/*if($(this).hasClass("w130")){
		$(".bannerslider .slide").unbind("mouseover", resize);
		$(".bannerslider .w729").find(".ex_text").hide();
	  	$(".bannerslider .w729").animate({ width:"130px"}, "slow").removeClass("w729").addClass("w130");
	  	$(this).animate({ width:"713px"}, "slow", function(){
			$(this).find(".ex_text").css("display","block");
			$(".bannerslider .slide").bind("mouseover", resize);
	  	}).removeClass("w130").addClass("w729"); ;
  	}*/
  	var bigWidth, width, slideID, $otherSlides, $slide1, $slide2, $slide3, $img, speed, $slide1img, $slide2img, $slide3img;

  	slideID = $slide.attr("id");

  	speed = 500;

  	$slide1 = jQuery("#slide1");
  	$slide2 = jQuery("#slide2");
  	$slide3 = jQuery("#slide3");
  	$slide1img = $slide1.find("img");
  	$slide2img = $slide2.find("img");
  	$slide3img = $slide3.find("img");

  	$img = $slide.find("img");

  	bigWidth = 713;
  	width = 130;

  	/* $otherSlides = $("#banner").find("div.slide:not(#" + slideID + ")");

  	$otherSlides.stop().animate({width: width}, speed) */


  	switch(slideID)
	{
	case "slide1":
  		$slide2.stop().animate({left: bigWidth + "px", width: width + "px"}, speed);
  		$slide3.stop().animate({left: (bigWidth + width) + "px", width: width + "px"}, speed)

  		$slide.stop().animate({width: bigWidth + "px"})

  		$slide2img.stop().animate({left: $slide2img.data("left")}, speed)
  		$slide3img.stop().animate({left: $slide3img.data("left")}, speed, function(){
  			$slide1.find(".ex_text").fadeIn(speed / 3)
  		})


  		$slide2.find(".ex_text").hide()
  		$slide3.find(".ex_text").hide()

  	break;
	case "slide2":
  		$slide1.stop().animate({left: "0px", width: width + "px"}, speed);
  		$slide3.stop().animate({left: (bigWidth + width) + "px", width: width + "px"}, speed)
  		$slide.stop().animate({left: width + "px", width: bigWidth + "px"}, speed);

  		$slide1img.stop().animate({left: $slide1img.data("left")}, speed)
  		$slide3img.stop().animate({left: $slide3img.data("left")}, speed, function(){
  			$slide2.find(".ex_text").fadeIn(speed / 3)
  		})

  		$slide1.find(".ex_text").hide()
  		$slide3.find(".ex_text").hide()
  	break;
  	case "slide3":
  		$slide1.stop().animate({left: "0px", width: width + "px"}, speed);
  		$slide2.stop().animate({left: width + "px", width: width + "px"}, speed)
  		$slide.stop().animate({left: (width * 2) + "px", width: bigWidth + "px"}, speed)

  		$slide1img.stop().animate({left: $slide1img.data("left")}, speed)
  		$slide2img.stop().animate({left: $slide2img.data("left")}, speed, function(){
  			$slide3.find(".ex_text").fadeIn(speed / 3)
  		})

  		$slide1.find(".ex_text").hide()
  		$slide2.find(".ex_text").hide()

  	break;
	default:
  	// nothing
	}

	$img.stop().animate({left: "0"}, speed)

};
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
// <equalHeight Function>
function equalHeight(group) {
    var tallest = 0;
    group.each(function() {
        var thisHeight = $(this).height();
        if(thisHeight > tallest) {
            tallest = thisHeight;
        }
    });
    group.height(tallest);
};


/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}
var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}
expires='; expires='+date.toUTCString();}
var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
return cookieValue;}};
