jQuery(document).ready(function() {
	
	//dynamicteaser list, delete last border
	jQuery('#content .offerSL .wrapper:last').css('borderBottom',0);
	
	/** THEMEN **/
	jQuery('#uthema').change(function() {
		var destArr = new Array();
		var uThemaArr = jQuery(this).find('option:selected').val().split("_");
		if(typeof(selectionCompBkp) == 'undefined') {
			selectionCompBkp = jQuery('#ziel').clone();
			jQuery('#ziel').find('option').each(function(i) {selectionCompBkp.find('option:eq(' + i + ')').data('js', jQuery(this).data('js'))});
		}
		if(typeof(selectionBaseBkp) == 'undefined') {
			selectionBaseBkp = jQuery('#region').clone();
			jQuery('#region').find('option').each(function(i) {selectionBaseBkp.find('option:eq(' + i + ')').data('js', jQuery(this).data('js'))});
		}
		
		var selectionCompModify = selectionCompBkp.clone();
		var selectionBaseModify = selectionBaseBkp.clone();
		if(parseInt(jQuery(this).find('option:selected').val())) {
			for(var i=0; i<aDestOrigin.length; ++i) {
				var regArr=aDestOrigin[i].split("|");
				if(!(regArr[1]>=10000 && (regArr[uThemaArr[0] == 1 ? 4 : 5] & (1<<uThemaArr[1]-1)))){
					selectionCompModify.find('option[value=' + regArr[1] + ']').remove();
				} else {
					destArr.push(regArr[1]);
				}
			}
			selectionBaseModify.find('option').each(function() {
				var value = jQuery(this).val().split('|')[1];
				if(jQuery.inArray(value, destArr) == -1 && jQuery(this).val()!=-1) {
					jQuery(this).remove();
				};				
			})
		}
		selectionCompModify.find('option[@value=' + jQuery('#ziel').find('option:selected').val() + ']').attr('selected', 'selected');
		selectionBaseModify.find('option[@value=' + jQuery('#region').find('option:selected').val() + ']').attr('selected', 'selected');
		jQuery('#ziel').replaceWith(selectionCompModify);
		jQuery('#region').replaceWith(selectionBaseModify);
		if(jQuery('#ziel').find('option:selected').val() != -1) {
			dependentSelectChange(jQuery('#ziel'), jQuery('#region'), true)
		}
	});
	
	if(jQuery('#page_3876').length && jQuery('.tx-tuisearch-pi1').length) {
		jQuery('.tx-tuisearch-pi1').before('<ul class="search_tabs"><b>Suchen:</b><li><a class="active" href="javascript:void(0)">Pauschalreise</a></li><li><a href="javascript:void(0)">Fl&uuml;ge</a></li><li><a href="javascript:void(0)">Flug &amp; Hotel</a></li><li><a href="javascript:void(0)">Eigenanreise</a></li><li><a href="javascript:void(0)">Mietwagen</a></li></ul>');
		jQuery('.search_tabs li a').each(function(i) {			
			jQuery(this).click(function() {			
				jQuery(this).parent().parent().find('a').removeClass('active');
				jQuery(this).addClass('active');
				switch(i){
					case 1:
						ce = 30471;
					break;
					case 2:
						ce = 26731;
					break;
					case 3:
					break;
					case 4:
					break;
					case 5:
					break;
					default: 
						ce = 23339;
					break;
				}
				if (i != 3 && i != 4 && i != 5) {
					jQuery.get('/specials/ajaxifier/?type=100&tx_neustatabs_pi2[ce]=' + ce, function(data){
						jQuery('.tx-tuisearch-pi1, .tx-sriframe-pi1').replaceWith(data);
						searchInit();
						setAgent();
					});
				}
			});

		});
		
		//jQuery('.search_tabs li a:eq(1)').attr('href','/reisen/fluege');
		jQuery('.search_tabs li a:eq(2)').attr('href','/reisen/flug-hotel');
		jQuery('.search_tabs li a:eq(3)').attr('href','/reisen/eigenanreise');
		jQuery('.search_tabs li a:eq(4)').attr('href','/reisen/mietwagen');
	}
	
	
});

/******************/
/*    search     */
/****************/

/**
 * Binds autocomplete functions for the flight search.
 */
function bindFlightFunctions(){
	// 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
			}
		);
	}
}

/**
 * Binds autocomplete and timepicker to tthe rentalcar search.
 */
function bindRentalcarFunctions(){
	// 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
	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
		});
	});
}

/**
 * 
 * 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() {
	
	if (jQuery('.flightsearch').length > 0){
		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));
	}
	
	return true;
}


function searchInitCallback() {
	jQuery('#uthema').change(function() {
		var destArr = new Array();
		var uThemaArr = jQuery(this).find('option:selected').val().split("_");
		if(typeof(selectionCompBkp) == 'undefined') {
			selectionCompBkp = jQuery('#ziel').clone();
			jQuery('#ziel').find('option').each(function(i) {selectionCompBkp.find('option:eq(' + i + ')').data('js', jQuery(this).data('js'))});
		}
		if(typeof(selectionBaseBkp) == 'undefined') {
			selectionBaseBkp = jQuery('#region').clone();
			jQuery('#region').find('option').each(function(i) {selectionBaseBkp.find('option:eq(' + i + ')').data('js', jQuery(this).data('js'))});
		}
		
		var selectionCompModify = selectionCompBkp.clone();
		var selectionBaseModify = selectionBaseBkp.clone();
		if(parseInt(jQuery(this).find('option:selected').val())) {
			for(var i=0; i<aDestOrigin.length; ++i) {
				var regArr=aDestOrigin[i].split("|");
				if(!(regArr[1]>=10000 && (regArr[uThemaArr[0] == 1 ? 4 : 5] & (1<<uThemaArr[1]-1)))){
					selectionCompModify.find('option[value=' + regArr[1] + ']').remove();
				} else {
					destArr.push(regArr[1]);
				}
			}
			selectionBaseModify.find('option').each(function() {
				var value = jQuery(this).val().split('|')[1];
				if(jQuery.inArray(value, destArr) == -1 && jQuery(this).val()!=-1) {
					jQuery(this).remove();
				};				
			})
		}
		selectionCompModify.find('option[@value=' + jQuery('#ziel').find('option:selected').val() + ']').attr('selected', 'selected');
		selectionBaseModify.find('option[@value=' + jQuery('#region').find('option:selected').val() + ']').attr('selected', 'selected');
		jQuery('#ziel').replaceWith(selectionCompModify);
		jQuery('#region').replaceWith(selectionBaseModify);
		if(jQuery('#ziel').find('option:selected').val() != -1) {
			dependentSelectChange(jQuery('#ziel'), jQuery('#region'), true)
		}
	});
	
	bindFlightFunctions();
	bindRentalcarFunctions();
}

function get(name, href){
	var mainParts = href ? href.split('?') : window.location.href.split('?');
	if(mainParts.length > 1) {
		mainParts[1] = mainParts[1].split('#')[0];
		var subParts = mainParts[1].split('&');
		for(i=0; i<subParts.length; i++) {
			var subSubParts = subParts[i].split('=');
			if(subSubParts[0] == name) {
				return subSubParts[1];
			}
		}
	}
	return null;
}