$(function(){
	
	if ($('body').hasClass('home')) {
		QueryLoader.init();
		$('#loading-mask').fadeOut();
	}
	
	Cufon.replace('h1, h2, .phone, .price span', {
		color: '-linear-gradient(#31809f, #1c566d)',
		fontFamily: 'Swis721 BT'
	});
	Cufon.replace('#footer-promo .btn, body.internal.fares #content table th, body.internal.fares #content .promo p, body.internal.fleet #content .units h2, body.internal.recommendations #content h2, #RecommendationIndexForm legend, body.internal.reserve #content h2', {
		fontFamily: 'Swis721 BT'
	});
	Cufon.replace('#footer-contact p', {
		fontFamily: 'Swis721 BT',
		textShadow: '1px 1px 1px #fff, -1px -1px 1px #fff'
	});
	
	/*Cufon.replace('nav a span', {
		fontFamily: 'Swis721 Cn BT'
	})*/
	
	$('nav a').hover(function(){
		$(this).find('span.normal').stop(true, true).animate({'margin-top' : -15}, 'fast');
	}, function(){
		$(this).find('span.normal').stop(true, true).animate({'margin-top' : 0}, 'fast');
	});
	
	// Cycle Home
	if ($('body').hasClass('home')) {
		$('#content .images, #highlights').cycle({
			fx: 'fade',
			timeout: 20000
		});
	}
	
	// Fleet carousel
	if ($('.column.units ul').size() > 0) {
		$('.column.units ul').jcarousel({
			scroll: 1
		});
	}
	
	// Contact Form
	$('#ContactIndexForm').submit(function(e){
		e.preventDefault();
		formName = $('#ContactName').val();
		formMail = $('#ContactEmail').val();
		formComment = $('#ContactComment').val();
		var errorCount = 0;
		
		// Name
		if (formName == '') {
			errorCount += 1;
		}
		
		// Name
		if (formMail == '') {
			errorCount += 1;
		}
		
		if (errorCount > 0) {
			alert('Errores');
		} else {
			$.post(
				$(this).attr('action'),
				{'name' : formName, 'email' : formMail, 'comment' : formComment},
				function (data) {
					$('<div id="confirmation-message"><h2>' + data.title + '</h2><p>' + data.text + '</p><a href="#" title="' + data.button + '">' + data.button + '</a>').appendTo('body');
					$('#confirmation-message').modal();
					$('#confirmation-message a').click(function(e){
						e.preventDefault();
						$.modal.close();
					});
				},
				'json'
			);
		}
		
	});
	
	// Recommendations Form
	$('#RecommendationIndexForm').submit(function(e){
		e.preventDefault();
		formName = $('#RecommendationName').val();
		formMail = $('#RecommendationEmail').val();
		formCountry = $('#RecommendationCountryId').val();
		formMessage = $('#RecommendationMessage').val();
		var errorCount = 0;
		
		// Name
		if (formName == '') {
			errorCount += 1;
		}
		
		// Name
		if (formMail == '') {
			errorCount += 1;
		}
		
		if (errorCount > 0) {
			alert('Errores');
		} else {
			$.post(
				$(this).attr('action'),
				{'name' : formName, 'email' : formMail, 'country_id' : formCountry, 'message' : formMessage},
				function (data) {
					$('<div id="confirmation-message"><h2>' + data.title + '</h2><p>' + data.text + '</p><a href="#" title="' + data.button + '">' + data.button + '</a>').appendTo('body');
					$('#confirmation-message').modal();
					$('#confirmation-message a').click(function(e){
						e.preventDefault();
						$.modal.close();
					});
				},
				'json'
			);
		}
		
	});
	
	
	// Reserve form
	if ($('#ReserfIndexForm').size() > 0) {
		showFromFields($('#ReserfFrom').val());
		showToFields($('#ReserfTo').val());
		fillReserveData(false);
		
		switch ($('#ReserfPickerLang').val()) {
			case 'es':
				timepickerHourText = 'Hora';
				timepickerMinText = 'Minuto';
				break;
				
			case 'en-GB':
				timepickerHourText = 'Hour';
				timepickerMinText = 'Minute';
				break;
				
			case 'pt-BR':
				timepickerHourText = 'Tempo';
				timepickerMinText = 'Minuto';
				break;
			
			default:
				break;
		}
		
		$('#ReserfDate').datepicker({
			minDate: new Date(),
			maxDate: '+1Y',
			dateFormat: 'dd/mm/yy',
			onSelect: function () {
				fillReserveData(false);
			}
		});
		$('#ReserfTime').timepicker({
			hourText: timepickerHourText,
			minuteText: timepickerMinText,
			onSelect: function () {
				fillReserveData(false);
			}
		});
		
		$('#ReserfIndexForm input[type=text], #ReserfIndexForm textarea').blur(function(){
			fillReserveData(false);
		});
		$('#ReserfIndexForm select').change(function(){
			fillReserveData(false);
		});
		
		$('#ReserfFrom').change(function(){
			if ($('.fields-from.active').size() > 0) {
				$('.fields-from.active').slideUp(function() {
					$(this).removeClass('active');
					showFromFields($('#ReserfFrom').val());
				});
			} else {
				showFromFields($('#ReserfFrom').val());
			}
		});
		$('#ReserfTo').change(function(){
			if ($('.fields-to.active').size() > 0) {
				$('.fields-to.active').slideUp(function() {
					$(this).removeClass('active');
					showToFields($('#ReserfTo').val());
				});
			} else {
				showToFields($('#ReserfTo').val());
			}
		});
		
		$('#next-step, #reserve-steps .second a').click(function(e) {
			e.preventDefault();
			$('#reserve-step01').fadeOut(function(){
				$('#reserve-step02').fadeIn();
				$('#reserve-steps .first').removeClass('current');
				$('#reserve-steps .second').addClass('current');
			});
		});
		$('#prev-step, #reserve-steps .first a').click(function(e) {
			e.preventDefault();
			$('#reserve-step02').fadeOut(function(){
				$('#reserve-step01').fadeIn();
				$('#reserve-steps .second').removeClass('current');
				$('#reserve-steps .first').addClass('current');
			});
		});
		
		$('#ReserfIndexForm').submit(function (e) {
			
			e.preventDefault();
			
			var errorCount = 0;
			
			// Name
			if ($('#ReserfName').val() == '') {
				errorCount += 1;
			}
			// Phone
			if ($('#ReserfPhone').val() == '') {
				errorCount += 1;
			}
			// Email
			if (!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test($('#ReserfEmail').val()) || $('#ReserfEmail').val() != $('#ReserfEmailConfirm').val()) {
				errorCount += 1;
			}
			// Passengers
			if (parseInt($('#ReserfPassengers').val()) == 0) {
				errorCount += 1;
			}
			
			// From
			switch (parseInt($('#ReserfFrom').val())) {
				case 0:
					errorCount += 1;
					break;
					
				case 1:
					// Hotel
					if ($('#ReserfFromHotel').val() == '') {
						errorCount += 1;
					}
					// Room number
					if ($('#ReserfFromRoomNumber').val() == '') {
						errorCount += 1;
					}
					break;
					
				case 2:
					// Address
					if ($('#ReserfFromAddress').val() == '') {
						errorCount += 1;
					}
					break;
					
				case 3:
					// Airport
					if ($('#ReserfFromFlightNumber').val() == '') {
						errorCount += 1;
					}
					if ($('#ReserfFromAirline').val() == '') {
						errorCount += 1;
					}
					
				default:
					break;
			}
			
			// To
			switch (parseInt($('#ReserfTo').val())) {
				case 0:
					errorCount += 1;
					break;
					
				case 1:
					// Hotel
					if ($('#ReserfToHotel').val() == '') {
						errorCount += 1;
					}
					break;
					
				case 2:
					// Address
					if ($('#ReserfToAddress').val() == '') {
						errorCount += 1;
					}
					
				case 3:
					// Airport
					break;
					
				default:
					break;
			}
			
			// Date
			if ($('#ReserfDate').val() == '') {
				errorCount += 1;
			}
			
			// Time
			if ($('#ReserfTime').val() == '') {
				errorCount += 1;
			}
			
			if (errorCount > 0) {
				alert('Errores: ' + errorCount);
			} else {
			
				//$('.submit input').attr('disabled','disabled');
				
				$('<div id="confirmation-message">').appendTo('body');
				
				$('#confirmation-message').html('<div id="sending-msg"></div>');
				
				$('#confirmation-message').modal();
			
				$.post(
					$(this).attr('action'),
					{
						'name' : $('#ReserfName').val(),
						'phone' : $('#ReserfPhone').val(),
						'internal' : $('#ReserfInternal').val(),
						'email' : $('#ReserfEmail').val(),
						'email_confirm' : $('#ReserfEmailConfirm').val(),
						'passengers' : $('#ReserfPassengers').val(),
						'suitcases_small' : $('#ReserfSuitcasesSmall').val(),
						'suitcases_medium' : $('#ReserfSuitcasesMedium').val(),
						'suitcases_big' : $('#ReserfSuitcasesBig').val(),
						'comments' : $('#ReserfComments').val(),
						'from' : $('#ReserfFrom').val(),
						'from_hotel' : $('#ReserfFromHotel').val(),
						'from_room_number' : $('#ReserfFromRoomNumber').val(),
						'from_hotel_location' : $('#ReserfFromHotelLocation').val(),
						'from_address' : $('#ReserfFromAddress').val(),
						'from_department' : $('#ReserfFromDepartment').val(),
						'from_address_location' : $('#ReserfFromAddressLocation').val(),
						'from_flight_number' : $('#ReserfFromFlightNumber').val(),
						'from_airline' : $('#ReserfFromAirline').val(),
						'to' : $('#ReserfTo').val(),
						'to_hotel' : $('#ReserfToHotel').val(),
						'to_address' : $('#ReserfToAddress').val(),
						'date' : $('#ReserfDate').val(),
						'time' : $('#ReserfTime').val(),
						'fecha_creacion' : $('#ReserfCreated').val(),						
					},
					function (data) {
						
						cleanForm($('#ReserfIndexForm'));
						
						$('.fields-from.active, .fields-to.active').slideUp();
						
						$('#confirmation-message').html('<h2>' + data.title + '</h2><p>' + data.text + '</p><a href="' + data.button_print_link + '" class="print" title="' + data.button_print + '">' + data.button_print + '</a><a style="cursor:pointer" class="close" title="' + data.button + '">' + data.button + '</a>');
						$('#sending-msg').hide();
						
						//$('<div id="confirmation-message"><h2>' + data.title + '</h2><p>' + data.text + '</p><a href="' + data.button_print_link + '" class="print" title="' + data.button_print + '">' + data.button_print + '</a><a href="#" class="close" title="' + data.button + '">' + data.button + '</a>').appendTo('body');
						//$('#confirmation-message').modal();
						$('#confirmation-message a.close').click(function(e){
							e.preventDefault();
							$.modal.close();
						});
						$('#confirmation-message a.print').click(function(e){
							e.preventDefault();
							window.open($(this).attr('href'), 'Reserve Online Print', 'width=400,height=600,scrollbars=NO');
						});
					},
					'json'
				);
			}
			
		});
		
	}
	
	
});


function showFromFields (value) {
	$('#ReserfTo').val(0);
	$('.fields-to.active').slideUp();
	switch (value) {
		case '0':
			$('#ReserfTo').attr('disabled', 'disabled');
			break;
			
		case '1':
			$('#ReserfTo').removeAttr('disabled');
			$('#ReserfTo option:eq(3)').removeAttr('disabled');
			$('#ReserfTo option:eq(1), #ReserfTo option:eq(2)').attr('disabled', 'disabled');
			$('.fields-from.hotel').slideDown().addClass('active');
			break;
			
		case '2':
			$('#ReserfTo').removeAttr('disabled');
			$('#ReserfTo option:eq(3)').removeAttr('disabled');
			$('#ReserfTo option:eq(1), #ReserfTo option:eq(2)').attr('disabled', 'disabled');
			$('.fields-from.address').slideDown().addClass('active');
			break;
			
		case '3':
			$('#ReserfTo').removeAttr('disabled');
			$('#ReserfTo option:eq(1), #ReserfTo option:eq(2)').removeAttr('disabled');
			$('#ReserfTo option:eq(3)').attr('disabled', 'disabled');
			$('.fields-from.airport').slideDown().addClass('active');
			break;
			
		default:
			break;
	}
	
	fillReserveData(true);
	
}

function showToFields (value) {
	switch (value) {
		case '1':
			$('.fields-to.hotel').slideDown().addClass('active');
			break;
			
		case '2':
			$('.fields-to.address').slideDown().addClass('active');
			break;
			
		case '3':
			$('.fields-to.airport').slideDown().addClass('active');
			break;
			
		default:
			break;
	}
	fillReserveData(true);
}

function fillReserveData (onlyTravel) {
	
	if (onlyTravel) {
		if (parseInt($('#ReserfFrom').val()) > 0) {
			$('#reserve-data-from').html($('#ReserfFrom option:selected').text());
		} else {
			$('#reserve-data-from').html('-');
		}
		
		if (parseInt($('#ReserfTo').val()) > 0) {
			$('#reserve-data-to').html($('#ReserfTo option:selected').text());
		} else {
			$('#reserve-data-to').html('-');
		}
		return true;
	}
	
	var dataName = $('#ReserfName').val() != '' ? $('#ReserfName').val() : '-';
	$('#reserve-data-name').html(dataName);
	var dataPhone = $('#ReserfPhone').val() != '' ? $('#ReserfPhone').val() : '-';
	$('#reserve-data-phone').html(dataPhone);
	var dataInternal = $('#ReserfInternal').val() != '' ? $('#ReserfInternal').val() : '-';
	$('#reserve-data-internal').html(dataInternal);
	
	if ($('#ReserfEmail').val() != '' && $('#ReserfEmail').val() == $('#ReserfEmailConfirm').val()) {
		$('#reserve-data-email').html($('#ReserfEmail').val());
	} else {
		$('#reserve-data-email').html('-');
	}
	
	if ($('#ReserfPassengers').val() != '0') {
		$('#reserve-data-passengers').html($('#ReserfPassengers').val());
	} else {
		$('#reserve-data-passengers').html('-');
	}
	
	var dataSuitcases = parseInt($('#ReserfSuitcasesSmall').val()) +  parseInt($('#ReserfSuitcasesMedium').val()) + parseInt($('#ReserfSuitcasesBig').val());
	if (dataSuitcases > 0) {
		$('#reserve-data-suitcases').html(dataSuitcases);
	} else {
		$('#reserve-data-suitcases').html('-');
	}
	
	if ($('#ReserfDate').val() != '') {
		$('#reserve-data-date').html($('#ReserfDate').val());
	} else {
		$('#reserve-data-date').html('-');
	}
	
	if ($('#ReserfTime').val() != '') {
		$('#reserve-data-time').html($('#ReserfTime').val());
	} else {
		$('#reserve-data-time').html('-');
	}
	
}

function cleanForm (form) {
	
	form.find('textarea').val('');
	form.find('input:text').val('');
	form.find('select').each(function(i){
		$(this).find(':selected').removeAttr();
		$(this).find('option:first').attr('selected', 'selected');
	});
	
	$('#reserve-data-from').html('-');
	$('#reserve-data-to').html('-');
	$('#reserve-data-name').html('-');
	$('#reserve-data-phone').html('-');
	$('#reserve-data-internal').html('-');
	$('#reserve-data-email').html('-');
	$('#reserve-data-passengers').html('-');
	$('#reserve-data-suitcases').html('-');
	$('#reserve-data-date').html('-');
	$('#reserve-data-time').html('-');
}

