function initCarForms()
{
	fillCartypeList('cartype');
}

function fillCartypeList(obj_id)
{
	var ctrl_airline = uh_get_object( obj_id );
 	//alert( window.document.srchfrm.airline.innerHTML );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );
		var process_fn = function(res)
		{
			//alert(' RESPONSE IN CALLBACK: ' + res);

			eval( 'var responce_data = ' + res );

			// remove all old data
			while( ctrl_airline.options.length > 0 )
				ctrl_airline.remove(0);

			// Fill list with new options
			for(i=0; i<responce_data.cartypes.length; i++)
			{
				ctrl_airline.options[i] = new Option( responce_data.cartypes[i].name, responce_data.cartypes[i].id );
			}

			// Hide progress bar
            hideProgress();
		};

		// Show progress bar
		showProgress();

		AJAX.SendRequest('GET', 'rcom=uh_com_cartype', process_fn, null);
	}
}

function gotoprevpage_car(form_id, car_id, steppan_id)
{
	switch( bookparams["stepind"] )
	{
		case 1:
			// do nothing
			break;
		case 2:
			// Run back step for displayed hotel list
			var obj_tbl = uh_get_object(car_id);
			obj_tbl.innerHTML = "";

			hideItem(steppan_id);
			hideItem(steppan_id + 'up');
			showItem(form_id);
			break;

		case 3:
			do_car_search('carlist', steppan_id);

			showItem(steppan_id + 'up');
			break;
	}

	bookparams["stepind"] = bookparams["stepind"] - 1;
}

function clickSearchCarBut(form_id, cont_id, step_id)
{
	var obj_form = uh_get_object(form_id);

	obj_form.style.visibility = "hidden";
	obj_form.style.display = "none";

	do_car_search(cont_id, step_id);
}

function buildCarItem(car, ind, row_color, content_obj_id, show_order_button)
{
	var div_inner_html = '<tr>\r\n' +
		'<td class="' + row_color + '">' + car.vnd + '</td>\r\n' +
		'<td class="' + row_color + '">' + car.name + '</td>\r\n' +
		'<td align="center" class="' + row_color + '"><a href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); clickShowCarInfo(coor, \'' + content_obj_id + '\', \'' + car.infocmd + '\'); }" class="sublink">подробнее</a></td>\r\n' +
		'<td class="' + row_color + '">' + car.cost + '<br />' + car.cost_info + '</td>\r\n';
	if( show_order_button )
		div_inner_html += '<td class="' + row_color + '"><input type="button" value="Выбрать" onclick="javascript:clickSelCarButton(\'' + content_obj_id + '\', '+ ind + ', \''+car.command_line + '\');" /></td>';
	div_inner_html += '</tr>';

	return div_inner_html;}

function do_car_search(content_obj_id, steppan_id)
{
	//var q_params = GetQueryStringParams(window);
	var div_body = uh_get_object( content_obj_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		// Now we should store some parameters to global variables
		/*
		//div_body.innerHTML = "Ожидание ответа от сервера данных...";
		div_body.innerHTML = "";

		var post_req_str = "rcom=uh_com_cars&sessid=" + bookparams["sessionid"];

		var cnf = bookparams["cnf"] = q_params.params.cnf1;
		var ccf = bookparams["ccf"] = q_params.params.ccf1;
		var it_dt_s = bookparams["id_dt_s"] = q_params.params.it_dt1;
		var it_dt_e = bookparams["id_dt_e"] = q_params.params.it_dt2;

		post_req_str += "&citypoint=" + unescape(cnf);
		post_req_str += "&citypointc=" + unescape(ccf);
		post_req_str += "&stdt=" + it_dt_s;
		post_req_str += "&endt=" + it_dt_e;
		*/

		div_body.innerHTML = "";

		var post_req_str = "rcom=uh_com_cars&sessid=" + bookparams["sessionid"];

		var cnf = uh_get_object('cnf1');
		var ccf = uh_get_object('ccf1');
		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;

		var process_fn = function(res)
		{
			try
			{
				eval( 'var responce_data = ' + res );

				bookparams["cars"] = responce_data.cars;

				var div_inner_html = "<h1 class=\"flhdr\">Шаг 2 - Выбор компании</h1>";

				div_inner_html += '<table border="0" cellspacing="1" cellpadding="2" class="frmtbl1">' +
					'<tr><td class="fh">Вендор</td><td class="fh">Тип</td><td class="fh">&nbsp;</td><td class="fh">Стоимость</td><td class="fh">&nbsp;</td></tr>\r\n';

				for(i=0; i<responce_data.cars.length; i++)
				{
					var car = responce_data.cars[i];

					var row_color = ( i % 2 == 1 ? "ittbi" : "ittbp" );
					var car_html = buildCarItem( car, i, row_color, content_obj_id, true );

					div_inner_html += car_html;

					/*
					div_inner_html += '<tr>\r\n' +
						'<td class="' + row_color + '">' + car.vnd + '</td>\r\n' +
						'<td class="' + row_color + '">' + car.name + '</td>\r\n' +
						'<td align="center" class="' + row_color + '"><a href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); clickShowCarInfo(coor, \'' + content_obj_id + '\', \'' + car.infocmd + '\'); }" class="sublink">подробнее</a></td>\r\n' +
						'<td class="' + row_color + '">' + car.cost + '<br />' + car.cost_info + '</td>\r\n' +
						'<td class="' + row_color + '"><input type="button" value="Выбрать" onclick="javascript:clickSelCarButton(\'' + content_obj_id + '\', \''+car.command_line + '\');" /></td>' +
						'</tr>';
					*/
				}

				div_inner_html += "</table>";

				div_body.innerHTML = div_inner_html;
			}
			catch( e1 )
			{				alert('Error eval: ' + e1.description + '\r\n' + res );			}
			//alert('Response recieved: ' + div_inner_html);

			bookparams["stepind"] = 2;
			showItem(steppan_id);
			showItem(steppan_id + 'up');

			// Hide progress bar
            hideProgress();
		};

		// Show progress bar
		showProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}
}

function clickShowCarInfo(coords, obj_id, chain_id )
{
	showTooltip('popuptooltip_prog', coords["x"], coords["y"]);

	do_car_info(obj_id, chain_id);}

function do_car_info(container_id, chain_id)
{	var ctrl_div = uh_get_object( container_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		var post_req_str = 'rcom=uh_com_car_i&chid=' + chain_id;

		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 clickSelCarButton(container_id, car_ind, cmd_str)
{

	bookparams["carcmd"] = cmd_str;
	bookparams["carindex"] = car_ind;

	do_select_car( container_id, cmd_str );
}

function do_select_car(div_id, car_cmd_str)
{
	var divobj = uh_get_object( div_id );
	var div_inner_html = '';

	var car_html = buildCarItem( bookparams["cars"][bookparams["carindex"]], bookparams["carindex"], 'ittbp', 'carlist', false );

	div_inner_html += "<h1 class=\"flhdr\">Выбранная автокомпания</h1>" +
		'<table border="0" cellspacing="1" cellpadding="2" class="frmtbl1">' +
		'<tr><td class="fh">Вендор</td><td class="fh">Тип</td><td class="fh">&nbsp;</td><td class="fh">Стоимость</td></tr>\r\n' + car_html + '</table><br /><br />';

	div_inner_html += "<h1 class=\"flhdr\">Шаг 3 - Заполнение информации для бронирования</h1>";

	//div_inner_html += "<div><b>Команда</b>: " + car_cmd_str + "</div>";

	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">На кого выполнять бронирование</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">Телефон: (<a href="javascript:voidfn(0);" onmouseover="this.onclick=function(e) { var coor = mousePageXY(e); showHelp(coor, 8 ); }" class="actlink">?</a>) <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>' +
			'</table></div>';

	div_inner_html += '<br /><input type="button" value="Выполнить заказ" onclick="javascript:clickBookCarButton(\'' + div_id + '\');" />' +
		'<div style="padding: 7px 0px 5px 0px;">' + helpTooltipText[7] + '</div>';

	bookparams["stepind"] = 3;

	divobj.innerHTML = div_inner_html;
}

function clickBookCarButton(container_id)
{
	//alert('Process form');

	// We should check the correct input of visitor
	var num_persons = bookparams["persons"];

	//alert('Total persons: ' + num_persons);

	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' );

	if( (cur_name_obj.value == '') || (cur_fname_obj.value == '') || (cur_tel_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 info_body_obj = uh_get_object( container_id );

	var car_html = buildCarItem( bookparams["cars"][bookparams["carindex"]], bookparams["carindex"], 'ittbp', 'carlist', false );

	info_body_obj.innerHTML = "<h1 class=\"flhdr\">Выбранная автокомпания</h1>" +
		'<table border="0" cellspacing="1" cellpadding="2" class="frmtbl1">' +
		'<tr><td class="fh">Вендор</td><td class="fh">Тип</td><td class="fh">&nbsp;</td><td class="fh">Стоимость</td></tr>\r\n' + car_html + '</table><br /><br />';

	do_book_car( container_id, bookparams["carcmd"], buyer);
}

function do_book_car(content_obj_id, car_order_cmd, buyer)
{
	//alert('Making booking...');

	var div_body = uh_get_object( content_obj_id );

  	if( AJAX != null )
	{
		//alert( 'AJAX is ok' );

		//div_body.innerHTML = "Получение данных о бронировании...";
		//div_body.innerHTML = "";
		var cur_html = div_body.innerHTML;

		post_req_str = "rcom=uh_com_bookcar&carcmd=" + car_order_cmd;
		post_req_str += "&buyern=" + buyer["name"] + "&buyerf=" + buyer["fname"] + "&buyert=" + buyer["tel"] + "&buyerm=" + buyer["mail"];

		var process_fn = function(res)
		{
			//alert('car list: \r\n' + res);

			eval( 'var responce_data = ' + res );

			var div_inner_html = "<h1 class=\"flhdr\">Шаг 4 - Окончание бронирования</h1>";

			div_inner_html += "<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>" +
						"</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>";

			div_body.innerHTML = cur_html + div_inner_html;
			//alert('Response recieved: ' + div_inner_html);

			hideProgress();
		};

		hideItem('flightsteps');
		hideItem('flightstepsup');

		bookparams["stepind"] = 4;

		//alert ( post_req_str );
		showProgress();

		AJAX.SendRequest('POST', '', process_fn, encode64(post_req_str));
	}
}