jQuery(document).ready(function(){ 
	if(jQuery.browser.msie) {
		jQuery('#smallNav, #bigNav').find('ul.second').parent().css('width', '301px');
		jQuery('#smallNav, #bigNav').contents().filter('li').hover(function() {
			var submenu = jQuery(this).find('.submenu');
			if(submenu.length) {
				submenu.css({left:'-1000px', display:'block'});
				if(!submenu.prev('iframe').length) {
					submenu.before('<iframe style="position:absolute; top:' + submenu.position().top + 'px; left:0;" width="' + (submenu.outerWidth(true)) + '" height="' + submenu.outerHeight(true) + '" frameborder="0" ></iframe>')
				}
				submenu.css({left:0});
				submenu.prev('iframe').show();
			}
		}, function() {
			var submenu = jQuery(this).find('.submenu');
			submenu.prev('iframe').hide();
			submenu.hide();
		});
	}
	jQuery('#smallNav, #bigNav').find('div ul:only-child').css('border-right', 'none');

	// PNG Fix
	jQuery(document).pngFix(); 
	
	//submenu delete last border
	jQuery('#oneCol ul.csc-menu li a:last').css('borderRight',0);
	
	//footer learnAbout delete first background
	jQuery('#learnAbout p:first').css('background',0);
		
	/**
	 * 
	 * Image Change
	 * 
	 */
	jQuery('#giata img.imgpre').each(function(i) {
		jQuery(this).click(function (){	
			var srctemp = jQuery(this).attr("src");
			jQuery("img.img-big").attr("src", srctemp );
		});
	});	
	
	/**
	 * 
	 * Div fade in/out
	 * 
	 */
	jQuery('#giata div.tablink').each(function(i){
		jQuery(this).click(function(){
			jQuery("div.tablink-activ").removeClass("tablink-activ").addClass("tablink");
			jQuery(this).removeClass("tablink").addClass("tablink-activ");
			
			if (i != 0){
				jQuery('div.info-content').show();
				jQuery('img.info-border').show();
				jQuery('.image-info-content .info-content').contents().filter('div').each(function(){
					jQuery(this).hide();
				});
				jQuery('.image-info-content').css('height', '505px');
			}
			
			switch(i){
				default:
				case 0:
					jQuery('div.info-content').hide();
					jQuery('img.info-border').hide();
					jQuery('.image-info-content').css('height', '75px');
					break;
				case 1:
					jQuery('.image-info-content div.show-image-content-img').show();
					jQuery('.image-info-content div.imagepre-content').show();
					break;
				case 2:
					jQuery('.image-info-content div.show-image-content-map').show();
					break;
				case 3:
					jQuery('.image-info-content div.show-image-content-clime').show();
					jQuery('.image-info-content div.climepre-content').show();
					break;
			}
		});
	});
	

	/**
	 * 
	 * Clime Statistic Change
	 * 
	 */
	jQuery("#giata img.imgpre-clime").each(function(i) {
		jQuery(this).click(function (){		
			jQuery("div.clime-content").each(function(j){
				if(i == j){
					$(this).show();
				} else {
					$(this).hide();
				}
			});
		});
	});
	
	// Flightsearch - autocomplete
	if (jQuery('#abflugort').length > 0){
		jQuery('#abflugort, #ankunftsort1, #abflugort2, #ankunftsort2').autocomplete(airports, {
			delay:10,
			minChars:3, 
			mustMatch:true, 
			max:10, 
			matchSubset:1, 
			matchContains:1,
			cacheLength:10
			}
		);
	}
	// Rentalcarsearch - autocomplete
	if(jQuery('#PIATA-field, #DIATA-field, #PCITY-field, #DCITY-field').length > 0){
		bindAutocomplete('#PIATA-field', 'input[type=hidden][name=PIATA]', rentalcarAirports);
		bindAutocomplete('#DIATA-field', 'input[type=hidden][name=DIATA]', rentalcarAirports);
		bindAutocomplete('#PCITY-field', 'input[type=hidden][name=PCITY]', rentalcarCities);
		bindAutocomplete('#DCITY-field', 'input[type=hidden][name=DCITY]', rentalcarCities);
	}
	
    //ClockPick - Timepicker for rentalcarserach
	if(jQuery("#time-arrival, #time-departure").length > 0){
		jQuery("#time-arrival, #time-departure").timePicker();
		
		jQuery("#time-arrival, #time-departure").click(function(){
			jQuery("#time-arrival, #time-departure").timePicker({
				startTime: new Date(0, 0, 0, 8, 00, 0), 
				endTime: new Date(0, 0, 0, 22, 00, 0), // Using Date object here.  (0, 0, 0, hours, minutes, 0)	
				show24Hours: true,
				separator: ':',
				step: 15
			});
		});
	}
	
	
});

/******************/
/*    search     */
/****************/

/**
 * 
 * Binds an autocomplete-function to a textfield.
 * 
 * @param itemFrom String (jQuery-Object-Name (jqon))
 * @param itemTo String (CSS Selector)
 * @param filePath String
 */
function bindAutocomplete(itemFrom, itemTo, filePath){
	jQuery(itemFrom).autocomplete(filePath, {
			delay:10,
			minChars:3, 
			mustMatch:true, 
			max:10, 
			matchSubset:1, 
			matchContains:1,
			cacheLength:10,
			formatResult:function(row) {
				return row[0].split(';')[1];
			}
			//formatItem:formatItem
		}
	).result(function(event, data, formatted) {
		jQuery(itemTo).val(formatted.split(';')[0]);
	});
}

/**
 * Returns only the second value.<br /> 
 * e.g.: PMI;Palma de Mallorca Son San Juan Internationaler Flughafen (PMI) will be "Palma de Mallorca Son San Juan Internationaler Flughafen (PMI)"
 * 
 * @param row
 * @return String 
 */
function formatItem(row){
	return row[0].split(';')[1];
}

/**
 * Returns only the first value.<br /> 
 * e.g.: PMI;Palma de Mallorca Son San Juan Internationaler Flughafen (PMI) will be "PMI"
 * 
 * @param row
 * @return String
 */
function formatResult(row){
    return row[0].split(';')[0];
}

function searchSubmitCallbackBrand() {
	var result = true;
	
	if (jQuery('.extendedFlight').length){
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=oj_destt]').val(jQuery('#ankunftsort1').val().substring(jQuery('#ankunftsort1').val().indexOf('/')+1));
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=rfromt]').val(jQuery('#abflugort2').val().substring(jQuery('#abflugort2').val().indexOf('/')+1));
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=rdestt]').val(jQuery('#ankunftsort2').val().substring(jQuery('#ankunftsort2').val().indexOf('/')+1));
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=destt]').val(jQuery('#abflugort').val().substring(jQuery('#abflugort').val().indexOf('/')+1));
		
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=hdate1]').val(jQuery('#abflugdatum').val().substring(0,2));
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=hdate2]').val(jQuery('#abflugdatum').val().substring(6) + jQuery('#abflugdatum').val().substring(3,5));
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=rdate1]').val(jQuery('#rueckflugdatum').val().substring(0,2));
		jQuery('.tx-tuisearch-pi1 form input[type=hidden][name=rdate2]').val(jQuery('#rueckflugdatum').val().substring(6) + jQuery('#rueckflugdatum').val().substring(3,5));
	}
	
	if(jQuery('.flighthotel').length > 0){
		if (
				!isDestination()| 
				!checkRooms('#Room1', '#Room1Adults', '#Room1Children')|
				!checkRooms('#Room2', '#Room2Adults', '#Room2Children')){
			result = false;
		}
	}

	return result;
}

/**
 * Checks if the destination is filled out.
 * 
 * @return Boolean.
 */
function isDestination(){
	var result = true;
	if(jQuery('input[type=hidden][name=Destination]').length > 0 && !jQuery('input[type=hidden][name=Destination]').val()){
		if(jQuery('#abflugort').prev('.error').length < 1)
			jQuery('#abflugort').before('<div class="error">Bitte wählen Sie Ihr Reiseziel.</div>');
		result = false;
	}
	return result;
}

/**
 * Checks the roomsize and the selected count of persons.
 *
 * @return Boolean
 */
function checkRooms() {
	var error = false;
	
	var rooms = {
		'@DB':2,
		'@TR':3,
		'@SB':1,
		'@QR':4,
		'@TB':2
	};
	
	jQuery('#Room1, #Room2').each(function() {
		var room = jQuery(this);
		var adults = jQuery('#' + jQuery(this).attr('id') + 'Adults');
		var children = jQuery('#' + jQuery(this).attr('id') + 'Children');
		if(
			parseInt(adults.val()) + parseInt(children.val()) != rooms[room.val()] &&
			(room.attr('id') != 'Room2' || parseInt(adults.val()) + parseInt(children.val()) != 0)  
		) {
        	if(jQuery(room).prev('.error').length < 1){
        		jQuery(room).before(jQuery('<div>').addClass('error').text('Sie haben keine korrekte Anzahl an Personen für das Zimmer ausgewählt.'));
        	}
			error = true
		} 
		if(!error && room.attr('id') == 'Room2' && parseInt(adults.val()) + parseInt(children.val()) == 0) {
			jQuery('#Room2, #Room2Adults, #Room2Children').remove();
		}
	});
	if(!error) {
		return true;
	}
	return false;
}

function checkName(elem){
	if(elem.substring(0,1) == '#' || elem.substring(0,1) == '.'){
		return elem.substring(1);
	} else {
		return elem;
	}
}

