function Telres(){
	//alert("Telres");

	this.checkAll = function(id){
		checkName(id);
	};

	function checkName(id){
		var object = document.getElementById(id);
		object.value = translitIgnorCase(object.value);
		var ereg = new RegExp("^[A-Z-`]+$");
		result = false;
		if(ereg.exec(object.value) != null) result = true;
	}

	function checkID(id){
		var object = document.getElementById(id);
		var ereg = new RegExp("^[0-9]+$");
		result = false;
		if(ereg.exec(object.value) != null) result = true;
	}

	function translitIgnorCase(text){
		var result = text.toUpperCase();
		var rus = new Array('А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я');
		var eng = new Array('A', 'B', 'V', 'G', 'D', 'E', 'E', 'ZH', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'CH', 'SH', 'SH', '', 'Y' , '', 'E', 'YU', 'YA');
		for(var index = 0; index < rus.length; index++){
			result = replace(result, rus[index], eng[index]);
		}
		return result;
	}
	function replace(text, oldChar, newChar){
		if (text.length >= 1 && oldChar.length >= 1 && text.indexOf(oldChar) != -1){
			text = text.split(oldChar).join(newChar);
		}
		return text;
	}

}

//***************************************************************************************************************
//    набор скриптов для формы заказа авиабилета telres.php
//    для сайта AIRPORT-KALININGRAD.RU
//    автор:  Королёв Алексей
//    версия: 2.0b
//    дата:   16.02.2010
//---------------------------------------------------------------------------------------------------------------

var ticket_ajax_server = document.location.protocol + '//' +document.location.hostname + "/local_services/mak/booking/booking_ajax_server.php";



var ticket_booked = 'N';

/*
function dumpProps(obj) {
   var msg = '';
   // Go through all the properties of the passed-in object
   for (var i in obj) {
      msg = msg + "\n" +  i + " = " + obj[i];
      }

  fill_text('debug', 'debug ' + msg);
}
*/




function show_all()
{
  document.getElementById("booking_area_load").style.display = "none";
  document.getElementById("all_booking_area").style.display = "";
}

// firefox smart-ass aut-fill fix
// reinits visibility styles of form components after reload via F5
// according to their states randomly set by ffox
function reinit_form()
{
  document.getElementsByName("telres_dir")[1].checked = true;
  set_direction('return');
  set_person_count();
  for (i = 0; i<=10; i++) { set_doc_date_unlimited(i);}
}


function load_pay_systems()
{
 var a = new AJAX(ticket_ajax_server,a_load_pay_systems);
 a.doPost("request=pay_systems");
 }
function a_load_pay_systems(data)
{
  fill_select("pay_system",data,1);
  show_all();
}


function set_person_count()
{
var p_count = document.getElementById("additional_person_count").value;
  if (p_count==0)
  {
   document.getElementById("additional_person_count_area").style.display = "none";
	}
  else
  {
   var table = document.getElementById("persons_table");
   var trList= table.rows;

   for (var i=1;i<trList.length;i++)
    {
    if (i <= p_count) {trList[i].style.display = "";}
    else {trList[i].style.display = "none";}
     }

   document.getElementById("additional_person_count_area").style.display = "";
  }

}


function set_doc_date_unlimited(i)
{
 if (document.getElementById('dducb_'+i).checked)
 {
  document.getElementById('doc_date_area_'+i).style.display="none";
  if (i>0)
   {  	 document.getElementById('doc_date_area_'+i+'_pad_div').style.display="none";
   }
 }
 else
 {
  document.getElementById('doc_date_area_'+i).style.display="";
  if (i>0)
   {
  	 document.getElementById('doc_date_area_'+i+'_pad_div').style.display="";
   }
 }

}


function clear_ticket_all_error_msg()
{
  fill_text (  'telres_from_err_msg' , '');
  fill_text (  'telres_to_err_msg' , '');

  fill_text (  'telres_start_date_err_msg' , '');
  fill_text (  'telres_end_date_err_msg' , '');

  fill_text (  'name_err_msg' , '');
  fill_text (  'surname_err_msg' , '');

  fill_text (  'birth_date_err_msg' , '');
  fill_text (  'citizenship_err_msg' , '');
  fill_text (  'doc_number_err_msg' , '');
  fill_text (  'doc_date_err_msg' , '');

  fill_text (  'email_err_msg' , '');
  fill_text (  'telephone_err_msg' , '');

  fill_text (  'pay_system_err_msg' , '');
  //fill_text (  'ffp_number_err_msg' , '');

  fill_text (  'comment_err_msg' , '');

  for (i = 1; i<=10; i++)
  {
    fill_text (  'name_'+i+'_err_msg' , '');
    fill_text (  'surname_'+i+'_err_msg' , '');
    fill_text (  'birth_date_'+i+'_err_msg' , '');
    fill_text (  'citizenship_'+i+'_err_msg' , '');
    fill_text (  'doc_number_'+i+'_err_msg' , '');
    fill_text (  'doc_date_'+i+'_err_msg' , '');
  }
}

function  clear_ticket_start_date_error_msg()
{	fill_text (  'telres_start_date_err_msg' , ''); }

function  clear_ticket_end_date_error_msg()
{	fill_text (  'telres_end_date_err_msg' , ''); }

function  clear_name_error_msg(i)
{ if (isNaN(i))  {fill_text (  'name_err_msg' , '');}
  else {fill_text (  'name_'+i+'_err_msg' , '');}
}

function  clear_surname_error_msg(i)
{ if (isNaN(i)) {fill_text (  'surname_err_msg' , '');}
  else {fill_text (  'surname_'+i+'_err_msg' , '');}
}

function clear_birth_date_error_msg(i)
{ if (isNaN(i)) { fill_text (  'birth_date_err_msg' , ''); }
  else {fill_text (  'birth_date_'+i+'_err_msg' , ''); }
}

function clear_citizenship_error_msg(i)
{
if (isNaN(i)) { fill_text (  'citizenship_err_msg' , ''); }
  else { fill_text (  'citizenship_'+i+'_err_msg' , ''); }
}

function clear_doc_type_error_msg(i)
{ if (isNaN(i)) {  fill_text (  'doc_type_err_msg' , ''); }
  else  {  fill_text (  'doc_type_'+i+'_err_msg' , ''); }
}

function clear_doc_number_error_msg(i)
{ if (isNaN(i)) {  fill_text (  'doc_number_err_msg' , ''); }
  else  {  fill_text (  'doc_number_'+i+'_err_msg' , ''); }
}

function clear_doc_date_error_msg(i)
{ if (isNaN(i)) { fill_text (  'doc_date_err_msg' , ''); }
  else { fill_text (  'doc_date_'+i+'_err_msg' , ''); }
}

function clear_email_error_msg()
{   fill_text (  'email_err_msg' , ''); }

function clear_telephone_error_msg()
{   fill_text (  'telephone_err_msg' , ''); }

function clear_pay_system_error_msg()
{   fill_text (  'pay_system_err_msg' , ''); }

//function clear_ffp_number_error_msg()
//{   fill_text (  'ffp_number_err_msg' , ''); }

function  clear_ticket_iata_error_msg()
{
 start_IATA = document.getElementById('telres_from').value;
 end_IATA = document.getElementById('telres_to').value;

 if (start_IATA != '') {fill_text (  'telres_from_err_msg' , '');}
 if (end_IATA != '') { fill_text (  'telres_to_err_msg' , '');}
}

function clear_comment_error_msg()
{fill_text (  'comment_err_msg' , '');}


function clear_auth_error_msg()
{   fill_text (  'kdtravel_login_err_msg' , ''); }

function clear_all_ap_error_msg()
{
  for (i = 1; i<=10; i++)
  {
    fill_text (  'name_'+i+'_err_msg' , '');
    fill_text (  'surname_'+i+'_err_msg' , '');
    fill_text (  'birth_date_'+i+'_err_msg' , '');
    fill_text (  'citizenship_'+i+'_err_msg' , '');
    fill_text (  'doc_number_'+i+'_err_msg' , '');
    fill_text (  'doc_date_'+i+'_err_msg' , '');
  }
}


function hide_submit_area()
{
if ( ticket_booked =='Y')
   {
     document.getElementById('submit_area').style.display="none";
	}
}

function ticket_success()
{
 scrollTo(0,405);

 document.getElementById('ticket_booking_area').style.display="none";
 document.getElementById('ticket_success_area').style.display="";
 ticket_booked ='Y';
 hide_submit_area();
 pageTracker._trackPageview("/target/aviabilet");
}

function make_booking()
{
 if ( ticket_booked =='N') {make_ticket_booking();}
}


function make_ticket_booking()
{
 scrollTo(0,405);

 clear_ticket_all_error_msg();

 var start_IATA = document.getElementById('telres_from').value;
 var end_IATA = document.getElementById('telres_to').value;

 var additional_person_count = document.getElementById('additional_person_count').value;

 var telres_dir = '';

 if (document.getElementById('rb_return').checked)
    {telres_dir = 'return';}
 else if (document.getElementById('rb_oneway').checked)
        {telres_dir = 'oneway';}

 var name = document.getElementById('name').value;
 document.getElementById('name').value = name.toUpperCase();

 var surname = document.getElementById('surname').value;
 document.getElementById('surname').value = surname.toUpperCase();

 var doc_date_unlimited = document.getElementById('dducb_0').checked;

 var request = 'request=new_booking'+
                  '&start_iata='+start_IATA+
                  '&end_iata='+end_IATA+

                  '&telres_dir='+telres_dir+
                  '&telres_start_day='+document.getElementById('telres_start_day').value+
                  '&telres_start_month='+document.getElementById('telres_start_month').value+
                  '&telres_start_year='+document.getElementById('telres_start_year').value;

 				 if(telres_dir == "oneway")
				 {// 0000-00-00
					 request = request + '&telres_end_day='+'00'+'&telres_end_month='+'00'+'&telres_end_year='+'0000';
				 }
				 else
				 {
					 request = request +
                  '&telres_end_day='+document.getElementById('telres_end_day').value+
                  '&telres_end_month='+document.getElementById('telres_end_month').value+
                  '&telres_end_year='+document.getElementById('telres_end_year').value;
				 }

				 request = request +
                  '&name='+document.getElementById('name').value+
                  '&surname='+document.getElementById('surname').value+

                  '&birth_day='+document.getElementById('birth_day').value+
                  '&birth_month='+document.getElementById('birth_month').value+
                  '&birth_year='+document.getElementById('birth_year').value+

                  '&citizenship='+document.getElementById('citizenship').value+
                  '&doc_type='+document.getElementById('doc_type').value+
                  '&doc_number='+document.getElementById('doc_number').value;

				 request = request + '&doc_date_unlimited='+document.getElementById('dducb_0').checked;
				 if(doc_date_unlimited)
				 {// 0000-00-00
					 request = request + '&doc_day='+'00'+'&doc_month='+'00'+'&doc_year='+'0000';
				 }
				 else
				 {
					 request = request +
				  '&doc_day='+document.getElementById('doc_day').value+
                  '&doc_month='+document.getElementById('doc_month').value+
                  '&doc_year='+document.getElementById('doc_year').value;
				 }

				 request = request +
                  '&mail='+document.getElementById('mail').value+
                  '&telephone='+document.getElementById('telephone').value+
                  '&time1='+document.getElementById('time1').value+
                  '&time2='+document.getElementById('time2').value+

                  '&pay_system='+document.getElementById('pay_system').value+

                  /* '&has_ffp='+document.getElementById('ffpcb').checked+
                   '&ffp_number='+document.getElementById('ffp_number').value+ */

                  '&additional_person_count='+document.getElementById('additional_person_count').value+
                  '&comment='+document.getElementById('comment').value;
  //alert(request);

 for (i=1; i<=additional_person_count; i++)
 {
	 name = document.getElementById('name_'+i).value;
	 document.getElementById('name_'+i).value = name.toUpperCase();

	 surname = document.getElementById('surname_'+i).value;
	 document.getElementById('surname_'+i).value = surname.toUpperCase();

	 doc_date_unlimited = document.getElementById('dducb_'+i).checked;

	 request =  request +
                 '&name_'+i+'='+document.getElementById('name_'+i).value+
                 '&surname_'+i+'='+document.getElementById('surname_'+i).value+

                  '&birth_day_'+i+'='+document.getElementById('birth_day_'+i).value+
                  '&birth_month_'+i+'='+document.getElementById('birth_month_'+i).value+
                  '&birth_year_'+i+'='+document.getElementById('birth_year_'+i).value+

                  '&citizenship_'+i+'='+document.getElementById('citizenship_'+i).value+
                  '&doc_type_'+i+'='+document.getElementById('doc_type_'+i).value+
                  '&doc_number_'+i+'='+document.getElementById('doc_number_'+i).value;

				 request = request + '&doc_date_unlimited_'+i+'='+document.getElementById('dducb_'+i).checked;
				 if(doc_date_unlimited)
				 {// 0000-00-00
					 request = request + '&doc_day_'+i+'='+'00'+'&doc_month_'+i+'='+'00'+'&doc_year_'+i+'='+'0000';
				 }
				 else
				 {
					 request = request +
                  '&doc_day_'+i+'='+document.getElementById('doc_day_'+i).value+
                  '&doc_month_'+i+'='+document.getElementById('doc_month_'+i).value+
                  '&doc_year_'+i+'='+document.getElementById('doc_year_'+i).value;
				 }

 }
// alert  (request);

 var a = new AJAX(ticket_ajax_server,a_make_ticket_booking);
 a.doPost(request);
 }
function a_make_ticket_booking(data)
{
  //alert (data);
  if(data.length == 0) return 1;    // если данных нет - не делаем больше ничего
  var arr = data.split('#n');     // в массиве arr - строки полученной таблицы

  if (arr.length == 0) return 1;


    for(var i in arr)     // для каждой строки
    {
        if (arr[i] != "")
         {
         var  val = arr[i].split('#t'); // в массиве val - поля полученной таблицы
         //alert(val[1], val[0]);

         var object_name = val[0];
         var error_text = val[1];

          if (object_name == 'ticket_success_message'){ ticket_success();}
          // alert(val[0]);

          object_name = object_name+'_err_msg';
          //alert(object_name); // ticket_error_message_err_msg

          var object = document.getElementById(object_name)
          if (object != null)
              {
              	//alert ('object '+object_name + ' has error '+error_text);
                fill_text (object_name,error_text);

                document.getElementById(object_name).style.display="block";
              }

         }
    }
}


function set_direction(direction)
{
 if (direction == 'oneway')
  {
   document.getElementById('end_date').style.display="none";
  }
 else
  {   document.getElementById('end_date').style.display="";
   }
}


//---------------------------------------------------------------------------------------------------------------
// тескт/селект переключатели
function text_on_select_off(text_area_id,select_area_id,select_id,text,data)
{
  document.getElementById(select_area_id).style.display="none";
  fill_select(select_id, data, 1);
  document.getElementById(select_id).value = get_first_select_element_value(data);
  fill_text(text_area_id, text);
  document.getElementById(text_area_id).style.display="";
}


function text_off_select_on(text_area_id,select_area_id,select_id,data)
{
  document.getElementById(text_area_id).style.display="none";
  fill_select(select_id, data, 1);
  document.getElementById(select_area_id).style.display="";
}
//---------------------------------------------------------------------------------------------------------------




//---------------------------------------------------------------------------------------------------------------
// при выборе стоп-ИАТА
function set_end_iata()
{
 clear_ticket_iata_error_msg();
 }


//---------------------------------------------------------------------------------------------------------------
// при выборе старт-ИАТА
function set_start_iata()
{
 clear_ticket_iata_error_msg();
}

//---------------------------------------------------------------------------------------------------------------





function change_pay_type()
{
    var  pay_type = document.getElementById('pay_system').value;
	if (pay_type == '3')
	{
      document.getElementById('pay_type_warning').style.display = '';
	}
    else
    {
      document.getElementById('pay_type_warning').style.display = 'none';
    }

}




function get_first_select_element_value(data)
{
   if(data.length == 0) return 1;    // если данных нет - не делаем больше ничего
   var arr = data.split('#n');     // в массиве arr - строки полученной таблицы
   if (arr.length == 0) return 1;
    for(var i in arr)     // для каждой строки
    {
        if (arr[i] != "")
         {
          var val = arr[i].split('#t');                   // в массиве val - поля полученной таблицы
            {
//             alert ('val1 ='+ val[1]);
             if (val[0]== undefined || parseInt(val[1]) == NaN){return 1;}
            }
       }
    }
return val[0];
}

//***************************************************************************************************************
// функция заполняет объект с идентификатором text_id
// данными из массива data
//
// данные передаются в простой строке
// в кодировке CP1251
function fill_text (text_id,data){

    var txt = document.getElementById(text_id);
    if (txt == null) {
    	//alert ('error element with id='+text_id+' not found');
    	 return;}
    txt.innerHTML = data;
}
//---------------------------------------------------------------------------------------------------------------





//***************************************************************************************************************
// функция заполняет объект SELECT с идентификатором select_id
// данными из массива data
//
// данные передаются в строке вида   value1 #t text1 #n value2 #t text2 #n ... valueN #t textN [#n]
// в кодировке CP1251
function fill_select (select_id,data,clear)
{
    var select = document.getElementById(select_id);     // поле SELECT в переменную в виде объекта

    if ((select.length > 0)&&(clear !=0)){selected_text = select[0].text;}
    else {selected_text ="";}

    select.length = clear;              // очищаем SELECT
    select.length = 0;              // очищаем SELECT

    if(data.length == 0) return 1;    // если данных нет - не делаем больше ничего
    var arr = data.split('#n');     // в массиве arr - строки полученной таблицы

    if (arr.length == 0) return 1;

    for(var i in arr)     // для каждой строки
    {
    arr[i] = TrimStr(arr[i]);
        if (arr[i] != "")
         {
          var val = arr[i].split('#t');                   // в массиве val - поля полученной таблицы

            if ( (val[1] != "")&&(val[0] != "") )
            {
             select.options[select.options.length]=
             new Option(val[1], val[0], false, false);   // добавляем новый объект OPTION к нашему SELECT
            }
       }
    }
    select.selectedIndex = 0;
 return 0;
}
//---------------------------------------------------------------------------------------------------------------


//***************************************************************************************************************
function AJAX(url, callback) {
	var request = init();
	request.onreadystatechange = processrequestuest;

	function init(){
		if(navigator.appName == "Microsoft Internet Explorer") return new ActiveXObject("Microsoft.XMLHTTP");
    	else return new XMLHttpRequest();
	}

	function processrequestuest(){
	  if (request.readyState == 4 && request.status == 200) callback(request.responseText);
	}

	this.doGet = function(){
		request.open("get", url, true);
		request.send(null);
	}

	this.doPost = function(body){
		request.open("post", url, true);
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
		request.setRequestHeader("Content-length", body.length);
    	request.setRequestHeader("Connection", "close");
		request.send(body);
	}
}

function TrimStr(s) {
  s = s.replace( /^\s+/g, '');
  return s.replace( /\s+$/g, '');
}