// JavaScript Document
// kaernten.at jquery functions
var lightboxoptions = {
    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'
};

function showWhen(field){
	var focuson = (field == "from")? '#Anreise' : '#Abreise';
	$('#Wann h4.openit').trigger('click');
	$(focuson).focus();
}

function addSuperior() {
	$(".star-rating:eq(4)").addClass("superior");
}

function initWhereRegions() {
    // 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');
           }
    );	
}

$(document).ready(function(){
	$('.hiddenSubmit').hide();
	$('body').append(loader.css("display", "none"));
	$("a.instantload").trigger("click");

		//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(lightboxoptions);
	
	
	
  // Accessible Form replacement
  $('input[type=radio]:not(".star"), input[type=checkbox]').checkBox();
	
	// IconSelection: Hide Labels, Apply Backgrounds
	$('.selectBoxes').addClass('icon');

	$('.nolimit').datepicker({
		minDate: null,
		maxDate: null
	});
	
	// activate Datepicker
	$('.dateselect').datepicker({ 
		dateFormat: 'dd.mm.yy',
			minDate: 0,
			maxDate: 365,
			navigationAsDateFormat: true
	});
	
	
	// 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/", {
		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 = "/de.aspx/Home/Suche/" + anreise + "/to/" + abreise + "/" + tags;
		 
		  return false;
	  });

	/**
	 * Region selector
	 */
	  var regions = [
	        { rname: 'NationalparkRegion Hohe Tauern Kärnten', rid: 218 },
	        { rname: 'Lieser-/Maltatal - Familiental', 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;
			});
					
	   		initWhereRegions();
	   
		    // 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.setDefaults($.datepicker.regional['de']);
		});
		
		// this is also called from whenCommunication.js, whenever a date changes!
		
});




