document.writeln('<link rel="stylesheet" href="'+base_web_dir+'css/airstop-js.css" media="screen" type="text/css" />');

$(function(){
        var lang=$('meta[http-equiv="content-language"]').attr('content');
	jQuery.fn.check = function(mode) {
		var mode = mode || 'on';
		return this.each(function() {
			switch(mode) {
				case 'on':
					this.checked = true;
				break;
				case 'off':
					this.checked = false;
				break;
				case 'toggle':
					this.checked = !this.checked;
				break;
			}
		});
	};
	
	$('#login-button').click(function() {

		$('#personalLoginForm').slideDown('fast');
		$('#login-button').hide();
		return false;
		
	});

	$('#personal-show-forgot-password').click(function(){
		$('#personalLoginForm').slideUp('fast');
		$('#personalForgotPassword').slideDown('fast');
		return false;
	});

	$('#personal-show-login').click(function(){
		$('#personalForgotPassword').slideUp('fast');
		$('#personalLoginForm').slideDown('fast');
		return false;
	});

	$('#notLoggedChkbox #usePointsCheckbox, #notLoggedChkbox label').click(function() {
		$('#orderLoginForm').slideDown('fast');
		if($(this).attr('id') == 'usePointsCheckbox')
		{
			return false;
		}
	});

	$('#orderLoginSubmit').click(function(){
		var form = $(this).parents('form');
		form.unbind();
		$.post(loginPage, {'login': $('#orderLoginLogin').val(), 'password': $('#orderLoginPassword').val()},
			function(data){
				if($(data).first().hasClass('systemMessage'))
				{
					$('#loginResult').html(data);
				} else {
					window.location.reload();
				}
			});
		return false;
	});

	var orderOpen=false;

	$('#openLoginFromOrder').click(function() {
		if(!orderOpen) {
			$('#orderLoginForm').slideDown('fast');
			orderOpen=true;
		} else {
			$('#orderLoginForm').slideUp('fast');
			orderOpen=false;
		}

		return false;
	});
	
	$('#filterForm').submit(function(e) {
		var date = $('#dateFrom').val();
		var parsedDate = $.datepicker.parseDate('d.m.yy', date);
		var isMoreThan60Days = ((parsedDate.getTime() - (new Date()).getTime())/86400000) > 60;
		var numDays=$('#daysSelect').val();
		/*if(isMoreThan60Days && type == 2){
                    switch(lang){
                        case 'cs':
                            alert('Vaše datum odjezdu je později než za 60 dní, přesměrováváme na Zájezdy.');
                        break;
                        case 'sk':
                            alert('Váš dátum odjazdu je väčší ako za 60 dní, budete presmerovaný na Zájazdy.');
                        break;
                        case 'pl':
                            alert('Vaše datum odjezdu je později než za 60 dní, přesměrováváme na Zájezdy.');
                        break;
                    }
		}*/

		if($('#daysMin').val()=='' && $('#daysMax').val()=='' ){
			numDays='0';
		}

		if(numDays=='NULL'){
			var nd=$('#daysMin').val();
			if(nd!=0 && nd==parseInt(nd)){
				numDays==nd
			}else{
				switch(lang){
					case 'cs':
						alert('Špatný formát počtu dnů.');
					break;
					case 'sk':
						alert('Zlý formát počtu dní.');
					break;
					case 'pl':
						alert('Zły format liczby dni.');
					break;
				}
				return false;
			}
			numDays=$('#daysMin').val();
		}else if(numDays!=0){
			numDays=numDays.replace(/-[0-9]+$/,'');
		}
		if(numDays!=0){
			var dateFrom=$('#dateFrom').val().match(/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/);
			var dateTo=$('#dateTo').val().match(/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})$/);
			if(!dateFrom || !dateTo){
				switch(lang){
					case 'cs':
						alert('Špatný formát data.');
					break;
					case 'sk':
						alert('Zlý formát dátumu.');
					break;
					case 'pl':
						alert('Zły format daty.');
					break;
				}
				return false;
			}
			var dDateFrom=new Date();
			var dDateTo=new Date();
			var dateDiff;
			dDateFrom.setFullYear(dateFrom[3],dateFrom[2]-1,dateFrom[1]);
			dDateTo.setFullYear(dateTo[3],dateTo[2]-1,dateTo[1]);
			dateDiff=Math.round((dDateTo.getTime()-dDateFrom.getTime())/(1000*60*60*24));
			if(numDays>dateDiff){
				switch(lang){
					case 'cs':
						alert('Počet dní mezi odjezdem a návratem je menší než minimální požadovaná délka zájezdu. Upravte prosím datumy nebo požadovanou minimální délku zájezdu a vyhledávání opakujte.');
					break;
					case 'sk':
						alert('Počet dní medzi odjazdom a návratom je menší ako minimálna požadovaná dĺžka zájazdu. Upravte prosím dátumy alebo požadovanú dĺžku zájazdu vyhľadávanie zopakujte.');
					break;
					case 'pl':
						alert('Ilość dni między wylotem i powrotem jest mniejsza niż poszukiwany czas pobytu. Proszę zmienić termin pobytu lub jego długość i powtórzyć wyszukiwanie.');
					break;
				}
				return false;
			}
		}
		return true;
	});

	$('#daysSelect').bind('change',function(){
		var el = this;
		var value = el.options[el.selectedIndex].value;
		if (value != 'NULL') {
			$('#customDaysInterval').hide();
		} else {
			$('#customDaysInterval').show();
		}
		return true;
	}).change();
	
	$('#searchMenu .tabs a').bind('click',function(){
		this.blur();
		$(this).parent('li').siblings().removeClass('active').end().addClass('active');
		$('#searchTabs div.tabContent').removeClass('active');
		var tabTargetId = this.href.substring(this.href.indexOf('#') + 1);
		$('#'+tabTargetId).next('div.tabContent').addClass('active');
		return false;
	});

	$('ul#favourities-list').hide();

	$('a#show-favourities').bind('click', function(){

		var ul = $('ul#favourities-list');
		if($(ul).hasClass('open')) {
			$(ul).removeClass('open').slideUp('fast');
		} else {
			$(ul).addClass('open').slideDown('fast');
		}
	});

	var time = new Date();
	var timelog = '';

	$('#travelListTable tr.sub,#hotelListTable tr.sub,#orderListTable tr.sub').bind('mouseover',function(){
		$(this).addClass('hover')
	}).bind('mouseout',function(){
		$(this).removeClass('hover');
	});

	time = new Date() - time;
	timelog += 'hovers: '+time;
	time = new Date();

	$('#travelListTable tr.sub').bind('click',function(e){
		var trg = $(e.target);
		if (trg.is('a.destinationInfo') || trg.parent().is('a.destinationInfo')) {
			return true;
		} else {
			var subLink = $('a.subLink',this);
			if (subLink.length) {
				window.location = subLink.attr('href');
			}
		}
		return false;
	});
	
	time = new Date() - time;
	timelog += ' travellist rows: '+time;
	time = new Date();

	$('#hotelListTable tr.sub td:not(.popup)').bind('click',function(){
		var subLink = $(this).parents('tr').find('a.subLink');
		if (subLink.length) {
			window.location = subLink.attr('href');
		}
		return false;
	});

	time = new Date() - time;
	timelog += ' hotellist rows: '+time;

	$('#childrenCountSelect').bind('change',function(){
		var el = $(this).get(0);
		var childCount = el.options[el.selectedIndex].value;
		if (childCount) {
			$('#childrenAges .formField').each(function(i){
				if (i < childCount) {
					$(this).show();
				} else {
					$(this).hide();
				}
			});
			$('#childrenAges').show();
		} else {
			$('#childrenAges').hide();
		}
		$('select.childAgeSelect').each(function(i){
			if (i >= childCount) {
				this.selectedIndex = 0;
			}
		});
	});
	$('#departureSelection .checkAllNone').find('.checkAll').bind('click',function(){
		$('#departureSelection input[type=checkbox]').check('on');
		this.blur();
		return false;
	}).end().find('.checkNone').bind('click',function(){
		$('#departureSelection input[type=checkbox]').check('off');
		this.blur();
		return false;
	});
	$('#search ul.star-rating li a').bind('click',function(){
		// TODO: fix this, slow in IE
		$('ul.star-rating li a').removeClass('selected');
		$(this).addClass('selected');
		$(this).parents('.formField').find('input[type=hidden]')
			.attr('value',$(this).text());
		return false;
	});
	$('a.newWindow').bind('click',function(){
		return !window.open($(this).attr('href'));
	});

	time = new Date();

	$('#orderListTable tr.sub td:not(.popup)').bind('click',function(){

		var table = $(this).parents('table');
		var row = $(this).parent('tr');
		var lineId = row.attr('id');
		var orderTarget = $('a.makeOrder',$(this).parent('tr')).attr('href');
		var cells = $('td',row).length;

		var pos = orderTarget.indexOf('?');
		var params = orderTarget.substring(pos+1);

		//hacky and easy :-)
		/*var type = 0;
		if (window.location.pathname.indexOf('/last-minute/') != -1) { type = 2 };
		if (window.location.pathname.indexOf('/zajezdy/') != -1) { type = 4 };
		if (window.location.pathname.indexOf('/zajazdy/') != -1) { type = 4 };		
		if (window.location.pathname.indexOf('/letenky/') != -1) { type = 1 };
		if (window.location.pathname.indexOf('/ubytovani/') != -1) { type = 3 };*/

		if (!table.is('.locked')) {
			$.ajax({
//			async: false,
				type: "GET",
				url: base_web_dir + 'ajax/travel/check.ajx?line='+lineId+'&type='+type+'&'+params,
				dataType: "xml",
				beforeSend: function(rqh) {
					// lock the table
					table.addClass('locked');
					$('#'+lineId).empty().html('<td colspan="'+(cells - 1)+'" class="loading"><strong>'+L_CHECKING_AVAILABILITY+'</strong></td><td class="loading"><img src="'+base_web_dir+'images/loading.gif" /></td>');
				},
				success: function(response) {
					table.removeClass('locked');
					var av = $(response).find('availability').text();
					var lineId = $(response).find('line').text();
					if (av == 1) {
						window.location = orderTarget;
					} else {
						alert( L_OFFER_SOLD_OUT );
						window.location.reload(true);
					}

				},
				timeout: function() {
					table.removeClass('locked');
				}
			});
		} else {
			alert( L_WAIT_FOR_VERIFICATION );
		}
		return false;
	});

	$('#orderListTable tr.sub a.airportInfo').bind('click',function(){
		window.location = $(this).attr('href');
		return false;
	});

	$('#hotelListTable tr.sub td.popup,#orderListTable tr.sub td.popup').bind('click',function(){
		$('a',this).trigger('click');
	});

	$('#hotelListTable tr td.popup a,#orderListTable tr td.popup a').bind('click',function(){
		return !popUpText(this);
	});

	time = new Date() - time;
	timelog += ' orderlist rows: '+time;
	
	$('#airInfoButton a').bind('click',function(){
		$('#body').css('cursor','wait');
		$('#airInfoHolder').load($(this).attr('href')+'&AJAX=1',{},function(){
			$('#body').css('cursor','auto');
		});
		return false;
	});
	
	$('#orderForm').bind('submit',function(){
		if (!$('#acceptTC',this).attr('checked')) {
                        switch(lang){
                            case 'cs':
                                alert('Je nutno souhlasit s obchodními podmínkami.');
                            break;
                            case 'sk':
                                alert('Je nutné súhlasiť s obchodnými podmienkami.');
                            break;
                            case 'pl':
                                alert('Trzeba zaakceptować warunki handlowe.');
                            break;
                        }
			return false;
		}
		$('#orderSubmitButton',this).hide();
		var img = $('#orderSubmitting',this).css({'position': 'static', 'visibility': 'visible'});
		img.src = img.src;
		$('#body').css('cursor','wait');
//		return true;
	});
	
	$('#orderFormFlavour').bind('submit',function(){
		if (!$('#acceptTC',this).attr('checked')) {
			alert( L_REQUIRED_APPROVAL );
			return false;
		}
	});	
	
	$('a.reviewLocationMenuItem').bind('click', function() {
		var subMenu = $(this).parent().next();
		if (subMenu.css('display')=='none'){
			subMenu.slideDown();
		} else {
			subMenu.slideUp();
		}
		
		return false;
	
	});


	/*
	
	VYJIZDENI MAPY
	
	var showLabel=$('#main .mapSwitch').html();
	$('#map').html('<iframe src="'+$('#main .mapSwitch').attr('href')+'" frameborder="0"></iframe>');
	$('#main .mapSwitch').click(function(){
		var map=$('#map');
		if(map.is(':hidden')){
			$(this).html(hideLabel);
			map.slideDown();
		}else{
			$(this).html(showLabel);
			map.slideUp();
		}
		return false;
	});*/
	
});

$('#leftMenu').ready( function() {


});

function initPhoneCodeHint(phoneCodes,cElmId,pElmId)
{
	$('#'+cElmId).bind('change',function(){
		var cVal = $(this).val(), pVal = $('#'+pElmId).val();
		if (phoneCodes[cVal]) {
			for (cc in phoneCodes)
			{
				if (!pVal || pVal == phoneCodes[cc])
				{
					// phoneCode je bud prazdny, nebo se rovna nekteremu z jinych phoneCode
					$('#'+pElmId).val(phoneCodes[cVal]);
					break;
				}
			}
		}
		return true;
	});
	$('#'+cElmId).trigger('change');
}