// JavaScript Document
// kaernten.at jquery functions
function setThemeVisibility() {

    // Filter themes visibility by dates
    var start = parseDate(flashvars.from);
    var end = parseDate(flashvars.to);
    startmonth = start.month;
    endmonth = end.month;
	if (typeof(whatJSON) != 'undefined') {
		$(whatJSON).each(function () {
			var from = parseInt(this.from, 10);
			var to =  parseInt(this.to, 10);
			var tid = this.tid;
			var visible = true;
			if (to - from < 11) { // else whole year = everything visible
				if (end.year > start.year) {
					if (endmonth == startmonth) {
						// whole year, everything visible
						visible = true;
					} else if (startmonth <= to ||
								from <= endmonth ||
								(from > to && startmonth > endmonth)) {
						visible = true;
					} else {
						visible = false;
					}
				} else if (end.year == start.year) {
					if((startmonth <= from && end.month >= from) ||
						(startmonth >= from && startmonth <= to) ||
						(startmonth < endmonth && from > to && startmonth >= from && endmonth <= to ) ||
						(from > to && startmonth <= to) ||
						(from > to && (startmonth >= from || endmonth <=to || endmonth > from || startmonth < to ))) {
						visible = true;
					} else {
						visible = false;
					}
				}
			}
			$("#cb_tid_" + tid).each(function() {
				if (visible) {
					$(this).show();                      // <input>
					$(this).next().show();               // <span>
					$(this).next().next().show();        // <label>
					$(this).next().next().next().show(); // <br/>                   
				} else {
					$(this).hide();
					$(this).next().hide();
					$(this).next().next().hide();                
					$(this).next().next().next().hide();
					// uncheck option
					$(this).checkBox('changeCheckStatus', false);
				};
			 });
		});
	}
 }

function showWhen(field){
	var focuson = (field == "from")? '#Anreise' : '#Abreise';
	$('#Wann h4.openit').trigger('click');
	$(focuson).focus();
}

function addSuperior() {
	$(".star-rating:eq(4)").addClass("superior");
}


$(document).ready(function(){
	  $('.hiddenSubmit').hide();
	  
		//Flyout submenus
	  $('.flyout .content').hide();
	  $('.flyout.opened .content').show();
	  $('.flyout .trigger, #Wann h4, #Wann .temptext, .flyout .selected').css('cursor', 'pointer');
	  $('.flyout .trigger').click(function(event){
			event.preventDefault();
			$(this).toggleClass('opened');
			$(this).prev('.trigger').toggleClass('opened');
			$(this).nextAll('.temptext').hide();	
			$(this).nextAll('.content').slideToggle('0.5');
			if ($('button#VerfeinernToggle') && FELDER_VERBERGEN && FELDER_ANZEIGEN) {
				if ($(this).hasClass('opened'))
					$('button#VerfeinernToggle > span > span').html(FELDER_ANZEIGEN);
				else
					$('button#VerfeinernToggle > span > span').html(FELDER_VERBERGEN);
			}
		});
	  
	$('#VerfeinernSubmit').click(function(){
		$('button#VerfeinernToggle').trigger('click');
	});

	// wannwaswo auswahl  
	$('.quickselect.closed .content').hide();
	$('.quickselect .openit').css('cursor', 'pointer');
	$('.quickselect .openit').click(function(){
		$('.quickselect .content').slideUp();
		$(this).nextAll('.content').slideDown();
		$(this).parent('.quickselect').highlightFade({speed:1000, start:'yellow', end:'#ebf3f6'});
		});
	$('#SubmitWannWasWo button').click(function(){
		$('.quickselect .content').slideUp();
		});


	$('#PauschalenListe .trigger').click(function(){
		  $('#PauschalenListe .pauschale').toggleClass('transparent40');
		  $(this).parent().parent().parent('.pauschale').toggleClass('transparent100');
		  });
	
	// Activate Lightbox
	$('a.lightbox, a.biglightbox').lightBox({
	    imageLoading: '/Content/images/lightbox-ico-loading.gif',
	    imageBtnClose: '/Content/images/lightbox-btn-close.gif',
	    imageBtnPrev: '/Content/images/lightbox-btn-prev.gif',
	    imageBtnNext: '/Content/images/lightbox-btn-next.gif',
		imageBlank:	'/Content/images/lightbox-blank.gif',
	    containerResizeSpeed: 350,
	    txtImage: 'Bild',
	    txtOf: 'von'
	});
	
	
	
  // Accessible Form replacement
  $('input[type=radio]:not(".star"), input[type=checkbox]').checkBox();
	
	// IconSelection: Hide Labels, Apply Backgrounds
	$('.selectBoxes').addClass('icon');

	
	// activate Datepicker
	$('.dateselect').datepicker({ 
		dateFormat: 'dd.mm.yy'
	});
	
	// make striped tables
	$('table.striped tr:even').addClass('light-bg');
	$('table.striped thead th').addClass('blue-bg');
	
	// Anfrageformular: Dummy Checkbox-Iconreplacement	
	$('.dummy').click(function(){
	    $(this).toggleClass('dummychecked');
	});
	
	// Anfrageformular: generate Boxes for Age of Children
	$('#DB_KINDER').change(function() {
  	var numKids = this.options[this.selectedIndex].text;
		
		$('#dieKinder').html('');
		
		for (i = 0; i < numKids; i++) {
		    if(i < 4){
		        $('#dieKinder').append('<label>Alter Kind ' + (i + 1) + ':</label><select name=DB_ALTERKIND' + (i + 1) + '><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option></select><br />');
			}
		}
	});
	
	// Accessible checkboxes do not react on reset button
	$(':reset').click(function(){
		$('input[type=radio], input[type=checkbox]').checkBox('changeCheckStatus', false);
		// Star rating
		$('div.star_on').removeClass("star_on");
		$('input[name="kategorie"] input[name="maxkategorie"]').val("");
	});
	
	addSuperior();

	/**************************************************************
	 * WhatWhenWhere - Toolbox
	 **************************************************************/
	/**
	 * Autocompletion for Geonames/Cities/...
	 */

	$('#wheresearch, #zf_verfeinern_places, #katalog_verfeinern_places, #regionen_ortssuche').autocomplete("/de.aspx/Proxy/MapexplorerWhereSearch/?rid=218,209", {
		minChars: 2,
		max: 20,
		matchContains: true,
		highlightItem: true,
		multiple: false
	}).result(function(event, data, formatted) {
		$('#wheresearch, #zf_verfeinern_places, #katalog_verfeinern_places').attr('value', '');
		if (data) {
			var locid = "cb_location-" + data[1];
			var name = locid;
			var parid = $(this).attr("id");
			var value = data[2];
			var insertpoint = $('#' + parid + ' ~ .GeolocationListe').children(":first");
			
			// #regionen_ortssuche simply redirects to gemeinde article
			if (parid == "regionen_ortssuche") {
				var url = "/de.aspx/Articles/Orte/" + data[1] + "/?whenFrom=" + flashvars.from + "&whenTo=" + flashvars.to;
				window.location.href = url;
				return;
			}
			
			// whatWhenWhere needs different ids and the gid as value
			if (parid != "wheresearch") {
				locid = "zf_gemeinde-" + data[1];
				name = "gemeinde";				
				value = data[1];
				var hiddenitem = "<input type='hidden' name='gemdata' value='" + data[0] + "|" + data[1] + "'/>";
				if (parid == "katalog_verfeinern_places") {
					insertpoint = $('#VerfeinernUnterkunftGemeinde .GeolocationListe').children(":first");
				}
				insertpoint.before(hiddenitem);
			}
			var item = "<label for='" + locid + "'>" + data[0] + "</label><input class='geolocation' type='checkbox' name='" + name + "' id='" + locid + "' value='" + value + "' checked='checked'/><br/>";
			insertpoint.before(item);
			$('#' + locid).checkBox();
		} else return false;
	});

	
	  // submit whatwhenwhere
	  $("#submit_whatwhenwhere, #where_finished").click(function() {
		  
		 // where and what
		 var tags = "";
		 $("input:checkbox[id^=cb_rid-], input:checkbox[id^=cb_location-], input:checkbox[id^=cb_tid]").each (function (){
				if (this.checked && tags.indexOf(this.value + ",") == -1) {
					tags += this.value + ",";
				}
			 });
		 
		 tags = tags.substr(0, tags.length - 1);
		 
		 // when
		 var today = new Date();
		 var month = today.getMonth() + 1;
		 var from = today.getDate() + "." + month + "." + today.getFullYear();
		 var to = today.getDate() + "." + month + "." + (today.getFullYear() + 1);
		 var anreise = ($("#Anreise").attr("value") == "TT.MM.JJ")? from : $("#Anreise").attr("value");
		 var abreise = ($("#Abreise").attr("value") == "TT.MM.JJ")? to : $("#Abreise").attr("value");
		 
		 document.location.href = "/" + LANG + ".aspx/Home/Suche/" + anreise + "/to/" + abreise + "/" + tags;
		 
		  return false;
	  });

	/**
	 * Region selector
	 */
	  var regions = [
	        { rname: 'NationalparkRegion Hohe Tauern Kärnten', rid: 218 },
	        { rname: 'Liesertal /  Maltatal', rid: 209 },
	        { rname: 'Rennweg - Katschberg', rid: 217 },
	        { rname: 'Millstätter See', rid: 210 },
	        { rname: 'Outdoorpark Oberes Drautal', rid: 212 },
	        { rname: 'Gail-Gitsch-Lesachtal', rid: 202 },
	        { rname: 'Villach', rid: 206 },
	        { rname: 'Nockberge - Bad Kleinkirchheim', rid: 211 },
	        { rname: 'Mittelkärnten', rid: 219 },
	        { rname: 'Feldkirchen', rid: 215 },
	        { rname: 'Wörthersee', rid: 214 },
	        { rname: 'Klagenfurt', rid: 201 },
	        { rname: 'Carnica Region Rosental', rid: 205 },
	        { rname: 'Lavanttal', rid: 208 },
	        { rname: 'Klopeiner See / Südkärnten', rid: 213 }
	   ];
	  
		// For each of the regions, add an image with the area overlay to the document and hide it
	  for (var i = 0; i < regions.length; i++) {	  
		 var rid = regions[i].rid;
		 var src = "/Content/images/regions/" + rid + ".gif";
		 $('#ktnimg').after("<img id='layer" + rid + "' usemap='#ktn_240x113_map' src='" + src + "' alt='" + regions[i].rname + "' style='position: absolute;' class='regionlayer-hidden'/>");
	  }

	   // Apply highlighting for both map areas and checkbox labels / checkboxes
	   $('#map_regionen area').hover(
			function() {
			    var rid = $(this).attr("id").substr(3);
			    $("#layer" + rid).removeClass('regionlayer-hidden').addClass('regionlayer-shown');
			    $('#cb_rid-' + rid).next().addClass("ui-checkbox-state-hover");
			},
			function() {
			    var rid = $(this).attr("id").substr(3);
			    $("#layer" + rid).removeClass('regionlayer-shown').addClass('regionlayer-hidden');
			    $('#cb_rid-' + rid).next().removeClass("ui-checkbox-state-hover");
			}).click( function() {
				// Clicking a map area makes the region permanent an checks the corresponding checkbox
			    var rid = $(this).attr("id").substr(3);
			    $('#layer' + rid).toggleClass('regionlayer-active');
			    $('#cb_rid-' + rid).next().trigger("click");
			    return false;
			});
					
		    // Initialize map region state to the current checkbox state
		    // and apply mouseover, mouseout and click reversely
		    $('input[id^=cb_rid-]').each(function() {
		        var rid = $(this).attr('id').substr(7);
		        if ($(this).next().hasClass('ui-checkbox-state-checked')) {
		            $("#layer" + rid).removeClass('regionlayer-hidden').removeClass('regionlayer-shown').addClass('regionlayer-active');
		        } else {
		            $("#layer" + rid).removeClass('regionlayer-active').removeClass('regionlayer-hidden').addClass('regionlayer-hidden');
		        }
		    }).bind('checkBoxchange', function(obj, ea) {
		        var rid = $(this).attr('id').substr(7);
		        if (ea.checked == true) {
		            $("#layer" + rid).removeClass('regionlayer-hidden').removeClass('regionlayer-shown').addClass('regionlayer-active');
		        } else {
		            $("#layer" + rid).removeClass('regionlayer-active').removeClass('regionlayer-hidden').addClass('regionlayer-hidden');
		        }
		    });

		    $('label[for^=cb_rid-]').hover(
	               function() {
	                   var rid = $(this).attr('for').substr(7);
	                   $('#layer' + rid).removeClass('regionlayer-hidden').addClass('regionlayer-shown');
	               },
	               function() {
	                   var rid = $(this).attr('for').substr(7);
	                   $('#layer' + rid).removeClass('regionlayer-shown').addClass('regionlayer-hidden');
	               }
	         );
		    $('input[id^=cb_rid-] ~ span').hover(
	               function() {
	                   var rid = $(this).prev().attr('id').substr(7);
	                   $('#layer' + rid).removeClass('regionlayer-hidden').addClass('regionlayer-shown');
	               },
	               function() {
	                   var rid = $(this).prev().attr('id').substr(7);
	                   $('#layer' + rid).removeClass('regionlayer-shown').addClass('regionlayer-hidden');
	               }
		    );
		    
		    // uncheck all regions and selections
		    $('#where_uncheckAll, #zf_verfeinern_uncheckAll').click ( function() {
			 $('input[id^=cb_rid-], input[id^=zf_verfeinern-]').checkBox('changeCheckStatus', false);
			 $('input[id^=cb_location-], input[id^=zf_gemeinde-]').each(function() {
				 $(this).prev().remove();
				 $(this).next().next().remove();
				 $(this).next().remove();
				 $(this).remove();
			 });
			 return false;
		  });
		    
		/* German initialisation for the jQuery UI date picker plugin. */
		/* Written by Milian Wolff (mail@milianw.de). */
		jQuery(function($){
			$.datepicker.regional['de'] = {
					closeText: 'schliessen',
					prevText: '< M yy',
					nextText: 'M yy >',
					currentText: 'heute',
					clearText: 'löschen',
					monthNames: ['Januar','Februar','März','April','Mai','Juni',
					'Juli','August','September','Oktober','November','Dezember'],
					monthNamesShort: ['Jan','Feb','Mar','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'],
					dateFormat: 'dd.mm.yy',
					firstDay: 1,
					isRTL: false};
			$.datepicker.regional['en'] = {
					closeText: 'close',
					prevText: '< M yy',
					nextText: 'M yy >',
					currentText: 'M d, yy',
					clearText: 'clear',
					monthNames: ['January','February','March','April','May','June',
					'July','August','September','October','November','December'],
					monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun',
					'Jul','Aug','Sep','Oct','Nov','Dec'],
					dayNames: ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
					dayNamesShort: ['Su','Mo','Tu','We','Th','Fr','Sa'],
					dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
					dateFormat: 'dd.mm.yy',
					firstDay: 1,
					isRTL: false};
			if (LANG == 'de') {
				$.datepicker.setDefaults($.datepicker.regional['de']);
			} else {
				$.datepicker.setDefaults($.datepicker.regional['en']);
			}
		});
		
		// Trigger theme visibility with currently set date...
		setThemeVisibility();	
		// this is also called from whenCommunication.js, whenever a date changes!
		
});




