(function(){
	//jQuery.noConflict();
	var agl62 = window.agl62 = function(params) {
		if ( window == this || !this.init ) 
			return new agl62(params); 
		return this.init(params);
	}
	agl62.prototype = {
		prefix: 'agl62_',
		site_host: '',
		search_path: '',
		full_search_path: '',
		form_url: '/form/form.php',
		form_simple_subpath: '/test.php',
		search_form_action: '/data.php?act=sresults',
		simple: true,
		default_country: 2,
		default_city_from: 2,
		datepicker_horizontal_offset:0,
		city_from: 1,
		order_form_w: 900,
		order_form_h: 'auto',
		order_form_l: 100,
		order_form_t: 50,
		preload_img: '/img/pilgrimload.gif',
		finish_order_action: '/data.php?act=fintrorder',
		group_star_inc: new Array("2","3","4","5","6","7"),
		group_star_name: new Array("2*","3*","4*","5*","HV 1","HV 2"),
		country_inc: new Array(),
		country_names: new Array(),
		cities_from_ids: new Array(),
		cities_from_name: new Array(),
		group_meal_inc: new Array(),
		group_meal_name: new Array(),
		h_name: '',
		s_country_to: '',
		s_city_from: '',
		s_start_from: '',
		s_cost_max: '',
		s_NIGHTS_FROM: '',
		s_ADULT: '',
		s_CHILD: '',
		s_HOTELS_X: '',
		from_simple: false,
		country_to: '',
		start_from: '',
		cost_max: '',
		NIGHTS_FROM: '',
		ADULT: '',
		CHILD: '',
		HOTELS_X: '',
		
		dont_close_preload: false,
		data_preload_message: 'Загрузка данных формы',
		search_preload_msg: 'Идет поиск',
		chk_msg1: 'Тур активен и доступен для заказа',
		chk_msg2: 'К сожалению выбранный тур более не активен и недоступен для заказа',
		chk_msg3: 'К сожалению выбранный тур более не активен и недоступен для заказа',
		chk_msg4: 'К сожалению выбранный тур более не активен и недоступен для заказа',
		chk_msg5: 'К сожалению выбранный тур более не активен и недоступен для заказа',
		chk_msg6: 'К сожалению сайт оператора не отвечает',
		check_preload_msg: 'Проверка...',
		check_preorder_msg: 'Загрузка данных, подождите',
		chk_error_msg: 'Произошла внутренняя ошибка',
		err_load_data_msg: 'Произошла ошибка загрузки ',
		err_get_search_data: 'Произошла ошибка поиска ',
		err_order_input_name: '*Поле "Имя" должно быть заполнено',
		err_order_input_phone: '*Поле "Телефон" должно быть заполнено',
		err_order_input_email: '*Поле "e-mail" должно быть заполнено',
		err_order_input_emailformat: 'Неправильно заполнено поле "e-mail"',
		order_submit_msg: 'Отправка данных, подождите',
		www: 'http://',
		json_data_url: '/data.php?act=fdata&f=full&country=',
		json_data_url_smp: '/data.php?act=fdata&f=simple&country=',
		check_url1: '/check.php?tid=',
		check_url2: '&postfix=',
		order_form_action: '/data.php?act=trorder',
		current_country: '',
		today: '',
		hotels_inc: new Array(),
		hotels_towninc: new Array(),
		hotels_name: new Array(),
		hotels_starinc: new Array(),
		towns_inc: new Array(),
		towns_name: new Array(),
		operators_inc: new Array(),
		operators_name: new Array(),		
		validdates: '',
		current_row: null,
		preload_top: 50,
		preload_left: 10,
		preload_height: 90,
		preload_width: 250,
		preload_position: 'custom', //если равно 'custom', то положение определяется параметрами preload_left и preload_top
		order_form_position: 'custom', //аналогично preload_position
		preload_close: false,
		preload_pretext: '<!--[if lte IE 6.5]><iframe></iframe><![endif]--><div id="agl512_preload_close" class="closeline">'
						 +'<div class="title"></div>'
						 +'<a id="popupclose" href="#" > </a>'
						 +'</div>',
		seats_exist_msg: 'Есть',
		container: null, // div для содержимого
		container_id: 'agl62',
		/* 
			id элемента для содержимого (можно указать любую часть страницы для загрузки в нее формы поиска и результатов)
			если же этот параметр не указан, в документе ищется div с id = agl62
			при отсутствии контейнера, компонент запускаться не будет
		*/
		// инициализация объекта
		init: function(params) {
			this.container_id = ((params['container_id']!=undefined) && (params['container_id'].length))?params['container_id']:this.container_id;
			this.container = document.getElementById(this.container_id);
			if (this.container) {
				this.container.innerHTML = '<div id="'+this.prefix+'preload"> </div>'
				+'<div id="'+this.prefix+'search_form"> </div>'
				+'<div id="'+this.prefix+'simple_search_form"> </div>'
				+'<div id="'+this.prefix+'output"> </div>'
				;
			}
			
			if (undefined == params['site_host']) return false; else this.site_host = params['site_host'];
			if (undefined == params['search_path']) return false; else this.search_path = params['search_path'];
			if (document.location.host == 'www.'+this.site_host){this.www += 'www.'}
			
			this.full_search_path = this.www + this.site_host + this.search_path;
			
			this.form_simple_subpath = this.www + this.site_host + ((params['form_simple_subpath']!=undefined)?(params['form_simple_subpath']):this.form_simple_subpath);
			this.form_url = this.full_search_path + ((params['form_url']!=undefined)?(params['form_url']):this.form_url);
			
			this.search_form_action = this.full_search_path + ((params['search_form_action']!=undefined)?(params['search_form_action']):this.search_form_action);
			this.json_data_url = this.full_search_path + ((params['json_data_url']!=undefined)?(params['json_data_url']):this.json_data_url);
			this.json_data_url_smp= this.full_search_path + this.json_data_url_smp;
			
			this.check_url1 = this.full_search_path + ((params['check_url1']!=undefined)?(params['check_url1']):this.check_url1);
			this.check_url2 = (params['check_url2']!=undefined)?(params['check_url2']):this.check_url2;
			this.finish_order_action = this.www + this.site_host + this.search_path + ((params['finish_order_action']!=undefined)?(params['finish_order_action']):this.finish_order_action);
			this.preload_img = ((params['preload_img']!=undefined)?params['preload_img']:(this.full_search_path + this.preload_img));
			this.preload_top = ((params['preload_top']!=undefined)?params['preload_top']:this.preload_top);
			this.preload_left = ((params['preload_left']!=undefined)?params['preload_left']:this.preload_left);
			this.preload_position = ((params['preload_position']!=undefined)?params['preload_position']:this.preload_position);
			this.order_form_t = ((params['order_form_t']!=undefined)?params['order_form_t']:this.order_form_t);
			this.order_form_l = ((params['order_form_l']!=undefined)?params['order_form_l']:this.order_form_l);
			this.datepicker_horizontal_offset = ((params['datepicker_horizontal_offset']!=undefined)?params['datepicker_horizontal_offset']:this.datepicker_horizontal_offset);
			
			this.simple = (params['simple']!=undefined)?params['simple']:this.simple;
			this.default_country = (params['default_country']!=undefined)?params['default_country']:this.default_country;
			this.city_from = this.default_city_from = (params['default_city_from']!=undefined)?params['default_city_from']:this.default_city_from;
			this.order_form_w = (params['order_form_w']!=undefined)?params['order_form_w']:this.order_form_w;
			this.order_form_h = (params['order_form_h']!=undefined)?params['order_form_h']:this.order_form_h;
			this.order_form_action = this.www + this.site_host + this.search_path + ((params['order_form_action']!=undefined)?(params['order_form_action']):this.order_form_action);
			this.data_preload_message = (params['data_preload_message']!=undefined)?params['data_preload_message']:this.data_preload_message;
			this.order_submit_msg = (params['order_submit_msg']!=undefined)?params['order_submit_msg']:this.order_submit_msg;
			
			this.search_preload_msg = (params['search_preload_msg']!=undefined)?params['search_preload_msg']:this.search_preload_msg;
			this.chk_msg1 = (params['chk_msg1']!=undefined)?params['chk_msg1']:this.chk_msg1;
			this.chk_msg2 = (params['chk_msg2']!=undefined)?params['chk_msg2']:this.chk_msg2;
			this.chk_msg3 = (params['chk_msg3']!=undefined)?params['chk_msg3']:this.chk_msg3;
			this.chk_msg4 = (params['chk_msg4']!=undefined)?params['chk_msg4']:this.chk_msg4;
			this.chk_msg5 = (params['chk_msg5']!=undefined)?params['chk_msg5']:this.chk_msg5;
			this.chk_msg6 = (params['chk_msg6']!=undefined)?params['chk_msg6']:this.chk_msg6;
			this.chk_error_msg = (params['chk_error_msg']!=undefined)?params['chk_error_msg']:this.chk_error_msg;
			this.err_load_data_msg = (params['err_load_data_msg']!=undefined)?params['err_load_data_msg']:this.err_load_data_msg;
			this.err_get_search_data = (params['err_get_search_data']!=undefined)?params['err_get_search_data']:this.err_get_search_data;
			this.err_order_input_name = (params['err_order_input_name']!=undefined)?params['err_order_input_name']:this.err_order_input_name;
			this.err_order_input_phone = (params['err_order_input_phone']!=undefined)?params['err_order_input_phone']:this.err_order_input_phone;
			this.err_order_input_email = (params['err_order_input_email']!=undefined)?params['err_order_input_email']:this.err_order_input_email;
			this.err_order_input_emailformat = (params['err_order_input_emailformat']!=undefined)?params['err_order_input_emailformat']:this.err_order_input_emailformat;
			this.check_preload_msg = (params['check_preload_msg']!=undefined)?params['check_preload_msg']:this.check_preload_msg;
			this.check_preorder_msg = (params['check_preorder_msg']!=undefined)?params['check_preorder_msg']:this.check_preorder_msg;
			
			this.seats_exist_msg = (params['seats_exist_msg']!=undefined)?params['seats_exist_msg']:this.seats_exist_msg;
			if ((this.getCookie('from_simple')=='true') && (this.simple==false)) {
				
				this.simple =  false; this.from_simple = true;
				this.default_country = this.country_to = this.getCookie("country_to");
				this.city_from = this.getCookie("city_from");
				this.start_from = this.getCookie("start_from");
				this.cost_max = this.getCookie("cost_max");
				this.NIGHTS_FROM = this.getCookie("NIGHTS_FROM");
				this.ADULT = this.getCookie("ADULT");
				this.CHILD = this.getCookie("CHILD");
				this.HOTELS_X = this.getCookie("HOTELS_X");
				this.delete_all_cookies();
				this.data_from_simple(this.country_to, this.city_from, this.start_from, this.cost_max, this.NIGHTS_FROM, this.ADULT, this.CHILD, this.HOTELS_X);
			}
			this.city_from = this.default_city_from;
			
			
			return this;
		},
		data_from_simple: function(country_to,city_from,start_from,cost_max,NIGHTS_FROM,ADULT,CHILD,HOTELS_X){
			this.s_country_to = country_to;
			this.s_city_from = city_from;
			this.s_start_from = start_from;
			this.s_cost_max = cost_max;
			this.s_NIGHTS_FROM = NIGHTS_FROM;
			this.s_ADULT = ADULT;
			this.s_CHILD = CHILD;
			this.s_HOTELS_X = HOTELS_X;
		},
		
		// запуск (загрузка формы )
		run: function() {
			if (this.container==undefined) {return false;}
			if(this.simple) var ags512_form_target = 'agl62_simple_search_form';
				else var ags512_form_target = 'agl62_search_form'; 
			var thisagl62 = this;
			jQuery.ajax({
				timeout: 20000,
				url: thisagl62.form_url,
				async: true,
				beforeSend: function(){/*thisagl62.preload(thisagl62.data_preload_message);*/},
				error: function (XMLHttpRequest, textStatus, errorThrown) {thisagl62.onRequestError(thisagl62.err_load_data_msg);},
				complete: function(){
					//thisagl62.closePreload();
				},
				dataType : "html",
				success: function (data, textStatus) {
					document.getElementById(ags512_form_target).innerHTML=data;
					//thisagl62.closePreload();
					thisagl62.LoadData(thisagl62.default_country);
				}
			});
			
		},
		// обработка ошибки при ajax-запросе
		onRequestError: function(message, viewalert) {
			//this.closePreload(); 
			if (viewalert==true) alert(message); 
		},
		//загрузка данных для формы
		LoadData: function(country) {
			this.current_country = country;
			var thisagl62 = this;
			if(thisagl62.simple) jsurl=thisagl62.json_data_url_smp +country;
			else jsurl=thisagl62.json_data_url +country;
    
			jQuery.ajax({
				timeout: 20000,
				url: jsurl,
				async: true,
				beforeSend: function(){/*thisagl62.preload(thisagl62.data_preload_message)*/},
				error: function (XMLHttpRequest, textStatus, errorThrown) {thisagl62.onRequestError(thisagl62.err_load_data_msg+ ' '+ textStatus + ' ' + jsurl, 1); },
				//dataType : "json",
				complete: function(){
					//thisagl62.closePreload();
				},
				success: function (data, textStatus) { 
					
					data = eval("(" + data + ")");
					if (data.hotel_array.hotel_ids) thisagl62.hotels_inc = thisagl62.createArrayFrom(data.hotel_array.hotel_ids);
					if (data.hotel_towns_array) thisagl62.hotels_towninc = thisagl62.createArrayFrom(data.hotel_towns_array);
					if (data.hotel_names_array) thisagl62.hotels_name  = thisagl62.createArrayFrom(data.hotel_names_array);
					if (data.hotel_stars) thisagl62.hotels_starinc = thisagl62.createArrayFrom(data.hotel_stars);
					if (data.country_id_array) thisagl62.country_inc = thisagl62.createArrayFrom(data.country_id_array);
					if (data.country_name_array) thisagl62.country_names = thisagl62.createArrayFrom(data.country_name_array);
					if (data.towns_inc_array) thisagl62.towns_inc = thisagl62.createArrayFrom(data.towns_inc_array);
					if (data.towns_name_array) thisagl62.towns_name = thisagl62.createArrayFrom(data.towns_name_array);
					if (data.cities_from) thisagl62.cities_from_name = thisagl62.createArrayFrom(data.cities_from);
					if (data.cities_ids) thisagl62.cities_from_ids = thisagl62.createArrayFrom(data.cities_ids);
					if (data.meal_ids) thisagl62.group_meal_inc = thisagl62.createArrayFrom(data.meal_ids);
					if (data.meal_names) thisagl62.group_meal_name = thisagl62.createArrayFrom(data.meal_names);
					if (data.dates) thisagl62.validdates = data.dates;
					
					// подгружаем данные об операторах
					if (data.operators_inc_array) thisagl62.operators_inc = thisagl62.createArrayFrom(data.operators_inc_array);
					if (data.operators_name_array) thisagl62.operators_name = thisagl62.createArrayFrom(data.operators_name_array);
					
					data='';
					thisagl62.today = thisagl62.get_today();
					thisagl62.FormPreInit();
					
					thisagl62.FormInit();
					
					$(function() {
						var dp = $('.ags512_date_pick').datepicker({
							numberOfMonths: 2,
							showButtonPanel: true,
							showOn: 'both',
							buttonImage: '/images/calendar.gif',
							buttonImageOnly: true,
							startDate          : thisagl62.today,
							validDates         : thisagl62.validdates,
							horizontalOffset : thisagl62.datepicker_horizontal_offset
						});
						jQuery('#agl62_start_from').bind('dpClosed',
							function(e, selectedDates){
								var d = selectedDates[0];
								d = new Date(d)
								if (d){
									var newDate = d.asString();
									jQuery('#agl62_start_to').dpSetSelected(newDate).val(newDate);
								}
							}
						);
						
						jQuery('#agl62_start_to').bind('dpClosed',
							function(e, selectedDates){
								if ( jQuery('#agl62_start_from').dpGetSelected() < selectedDates[0] ) return;
								var d = selectedDates[0];
								d = new Date(d)
								if (d){
									var newDate = d.asString();
									jQuery('#agl62_start_from').dpSetSelected(newDate).val(newDate);
								}
							}
						);
					});

					/*jQuery(function(){
						var dp = jQuery('.ags512_date_pick').datePicker({showYearNavigation: false,
							startDate          : thisagl62.today,
							validDates         : thisagl62.validdates,
							horizontalOffset : thisagl62.datepicker_horizontal_offset
						});
						jQuery('#agl62_start_from').bind('dpClosed',
							function(e, selectedDates){
								var d = selectedDates[0];
								d = new Date(d)
								if (d){
									var newDate = d.asString();
									jQuery('#agl62_start_to').dpSetSelected(newDate).val(newDate);
								}
							}
						);
						
						jQuery('#agl62_start_to').bind('dpClosed',
							function(e, selectedDates){
								if ( jQuery('#agl62_start_from').dpGetSelected() < selectedDates[0] ) return;
								var d = selectedDates[0];
								d = new Date(d)
								if (d){
									var newDate = d.asString();
									jQuery('#agl62_start_from').dpSetSelected(newDate).val(newDate);
								}
							}
						);
					});*/
					
					if(thisagl62.from_simple){
						thisagl62.set_data_from_simple();
						thisagl62.from_simple=false;
					}
					//thisagl62.closePreload();
				}
			});
		},
		onCountryToChange: function() {
			
			var country_to = document.getElementById('agl62_country_to').value;
			if (!this.agl62.simple) {
				this.agl62.clearHotels();
			}
			this.agl62.LoadData(country_to);
			document.getElementById('agl62_coun').value=country_to;
			this.agl62.HidePriceDiv();
			
		},
		onChildAdultClick: function() {
			this.agl62.HidePriceDiv();
		},
		onChildChange: function() {
			this.agl62.Fill_Ages();
		},
		onHotelsClick: function() {
			this.agl62.Click_Hotel();
		},
		onHotelsXClick: function() {
			this.agl62.Del_Hotel();
		},
		onNightsChange: function() {
			this.agl62.Nights_From_Change();
		},
		onTownsClick: function() {
			this.agl62.clearHotels();
			this.agl62.Click_Town();
		},
		onStarsClick: function() {
			this.agl62.Click_Star();
		},
		onMealsClick: function() {
			this.agl62.Click_Meal();
		},
		onALLTOWNClick: function() {
			this.agl62.Fill_Hotel();
			this.agl62.Fill_Town();
		},
		onALLSTARClick: function() {
			this.agl62.Fill_Hotel();
			this.agl62.Fill_Star();
		},
		onALLMEALClick: function() {
			this.agl62.HidePriceDiv();
			this.agl62.Fill_Meal();
		},
		onALLHOTELClick: function() {
			this.agl62.HidePriceDiv();
		},
		onHNAMEKeyup: function(evt) {
			this.agl62.Search_Hotels(evt?evt:window.event);
		},
		onalloperatorsChange: function() {
			this.agl62.HidePriceDiv();
			this.agl62.Clear_Operator();
			return true;
		},
		Clear_Operator: function() {
			if (document.start.all_operators.disabled==false) {
				jQuery("#operators").children("label").children("input").each(function(){
					this.checked = false;
				});
			}
			return true;
		},
		onoperatorClick: function() {
			this.agl62.Click_Operator();
		},
		//события для формы
		FormInit: function(){
			var thisagl62 = this;
			var options = { 
				target: "#agl62_output",
				url: thisagl62.search_form_action,
				beforeSubmit: function(){/*thisagl62.preload(thisagl62.search_preload_msg);*/},
				complete: function(){
					//thisagl62.closePreload();
				},
				error: function (XMLHttpRequest, textStatus, errorThrown) { thisagl62.onRequestError(thisagl62.err_get_search_data); },
				success: function() {thisagl62.ShowPriceDiv();/*thisagl62.closePreload();*/},
				timeout: 100000
			};
			
			if (this.simple) {
				document.getElementById('agl62_child').agl62 = this;
				document.getElementById('agl62_adult').agl62 = this;
				document.getElementById('agl62_nights_from').agl62 = this;
				document.getElementById('agl62_HOTELS_X').agl62 = this;
				document.getElementById('agl62_country_to').agl62 = this;
				
				document.getElementById('agl62_child').onclick = this.onChildAdultClick;
				document.getElementById('agl62_adult').onclick = this.onChildAdultClick;
  				document.getElementById('agl62_nights_from').onchange = this.onNightsChange;
				document.getElementById('agl62_HOTELS_X').onclick = this.onHotelsClick;
				document.getElementById('agl62_country_to').onchange = this.onCountryToChange;
				document.getElementById(this.prefix+'myForm_simple').agl62 = this;
				document.getElementById(this.prefix+'myForm_simple').onsubmit = this.submit_simple_form;
				
				
			} else {
				document.getElementById('agl62_CHILD').agl62 = this;
				document.getElementById('agl62_ADULT').agl62 = this;
				document.getElementById('agl62_NIGHTS_FROM').agl62 = this;
				document.getElementById('agl62_country_to').agl62 = this;
				document.getElementById('agl62_TOWNS').agl62 = this;
				document.getElementById('agl62_STARS').agl62 = this;
				document.getElementById('agl62_MEALS').agl62 = this;
				document.getElementById('agl62_divHOTELS_X').agl62 = this;
				document.getElementById('agl62_divHOTELS').agl62 = this;
				document.start.H_NAME.agl62 = this;
				document.start.ALL_TOWN.agl62 = this;
				document.start.ALL_STAR.agl62 = this;
				document.start.ALL_MEAL.agl62 = this;
				document.start.ALL_HOTEL.agl62 = this;
				
// 				document.getElementById('agl62_CHILD').onclick = this.onChildAdultClick;
				document.getElementById('agl62_CHILD').onchange = this.onChildChange;
				document.getElementById('agl62_ADULT').onclick = this.onChildAdultClick;
				document.getElementById('agl62_NIGHTS_FROM').onchange = this.onNightsChange;
				document.getElementById('agl62_country_to').onchange = this.onCountryToChange;
				
				document.getElementById('agl62_TOWNS').onclick = this.onTownsClick;
				document.getElementById('agl62_STARS').onclick = this.onStarsClick;
				document.getElementById('agl62_MEALS').onclick = this.onMealsClick;
				document.getElementById('agl62_divHOTELS_X').onclick = this.onHotelsXClick;
				document.getElementById('agl62_divHOTELS').onclick = this.onHotelsClick;
				document.start.ALL_TOWN.onclick = this.onALLTOWNClick;
				document.start.ALL_STAR.onclick = this.onALLSTARClick;
				document.start.ALL_MEAL.onclick = this.onALLMEALClick;
				document.start.ALL_HOTEL.onclick = this.onALLHOTELClick;
				document.start.H_NAME.onkeyup = this.onHNAMEKeyup;
				//
				if (document.start.all_operators!=undefined) {
					document.start.all_operators.agl62 = this;
					document.start.all_operators.onclick = this.onalloperatorsChange;
				}
				if (document.getElementById('operators')) {
					document.getElementById('operators').agl62 = this;
					document.getElementById('operators').onclick = this.onoperatorClick;
				}
				
			}
			
			jQuery('#agl62_myForm').submit(function() {
				
				var hotellist = '';
				if (thisagl62.simple){ 
					if (document.start.HOTELS_X.options.length > 0){
						var optVal = jQuery("#agl62_HOTELS_X").val();
						hotellist = hotellist + optVal + ',';
						document.start.HOTEL_LIST.value = hotellist;
					}
					
					jQuery(this).ajaxSubmit(options); 
					return false;
				} else {
					//hotels
					jQuery("input[name=HOTELS_X]:checked").each(function(){
						hotellist = hotellist + this.value + ',';
					});
					document.start.HOTEL_LIST.value = hotellist;
					//towns
					var towns_options = document.getElementById('towns_x').options; towns_options.length=0;
					jQuery("input[name=towns1]:checked").each(function(){
						towns_options[towns_options.length] = new Option(this.value, this.value);towns_options[towns_options.length-1].selected = true;   
					});
					//stars
					var stars_options = document.getElementById('stars_x').options; stars_options.length=0;
					jQuery("input[name=stars1]:checked").each(function(){
						stars_options[stars_options.length] = new Option(this.value, this.value);stars_options[stars_options.length-1].selected = true;   
					});
					//meals
					var meals_options = document.getElementById('meals_x').options; meals_options.length=0;
					jQuery("input[name=meals1]:checked").each(function(){
						meals_options[meals_options.length] = new Option(this.value, this.value);meals_options[meals_options.length-1].selected = true;   
					});
					
					jQuery(this).ajaxSubmit(options); 
					return false;
				}
			});
			
			jQuery('#agl62_output .next_page').click(function() { 
				var np = parseInt(jQuery(this).attr('title'));
				if (!isNaN(np)) {
					document.getElementById('page').value=np;
					jQuery('#agl62_myForm').ajaxSubmit(options); 
					
				}
				return false;
			});
		},
		
		//действия перед началом ajax-загрузки
		preload: function(msg) {						
			//window.alert('load '+msg);
			var options = {
				top: this.preload_top,
				left: this.preload_left,
				height: this.preload_height,
				width: this.preload_width,
				close: this.preload_close
			};
			var text = this.preload_pretext + '<p align="center">' + msg + '</p><div align="center"><img src="' + this.preload_img + '" alt="loading..." /></div>';
			
			//window.alert(text);
			this.dialog1(text, options);
		},
		//действия после ajax-загрузки
		closePreload: function(){
			var a = this.dont_close_preload;
			if (!a){
				this.dialog_close();
			}
			this.dont_close_preload = false;
		},
		//закрытие popup-окна
		dialog_close: function() {
			document.getElementById('agl62_preload').style.display = 'none';
			document.getElementById('agl62_preload').style.innerHTML = '';
			return false;
		},
		//открытие popup-окна
		dialog1: function(text, options) {
			//$( "#preload_wait" ).dialog();
			
			var ptop = 0; var pleft = 0;
			var preload_div = document.getElementById('agl62_preload');
			preload_div.innerHTML = text;
			
			if (!isNaN(parseInt(options.height))) preload_div.style.height = options.height + 'px'; else preload_div.style.height = 'auto';
			if (!isNaN(parseInt(options.width))) preload_div.style.width = options.width + 'px'; else preload_div.style.width = 'auto';
			if(options.close==false){
				document.getElementById('agl512_preload_close').style.display = 'none';
			} else{
				document.getElementById('popupclose').onclick = this.dialog_close;
			}
			var offsetW = preload_div.offsetWidth;
			var offsetH = preload_div.offsetHeight;
			if ( (preload_div.offsetWidth==0) && (preload_div.style.width!='auto') ) {
				offsetW = parseInt(options.width);
			}
			if ( (preload_div.offsetHeight==0) && (preload_div.style.height!='auto') ) {
				offsetH = parseInt(options.height);
			}

			if (this.preload_position=='center') {
				if ( this.isIE6() ) {
					if (document.documentElement.clientWidth) {
						ptop = parseInt((document.documentElement.clientHeight-offsetH)/2)+document.documentElement.scrollTop;
						pleft = parseInt((document.documentElement.clientWidth-offsetW)/2)+document.documentElement.scrollLeft;
						if (ptop<0) ptop = 0; if (pleft<0) pleft = 0;
						preload_div.style.top = ptop+'px';
						preload_div.style.left = pleft+'px';
						if (pleft>0) 
							preload_div.style.setExpression("left","parseInt((document.documentElement.clientWidth-"+offsetW+")/2)+document.documentElement.scrollLeft+'px'");
						else 
							preload_div.style.setExpression("left","document.documentElement.scrollLeft+'px'");
						if (ptop>0)
							preload_div.style.setExpression("top","parseInt((document.documentElement.clientHeight-"+offsetH+")/2)+document.documentElement.scrollTop+'px'");
						else 
							preload_div.style.setExpression("top","document.documentElement.scrollTop+'px'");
					} else {
						ptop = parseInt((document.body.clientHeight-offsetH)/2)+document.body.scrollTop;						
						pleft = parseInt((document.body.clientWidth-offsetW)/2)+document.body.scrollLeft;
						if (ptop<0) ptop = 0; if (pleft<0) pleft = 0;
						preload_div.style.top = ptop+'px';
						preload_div.style.left = pleft+'px';
						if (pleft>0) 
							preload_div.style.setExpression("left","parseInt((document.body.clientWidth-"+offsetW+")/2)+document.body.scrollLeft+'px'");
						else 
							preload_div.style.setExpression("left","document.body.scrollLeft+'px'");
						if (ptop>0)
							preload_div.style.setExpression("top","parseInt((document.body.clientHeight-"+offsetH+")/2)+document.body.scrollTop+'px'");
						else 
							preload_div.style.setExpression("top","document.body.scrollTop+'px'");
					}
				} else {
					/*if (document.documentElement.clientWidth) {
						ptop = parseInt((document.documentElement.clientHeight-offsetH)/2);
						pleft = parseInt((document.documentElement.clientWidth-offsetW)/2);
					} else*/ {
						ptop = parseInt((document.body.clientHeight-offsetH)/2);
						pleft = parseInt((document.body.clientWidth-offsetW)/2);
					}
					//window.alert($('#'+ags512_form_target));
					//window.alert(document.documentElement.clientHeight);
					if (ptop<0) ptop = 0; if (pleft<0) pleft = 0;
					preload_div.style.top = ptop+'px';
					preload_div.style.left = pleft+'px';
					//window.alert(preload_div.style.top);
					
				}
			} else {
				preload_div.style.top = options.top+'px';
				preload_div.style.left = options.left+'px';
				if ( this.isIE6() ) {
					if (document.documentElement.clientWidth) {
						preload_div.style.setExpression("left", "parseInt("+options.left+"+document.documentElement.scrollLeft)+'px'");
						preload_div.style.setExpression("top", "parseInt("+options.top+"+document.documentElement.scrollTop)+'px'");
					} else  {
						preload_div.style.setExpression("left", "parseInt("+options.left+"+document.body.scrollLeft)+'px'");
						preload_div.style.setExpression("top", "parseInt("+options.top+"+document.body.scrollTop)+'px'");
					}
				}
			}
			
			preload_div.style.display = 'block';
		},
		ShowPriceDiv: function(){
			document.getElementById('agl62_output').style.display = 'block';
			this.PageFormInit();
		},
		oncheckClick: function() {
			return this.agl62.Check(this);
		},
		onorderformSubmit: function() {
			return this.agl62.Order(this);
			
		},
		Fill_Ages: function(){
			document.getElementById('agl62_firstChild').innerHTML='';
			document.getElementById('agl62_secondChild').innerHTML='';
			document.getElementById('agl62_thirdChild').innerHTML='';
		    var children = document.getElementById('agl62_CHILD').value;
		    if(children>0){
			      
				if(children==1){document.getElementById('agl62_firstChild').innerHTML='возраст ребенка: <input type="text" size="4" name="FIRST_CH" />';}
				else {document.getElementById('agl62_firstChild').innerHTML='возраст детей: <input type="text" size="4" name="FIRST_CH" />';}
					  }
		    if(children>1){
					      document.getElementById('agl62_secondChild').innerHTML='<input type="text" size="4" name="SECOND_CH" />';
					  }
		    if(children>2){
					      document.getElementById('agl62_thirdChild').innerHTML='<input type="text" size="4" name="THIRD_CH" />';
					  }
		},
		PageFormInit: function(){
			var thisagl62 = this;
			
			jQuery(".ags512_results_table a.check").each(function(){
				this.agl62 = thisagl62;
				this.onclick = thisagl62.oncheckClick;
			});
			jQuery("#agl62_output form").each(function(){
				this.agl62 = thisagl62;
				this.onsubmit = thisagl62.onorderformSubmit;
			});
			var pas_options = { 
				target: "#agl62_output",
				beforeSubmit: function(){/*thisagl62.preload(thisagl62.search_preload_msg);*/}, 
				url: thisagl62.search_form_action,
				error: function (XMLHttpRequest, textStatus, errorThrown) {/*thisagl62.closePreload();*/},
				success: function(){thisagl62.ShowPriceDiv();/*thisagl62.closePreload();*/},
				complete: function(){
					//thisagl62.closePreload();
				},
				timeout: 100000
			};
			jQuery('#agl62_output .next_page').click(function() { 
				var np = parseInt(jQuery(this).attr('title'));
				if (!isNaN(np)) {
					document.getElementById('page').value=np;
					jQuery('#agl62_myForm').ajaxSubmit(pas_options); 
				}
				return false;
			});
		},
		//заполнение формы полученными значениями
		FormPreInit: function(){
			
			if (!this.simple) {
				this.Fill_Operator();
			}
			this.Fill_Town();
			this.Fill_Star();
			this.Fill_Meal();
			this.Fill_country();
			this.Fill_City_From();
			document.start.ALL_STAR.checked = true;
			document.start.ALL_TOWN.checked = true;
			this.Fill_Hotel();
			window.document.getElementById('agl62_start_from').value = this.today;
			window.document.getElementById('agl62_start_to').value = this.today;
			window.document.getElementById('agl62_coun').value = this.default_country;
			
		},
		submit_simple_form: function()
		{	
			var thisagl62 = this.agl62;
			var dtExpires = new Date();
			var dtExpiryDate = "";
			dtExpires.setTime(dtExpires.getTime() + 1 * 24 * 60 * 60 * 1000);
			dtExpiryDate = dtExpires.toGMTString();
			var expires = dtExpiryDate;
			var path = '/';
			var from_simple =  true;
			var country_to  =  document.getElementById('agl62_country_to').value;
			var city_from   =  document.getElementById('agl62_TOWNFROMINC').value;
			var start_from  =  document.getElementById('agl62_start_from').value;
			var cost_max    =  document.getElementById('agl62_cost_max').value;
			var NIGHTS_FROM =  document.getElementById('agl62_nights_from').value;
			var ADULT       =  document.getElementById('agl62_adult').value;
			var CHILD       =  document.getElementById('agl62_child').value;
			var HOTELS_X    =  document.getElementById('agl62_HOTELS_X').value;
			
			thisagl62.setCookie ("from_simple", true, dtExpiryDate, path);
			thisagl62.setCookie ("country_to", country_to, dtExpiryDate, path);
			thisagl62.setCookie ("city_from", city_from, dtExpiryDate, path);
			thisagl62.setCookie ("start_from", start_from, expires, path);
			thisagl62.setCookie ("cost_max", cost_max, expires, path);
			thisagl62.setCookie ("NIGHTS_FROM", NIGHTS_FROM, expires, path);
			thisagl62.setCookie ("ADULT", ADULT, expires, path);
			thisagl62.setCookie ("CHILD", CHILD, expires, path);
			thisagl62.setCookie ("HOTELS_X", HOTELS_X, expires, path);
			document.getElementById(thisagl62.prefix+'myForm_simple').action = thisagl62.form_simple_subpath;
			document.getElementById(thisagl62.prefix+'myForm_simple').submit();
			
			return false;
		},
		
		Order: function(form_id){
 			var tourData = form_id.data.value;
// 			alert(tourData);
			var dataArray = eval(tourData);
			var query = "?";
					query += "date="+dataArray.date+"&";
					query += "price="+dataArray.price+"&";
					query += "hotel="+dataArray.hotel+"&";
					query += "nights="+dataArray.nights+"&";
					query += "meal="+dataArray.meal+"&";
					query += "room="+dataArray.room+"&";
					query += "place="+dataArray.place+"&";
					query += "adl="+dataArray.adl+"&";
					query += "chd="+dataArray.chd+"&";
					query += "operator="+dataArray.operator+"&";
					query += "spo="+dataArray.spo;

			var href = this.full_search_path +"/order.php" +query;
// 			alert(href);
			window.open(href, "orderwindow"+Math.floor(Math.random()*1000), "fullscreen=yes,scrollbars=1");
					
			return false;
		},
		pre_fin_order: function()
		{
			
			//this.preload(this.order_submit_msg);
		},
		FinishOrder: function(){
			var thisagl62 = this.agl62;
			var form_id = this;
			var options = { 
				type: 'POST',
				//target: "#agl62_preload",
				url: thisagl62.finish_order_action,
				beforeSubmit: function(){thisagl62.pre_fin_order();}, 
				error: function (XMLHttpRequest, textStatus, errorThrown) {/*thisagl62.closePreload();*/},
				success: function(text) {
					var options = {
						top: thisagl62.order_form_t,
						left: thisagl62.order_form_l,
						close: true
					};
					thisagl62.dialog1(text, options);
					
				},
				timeout: 100000
			};
			
			var error_msg = '';  
			var its_ok = true;
			if (document.getElementById('ags512_name').value == '')
			{
				error_msg = error_msg +'<p class="ags512_ord_err_input">' + thisagl62.err_order_input_name + '</p>';
				its_ok = false;
			}
			
			if (document.getElementById('ags512_phone').value == '')
			{
				error_msg = error_msg + '<p class="ags512_ord_err_input">' + thisagl62.err_order_input_phone + '</p>';
				its_ok = false;
			}
			
			if (document.getElementById('ags512_email').value == '')
			{
				error_msg = error_msg + '<p class="ags512_ord_err_input">' + thisagl62.err_order_input_email + '</p>';
				its_ok = false;
			} else{
				if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(document.getElementById('ags512_email').value))){ 
					error_msg = error_msg +'<p class="ags512_ord_err_input">' + thisagl62.err_order_input_emailformat + '</p>';
					its_ok = false;
				}
			}
			
			if (its_ok) {
				jQuery(form_id).ajaxSubmit(options); 
			}
			
			jQuery("#asm64_order_err_form_msg").html(error_msg);
			return false;
		},
// 		Check: function(it){
// 			var thisagl62 = this;
// 			jQuery.ajax({
// 				type: 'GET',
// 				url: thisagl62.check_url1 + it.getAttribute("tid") + thisagl62.check_url2 + it.getAttribute("postfix"),
// 				dataType : "json",
// 				beforeSend: function (XMLHttpRequest) {
// 					document.getElementById('row' +it.getAttribute("tid")).style.backgroundColor = "#eeaa33";
// 					thisagl62.preload(thisagl62.check_preload_msg);
// 				},
// 				error: function (XMLHttpRequest, textStatus, errorThrown) { thisagl62.onRequestError(thisagl62.chk_error_msg); },
// 				complete: function(){},
// 				success: function (data, textStatus) { 
// 					var stop = data.stop;
// 					var fly_st = data.fly_st;
// 					var fly_bk = data.fly_bk;
// 					var aviable = data.aviable;
// 					var error = data.error;
// 					
// 					var changed = data.changed;
// 					var new_price = parseFloat(data.new_price);
// 					
// 					var ch_msg = '';
// 					var ActTour=0
// 					if (stop==0 && fly_st==1 && fly_bk==1 && aviable==1){ch_msg = thisagl62.chk_msg1;  ActTour=1;}
// 					if (stop==0 && (fly_st==0 || fly_bk==0) && aviable==1){ch_msg = thisagl62.chk_msg2; ActTour=0;}
// 					if (stop==1 && (fly_st==0 || fly_bk==0) && aviable==1){ch_msg = thisagl62.chk_msg3; ActTour=0;}
// 					if (stop==1 && fly_st==1 && fly_bk==1 && aviable==1){ch_msg = thisagl62.chk_msg4; ActTour=0;}
// 					if (aviable==0 && error ==0){ch_msg = thisagl62.chk_msg5; ActTour=0;}
// 					if (error==1){ch_msg = thisagl62.chk_msg6; ActTour=1;}
// 					
// 					var options = {
// 						top: thisagl62.preload_top,
// 						left: thisagl62.preload_left,
// 						height: thisagl62.preload_height,
// 						width: thisagl62.preload_width,
// 						close: true
// 					};
// 					
// 					var text = thisagl62.preload_pretext + '<p align="center">' + ch_msg + '</p>';
// 					thisagl62.dialog(text, options);
// 					
// 					var row_element = document.getElementById('row' +it.getAttribute("tid"));
// 					var but = document.getElementById('b' +it.getAttribute("tid"));
// 					var td_order_check = document.getElementById('td_order_check' +it.getAttribute("tid"));
// 					var s_fly = document.getElementById('s_fly' +it.getAttribute("tid"));
// 					var bs_fly = document.getElementById('bs_fly' +it.getAttribute("tid"));
// 					row_element.style.backgroundColor = "";
// 					td_order_check.className = '';
// 					if (ActTour==0)
// 					{
// 						but.disabled = true;
// 						if (!jQuery(row_element).hasClass("ags512_stop_row"))
// 							jQuery(row_element).addClass("ags512_stop_row");
// 					} else {
// 						jQuery(row_element).removeClass("ags512_stop_row");
// 						but.disabled = false;
// 						
// 						if (fly_st) {
// 							s_fly.className = 'ags512_av_fly';
// 							s_fly.innerHTML = thisagl62.seats_exist_msg;
// 						}
// 						if (fly_bk) {
// 							bs_fly.className = 'ags512_av_fly';
// 							bs_fly.innerHTML = thisagl62.seats_exist_msg;
// 						}
// 						
// 						if ((changed==1) && (new_price)) {
// 							td_order_check.className = 'price_changed';
// 							but.value = new_price;
// 						} 
// 						
// 					}
// 					
// 				} 
// 				
// 			});
// 			return false;
// 		},
		pre_order: function() { 
			var options = {
				top: this.preload_top,
				left: this.preload_left,
				height: this.preload_height,
				width: this.preload_width,
				close: true
			};
			var text = this.preload_pretext + '<p align="center">' + this.check_preorder_msg + '</p><div align="center"><img align ="center" src="' + this.preload_img + '" alt="" /></div>';
			this.dialog1(text, options);
			//document.getElementById(this.current_row).style.background = "";
			return true; 
		},
		
		set_data_from_simple: function() {
			jQuery("#agl62_country_to option[value="+this.s_country_to+"]").attr("selected", true);
			jQuery("#agl62_TOWNFROMINC option[value="+this.s_city_from+"]").attr("selected", true);
			jQuery("#agl62_start_from").val(this.s_start_from);
			jQuery("#agl62_start_to").val(this.s_start_from);
			if (this.s_cost_max!=null) jQuery("#agl62_cost_max").val(this.s_cost_max);
			jQuery("#agl62_NIGHTS_FROM option[value="+this.s_NIGHTS_FROM+"]").attr("selected", true);
			jQuery("#agl62_NIGHTS_TILL option[value="+this.s_NIGHTS_FROM+"]").attr("selected", true);
			jQuery("#agl62_ADULT option[value="+this.s_ADULT+"]").attr("selected", true);
			jQuery("#agl62_CHILD option[value="+this.s_CHILD+"]").attr("selected", true);
			var thisagl62 = this;
			if(this.s_HOTELS_X){
				if (this.s_HOTELS_X=='all') {jQuery("input[name=ALL_HOTEL]").attr("checked", true);}
				else{
					jQuery("#agl62_divHOTELS").children("label").children().each(function(){
						if(this.value==thisagl62.s_HOTELS_X){
							thisagl62.h_name = jQuery("#"+this.value).text();
							this.checked = true;
						}
					}); 
					var to_append = '<label><input type="checkbox" name="HOTELS_X[]" value="'+this.s_HOTELS_X+'" checked />'+this.h_name+'<br/></label>';
					jQuery("#agl62_divHOTELS_X").html(to_append);
					jQuery("input[name=ALL_HOTEL]").attr("checked", false);
				}
			}
			
			this.dont_close_preload = true;
			jQuery('#agl62_myForm').submit(); 
		},
		//заполнение списка городов формы
		Fill_Town: function(){
			document.getElementById('agl62_TOWNS').innerHTML = '';
			if (this.towns_inc.length > 0) {
				var town_to_append = '';
				for(var i = 0; i < this.towns_inc.length; i++){
					
					town_to_append += '<label><input type="checkbox" name="towns1" value="'+this.towns_inc[i]+'" />'+this.unHtmlSpecialChars(this.towns_name[i])+'</label><br/>';
					
				}
				document.getElementById("agl62_TOWNS").innerHTML=town_to_append; 
				
			}
		},
		//заполнение списка городов вылета для формы
		Fill_City_From: function(){
			var town_option_from = document.getElementById('agl62_TOWNFROMINC').options;
			town_option_from.length = 0;
			if (this.cities_from_ids.length > 0) {
				for(var i = 0; i < this.cities_from_ids.length; i++) {
					if (this.cities_from_ids[i] == this.city_from){
						town_option_from[town_option_from.length] = new Option(this.cities_from_name[i], this.cities_from_ids[i], true, true);
					}
						else town_option_from[town_option_from.length] = new Option(this.cities_from_name[i], this.cities_from_ids[i]);
				}
			}
			return;
		},
		//заполнение списка звезд
		Fill_Star: function(){
			document.getElementById('agl62_STARS').innerHTML = '';
			if (this.group_star_inc.length>0){
				var stars_to_append = '';
				for(var i = 0; i < this.group_star_inc.length; i++){
					stars_to_append += '<label><input type="checkbox" name="stars1" value="'+this.group_star_inc[i]+'" />'+this.unHtmlSpecialChars(this.group_star_name[i])+'</label><br/>';
				}
				document.getElementById('agl62_STARS').innerHTML = stars_to_append;
				
			}
			if (this.group_star_inc.length == 0){
				document.start.ALL_STAR.disabled = true;
			} else {
				document.start.ALL_STAR.disabled = false;
			}
			return; 
		},
		//заполнение списка стран формы
		Fill_country: function(){
			var country_option = document.getElementById('agl62_country_to').options;
			//var curr_country = document.getElementById('agl62_coun').value;
			country_option.length = 0;
			var con_name = this.country_names;
			if (this.country_inc.length>0){
				for(var i = 0; i < this.country_inc.length; i++){
					if (this.country_inc[i] == this.current_country){
						country_option[country_option.length] = new Option(con_name[i], this.country_inc[i], true, true);
					}
					else{
						country_option[country_option.length] = new Option(con_name[i], this.country_inc[i]);
					}
				}
			}
			return;
		},
		//заполнение вариантов питании
		Fill_Meal: function(){
			this.HidePriceDiv();
			document.getElementById('agl62_MEALS').innerHTML = '';
			if (this.group_meal_inc.length>0){
				var to_append = '';
				for(var i = 0; i < this.group_meal_inc.length; i++){
					to_append += '<label><input type="checkbox" name="meals1" value="'+this.group_meal_inc[i]+'" />'+this.unHtmlSpecialChars(this.group_meal_name[i])+'</label><br/>';
				}
				document.getElementById('agl62_MEALS').innerHTML = to_append;
			}
			if (this.group_meal_inc.length == 0){
				document.start.ALL_MEAL.disabled = true;
			}else{
				document.start.ALL_MEAL.disabled = false;
			}
			return false;
		},
		// заполнение списка операторов
		Fill_Operator: function() {
			this.HidePriceDiv();
			var operators_div = document.getElementById('operators');
			if (operators_div) {
				operators_div.innerHTML = '';
				if (this.operators_inc.length>0){
					var to_append = '';
					for(var i = 0; i < this.operators_inc.length; i++){
						to_append += '<label><input type="checkbox" name="operators[]" id="'+this.operators_inc[i]+'" value="'+this.operators_inc[i]+'" />'+this.unHtmlSpecialChars(this.operators_name[i])+'</label><br/>';
					}
					operators_div.innerHTML = to_append;
				}
				if (this.operators_inc.length == 0){
					document.start.all_operators.disabled = true;
				}else{
					document.start.all_operators.disabled = false;
				}
			}
			return false;
		},
		clearHotels: function(){
			document.getElementById("agl62_divHOTELS_X").innerHTML='';
			document.getElementById("agl62_divHOTELS").innerHTML='';
			document.start.ALL_HOTEL.checked = true;
		},
		//скрыть результаты
		HidePriceDiv: function(){
			document.getElementById('agl62_output').innerHTML = '';
			document.getElementById('agl62_output').style.display = 'none';
			document.getElementById('page').value=1;
		},
		//заполнение формы данными об отелях
		Fill_Hotel: function(){
			this.HidePriceDiv();  
			var to_append = '';
			//hotelinc = -1;tourinc = -1; spog = -1;
			var cn = 0;
			if(this.simple){
				var hotel_option_to = document.getElementById('agl62_HOTELS_X').options;
				hotel_option_to.length = 0;
				if (this.hotels_inc.length>0){
					var town_str = '';
					if (!document.start.ALL_TOWN.checked){
						var townform = document.getElementById('agl62_TOWNS').options;
						for(var ii = 0; ii < townform.length; ii++){
							if (townform[ii].selected){
								town_str += ',' + townform[ii].value + ',';
							}
						}
					}
					var starform = jQuery("#agl62_STARS").children("label");
					var star_str = '';
					for(var iii = 0; iii < starform.length; iii++){
						var chbox1 = jQuery(starform[iii]).children();
						if (jQuery(chbox1[0]).attr("checked")){
							var starform_groupstarid = jQuery(chbox1[0]).val();
							for(var j = 0; j < this.group_star_inc.length; j++){
								if (this.group_star_inc[j] == starform_groupstarid){
									star_str += ',' + group_star_inc[j] + ',';
								}
							}
						}
					}
					//all hotels
					hotel_option_to[0] = new Option("  Любая  ", "all");hotel_option_to[0].selected = true;   
					for(var i = 0; i < this.hotels_inc.length; i ++){
						var t_ok = s_ok = srch_ok = 0;
						var sp_ok = tour_ok = 1;
						if ((document.start.ALL_TOWN.checked == true) || (town_str.indexOf(',' + this.hotels_towninc[i] + ',') != -1)){
							t_ok = 1;
						}
						if ((document.start.ALL_STAR.checked == true) || (star_str.indexOf(',' + this.hotels_starinc[i] + ',') != -1)){
							s_ok = 1;
						}
						if (sp_ok == 1 && t_ok == 1 && s_ok == 1 && tour_ok == 1){
							hotel_option_to[hotel_option_to.length] = new Option(this.unHtmlSpecialChars(this.hotels_name[i]), this.hotels_inc[i]);
							cn++;
						}
					}
				}
				if (cn==0){
					//document.start.ALL_HOTEL.disabled = true;
				} else {
					document.start.ALL_HOTEL.disabled = false;
					op = window.document.getElementById('agl62_HOTELS_X').options;
					if (op.length == 1){
						op.selectedIndex = 0;
					}
				}
				return;
			}else{
				document.getElementById("agl62_divHOTELS").innerHTML='';
				if (this.hotels_inc.length>0){
					var town_str = '';
					if (!document.start.ALL_TOWN.checked){
						jQuery("#agl62_TOWNS").children("label").children("input").each(function(){
							if(this.checked) town_str += ',' + this.value + ',';
						});
					}
					
					var starform = jQuery("#agl62_STARS").children("label");
					var star_str = '';
					
					for(var iii = 0; iii < starform.length; iii++){
						var chbox1 = jQuery(starform[iii]).children();
						if (jQuery(chbox1[0]).attr("checked")){
							var starform_groupstarid = jQuery(chbox1[0]).val();
							for(var j = 0; j < this.group_star_inc.length; j++){
								if (this.group_star_inc[j] == starform_groupstarid){
									star_str += ',' + this.group_star_inc[j] + ',';
								}
							}
						}
					} 
					
					var to_append = [];
					for(var i = 0; i < this.hotels_inc.length; i++){
						
						var t_ok, s_ok, srch_ok, sp_ok, tour_ok;
						t_ok = s_ok = srch_ok = 0;
						sp_ok = tour_ok = 1;
						if ((document.start.ALL_STAR.checked == true) || (star_str.indexOf(',' + this.hotels_starinc[i] + ',') != -1)){ s_ok = 1; }
						if ((document.start.ALL_TOWN.checked == true) || (town_str.indexOf(',' + this.hotels_towninc[i] + ',') != -1)){ t_ok = 1; }
						if ((this.h_name == '') || (this.unHtmlSpecialChars(this.hotels_name[i]).toUpperCase().indexOf(this.h_name.toUpperCase()) != -1)){ srch_ok = 1; }
						
						if (sp_ok == 1 && t_ok == 1 && s_ok == 1 && srch_ok == 1 && tour_ok == 1){
							//to_append += '<label><input type="checkbox" value="'+this.hotels_inc[i]+'" /><span id="'+this.hotels_inc[i]+'">'+this.unHtmlSpecialChars(this.hotels_name[i])+'</span></label><br/>';
							to_append[cn++]=('<label><input type="checkbox" value="'+this.hotels_inc[i]+'" /><span id="'+this.hotels_inc[i]+'">'+this.unHtmlSpecialChars(this.hotels_name[i])+'</span></label><br/>');
							//tt.push(1);
							//cn++;
						}
						
					}
					
					//document.getElementById("agl62_divHOTELS").innerHTML=to_append; 
					document.getElementById("agl62_divHOTELS").innerHTML=to_append.join(''); 
				}
				if (cn==0){
					document.start.ALL_HOTEL.disabled = true;
				}else{
					document.start.ALL_HOTEL.disabled = false;
				}
				return;
			}//if not simple
		},
		Nights_From_Change: function(){
			document.start.NIGHTS_TILL.value = document.start.NIGHTS_FROM.value;
		},
		Search_Hotels: function(e){
			if (e && (e.keyCode != 13 && e.keyCode != 27)) {
				this.h_name = document.start.H_NAME.value;
				this.Fill_Hotel();
			}
		},
		array_options_sort: function(a){
			var zapas_value, zapas_text;
			for (i=0; i<a.length; ++i){
				for (j=i; j<a.length; ++j){
					if (a[i].text > a[j].text){
						zapas_value = a[i].value;
						zapas_text = a[i].text;
						a[i].value = a[j].value;
						a[i].text = a[j].text;
						a[j].value = zapas_value;
						a[j].text = zapas_text;
					}
				}
			}
		},
		Click_Town: function(){
			document.start.ALL_TOWN.checked = false;
			var count=0;
			jQuery("#agl62_TOWNS").children("label").children("input").each(function(){
				if(this.checked){count++;}
			});
			if (count==0) document.start.ALL_TOWN.checked = true;
			this.Fill_Hotel();
		},
		Click_Star: function(){
			document.start.ALL_STAR.checked = false;
			var count=0;
			jQuery("#agl62_STARS").children("label").children("input").each(function(){
				if (this.checked) {count++;}
			});
			if (count==0) document.start.ALL_STAR.checked = true;
			this.Fill_Hotel();
		},
		Click_Meal: function(){
			document.start.ALL_MEAL.checked = false;
			var count=0;
			jQuery("#agl62_MEALS").children("label").children("input").each(function(){
				if(this.checked){count++;}
			});
			if (count==0) document.start.ALL_MEAL.checked = true;
		},
		Click_Hotel: function(){
			document.start.ALL_HOTEL.checked = false;
			this.To_right();
			var count = 0;
			jQuery("#agl62_divHOTELS_X").children("label").children("input").each(function(){count++;});
			if (count == 0) document.start.ALL_HOTEL.checked = true;
		},
		To_right: function(){
			var to_append = '';
			jQuery("#agl62_divHOTELS").children("label").children("input").each(function(){
					if (this.checked) {
						if (jQuery('#agl62_divHOTELS_X input[value='+this.value+']').length==0) {
							var id = "#"+this.value;
							to_append += '<label><input type="checkbox" name="HOTELS_X[]" value="'+this.value+'" checked />'+jQuery(id).text()+'<br/></label>';
						}
					}
				});
			
			
			jQuery("#agl62_divHOTELS_X").append(to_append);
		},
		
		Del_Hotel: function(){
			jQuery("#agl62_divHOTELS_X").children("label").children("input").each(function(){
				if(!this.checked){
					jQuery(this).parent().remove();
					jQuery('input[value='+this.value+']').attr("checked",false);
				}
			});
			var count = 0;
			jQuery("#agl62_divHOTELS_X").children("label").children("input").each(function(){count++;});
			if (count == 0) document.start.ALL_HOTEL.checked = true;
		},
		Click_Operator: function(){
			document.start.all_operators.checked = false;
			var count=0;
			jQuery("#operators").children("label").children("input").each(function(){
				if (this.checked) {count++;}
			});
			if (count==0) document.start.all_operators.checked = true;
		},
		
		//-------- вспомогательные функции --------
		isDigital: function(val){
			var chars="0123456789";
			var ch;
			for (var i = 0; i < val.length; i++){
				ch = val.substring(i, i+1);
				if (chars.indexOf(ch) == -1){
					return false;
				}
			}
			return (true);
		},
		unHtmlSpecialChars: function(str){
			var _replace = function(match) {
				switch (match) {
					case '&nbsp;': return ' ';
					break;
					case '&quot;': 
					case '&#034;': return '\"';
					break;
					case '&#039;': return '\'';
					break;
					case '&amp;' :
					case '&#038;': return '&';
					break;
					case '&lt;'  :
					case '&#060;': return '<';
					break;
					case '&gt;'  :
					case '&#062;': return '>';
					break;
					default: return match;
				}
			};
			str = str.replace(/(&nbsp;|&quot;|&#034;|&#039;|&amp;|&#038;|&lt;|&#060;|&gt;|&#062;)/gi, _replace);
			return str;
		},
		delete_all_cookies: function() {
			var path = '/';
			var expires = -1;
			this.setCookie("from_simple", "", expires, path);
			this.setCookie("country_to", "", expires, path);
			this.setCookie("city_from", "", expires, path);
			this.setCookie("start_from", "", expires, path);
			this.setCookie("cost_max", "", expires, path);
			this.setCookie("NIGHTS_FROM", "", expires, path);
			this.setCookie("ADULT", "", expires, path);
			this.setCookie("CHILD", "", expires, path);
			this.setCookie("HOTELS_X", "", expires, path);
		},
		getCookie: function(name) {
			var cookie = " " + document.cookie;
			var search = " " + name + "=";
			var setStr = null; var offset = 0; var end = 0;
			if (cookie.length > 0) {
				offset = cookie.indexOf(search);
				if (offset != -1) {
					offset += search.length;
					end = cookie.indexOf(";", offset)
					if (end == -1) {
						end = cookie.length;
					}
					setStr = unescape(cookie.substring(offset, end));
				}
			}
			return(setStr);
		},
		setCookie: function(name, value, expires, path, domain, secure) {
			document.cookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
		},
		get_today: function() {
			var now = new Date();
			var d = now.getDate();
			var day = d < 10 ? "0" + d : d;
			var m = now.getMonth() + 1;
			var month = m < 10 ? "0" + m : m;
			var year = now.getFullYear();
			var today = day + '.' + month + '.' + year;
			return today;
		},
		//опознать ie6 
		isIE: function() {
			var userAgent = navigator.userAgent.toLowerCase();
			return (/msie/.test(userAgent) && !/opera/.test(userAgent));
		},
		isIE6: function() {
			var userAgent = navigator.userAgent.toLowerCase();
			return ( (this.isIE()) && ((userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1].charAt(0)=='6') );
		},
		createArrayFrom: function(arr) {
			var newArr;
			var lngth = arr.length;
			if (lngth>1) newArr = eval("new Array(" + arr + ")");
			else if (lngth==1) newArr = [arr[0]]; else newArr = new Array();
			return newArr;
		}
		
		
	}
})();


