function initTourForms()
{	//
}

function gotoprevpage_tour(form_id, tbl_id, hotel_id, steppan_id)
{	switch( bookparams["stepind"] )
	{		case 1:
			// do nothing
			break;
		case 2:
			// Run back step for displayed flight list
			var obj_tbl = uh_get_object(tbl_id);
			obj_tbl.innerHTML = "";

			var obj_tbl = uh_get_object(hotel_id);
			obj_tbl.innerHTML = "";

			hideItem(steppan_id);
			hideItem(steppan_id + 'up');
			showItem(form_id);
			break;

		case 3:
			var obj_tbl = uh_get_object(tbl_id);
			obj_tbl.innerHTML = bookparams["searchrestext"];

			do_hotel_search_tour('hotellist', 1, true);

			showItem(steppan_id + 'up');
			break;

		case 4:
			var obj_tbl = uh_get_object(tbl_id);
			obj_tbl.innerHTML = bookparams["searchrestext"];

			do_hotel_rooms_tour( 'hotellist', bookparams["hotelcmd"] );
			break;	}

	bookparams["stepind"] = bookparams["stepind"] - 1;}

function buildItenaryItemTour( cur_it, ind, with_order_button )
{
	var div_inner_html = '';

	div_inner_html += '<table cellspacing="1" cellpadding="0" border="0" width="620" class="ittb">\r\n' +
                 '<tr><td class="itpr">' +
                 '<table cellspacing="0" cellpadding="0" border="0" align="right" class="listtbl"><tr><td>';
 	if( with_order_button )
  		div_inner_html += '<input type="button" value="Выбрать" onclick="javascript:clickSelFlightButton(\'flightlist\', ' + ind + ', \'' + cur_it.command_line + '\');" />';
 	else
 		div_inner_html += ' &nbsp; ';

   div_inner_html += '</td></tr></table> Предварительная стоимость одного билета: ' + cur_it.price + ' ' + cur_it.currency +
                 '</td></tr>';

	for(j=0; j<cur_it.directions.length; j++)
	{
		var cur_dir = cur_it.directions[j];

		div_inner_html += '<tr><td><table cellspacing="0" cellpadding="2" border="0" width="100%" class="itfl">\r\n' +
	 				'<tr>' +
	     				'<td><img src="' + AJAX_CLENT_FULLURL + 'img/arr.gif" width="13" height="13" alt="" /></td>' +
	     				//'<td class="fldir">' + unescape(cur_dir.from) + ' - ' + unescape(cur_dir.to) + '</td>' +
	     				'<td class="fldir">' + cur_dir.from + ' - ' + cur_dir.to + '</td>' +
	         			'<td>Время в пути: ' + cur_dir.time  + '</td></tr>\r\n' +
	            			'</table></td></tr>\r\n';

        for(k=0; k<cur_dir.flights.length; k++)
        {
        		var cur_fl = cur_dir.flights[k];

        		div_inner_html += '<tr><td><table cellspacing="0" cellpadding="2" border="0" width="100%" class="ittbi">\r\n' +
     			'<tr><td width="10%">Вылет: </td><td width="23%">' + cur_fl.sttm + '</td><td width="37%">' + cur_fl.stairp + '(Терминал ' + cur_fl.stterm + ')</td><td width="30%">№' + cur_fl.flnum + ' - ' + cur_fl.plane + '  &nbsp;&nbsp;класс ' + cur_fl.seat + '</td></tr>\r\n' +
     			'<tr><td width="10%">Прибытие: </td><td width="23%">' + cur_fl.entm + '</td><td width="37%">' + cur_fl.enairp + '(Терминал ' + cur_fl.enterm + ')</td><td width="30%">&quot;' + cur_fl.aircode + '&quot; ' + cur_fl.airname + '</td></tr>\r\n' +
     			'</table></td></tr>\r\n';
        }

	}

	div_inner_html += '</table>';

	return div_inner_html;
}

function clickSearchTourBut(form_id, cont_avia_id, cont_hotel_id, steppan_id)
{	var obj_form = uh_get_object(form_id);

	///////////////////////////////////////////////
	// Make check for correct input of dates
	var obj_chains = uh_get_object('chainsnum');
	var num_chains = parseInt(obj_chains.value);

	var curdt = new Date();

	var cnf = uh_get_object('cnf1');
	var cnt = uh_get_object('cnt1');
	var cnr = uh_get_object('cnt2');
	var it_dt1 = uh_get_object('it_dt1');
	var it_dt2 = uh_get_object('it_dt2');

	if( (cnf.value == "") || (cnt.value == "") || (cnr.value == "") )
	{		alert("Вы неполностью заполнили маршрут перелета");
		return;	}

	var re = /^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$/g;
	var dtval1 = it_dt1.value;
	if( !dtval1.match(re) )
	{		alert("Неправильно указана дата вылета");
		return;	}

	var dtval2 = it_dt2.value;
	if( !dtval2.match(re) )
	{
		alert("Неправильно указана дата возврата");
		return;
	}

	var dtparts = dtval1.split(".");
	var dd = parseInt(dtparts[0], 10);
	var dm = parseInt(dtparts[1], 10);
	var dy = parseInt(dtparts[2], 10);

	if( !( ((dd >= 1) && (dd <= 31)) && ((dm >= 1) && (dm <= 12)) && (( ( curdt.getYear() < 1000 ? dy-1900 : dy) >= curdt.getYear()) && (( curdt.getYear() < 1000 ? dy-1900 : dy) <= (curdt.getYear() + 2))) ) )
	{
		alert("Неправильно указана дата вылета");
		return;	}

	var prevdt = new Date(dy, dm-1, dd);

	var dtparts = dtval2.split(".");
	var dd = parseInt(dtparts[0], 10);
	var dm = parseInt(dtparts[1], 10);
	var dy = parseInt(dtparts[2], 10);

	if( !( ((dd >= 1) && (dd <= 31)) && ((dm >= 1) && (dm <= 12)) && (( ( curdt.getYear() < 1000 ? dy-1900 : dy) >= curdt.getYear()) && (( curdt.getYear() < 1000 ? dy-1900 : dy) <= (curdt.getYear() + 2))) ) )
	{
		alert("Неправильно указана дата возврата");
		return;
	}

	var seldt = new Date(dy, dm-1, dd);

	if( seldt.getTime() < prevdt.getTime() )
	{		alert("Неправильно указаны даты. Дата вылета должна быть меньше даты возврата.");
		return;	}

 	// Run search
	hideItem(form_id);

	do_avia_search_tour(cont_avia_id, cont_hotel_id, steppan_id);}

function do_avia_search_tour(content_obj_id, content_hotel_id, steppan_id)
{
	var div_body = uh_get_object( content_obj_id );

	var hotel_obj_id = content_hotel_id;

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		// Get objects
		var obj_chains = uh_get_object('chainsnum');
		var obj_seat_num = uh_get_object('seatNum');
		var obj_seat_class = uh_get_object('seatClass');

		// Make request string
		var num_chains = parseInt(obj_chains.value);

		bookparams["persons"] = parseInt(obj_seat_num.options[obj_seat_num.selectedIndex].value);
		bookparams["seatclass"] = obj_seat_class.options[obj_seat_class.selectedIndex].value;

		div_body.innerHTML = "";

		var post_req_str = "rcom=uh_com_flight&chainsnum=" + num_chains;

		post_req_str += "&showDirectOnly=undefined";
		post_req_str += "&showNearestDays=undefined";
		post_req_str += "&seatNum=" + bookparams["persons"];
		post_req_str += "&seatClass=" + bookparams["seatclass"];
		post_req_str += "&airline=undefined";// + q_params.params.airline;

		var cnf = uh_get_object('cnf1');
		var ccf = uh_get_object('ccf1');
		var cnt = uh_get_object('cnt1');
		var cct = uh_get_object('cct1');
		var cnr = uh_get_object('cnt2');
		var ccr = uh_get_object('cct2');
		var it_dt1 = uh_get_object('it_dt1');
		var it_dt2 = uh_get_object('it_dt2');

		post_req_str += "&citypoint1=" + unescape(escapeEx(cnf.value));
		post_req_str += "&citypointc1=" + ccf.value;
		post_req_str += "&citypointto1=" + unescape(escapeEx(cnt.value));
		post_req_str += "&citypointcto1=" + cct.value;
		post_req_str += "&stdt1=" + it_dt1.value;
		post_req_str += "&chsttm1=" + unescape(escapeEx("0001:2359"));

		post_req_str += "&citypoint2=" + unescape(escapeEx(cnt.value));
		post_req_str += "&citypointc2=" + cct.value;
		post_req_str += "&citypointto2=" + unescape(escapeEx(cnr.value));
		post_req_str += "&citypointcto2=" + ccr.value;
		post_req_str += "&stdt2=" + it_dt2.value;
		post_req_str += "&chsttm2=" + unescape(escapeEx("0001:2359"));

		//alert( post_req_str );

		var process_fn = function(res)
		{
			//alert( res );
			var div_inner_html = '';
			var landing_time = '';

			try
			{
				eval( 'var responce_data = ' + res );

				div_inner_html = "<h1 class=\"flhdr\">Подбор авиарейса выполнен</h1>";

				if( responce_data.iteneries.length == 0 )
				{					div_inner_html = "<h1 class=\"flhdr\">Поиск авиарейса выполнен</h1>";
					div_inner_html += "<br /><br /><span color=\"red\">Не найдено ни одного авиарейса для заданных критериев поиска.</span><br /><br />";				}

				// Fill list of all found iteneries
				for(i=0; i<responce_data.iteneries.length; i++)
				{
					var cur_it = responce_data.iteneries[i];
					var item_value_str = "";
					var tax_amount = "";

					bookparams["ordercmd"] = cur_it.command_line;
	    			bookparams["itenerie"] = cur_it;

	       			var this_itenary_html = buildItenaryItemTour( cur_it, 0, false );

	                div_inner_html += this_itenary_html + '<br />';

	                break;
				}
			}
			catch( e1 )
			{				//
				div_inner_html = "<h1 class=\"flhdr\">Поиск авиарейса выполнен</h1>";
				div_inner_html += "<br /><br /><span style=\"color: red\">Не найдено ни одного авиарейса для заданных критериев поиска.</span><br /><br />";			}

			//alert(  landing_time );

			div_body.innerHTML = div_inner_html;

			hideProgress();
			bookparams["stepind"] = 2;
			showItem(steppan_id);
			showItem(steppan_id + 'up');
			bookparams["searchrestext"] = div_inner_html;

			do_hotel_search_tour(hotel_obj_id,  1, true);

		};

		showProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}
}

function buildHotelItemTour(hotel, ind, content_obj_id, show_order_but)
{
	var hotel_item_html = '';

	hotel_item_html += '<table border="0" cellspacing="1" cellpadding="0" width="100%" class="ittb">\r\n'+
	'<tr><td>' +
		'<table cellspacing="0" cellpadding="2" border="0" width="100%" class="itfl">\r\n' +
		'<tr><td width="140">' +
			'<img src="' + AJAX_CLENT_FULLURL + 'img/arr.gif" width="13" height="13" alt="" />' +
			'</td><td class="fldir">' +
				'<a id="htla' + (ind+1) + 'a" href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); clickShowHotelInfoTour(coor, \'' + content_obj_id + '\', \'' + hotel.chain + '\', \'' + hotel.date + '\' ); }" class="hotellink">' + hotel.name + '</a>' +
		'</td></tr>\r\n' +
		'</table>' +
	'</td></tr>\r\n' +
	'<tr><td class="ittbi">' +
		'<table cellspacing="4" cellpadding="2" border="0" width="100%">' +
		'<tr>';

			if ( hotel.pic != "" )
				hotel_item_html += '<td width="130" class="a" align="center"><img src="http://buy-fly.ru/hotels/' + hotel.pic + '" alt="' + hotel.vnd_n + '" onclick="javascript:clickShowHotelInfoTour(\'' + content_obj_id + '\', \'' + hotel.chain + '\', \'' + hotel.date + '\')" /></td>\r\n';
			else
				hotel_item_html += '<td width="130" class="a" align="center"><img src="' + AJAX_CLENT_FULLURL + 'img/spacer.gif" width="100" height="80" alt="' + hotel.vnd_n + '" onclick="javascript:clickShowHotelInfoTour(\'' + content_obj_id + '\', \'' + hotel.chain + '\', \'' + hotel.date + '\')" /></td>\r\n';

			hotel_item_html += '<td width="50%"><span style="font-size: 9pt;"><b>Сеть гостиниц:</b> ' + hotel.vnd_n + ' &quot;' + hotel.vnd + '&quot;</span><br /><br /><span style="font-size: 9pt;"><b>' + hotel.city + '</b></span><br />' + hotel.addr + '<br /><br /><i>Удаление от центра: ' + hotel.dist + '</i></td>' +
			'<td>';

       		if( show_order_but )
       		{
       			hotel_item_html += '<input type="button" value="Выбрать" onclick="javascript:clickSelHotelButtonTour(\'' + content_obj_id + '\', ' + ind + ', \'' + hotel.command_line + '\')" />';
       		}

			hotel_item_html += '<br /><br />' +
				'<span style="font-size: 10pt; font-weight: normal;">Цена: ' + hotel.cost + ' '+ hotel.cur + '<br /><br />' +
				'<a href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); clickShowHotelInfoTour(coor, \'' + content_obj_id + '\', \'' + hotel.chain + '\', \'' + hotel.date + '\' ); }" class="sublink">подробнее...</a>' +
			'</td>' +
		'</tr></table>'+
	'</td></tr>\r\n' +
	'</table>';

	return hotel_item_html;
}

function parseHotelDataTour(responce_data, content_obj_id)
{
	var div_inner_html = "";

	// Fill list of all found hotels for current page

	div_inner_html += 'Ответ получен:<br />';

	div_inner_html += 'Страница: ' + responce_data.page_ind + ' из ' + responce_data.page_num + '<br />';

	div_inner_html += 'Выбрать страницу: <select name="newpi" id="newpi" onchange="javascript:clickHotelPageTour(\'' + content_obj_id + '\', this.options[this.selectedIndex].value);">';
	for(i=1; i<=parseInt(responce_data.page_num); i++)
	{
		div_inner_html += '<option value="' + i + '" '+ (i == parseInt(responce_data.page_ind) ? "selected" : "") + '>' + i + '</option>';
	}
	div_inner_html += '</select>';

	div_inner_html += 'Сортировать по: <select name="sortm" id="sortm" onchange="javascript:clickChangeSortTour(\'' + content_obj_id + '\', this.options[this.selectedIndex].value);">';
	div_inner_html += '<option value="price" '+ ('price' ==  bookparams["sortm"] ? "selected" : "") + '>по цене</option>';
	div_inner_html += '<option value="dist" '+ ('dist' ==  bookparams["sortm"] ? "selected" : "") + '>по удалению от центра</option>';
	div_inner_html += '<option value="vendor" '+ ('vendor' ==  bookparams["sortm"] ? "selected" : "") + '>по сети гостиниц</option>';
	div_inner_html += '<option value="name" '+ ('name' ==  bookparams["sortm"] ? "selected" : "") + '>по названию гостиницы</option>';
	div_inner_html += '</select>';

	bookparams["allhotels"] = responce_data.hotels;

	div_inner_html += '<table border="0">';
	for(i=0; i<responce_data.hotels.length; i++)
	{
		var hotel = responce_data.hotels[i];

		var hotel_html = buildHotelItemTour( hotel, i, content_obj_id, true );

		div_inner_html += '<tr><td>' + hotel_html + '</td></tr>';
	}
	div_inner_html += '</table>';

	return div_inner_html;
}

function buildRoomItemTour( room, ind, row_color, container_id, show_order_but )
{
	var div_inner_html = '';

	div_inner_html += "<tr>\r\n";
	div_inner_html +=		'<td class="'+row_color+'">'+(ind+1)+'</td>\r\n';
	//div_inner_html +=		'<td class="'+row_color+'"><input type="radio" name="selroom" value="'+room.roomdt+'" /></td>\r\n';
	div_inner_html +=		'<td class="'+row_color+'"><a href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); clickShowRoomInfoTour(coor, \'' + container_id + '\', \'' + room.command_line +'\'); }" class="sublink">'+ room.name + '( Код заказа - ' + room.code + ' )</a></td>\r\n';
	div_inner_html +=		'<td class="'+row_color+'">' + room.cost1 + '</td>\r\n';
	div_inner_html +=		'<td class="'+row_color+'">' + room.cost2 + '</td>\r\n';
	if( show_order_but )
		div_inner_html +=		'<td class="'+row_color+'"><input type="button" value="забронировать" onclick="javascript:clickSelRoomButtonTour(\'' + container_id + '\', ' + ind + ', \''+room.roomdt+'\');" /></td>\r\n';
	div_inner_html +=	"</tr>";

	return div_inner_html;
}

function do_hotel_search_tour(content_obj_id, page_i, first_search)
{
	if( !first_search )
	{
		bookparams["pagei"] = page_i;
	}

	var div_body = uh_get_object( content_obj_id );
	var container_id_str = content_obj_id;

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		// Get objects
		var obj_seat_num = uh_get_object('seatNum');

		// Make request string
		bookparams["persons"] = parseInt(obj_seat_num.options[obj_seat_num.selectedIndex].value);

		div_body.innerHTML = "";

		var post_req_str = "rcom=uh_com_hotel" + (first_search ? "" : "_p") + "&sessid=" + bookparams["sessionid"];

		post_req_str += "&pagei=" + bookparams["pagei"] + "&pagen=" + bookparams["pagen"] + "&sortm=" + bookparams["sortm"];
		post_req_str += "&seatNum=" + bookparams["persons"];

		var cnf = uh_get_object('cnt1');
		var ccf = uh_get_object('cct1');
		var it_dt_s = uh_get_object('it_dt1');
		var it_dt_e = uh_get_object('it_dt2');

		post_req_str += "&citypoint=" + unescape(escapeEx(cnf.value));
		post_req_str += "&citypointc=" + ccf.value;
		post_req_str += "&stdt=" + it_dt_s.value;
		post_req_str += "&endt=" + it_dt_e.value;

		//alert( post_req_str );

		var process_fn = function(res)
		{
			try
			{
				eval( 'var responce_data = ' + res );

				div_inner_html = "<h1 class=\"flhdr\">Шаг 2 - Выбор гостиницы</h1>";
				div_inner_html += '<div style="padding: 0px 0px 4px 0px; font-weight: bold;">Вы бронируете гостиницу c 12 часов дня ' + it_dt_s.value + ' до 12 часов дня ' + it_dt_e.value + '</div>';
				div_inner_html += parseHotelDataTour(responce_data, container_id_str);

				div_body.innerHTML = div_inner_html;
			}
			catch( e1 )
			{
				//alert('Error eval: ' + e1.description + '\r\n' + res );
				div_body.innerHTML = "<h1 class=\"flhdr\">Шаг 2 - Выбор гостиницы</h1><br /><br /><span style=\"color: red;\">Не найдено ни одной гостиницы с заданными критериями поиска.</span><br /><br />";
			}

			hideProgress();
		};

		showProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}
}

function clickHotelPageTour(container_id, new_page_ind)
{
	do_hotel_search_tour( container_id, new_page_ind, false );
}

function clickChangeSortTour(container_id, new_sort_mode)
{
	 bookparams["sortm"] = new_sort_mode;
	 do_hotel_search_tour( container_id, 1, false );
}

function clickShowHotelInfoTour(coords, obj_id, chain_id, dateval )
{
	showTooltip('popuptooltip_prog', coords["x"], coords["y"]);

	do_hotel_info_tour(obj_id, chain_id, dateval);
}

function do_hotel_info_tour(container_id, chain_id, date_str)
{
	var ctrl_div = uh_get_object( container_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );
		var process_fn = function(res)
		{
			//eval( 'var responce_data = ' + res );
			//alert( res );
			var infoobj = uh_get_object('popuptooltip_prog_body');
			infoobj.innerHTML = res + "<br /><br /><a href=\"javascript:hideTooltip('popuptooltip_prog')\" class=\"actlink\">закрыть</a>";

			hideTooltipProgress();
		};

		showTooltipProgress();

		AJAX.SendRequest('GET', 'rcom=uh_com_hotel_i&chid=' + chain_id + '&dtbook=' + date_str, process_fn, null);
	}
}

function do_book_flight_tour(content_obj_id, order_cmd, passengers, buyer, /* */ hotel_obj_id, hotel_order_cmd, room_order_cmd, crc)
{	//alert('Making booking...');

	var div_body = uh_get_object( content_obj_id );

  	if( AJAX != null )
	{
		div_body.innerHTML = "";

		post_req_str = "rcom=uh_com_bookflight&command=" + order_cmd + "&passnum=" + passengers.length;
		post_req_str += "&seatclass=" + bookparams["seatclass"];

		post_req_str += "&buyern=" + buyer["name"] + "&buyerf=" + buyer["fname"] + "&buyert=" + buyer["tel"] + "&buyerm=" + buyer["mail"];

		for(i=0; i<passengers.length; i++)
		{			post_req_str += "&psgn" + (i+1) + "=" + passengers[i]["name"] + "&psgf" + (i+1) + "=" + passengers[i]["fname"] + "&psgt" + (i+1) + "=" + passengers[i]["child"];		}

		var process_fn = function(res)
		{
			//alert('flight list: \r\n' + res);

			var div_inner_html = '';

			try
			{
				eval( 'var responce_data = ' + res );

				div_inner_html = "<h1 class=\"flhdr\">Шаг 5 - Окончание бронирования</h1>";

				div_inner_html += "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\">" +
					"<tr><td valign=\"top\">" +
						"<span class=\"stage_hdr\">Данные о бронировании</span><br />" +
						"<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\" bgcolor=\"#ff9f00\"><tr><td>" +
							"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" width=\"300\">" +
							"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">PNR Идентификатор (RecLoc): </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.pnr_loc + "</td></tr>" +
							"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">Идентификатор заказа (FIC): </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.fic + "</td></tr>" +
							"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">PNR Идентификатор (FileAddr): </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.pnr_addr + "</td></tr>" +
							//"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">Ключ заказа: </td><td bgcolor=\"#FFFFFF\">" + result_rulekey + "</td></tr>" +
							"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">Стоимость заказа: </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.book_cost + " руб. </td></tr>" +
							"</table>" +
						"</td></tr></table>" +
					"</td><td valign=\"top\">" +
						"<span class=\"stage_hdr\">Пассажиры</span><br />" +
						"<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\" bgcolor=\"#ff9f00\"><tr><td>" +
							"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" width=\"300\">";

				for(i=1; i<=responce_data.order.psgrs.length; i++ )
				{
					var psgr = responce_data.order.psgrs[i-1];

					div_inner_html += "<tr><td bgcolor=\"#FFFFFF\" align=\"center\">" + i + "</td>" +
						"<td bgcolor=\"#FFFFFF\">" + psgr.name + "</td></tr>";
				}

				div_inner_html += "</table>" +
					"</td></tr></table>" +
					"</td></tr></table>";

				div_inner_html += "<div style=\"padding: 20px 10px 20px 0px;\">";

				for(i=0; i<responce_data.order.texts.length; i++ )
				{
					var t = responce_data.order.texts[i];

					div_inner_html += t + "<br />";
				}

				div_inner_html += "</div>";
			}
			catch(e1)
			{
				// error occure while making order
				div_inner_html = "<h1 class=\"flhdr\">Шаг 5 - Окончание бронирования</h1><br /><br /><span style=\"color: red;\">В данный момент не удалось выполнить бронирование мест на выбранный авиарейс.</span><br /><br />";			}

			div_body.innerHTML = div_inner_html;

			hideProgress();

			do_book_hotel_tour( hotel_obj_id, hotel_order_cmd, room_order_cmd, buyer, crc );
		};

		hideItem('flightsteps');
		showProgress();

		bookparams["stepind"] = 4;

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}}

function clickSelHotelButtonTour(container_id, item_ind, cmd_str)
{

	bookparams["hotelcmd"] = cmd_str;
	bookparams["hotelindex"] = item_ind;

	var order_sum_obj = uh_get_object('flightlist');

	var flight_html = buildItenaryItemTour( bookparams["itenerie"], 0, false );
	var hotel_html = buildHotelItemTour( bookparams["allhotels"][bookparams["hotelindex"]], bookparams["hotelindex"], 'flightlist', false );

	order_sum_obj.innerHTML = "<h1 class=\"flhdr\">Найденный авиарейса и выбранная гостиница</h1>" + flight_html + "<br />" + "<table border=\"0\" width=\"620\"><tr><td>" + hotel_html + "</td></tr></table>";

	do_hotel_rooms_tour( container_id, cmd_str );
}

function do_hotel_rooms_tour( container_id, cmd )
{
	//var q_params = GetQueryStringParams(window);
	var div_body = uh_get_object( container_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		// Now we should store some parameters to global variables
		//bookparams["persons"] = parseInt(q_params.params.seatNum);

		div_body.innerHTML = "";
		//div_body.innerHTML = "Ожидание ответа от сервера данных...";

		var post_req_str = "rcom=uh_com_hotel_r&hotelcmd=" + cmd;

		var process_fn = function(res)
		{
			//alert('Room list: \r\n' + res);

			var div_inner_html = '';

			try
			{
				eval( 'var responce_data = ' + res );

				div_inner_html = "<h1 class=\"flhdr\">Шаг 3 - Выбор номера</h1>";

				bookparams["hotelrooms"] = responce_data.rooms;

				div_inner_html += '<table border="0" cellspacing="1" cellpadding="2" class="frmtbl1">\r\n' +
					'<tr><td class="fh">&nbsp;</td><td class="fh">Номер</td><td class="fh" colspan="2">Цена в сутки</td><td class="fh">&nbsp;</td></tr>\r\n';

				for( i=0; i<responce_data.rooms.length; i++)
				{
					var room = responce_data.rooms[i];

					var row_color = ( i % 2 == 1 ? "ittbi" : "ittbp" );

					var room_html = buildRoomItemTour( room, i, row_color, container_id, true );

					/*
					div_inner_html += "<tr>\r\n";
					div_inner_html +=		'<td class="'+row_color+'">'+(i+1)+'</td>\r\n';
					//div_inner_html +=		'<td class="'+row_color+'"><input type="radio" name="selroom" value="'+room.roomdt+'" /></td>\r\n';
					div_inner_html +=		'<td class="'+row_color+'"><a href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); clickShowRoomInfo(coor, \'' + container_id + '\', \'' + room.command_line +'\'); }" class="sublink">'+ room.name + '( Код заказа - ' + room.code + ' )</a></td>\r\n';
					div_inner_html +=		'<td class="'+row_color+'">' + room.cost1 + '</td>\r\n';
					div_inner_html +=		'<td class="'+row_color+'">' + room.cost2 + '</td>\r\n';
					div_inner_html +=		'<td class="'+row_color+'"><input type="button" value="забронировать" onclick="javascript:clickSelRoomButton(\'' + container_id + '\', \''+room.roomdt+'\');" /></td>\r\n';
					div_inner_html +=	"</tr>";
					*/
					div_inner_html += room_html;
				}

				div_inner_html += '</table>';
			}
			catch( e1 )
			{
				//alert('Error eval: ' + e1.description + '\r\n' + res );
				div_inner_html = "<h1 class=\"flhdr\">Шаг 3 - Выбор номера</h1><br /><br />В данный момент не удалосб получить список доступных номеров гостиницы.<br /><br />";
			}

			div_body.innerHTML = div_inner_html;

			hideProgress();

			bookparams["stepind"] = 3;
		};

		showProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}
}

function clickShowRoomInfoTour(coords, container_id, cmd_str)
{
	showTooltip('popuptooltip_prog', coords["x"], coords["y"]);

	do_room_info_tour(container_id, cmd_str);
}

function do_room_info_tour(cont_obj_id, room_cmd)
{
	var ctrl_div = uh_get_object( cont_obj_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		var post_req_str = "rcom=uh_com_room_i&roomcmd=" + room_cmd;

		var process_fn = function(res)
		{
			//eval( 'var responce_data = ' + res );
			//alert( res );
			var infoobj = uh_get_object('popuptooltip_prog_body');
			infoobj.innerHTML = res + "<br /><br /><a href=\"javascript:hideTooltip('popuptooltip_prog')\" class=\"actlink\">закрыть</a>";

			hideTooltipProgress();
		};

		showTooltipProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}
}

function clickSelRoomButtonTour(container_id, room_index, cmd_str)
{

	bookparams["roomcmd"] = cmd_str;
	bookparams["roomindex"] = room_index;

	var order_sum_obj = uh_get_object('flightlist');

	var flight_html = buildItenaryItemTour( bookparams["itenerie"], 0, false );
	var hotel_html = buildHotelItemTour( bookparams["allhotels"][bookparams["hotelindex"]], bookparams["hotelindex"], 'flightlist', false );
	var room_html = buildRoomItemTour( bookparams["hotelrooms"][bookparams["roomindex"]], bookparams["roomindex"], 'ittbp', 'flightlist', false );

	order_sum_obj.innerHTML = "<h1 class=\"flhdr\">Найденный авиарейса и выбранная гостиница</h1>" + flight_html + "<br />" +
		"<table border=\"0\" width=\"620\"><tr><td>" + hotel_html + "</td></tr></table><br />" +
		'<table border="0" cellspacing="1" cellpadding="2" class="frmtbl1">\r\n' +
		'<tr><td class="fh">&nbsp;</td><td class="fh">Номер</td><td class="fh" colspan="2">Цена в сутки</td></tr>\r\n' + room_html + '</table>';

	do_select_hotel_tour( container_id, bookparams["persons"], cmd_str );
}

function do_select_hotel_tour(div_id, num_persons, room_cmd_str)
{
	var divobj = uh_get_object( div_id );

	var div_inner_html = "<h1 class=\"flhdr\">Шаг 4 - Заполнение информации для бронирования</h1>";

	//div_inner_html += "<div><b>Команда</b>: " + room_cmd_str + "</div>";

	for( i=1; i<=num_persons; i++ )
	{
		div_inner_html += '<div class="inputform"><div style="padding: 3px 0px 8px 0px;">' + helpTooltipText[6] + '</div>' +
			'<table cellspacing="1" cellpadding="2" border="0" class="frmtbl">' +
			'<tr><td class="fh" align="center" colspan="2">Пассажир ' + i + '</td></tr>' +
			'<tr><td class="ff">Фамилия: <span class="asterik">*</span></td><td class="fr"> <input type="text" id="user_name' + i + '" name="user_name' + i + '" class="fieldp" value="" /></td></tr>' +
			'<tr><td class="ff">Имя: <span class="asterik">*</span></td><td class="fr"><input type="text" id="user_fname' + i + '" name="user_fname' + i + '" class="fieldp" value="" /></td></tr>' +
			'<tr><td class="ff">Тип билета: <span class="asterik">*</span></td><td class="fr">' +
				'<select id="user_child' + i + '" name="user_child' + i + '" class="fieldp">' +
				'<option value="ADT">Взрослый</option>' +
				'<option value="INS">Детский с местом</option>' +
				'<option value="INF">Детский без места</option>' +
				'</select>' +
			'</td></tr></table></div>';
	}

	div_inner_html += '<div class="inputform" style="padding: 20px 10px 10px 0px;">' +
			'<table cellspacing="1" cellpadding="2" border="0" class="frmtbl">' +
			'<tr><td class="fh" align="center" colspan="2">На кого выполнять бронирование</td></tr>' +
			'<tr><td class="ff">Фамилия: <span class="asterik">*</span></td><td class="fr"> <input type="text" id="cpername" name="cpername" value="" /></td></tr>' +
			'<tr><td class="ff">Имя: <span class="asterik">*</span></td><td class="fr"><input type="text" id="cperfname" name="cperfname" value="" /></td></tr>' +
			'<tr><td class="ff">Телефон: <span class="asterik">*</span></td><td class="fr"><input type="text" id="cpertel" name="cpertel" value="" /></td></tr>' +
			'<tr><td class="ff">E-Mail: </td><td class="fr"><input type="text" id="cpermail" name="cpermail" value="" /></td></tr>' +
			'<tr><td class="ff">Дополнительно: </td><td class="fr">' +
				'<select name="user_add">' +
					'<option value="0">Без дополнительных мест</option>' +
					'<option value="1">Еще одно место</option>' +
					'<option value="2">Еще два места</option>' +
				'</seclect>' +
			'</td></tr>' +
			'<tr><td colspan="2" class="fh" align="center">' +
				'<input type="hidden" name="credit_src" id="credit_src" value="1" /><br />Данные о кредитной карте</td></tr>'+
						'<tr><td class="ff">Тип карты: <span class="asterik">*</span></td><td class="fr">'+
						'<select name="credit_type" id="credit_type">'+
						'<option value="AM">American Express</option>'+
						'<option value="DS">Discover</option>'+
						'<option value="CA">MasterCard</option>'+
						'<option value="VI" selected>Visa</option>'+
						'</select></td></tr>'+
			'<tr><td class="ff">Дата истекания: <span class="asterik">*</span></td><td class="fr"><input type="text" name="credit_exp" id="credit_exp" size="4" maxlength="4" /> - формат ММГГ</td></tr>'+
			'<tr><td class="ff">Номер: <span class="asterik">*</span></td><td class="fr"><input type="text" name="credit_num" id="credit_num" size="18" maxlength="16" /></td></tr>'+
			'<tr><td class="ff">Имя на карте: <span class="asterik">*</span></td><td class="fr"><input type="text" name="credit_name" id="credit_name" size="24" /></td></tr>' +
			'</table></div>';

	div_inner_html += '<br /><input type="button" value="Выполнить заказ" onclick="javascript:clickBookTourButton(\'' + div_id + '\', \'flightlist\');" />' +
		'<div style="padding: 7px 0px 5px 0px;">' + helpTooltipText[7] + '</div>';

	divobj.innerHTML = div_inner_html;

	bookparams["stepind"] = 4;
}

function clickBookTourButton(cont_hotel_id, flight_cont_id)
{
	// We should check the correct input of visitor
	var num_persons = bookparams["persons"];

	//alert('Total persons: ' + num_persons);

	var persons = new Array();

	for(i=1; i<=num_persons; i++)
	{
		//alert('Check person: ' + i);

		var cur_name_obj = uh_get_object( 'user_name' + i );
		var cur_fname_obj = uh_get_object( 'user_fname' + i );
		var cur_child_obj = uh_get_object( 'user_child' + i );

		if( (cur_name_obj.value == '') || (cur_fname_obj.value == '') )
		{
			alert('Вы полностью не заполнили информацию о ' + i + '-м пассажире.');
			return;
		}

		var re = /^[a-zA-Z]+$/g;
		var n1 = cur_name_obj.value;
		var f1 = cur_fname_obj.value;

		if( !n1.match(re) )
		{
			alert('Вы указали фамилию символами не латинского алфавита для ' + i + '-ого пассажира.');
			return;
		}

		if( !f1.match(re) )
		{
			alert('Вы указали имя символами не латинского алфавита для ' + i + '-ого пассажира.');
			return;
		}

		var this_person = new Array();
		this_person["name"] = cur_name_obj.value;
		this_person["fname"] = cur_fname_obj.value;
		this_person["child"] = cur_child_obj.options[cur_child_obj.selectedIndex].value;

		persons[i-1] = this_person;
	}

	var cur_name_obj = uh_get_object( 'cpername' );
	var cur_fname_obj = uh_get_object( 'cperfname' );
	var cur_tel_obj = uh_get_object( 'cpertel' );
	var cur_mail_obj = uh_get_object( 'cpermail' );

	var cred_src_obj = uh_get_object( 'credit_src' );
	var cred_type_obj = uh_get_object( 'credit_type' );
	var cred_exp_obj = uh_get_object( 'credit_exp' );
	var cred_num_obj = uh_get_object( 'credit_num' );
	var cred_name_obj = uh_get_object( 'credit_name' );

	if( (cur_name_obj.value == '') || (cur_fname_obj.value == '') || (cur_tel_obj.value == '') )
	{
		alert('Вы полностью не заполнили информацию о заказывающем лице.');
		return;
	}

	if( (cred_src_obj.value == '1')  && ( (cred_exp_obj.value == '') || (cred_num_obj.value == '') || (cred_name_obj.value == '') ) )
	{
		alert('Вы полностью не заполнили информацию о кредитной карте.');
		return;
	}

	var re = /^[a-zA-Z]+$/g;
	var ret = /^[0-9]{7,}$/g;
	var n1 = cur_name_obj.value;
	var f1 = cur_fname_obj.value;
	var t1 = cur_tel_obj.value;

	if( !n1.match(re) )
	{
		alert('Вы указали фамилию заказывающего лица символами не латинского алфавита.');
		return;
	}

	if( !f1.match(re) )
	{
		alert('Вы указали имя заказывающего лица символами не латинского алфавита.');
		return;
	}

	if( !t1.match(ret) )
	{
		alert('Телефонный номер должен быть введен в виде непрерывной последовательности цифр (от 7-ми и больше).');
		return;
	}

	var buyer = new Array();
	buyer["name"] = cur_name_obj.value;
	buyer["fname"] = cur_fname_obj.value;
	buyer["tel"] = cur_tel_obj.value;
	buyer["mail"] = cur_mail_obj.value;

	var cr_card = new Array();
	cr_card["src"] = cred_src_obj.value;
	cr_card["type"] = cred_type_obj.options[cred_type_obj.selectedIndex].value;
	cr_card["exp"] = cred_exp_obj.value;
	cr_card["num"] = cred_num_obj.value;
	cr_card["name"] = cred_name_obj.value;

	var order_sum_obj = uh_get_object(flight_cont_id);
	var order_info_obj = uh_get_object(cont_hotel_id);

	var flight_html = buildItenaryItemTour( bookparams["itenerie"], 0, false );
	var hotel_html = buildHotelItemTour( bookparams["allhotels"][bookparams["hotelindex"]], bookparams["hotelindex"], 'flightlist', false );
	var room_html = buildRoomItemTour( bookparams["hotelrooms"][bookparams["roomindex"]], bookparams["roomindex"], 'ittbp', 'flightlist', false );

	order_sum_obj.innerHTML = "<h1 class=\"flhdr\">Найденный авиарейса и выбранная гостиница</h1>" + flight_html + "<br />" +
		"<table border=\"0\" width=\"620\"><tr><td>" + hotel_html + "</td></tr></table><br />" +
		'<table border="0" cellspacing="1" cellpadding="2" class="frmtbl1">\r\n' +
		'<tr><td class="fh">&nbsp;</td><td class="fh">Номер</td><td class="fh" colspan="2">Цена в сутки</td></tr>\r\n' + room_html + '</table>';

	order_info_obj.innerHTML = '';

	do_book_flight_tour( flight_cont_id, bookparams["ordercmd"], persons, buyer, cont_hotel_id, bookparams["hotelcmd"], bookparams["roomcmd"], cr_card );}

function do_book_hotel_tour(content_obj_id, hotel_order_cmd, room_order_cmd, buyer, crc)
{
	//alert('Making booking...');

	var div_body = uh_get_object( content_obj_id );

	//alert( content_obj_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		//div_body.innerHTML = "Получение данных о бронировании...";
		var cur_html = div_body.innerHTML;
		div_body.innerHTML = "";


		post_req_str = "rcom=uh_com_bookhotel&hotelcmd=" + hotel_order_cmd + "&roomcmd=" + room_order_cmd + "&passnum=" + bookparams["persons"];
		post_req_str += "&buyern=" + buyer["name"] + "&buyerf=" + buyer["fname"] + "&buyert=" + buyer["tel"] + "&buyerm=" + buyer["mail"];
		post_req_str += "&crcs=" + crc["src"];
		if( crc["src"] == 1 )
			post_req_str += "&crct=" + crc["type"] + "&crce=" + crc["exp"] + "&crcnu=" + crc["num"] + "&crcna=" + crc["name"];

		var process_fn = function(res)
		{
			//alert('Hotel book res: \r\n' + res);
			var div_inner_html = "";
			div_inner_html += cur_html + "<br /><br /><h1 class=\"flhdr\">Результат бронирования гостиницы</h1>";
			try
			{
				eval( 'var responce_data = ' + res );

				//alert( responce_data.order.status );

				if( responce_data.order.status == "ok" )
				{
					//alert("ok");
					div_inner_html += "<br /><br /><span class=\"stage_hdr\">Данные о бронировании</span><br />" +
							"<table cellspacing=\"0\" cellpadding=\"1\" border=\"0\" bgcolor=\"#ff9f00\"><tr><td>" +
								"<table cellspacing=\"1\" cellpadding=\"2\" border=\"0\" width=\"300\">" +
								"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">PNR Идентификатор (RecLoc): </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.pnr_loc + "</td></tr>" +
								"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">PNR Идентификатор (FileAddr): </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.pnr_addr + "</td></tr>" +
								"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">Код подтверждения заказа: </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.conf_num + "</td></tr>" +
								"<tr><td bgcolor=\"#FFFFFF\" class=\"formhdr\">Стоимость заказа: </td><td bgcolor=\"#FFFFFF\">" + responce_data.order.book_cost + "</td></tr>" +
								"</table>" +
							"</td></tr></table>";
				}
				else
				{					div_inner_html += "<br /><span style=\"color: red;\">В данный момент бронирование не удалось выполнить. Попробуйте вернуться на шаг назад и выбрать другой тип номера или другую гостиницу.</span><br /><br />";				}
			}
			catch(e1)
			{
				//
				//alert( e1.toString() );
				div_inner_html = cur_html + "<br /><br /><span style=\"color: red;\">В данный момент бронирование не удалось выполнить. Свяжитесь с нами по телефону для решения этой проблемы.</span><br /><br />";
			}

			div_body.innerHTML = div_inner_html;

			hideProgress();
		};

		//alert ( post_req_str );

		showProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
		//AJAX.SendRequest('GET', 'rcom=uh_com_country', process_fn, null ); //encode64(post_req_str));
	}
}