/**
 * Скрипт, который отвечает за работу блока поиска
 */

jQuery(function () {
	var $ = jQuery;
	var countryData = {};
	if (!window.searchData) { 
		window.searchData = [0,0,0];
	}
	// Функции для трансляции значений из селектов в инпуты
	// Обходим селекты, если в нем есть значение, транслируем его в поле вывода
	$('select.inputFile2,select.inputFile3,select.inputFile4').each(function () {
		if (parseInt($(this).val()) != 0) {
			var title = searchTitle($(this));
			setupTitle($(this),title);			
		}
	});
	// Если значение селекта поменялось, то мы меняем поле вывода
	$('select.inputFile2,select.inputFile3,select.type_file4,select[name=currency]').change(function ( ) {
	
		var title = searchTitle($(this));
		setupTitle($(this),title);
		
	});
	var callFromOnChange = false;
	// Выбор внутри селекта страны
	$('#countrySelect').change(function () {
		if (callFromOnChange) {
			return ;
			callFromOnChange = false;
		}
		if (searchData[0] != 0) {
			this.value = searchData[0];
			searchData[0] = 0;
			callFromOnChange = true;
		}
		countryData = {};
		$('#tourSelect,#hotelSelect').empty();
		$('#tourSelect').html('<option value="0" selected>Все курорты</option>');
		setupTitle($('#tourSelect'),'Курорт');
		setupTitle($('#hotelSelect'),'Отель');
		//
		if ($(this).val() == 'Greece') { 
			window.location = '/go_greece.php';
		} else if ($(this).val() == 'Cruise') { 
			window.location = '/go_cruise.php';
		} else if ($(this).val() == 'Lithuania') { 
			window.location = '/go_lithuania.php';
		} else if ($(this).val().match(/http:\/\//)) {
			window.location = $(this).val(); 
		}
		// Если выбрали (выберите страну, то возврат)
		if ($(this).val() == 0) { return ;}
		
		
		// Выбор курортов
		$.post('/search/',{
			country : $(this).val()
		},function (data) {
			countryData = eval('(' + data + ')');
			setupTitle($('#tourSelect'),'Все курорты ');
			setupTitle($('#hotelSelect'),'Все отели ');
			if (searchData[1] != 0) {
				$('#tourSelect').html('<option value="0" >Все курорты</option>');
			}  else {
				$('#tourSelect').html('<option value="0" selected="selected">Все курорты</option>');
			}
			
			// Заполняем массив регионов
			for (var key in countryData.tours) {
				var row = countryData.tours[key];
				var selected = false;
				selected = (searchData[1] != 0) && (row.tourId[0] == searchData[1]);
				var resort = addOption($('#tourSelect'),row.tourId[0],row.name,selected);
				if (selected) { searchData[1] = 0;}
			}
			if (searchData[2] != 0) {
				$('#hotelSelect').html('<option value="0">Все отели</option>');
			} else {
				$('#hotelSelect').html('<option value="0" selected="selected">Все отели</option>');
			}
			for (var key in countryData.hotels) {
				var row = countryData.hotels[key];
				var selected = false;
				selected = (searchData[2] != 0) && (row.hotelId == searchData[2]);
				var hotel = addOption($('#hotelSelect'),row.hotelId,row.name,selected);
				if (selected) { searchData[2] = 0;}
			}
			
		});
	});
	
	$('#tourSelect').change(function () {
		$('#hotelSelect').empty();
		$('#hotelSelect').html('<option value="0" selected>Все отели</option>');
		// Перебор всех туров, где 
		var tourId = $(this).val();
		for (var key in countryData.hotels) {
			var row = countryData.hotels[key];
			if ((row.tourId == tourId) || (tourId == 0)) {
				var hotel = addOption($('#hotelSelect'),row.hotelId,row.name);
				if (searchData[2] != 0) {
					if (hotel.val() == searchData[2]) {
						searchData[2] = 0;
						hotel.get(0).selected = true;
					}
				}
			}
		}
	});
	var called = false;
	if ((searchData[0] > 0) && !called ) {
		called = true;
		
		$('#countrySelect').change();
		
	}
	var searchClicked = false;
	$('div.data_ot div.inp_4').click(function () {
		// Проверяем, что это не поле ввода цены
		
		if ($(this).parent().hasClass('price_option')) { return ;}
		var obj = $(this).find('input').get(0);
		var position = $(this).next().get(0);
		
		if (!position) {
			if ($(this).parents('#cont1').length > 0) {
				// Это нужно для следующего метода
				searchClicked = false;
				position = $(this).find('div').get(0);
				
			}  else {
				searchClicked = true;
				position = $(this).parent().next().find('div.inp_4:eq(0)').get(0);
			}
			
		} else {
			 searchClicked = true;
		}
		
		displayCalendar(obj,'dd.mm.yy',position);
	});
	// Вызываем выбор страны, если пользователь раньше пользователь осуществлял поиск
	$('select.inputFile2').each(function () {
		if ($(this).val() != 0) {
			$(this).change();
		}
	});
	$('#calendarDiv table tr td').live('click',function () {
		if (searchClicked) {
			$.post('/search/',{
				dateFrom : $('#date1').val(),
				dateTo : $('#date2').val()
				
			});
		}
	});
	// Нажатие на кнопку 
	$('#searchForm').submit(function () {
		// Проверяем, что выбрана страна
		var country = $('select[name=country]').val();
		if (country == 0) {
			alert('Извините, но вы не выбрали страну куда едете');
			return false;
		}
		// Проверяем, что выбрано размещение
		var placement = $('select[name=placement]').val();
		if (placement.value == '0') {
			alert('Извините, но вы не сделали выбор в поле "Размещение". Поиск невозможен');
			return false;
		} 
		// Проверяем, что выбрано питане
		var food = $('select[name=food]').val();
		if (food == -1) {
			alert('Извините, но вы не сделали выбор в поле "Питание". Поиск невозможен');
			return false;
		} 
		// Проверяем, что заполнен бюджет
		var price = $('input[name=priceMax]').val();
		var price = parseInt(price);
		if (price <= 0) {
			alert('Извините, но вы не обозначили свою бюджет. Поиск невозможен');
			return false;
		}
		// Проверяем, что заполнен бюджет
		var price = $('input[name=priceMin]').val();
		var price = parseInt(price);
		if (price <= 0) {
			alert('Извините, но вы не обозначили свою бюджет. Поиск невозможен');
			return false;
		}
		// Шлем запрос (на выход получаем JSON)
		var request = {
				search : 1,
				country : country,
				resort  : $('select[name=resort]').val(),
				hotel   : $('select[name=hotel]').val(),
				placement : placement,
				food    : food,
				dateFrom 	: $('#date1').val(),
				dateTo	 	: $('#date2').val(),
				nightsFrom 	: $('select[name=countDays1]').val(),
				nightsTo	: $('select[name=countDays2]').val(),
				priceMin    	: $('#searchPriceFieldMin').val(),
				priceMax    	: $('#searchPriceFieldMax').val(),
				currency    : $('select[name=currency]').val()
			};
		var form = $('<form method="post" action="/search/" style="display:none"></form>');
		for (var key in request) {
			form.append('<input type="hidden" name="' + key + '" value="' + request[key]+ '"/>');
		}
		$('body').append(form);
		form.submit();
		
			
		return false;
	});
		
		
})


// Фунция поиска тайтла у селекта
function searchTitle(select) {
	var $ = jQuery;
	var val = select.val();
	var title = '';
	select.children('option').each(function () {
		if (val == $(this).val()) {
			title = $(this).html();
		}
	});
	return title;
}
function setupTitle(select,title) {
	select.next().next().val(title);
}
function addOption(obj,value,title,selected) {
	var html = '';
	if (selected) {
		html = '<option value="' + value + '" selected="selected">' + title +'</option>';
		var input = obj.nextAll('input[type=text]');
		input.get(0).readonly = false;
		input.val(title);
		input.get(0).readonly = true;
		
	} else {
		html = '<option value="' + value + '">' + title +'</option>';
	}
	obj.append(html);
	
	
	
	return obj.find('option:last');
}

jQuery(function () {
	var $ = jQuery;
	$('a.tez_search_order').live('click',function () {
		var phone = $('div.tel_top').clone();
		$('span:eq(0)',phone).remove();
			
		var html = [
		            '<div class="popup-order" style="display:block;">',
		            '<a href="#" title="Close" class="close"><!-- --></a>',
		            '<p>Заполните данную форму и с Вами свяжется представитель нашей компании</p>',
		            '<p>По всем вопросам обращайтесь по телефонам:</p>',
					'<div style="margin-left:10px;margin-bottom:10px;"><p>' + phone.html() +'</p></div>',
		            '<div class="order-item">',
		            '<form method="post" action="/order.php">',
		            '<div class="faq_left">ФИО:</div>',
		            '<div class="faq_right"><input type="text" name="name"></div>',
		            '<br clear="all">',
		            '<br>',
		            '<div class="faq_left">E-mail/телефон:</div>',
		            '<div class="faq_right"><input type="text" name="contact"></div>',
		            '<br clear="all">',
		            '<br>',
		            '<div class="faq_left">Дополнительно:</div>',
		            '<div class="faq_right_textarea2"><textarea rows="" cols="" name="content"></textarea></div>',
		            '<br clear="all">',
		            '<br>',
		            '<div class="sprositi"><input type="submit" value="Отослать"></div>',
		            
		            '</form>',
		            '</div></div>'
		           ];
		$('body').prepend('<div class="simple-popup-overlay" style="left:0;top:0;position:fixed;"></div>');
		$('.simple-popup-overlay').css('height',$(document).height() + 'px').css('width','100%');
		var popup = $(html.join(''));
		$('a.close,.simple-popup-overlay').live('click',function () {
			popup.remove();
			$('.simple-popup-overlay').remove();
			return false;
		});
		var top = $(window).scrollTop() + 100;
		var left = $(window).width() / 2 - 251;
		popup.css('left',left + 'px')
			.css('top',top + 'px');
		$('body').append(popup);
		var hiddenRequest = $('<input type="hidden" name="request" value="123">');
		hiddenRequest.val($('div.search_results').html());
		popup.find('form').append(hiddenRequest);
		var hiddenTourInfo = tourInfo($(this).parents('tr'));
		popup.find('form').append(hiddenTourInfo);
		return false;

		function tourInfo( tr ) {
			
			var result = $('<input type="hidden" name="tour" value="">');
			var value = [
			             ' Вылет: ' + tr.children('td:eq(0)').html() + ',',
			             ' Ночей: ' + tr.children('td:eq(1)').html() + ',',
			             ' Курорт: ' + tr.children('td:eq(2)').html() + ',',
			             ' Отель: ' + tr.children('td:eq(3)').html() + ',',
			             ' Цена: ' + tr.children('td:eq(4)').html() + ',',
			             ' Питание: ' + tr.children('td:eq(5)').html() + ',',
			             ' Размещение: ' + tr.children('td:eq(6)').html()
			             
			             ];
			result.val(value.join(' '));
			return result;
		}
		
	});
});
jQuery(function () {
	var $ = jQuery;
	var func = function () {
		var request = {
			cityRequest : 1
		};
		$('.city-checkbox:checked').each(function (i) {
			request['cityList[' + i +']'] = $(this).val();
		});
		$('.table_search').replaceWith('<div class="loading"><img src="/_exst_kernel/ext3/resources/images/default/shared/large-loading.gif"/></div>');
		$.post('/search/',request,function (result) {
			$('.loading').replaceWith(result);
		});
	};
	$('.city-checkbox').change(function () {
		func();
	});
	$('.city-select').click(function () {
		func();
		return false;
	});
});
jQuery(function () {
	var $ = jQuery;
	
	window.setInterval(function () {
		$('a.cruise').fadeOut(600,function () {
			$('a.cruise').fadeIn(1400);
		})
	},5000);
	window.setInterval(function () {
		$('a.greece').fadeOut(600,function () {
			$('a.greece').fadeIn(1400);
		})
	},5000);
	
})
