/**
  * TUI-Ferienhaus
  *
  * @copyright		Wolters Reisen GmbH
  * @file			0_content.js
  *
  */

// Settings
var extendSearchButtonTitle = 'mehr Suchkriterien';
var minifySearchButtonTitle = 'weniger Suchkriterien';
var map = 0;
var index = 0;

$(document).ready(function() {
	//Nur auf startseite
	// Zähler für Anzahl freier Objekte setzen
	//Dazu werden alle <a> tags mit dem title="object_count_available" gesucht 
	//und der href der jeweiligen <a> tags wird per Ajax ausgeführt um die Anzahl der Objekte zu bekommen 
	//und diese dann anstatt das <a> Tags zu platzieren
	if( $('body[id^="page_"]').length )
	{
		var $ocvs = $('a[title=object_count_available]');
		if( $ocvs.length )
		{
			$ocvs.each(function(){
				var $ocv = $(this);
				//var count_params ='?regionkz='+ $ocv.attr('regionkz') + '&areakz=' + $ocv.attr('areakz') +'&datum_von=' + $ocv.attr('datum_von');
				var new_href= $ocv.attr('href').replace('http://ferienhaus.t3d.wolters.tng.de', '');
				new_href = new_href.replace('http://www.tui-ferienhaus.de', '');
				$count_span = $('<span class="object_count_available"></span>');
				$ocv.after($count_span);
				$count_span.load(new_href);
				$ocv.remove();
			});
		}
	}
		
	// JQuery Objecte setzen
	$searchmodul_von = $('#searchmodul_datum_von');
	$searchmodul_bis = $('#searchmodul_datum_bis');
	$extendSearchLink = $('div#searchContainer #extendSearchLink');
	$extendSearchButton = $('div#searchContainer #extendSearchButton');
	
	// Clickable TUI Ferienhaus Logo
	$('#logo').click( function() {
		window.open($('#logo a').attr('href'),'_self');
	});

	// Set title-Tag to "Extend Search"-Button
	$extendSearchButton.attr('title',extendSearchButtonTitle);
	
	// Set innerText for "Extend Search"-Link
	$extendSearchLink.html(extendSearchButtonTitle);
	
	// Clickable "Extend Search"-Button
	$extendSearchButton.click( function() {
		extendSearch();
	});
	
	// Clickable "Extend Search"-Link
	$extendSearchLink.click( function() {
		extendSearch();
	});
	// Clickable "Extend Search"-Link
	$('span.colRightExtenderButtonSpan').click( function() {
		extendSearch();
	});
	
	// Clickable Tab-Links
	var $colRight = $('div#searchContainer #colRight');
	var $colMenu = $colRight.find('ul#colMenu');
	$colRight.find('#colMenu > li').click( function() {
		$colRight.children('div').hide();
		$('.' + $(this).attr('id') ).show();
	});
	
	// Add Hover to Extended Search Tab Links
	$colMenu.children('li').hover( function() {
		$(this).toggleClass('hoverActive');
	});
	
	// Add ClickListener to Extended Search Tab Links
	$colMenu.children('li').click( function() {
		$colMenu.children('li.active').removeClass('active');
		$(this).addClass('active');
	});
	
	// Replace standard Select Boxes with "Stylish Select"-Boxes (not at ww8)
	if( !$('body').hasClass('ww8') )
	{
		formReplace( true );
	}
	
	// Activate AutoClear for Input Textfields
	// This requires the class "autoClear" for the input field,
	// and the default value additionally filled into the "title"-field
	formAutoClear();
	
	 var data_datum_von = {
				minDate: "+4", 
				maxDate: "+1Y", 
				dateFormat: 'dd.mm.yy',
				regional: 'de',
				showAnim: '',
				//changeMonth: true,
				//changeYear: true,
				beforeShowDay: function(date){
					if( date.getDay()== 6 || 
						( date.getDate() == '30' && date.getMonth() == '11' && date.getFullYear() == '2011' )
					  )
					{
						return [true,"bold"];
					} 
					else {
						return [true,""];
					}
				},
				beforeShow: function(input, instance){
						return { disabled: true };
				},
				onSelect: function( selectedDate ) {
							instance = $( this ).data( "datepicker" );
							min_date = $.datepicker.parseDate(
								instance.settings.dateFormat ||
								$.datepicker._defaults.dateFormat,
								selectedDate, instance.settings );							 
							max_date = new Date( min_date.getTime() );
							to_date = new Date( min_date.getTime() );
							default_to_date = new Date( min_date.getTime() );
							min_date.setDate( min_date.getDate() +3);
							
							$searchmodul_bis.datepicker( "option", "minDate", min_date ).focusout();
							
							max_date.setDate( max_date.getDate() + 21 );
							$searchmodul_bis.datepicker( "option", "maxDate", max_date ).focusout();
							default_to_date.setDate( default_to_date.getDate() + 7 );
							$searchmodul_bis.datepicker( "setDate", default_to_date );
							
							if(  $('#searchmodul_dauer').val() != "0" )
							{
								to_date.setDate( to_date.getDate() + parseInt($('#searchmodul_dauer').val()) );
								$searchmodul_bis.datepicker( "setDate", to_date );
							}
				},
				onClose: function() {
								updateMap();
						 }
	 }; 
	 var data_datum_bis = {
			minDate: 0, 
			maxDate: "+25D", 
			dateFormat: 'dd.mm.yy',
			regional: 'de',
			showAnim: '',			
			beforeShowDay: function(date){
				if( date.getDay()== 6 )
				{
					return [true,"bold"];
				} 
				else {
					return [true,""];
				}
			},
			onSelect:
				 function( selectedDate ) {		 	
					var dateDiff = 0;
					if( $searchmodul_von.val().match('^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$') &&
						$searchmodul_bis.val().match('^([0-9]{2})\.([0-9]{2})\.([0-9]{4})$') ){
						dateDiff = 
							Math.round(
										($.datepicker.parseDate( instance.settings.dateFormat, $searchmodul_bis.val() ) -
										$.datepicker.parseDate( instance.settings.dateFormat, $searchmodul_von.val() ) 
										) / (1000*60*60*24)
									);
					}
					$('#searchmodul_dauer').val( dateDiff );
			 },
			 onClose: function() {
							updateMap();
			 		  }
	 };
	 
	 $searchmodul_von.datepicker( data_datum_von );
	 $searchmodul_bis.datepicker( data_datum_bis );
	 
	 if( initsearchmodul == 0 ){ initSearchmodul(); }
	 
	 setInterval( changeLinkLanguage, 2000 );

	login = '.tx-felogin-pi1';
	$('form', login).submit(checkLogin);

	// Clearing für Searchform
	$("#searchform input[type=text]").focus(function(){
		if($(this).val() == $(this).attr('defaultValue')) {
			$(this).val('');
		}
	});

	$("#searchform input[type=text]").blur(function(){
		if ($(this).val() == '') {
			$(this).val($(this).attr('defaultValue'));
		}
	});
	
	//Handler auf Detailansicht
	if( $('#detail, #detail_bilder, #detail_verfuegbarkeit, #detail_routeplaner, #detail_kundenbewertung').length){
		//Click Handler auf Mehr fuers Geld, zum runterscrollen 
		if( $('#mehrfgeld-pic').length ){
			$('#mehrfgeld-pic').click(function(){
				if( !$('div.detailTab li.unterkunft').hasClass('active') ){
					$('#mehrfgeld-pic').ajaxStop(function(){
						$(window).scrollTop( $('a[name="mehrfgeld"]').offset().top );
						$(this).unbind('ajaxStop');
					});
					
					$('div.detailTab li.unterkunft a').click();
					return false;
				}
				
			});
		}
	}
	
	//agency_key auf Typo Seiten an alle Links dranhängen
	if( $('meta[name=generator][content^=TYPO3]').length ){
		var agencykey = get_GET_param('agencykey');
		if (agencykey != false){
			$("a[href]").each(function() {
				$(this).attr('href', $(this).attr('href') + ($(this).attr('href').search(/\?/) == -1 ? '?' : '&') +'agencykey='+agencykey);
			});
			$form_search = $('#form_search');
			$form_search.attr('action', $form_search.attr('action') + ($form_search.attr('action').search(/\?/) == -1 ? '?' : '&') +'agencykey='+agencykey);
		} 
	}
	
	// Load only if ww8
	if( $('body').hasClass('ww8') )
	{
		//initMap();
	}
	
	/* Google Analytics code laden */
	$(window).load( init_doogle_analytics );
});

function init_doogle_analytics(){
	//$('body').append('<script type="text/javascript" src="/fileadmin/fha/template/js/ga_snippet.js"><\/script>');
	$.ajax({url: '/fileadmin/fha/template/js/ga_snippet.js',  dataType: "script", cache: true });
}

function extendSearch()
{
	//Fix für IE7, da dieser sonst etwas merkwürdig die Profi-Suche öffnet
	if ( $.browser.msie  && parseInt($.browser.version, 10) == 7 ){
		$('#mainSearch').css('overflow', 'hidden');
	} 
	
	var $searchColRight = $('#mainSearch #colRight');
	var $searchContainer = $('div#searchContainer');
	var $searchContainerExtendSearchButton = $searchContainer.find('#extendSearchButton');
	var $searchContainerExtendSearchLink = $searchContainer.find('#extendSearchLink');
	var $colRightExtender = $('#colRightExtender');
	
	$colRightExtender.toggle();
	$searchColRight.toggle('slide', {direction:'left'}, function(){			
		//Fix für IE7, da dieser sonst etwas merkwürdig die Profi-Suche öffnet
		if ( $.browser.msie  && parseInt($.browser.version, 10) <= 7 ){
			$('#mainSearch').css('overflow', 'visible');
		}
		
		if( $searchColRight.is(':visible') ){
			$searchContainerExtendSearchButton.attr('title',minifySearchButtonTitle); // Add Text to Minify-Button
			$searchContainerExtendSearchLink.html(minifySearchButtonTitle); // Add Text to Minify-Link
			$searchColRight.show(); // Show Advanced Search Container
			
			/* Rebuild Stylish-Selectbox */
			formReplace();
			if( map == 0)
			{
				initMap();
			}
		}else{
			if( !$.browser.msie )
			{
				$searchContainerExtendSearchButton.attr('title',extendSearchButtonTitle); // Add Text to Extend-Button
			}
			$searchContainerExtendSearchLink.html(extendSearchButtonTitle); // Add Text to Extend-Link
			
		}
		
	});
}

function formReplace( init )
{
	var $stylishSelect = $('select.stylishSelect');
	var $forceStylishSelect = $('select.forceStylishSelect');
	
	if( init == true ){
		// Replace all select boxes with class "stylishSelect"
		$stylishSelect.sSelect( {ddMaxHeight: '300'} );	
		$forceStylishSelect.sSelect( {ddMaxHeight: '300', force_stylish: true} );
		
		// Replace boxes in advanced search
		$('select.searchDistances').sSelect(  );
	}else{
		// Replace all select boxes with class "stylishSelect"
		$stylishSelect.resetSS();	
		$forceStylishSelect.resetSS();
		
		// Replace boxes in advanced search
		$('select.searchDistances').resetSS();
	}
}

function formAutoClear()
{
	// Remove the standard value from input boxes, if
	// the user sets the focus on it.
	// Requirements: 
	// - The Standard Value has to be written into the "title"-Attribute
	// - The input field has to be declared as the "autoClear"-Class
	// - It is recommended to declare the "value"-Attribute and to set the same value like the title-Attribute
	autoClearFields = new Object();
	$('input.autoClear').each( function() {
		autoClearFields[$(this).attr('name')] = $(this).attr('title');
		$(this).focusin( function() {
			if( $(this).attr('value') ==  $(this).attr('title') ) //autoClearFields[$(this).attr('name')] )
			{
				// Clear the Field
				$(this).attr('value','');
				
				// Set the font color to "black"
				$(this).removeClass('grey');
				$(this).addClass('black');
			}
		});
		$(this).focusout( function() {
			if( $(this).attr('value') == '' )
			{
				// Reset the default value
				$(this).attr('value', $(this).attr('title')); //autoClearFields[$(this).attr('name')]);
				
				// Reset the font color 
				$(this).removeClass('black');
				$(this).addClass('grey');
			}
		});
	});
}

function changeLinkLanguage(){
	var names = new Array(
							"F&uuml;r Vermieter",
							"For owners",
							"site propri&eacute;taire",
							"til utleieren",
							"para propietarios",
							"per il locatore"
						 );
	index++;
	if( index >= names.length ){
		index = 0;
	}
	
	$( '#linksService li:last a' ) . html('<b>' + names[index] + '</b>' );
}

// �berpr�ft eine Textarea auf ein Zeichen-Limit
// Optional werden die Zeichen mitgezählt, sofern hierf�r
// der Selector eines passenden p, div, span, o.�. mitgegeben
// wurde.
// taSelector: Selector der Textarea
// limit: Max. Anzahl gew�nschter Zeichen
// charCounterSelector: (optional) Selector des p, div oder span zur Anzeige der noch übrigen Zeichen.
function checkTextarea( taSelector, limit, charCounterSelector )
{
	$( taSelector ).change( function() {
		var max_comment_length = limit;
		if( $(this).val().length > limit )
		{
			$(this).val( $(this).val().substring(0, limit) );
			return false;
		}
		if (charCounterSelector != undefined) {
			$(charCounterSelector).html(limit - $(taSelector).val().length);
		}
	});
	$( taSelector ).keyup( function() {
		$( taSelector ).change();
	});
}

function checkLogin() {
	var agencyError = 'Bitte geben Sie eine g&uuml;ltige Agenturnummer ein!';
	var operatorError = 'Der CRS-Veranstaltercode ist nicht korrekt, Probleme beim Login? Hilfe unter Tel. 0421-89 99 248.    </p>';
	$('#user').val( $('#user_input').val() );
	$('#pass').val( $('#pass').val().toLowerCase() );

	var user = $('#user').val();
	if(user.length >0 && !isNaN(user))  {
		if( $('#pass', login).val() != 'wol' ) {
			$('.error', login).html(operatorError).parent().show();
			return false;
		} else {
			$('#user').val('66666');
		}
	} else {
		$('.error', login).html(agencyError).parent().show();
		return false;
	}
}

/** Jquery Plugin um Hinweise anzuzeigen 
 * es basiert auf jQuery.blockUI
 * Beispiele:
 * $('#myele').wolNote('Hallo Welt');
 * $('#myele').wolNote( { message: 'Hallo Welt', timeout: 1000 } );
 * **/
$.fn.wolNote = function(options) {
	
	if( typeof(options) == 'string' ){
		options = {message: options};
	}
	
	var myoffset = $(this).offset();
	var pos_top = myoffset.top+$(this).height() ;
	var pos_left = myoffset.left ;
	
	/*Hinweis einbinden */
	var defaultOpts = {
		message: options.message,
		showOverlay: false,
		centerY : false,
		timeout: 2500,
		css: {
			top: pos_top +'px',
			left: pos_left +'px',
			border: 'none', 
            padding: '5px', 
            backgroundColor: '#000', 
            '-webkit-border-radius': '10px', 
            '-moz-border-radius': '10px', 
            opacity: .8, 
            color: 'orange',
            width: 'auto',
            height: 'auto',
            position: 'absolute'
		}	
	}
	if( options && options.css ){
		options.css = $.extend(defaultOpts.css, options.css);
	}
	opts = $.extend(defaultOpts, options);
	
	$.blockUI(opts);
	/* ende Hinweis */
}

$(document).ready(function() {
	jQuery('#mailformcheckbox').css('float','left').prev().css('width','auto').css('float','none');
});

function get_GET_params() {
   var GET = new Array();
   if(location.search.length > 0) {
      var get_param_str = location.search.substring(1, location.search.length);
      var get_params = get_param_str.split("&");
      for(i = 0; i < get_params.length; i++) {
          var key_value = get_params[i].split("=");
          if(key_value.length == 2) {
              var key = key_value[0];
              var value = key_value[1];
              GET[key] = value;
          }
      }
   }
   return(GET);
}
	 
function get_GET_param(key) {
   var get_params = get_GET_params();
   if(get_params[key])
      return(get_params[key]);
   else
      return false;
}
