var region_arr = new Object;
var is_mini_window = 0;
var temp; //
var date2price;
var is_metrika = 0;
//---------
$(function() {
  var body_act = $('body').attr('id');
  TabsPrepare(body_act);
  HSPrepare();
  _dateCreate();
  if (body_act == 'act_main') {ActMain();}
  else if (body_act == 'act_hotels') {ActHotel();}
  else if (body_act == 'act_tours') {ActTour();}
  else if (body_act == 'act_tour_zakaz') {ActZakazTour();}
  else if (body_act == 'act_my_hotels' || body_act == 'act_my_tours' || body_act == 'act_my_transport') {ActEditHotel();}
//  else if (body_act == 'act_my_transport') {ActEditTransport();}
  else if (body_act == 'act_hotel_zakaz') {ActZakazHotel();}
  else if (body_act == 'act_transport') {ActTransport();}
  else if (body_act == 'act_transport_coupon' || body_act == 'act_transport_account' || body_act == 'act_hotel_doc_call' || body_act == 'act_hotel_doc_cheque' || body_act == 'act_hotel_doc_contract') {
    window.print();
  }
  $('#content_in > H1:first').css('margin-top','5px');

  $('[ps_title]').mouseover(
  	function(event) {
			$('#our_title').empty().append($(this).attr('ps_title')).show();

			$(this).mousemove(
		  	function(event) {
		  	  l = (is_mini_window) ? -17 : -17;
		  	  t = (is_mini_window) ? -17 : -17;
		  		$('#our_title')
		  		  .css('left', event.pageX - l + 'px')
		  		  .css('top', event.pageY - t + 'px');
		  	}
		  );

			$(this).mouseout(
		  	function(event) {$('#our_title').hide();}
		  );
  	}
  );

	if ($.browser.msie && $.browser.version <= 6) {
	  $('#tr_first_str .for_help').hover(
	  	function(event) {$('#tr_st1 SELECT').add($('#tr_o1 SELECT')).css('visibility','hidden');},
	  	function(event) {$('#tr_st1 SELECT').add($('#tr_o1 SELECT')).css('visibility','visible');}
	  );
  }

  $('.foto_hotel').add('.foto_tour').find('IMG').attr('width','134');
  // чтобы ссылки на фоты в описании работали как в ленте фот
  $('.descr_card').find('A[href*=jpg]').addClass('highslide').click(function() {return hs.expand(this);});

  $('#ps4prompt').hide();
  $('*').click(function(event) {
  	$('#ps4prompt').hide();
  });
	$('#ps4prompt').insertAfter('#search_input');
	$('#search_input').keydown(function(event) {
		if (event.which == 40) {
			if ($('#ps4prompt LI').hasClass('sel')) {
				$('#ps4prompt LI.sel').removeClass('sel').next().addClass('sel');
				$('#search_input').attr('value',$('#ps4prompt LI.sel').html() ? $('#ps4prompt LI.sel').html() : '');
			} else {
				$('#ps4prompt LI:first').addClass('sel');
				$('#search_input').attr('value',$('#ps4prompt LI:first').html());
			}
		}
		else if (event.which == 38) {
			if ($('#ps4prompt LI.sel').hasClass('sel')) {
				$('#ps4prompt LI.sel').removeClass('sel').prev().addClass('sel');
				$('#search_input').attr('value',$('#ps4prompt LI.sel').html() ? $('#ps4prompt LI.sel').html() : '');
			} else {
				$('#ps4prompt LI:last').addClass('sel');
				$('#search_input').attr('value',$('#ps4prompt LI:last').html());
			}
			event.preventDefault();
		}
		else if (event.which == 13) {
  		$('INPUT[name=title]').attr('value',$('#ps4prompt LI.sel').attr('id'));
		}
		else {$('#ps4prompt LI').removeClass('over').removeClass('sel');};
	});

});
//--------------------------
function ActMain() {
  ActHotel();
  ActTour();
  ActTransport();
}
//--------------------------
function ActHotel() {
  // верстка формы поиска отелей
  $('FORM[name=hotel_search] .form_main > tbody > tr:lt(2)').wrapAll('<td id="pp1"><table></table></td>');
  $('FORM[name=hotel_search] .form_main > tbody > tr').wrapAll('<td id="pp2"><table></table></td>');
  $('FORM[name=hotel_search] TD[id^=pp]').wrapAll('<tr></tr>');
  // районы
  $('FORM[name=hotel_search] SELECT[name=region]').children('OPTGROUP:has(OPTION)').each(function(n) {
    temp = '<option value="0">-- неважно --</option>';
    $(this).children().each(function(nn) {temp += '<option value="' + this.value + '"' + ((this.selected) ? ' selected' : '') + '>' + this.innerHTML + '</option>';})
    region_arr[this.label] = temp;     // запоминаем в массив
  }).end().html('');                   // очищаем
  $('FORM[name=hotel_search] SELECT[name=areal]').change(RegionChange).trigger('change'); // событие на верхний селектор ставим и запускаем
}
//--------------------------
function ActTour() {
  $('FORM[name=tour_search] .form_main > tbody > tr:lt(2)').wrapAll('<td id="pp1"><table></table></td>');
  $('FORM[name=tour_search] .form_main > tbody > tr').wrapAll('<td id="pp2"><table></table></td>');
  $('FORM[name=tour_search] TD[id^=pp]').wrapAll('<tr></tr>');
}
//--------------------------
function ActZakazTour() {
  $('INPUT[name=how_many]').keyup(function(event) {
    var price = $('[name=price]').val() * this.value;
    $('.price_zakaz').html(price);
    $('INPUT[name=price_view]').val(price);
  }).trigger('keyup');
}
//--------------------------
function ActTransport() {
  $('#tr_before_fio').add('#tr_before_email').hide();
//  $('#before_email').click(BtnSubmitDisable);
  $('FORM[name=transport_search] SELECT[name^=st]').change(TchangeFromTo).slice(0,1).trigger('change');   // запускаем change только на первый элемент чтобы показать станции и даты
  $('FORM[name=transport_search] [name=how_many]').keyup(TchangeHowMany);
  $('FORM[name=transport_search] [id^=date]').keyup(TchangeTime);
  $('FORM[name=transport_search] SELECT[name^=o]').change(TchangeTimeFromOst);
  $('#boarding_pass').click(function() {    // посадочный талон для админа
    getItems({'frm_name': 'transport_search', 'act': 'transport_admin_one_day', 'div': 'boarding_pass_mess','func_after': 'BoardingPass'});
    return false;
  });
}
//--------------------------
function BoardingPass() {
  if ($('#boarding_pass_mess').html()) {return;}
  var vars = {};
  analis_form($('#transport_search')[0],vars);
  var str = '___st1-' + vars['st1'] + '__st2-' + vars['st2'] + '__date1-' + vars['date1'] + '__date2-' + vars['date2'] + '___';
  //alert ("/transport_admin_xls/" + str);
  location.href = '/transport_admin_xls/' + str;
}
//--------------------------
function BtnSubmitDisable(event) {
  if (!event || !event.target || !event.target.name) {return;}
  $(event.target).parents('FORM').find('INPUT[name=submit]')[0].disabled = !(event.target.checked);
}
//--------------------------
function TabsPrepare(body_act) {
  $("#tabs A:last").css('background-image','none').children('img').css('display','none');
  $("#tabs A").click(
  	function(event) {
  	  var id_tab = $(event.target).attr('id');
      $('DIV[id^=block4tab]').hide();
  	  $('#block4' + id_tab).show();
  		$("#tabs A").attr('class','');
  		$(this).attr('class','sel').prev().attr('class','pred_sel');
  	}
  );
  var h = location.hash;
  if (h) {$('#slot_main').hide();}
  else {
    h = '#tab3';
    if (body_act == 'act_hotels') {h = '#tab1';}
    else if (body_act == 'act_tours') {h = '#tab2';}
  }
  $("#tabs " + h).trigger('click');
}
//--------------------------
function TchangeTimeFromOst(event) {
  TchangeTime(event);
  setTimeout("TchangePrice()",50);
}
//--------------------------
function TchangeTime(event) {
  if (!event || !event.target || !event.target.name) {return;}
  // чтобы если меняем локальные настройки одной даты, второе время не менялось
 	var cond1 = (event.target.name.indexOf('1') != -1);
 	var cond2 = (event.target.name.indexOf('2') != -1);
 	var cond = (!cond1 && !cond2);

  if (cond1 || cond) {getItems({'frm_name': 'transport_search', 'act': 'transport_time', 'div': 'time1', 'no_wait': 1});}
  if (cond2 || cond) {getItems({'frm_name': 'transport_search', 'act': 'transport_time', 'div': 'time2', 'no_wait': 1, 'vars': {'back': 1}});}
  TchangePrice();
}
//--------------------------
function TchangeHowMany(event) {
  TchangePrice();
  $('#tr_before_fio').add('#tr_before_email').show();
  $('#tr_fio4arr TD').html('');
  var num = $('#how_many').val() * 1;
  if (!num) {return;}

  var cloned = $('#grr0').html();

  str = '<table class="cloned"><th>№ п/п</th><th>Фамилия имя отчество</th><th>Детский</th><th>Телефон</th>';
  re = /00/gi;
//  for (var i = 1; i <= num; i++) {str += '<table class="cloned">' + cloned.replace(re,i) + '</table>';}
  for (var i = 1; i <= num; i++) {str += cloned.replace(re,i);}
  str  += '</table>';
  $('#tr_fio4arr TD').html(str);
  $('FORM[name=transport_search] [name^=is_child]').click(TchangePrice);                                  // сколько детских билетов
}
//--------------------------
function TchangePrice() {
  var num = $('FORM[name=transport_search] [name^=is_child]:checked').size();        // детские билеты
  $('FORM[name=transport_search] [name=num_child]').val(num);
  getItems({'frm_name': 'transport_search', 'act': 'transport_price', 'div': 't_price', 'no_wait': 1});
}
//--------------------------
function TchangeFrom(event) {
}
//--------------------------
function TchangeFromTo(event) {
  var sto = 1
  if ($(event.target).attr('name') == 'st1') {    // нужно менять станцию назначения
    getItems({'frm_name': 'transport_search', 'act': 'transport_direct', 'div': 'st2', 'no_wait': 1});
    sto = 100;
  }
  setTimeout(function() {
    var st1 = $('FORM[name=transport_search] SELECT[name=st1] OPTION:selected').html();
    var st2 = $('FORM[name=transport_search] SELECT[name=st2] OPTION:selected').html();
    var from_to = $('FORM[name=transport_search] SELECT[name=st_order]').attr('value') * 1;
    switch (from_to) {
      case 1: txt = st1 + ' - ' + st2; break;
      case 2: txt = st2 + ' - ' + st1; break;
      case 3: txt = st1 + ' - ' + st2 + ' - ' + st1; break;
      case 4: txt = st2 + ' - ' + st1 + ' - ' + st2;
    }
    if (!txt) {return;}
    $('INPUT[name=from_to_capt]').prev().html(txt);
    TchangePrice();
    TchangeOst(from_to);
    setTimeout('TchangeDates(' + from_to + ')',900);
  },sto)
}
//--------------------------
function TchangeDates(from_to) {
  // очищаем дату
  $('#date1').val('');
  // даты в календарь для направления "туда"
  getItems({'frm_name': 'transport_search', 'act': 'transport_dates', 'div': 'date1_hidden','no_wait': 1,'to_val': 1, 'div2': 'date1','to_val2': 1});

  if (from_to < 3) {    // в одну сторону
    $('#date2').val('').add('#time2').css('visibility','hidden');   // очищаем и скрываем второй календарь, скрываем время
  } else {
    $('#date2').val('').add('#time2').css('visibility','visible');
    // даты в календарь для направления "обратно"
    getItems({'frm_name': 'transport_search', 'act': 'transport_dates', 'div': 'date2_hidden','no_wait': 1,'to_val': 1, 'vars': {'back': 1}, 'div2': 'date2','to_val2': 1});
  }
  setTimeout("TchangeTimeSimple()",500);
}
//--------------------------
function TchangeTimeSimple() {
  getItems({'frm_name': 'transport_search', 'act': 'transport_time', 'div': 'time1', 'no_wait': 1});
  getItems({'frm_name': 'transport_search', 'act': 'transport_time', 'div': 'time2', 'no_wait': 1, 'vars': {'back': 1}});
}
//--------------------------
function TchangeOst(from_to) {
  getItems({'frm_name': 'transport_search', 'act': 'transport_ost', 'div': 'o1', 'no_wait': 1});
  getItems({'frm_name': 'transport_search', 'act': 'transport_ost', 'div': 'o2', 'no_wait': 1, 'vars': {'back': 1}});
}
//--------------------------
function ActZakazHotel() {
  $('INPUT[name=date_from]').keyup(function(event) {
    var val = new Date(DateReplace4JQ(event.target.value));
    var sec = val.getTime();
    var price = '';

    if (!date2price) {return;}
    for (var k in date2price) {
      var dates = k.split(/\.\./g);
      if (dates.length != 2) {continue;}

      var d_from = new Date(DateReplace4JQ(dates[0]));
      if (d_from.getTime() > sec) {continue;}

      var d_to = new Date(DateReplace4JQ(dates[1]));
      if (d_to.getTime() < sec) {continue;}
      price = date2price[k];
      break;
    }
    $('.price_zakaz').html(price);
    $('INPUT[name=price]').attr('value',price);
  });
}
////--------------------------
//function ActEditTransport() {
//  $('.tbl_list :input').each(function(n) {this.alt = this.value;});
//  $('.tbl_list .icons IMG').add('.tbl_list .add').bind('click',_tblIconClick);
//  $('.tbl_list').bind('click',_tblFrmClick).bind('keyup',_tblFrmClick).bind('change',_tblFrmClick);
//  $('.tbl_list TR[id^=tr_add]').hide();   // не показывать шаблоны пустых строк
//}
//--------------------------
function ActEditHotel() {  // события на кнопки в таблице
  _tblOldValCreate();
  $('.tbl_list .icons IMG').add('.tbl_list .add').bind('click',_tblIconClick);
  $('.tbl_list').bind('click',_tblFrmClick).bind('keyup',_tblFrmClick).bind('change',_tblFrmClick);
  $('.tbl_list TR[id^=tr_add]').hide();   // не показывать шаблоны пустых строк
  $('.user_right').bind('click',HSopen);
  $('.tbl_list INPUT[name^=the_time]').mask("99:99");
}
//--------------------------
function HSPrepare() {
  $('.zakaz_link').bind('click',HSopen);
//  $('A[href*=jpg]:has(img)').add('A[href*=gif]:has(img)').addClass('highslide').click(function() {return hs.expand(this);});
//  $(window).trigger('load');
//  $(document).trigger('ready');
}
//--------------------------
function HSopen(event) {
  $(event.target).addClass('content_sel');
  return hs.htmlExpand(event.target,{ objectType: 'iframe', preserveContent: false });
}
//--------------------------
function RegionChange(event) {
  if (!region_arr[event.target.value]) {$('FORM[name=hotel_search] SELECT[name=region]').html('<option value="0">-- неважно --</option>'); return;}
  $('FORM[name=hotel_search] SELECT[name=region]').html(region_arr[event.target.value]).show();
}
//--------------------------
function _dateToPlus(event) {
  if (!event.target.value) {return;}    // пустая дата
  if ($('INPUT[name=date_to]').attr('value')) {return;} // там уже стоит дата
  var now = new Date(DateReplace4JQ(event.target.value));
  var d_plus = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
  $('INPUT[name=date_to]').attr('value',Date2ddmmyyyy(d_plus));
}
//--------------------------
function _dateCreate() {
  var date_param = {};
  if (ie6 && !is_mini_window) {date_param['x'] = - 220;}
  date_param['count_cals'] = 2;
  $('INPUT[name^=date]').simpleDatepicker(date_param);  //simpleDatepicker({ startdate: 2008, enddate: 2012, chosendate: '09.09.2010',enddate: '12.03.2010', x: 45, y: 3 });
}
//--------------------------
function _tblOldValCreate() {
  $('.tbl_list :input').each(function(n) {this.alt = this.value;});
}
//--------------------------
function _tblIconClick(event) {
  _tblAddTr(event);
  $('.tbl_list INPUT[name^=the_time]').mask("99:99");
}
//--------------------------
function _tblAddTr(event) {
  var JQtbl = $(event.target).parents('.tbl_list');
  var o_date = new Date();
  var num_row = o_date.getTime();     // случайное число для ID новой строки

  var tr_sel = 'TR[id^=tr_add]';                  // клонировать пустую строку
  if ($(event.target).attr('id')) {tr_sel = 'TR[id=tr_' + $(event.target).attr('id') + ']';}   // клонировать существующую строку
  var JQtr = JQtbl.children().children(tr_sel);   // клонируемая строка
  JQtr.clone().appendTo(JQtbl).show().attr('id','tr_' + num_row).attr('class','tr_new').find('INPUT[name^=date]').simpleDatepicker((ie6) ? { x: - 220 } : '');     // для новых input-дат порождаем календарик
  $('#tr_' + num_row + ' :input').each(function(n) {this.name += num_row;});    // меняем имя у элементов формы
  $('#tr_' + num_row + ' .icons').html('&nbsp;'); // не показывать иконки для новых строк
}
//--------------------------
function _tblFrmClick(event) {
  var type_input = event.target.type;
  if (!type_input) {return;}

  if (event.type == 'click' && type_input != 'select-one' && type_input != 'checkbox') {return;}  // надо еще оно событие для выбора без клика: просто тащим мышкой
  if (event.type == 'keyup' && type_input != 'text' && type_input != 'textarea') {return;}
  $(event.target).parents('TR').find('[name^=changed]').val(1);

  var val = (type_input == 'checkbox') ?  ((event.target.checked) ? 1 : 0) : event.target.value;
  if (val == event.target.alt) {$(event.target).removeClass('updated'); return;}
  $(event.target).addClass('updated');
  $(event.target).parents('FORM').children('.btn_update_table').css('display','inline').attr('disabled',false);  //  показываем кнопку

}
//----------------------------------------------------------------------------
function StylePrint(o_link) {
  if (o_link.className == 'for_print') {
    $('link[media=print]').removeAttr('media');
    o_link.className = 'for_screen';
  } else {
    $('link[href$=print.css]').attr('media','print');
    o_link.className = 'for_print';
  }
  var a = o_link.getAttribute('alt');
  o_link.setAttribute('alt',o_link.innerHTML);
  o_link.innerText = a;
}
//----------------------------------------------------------------------------
function FrmCheck(o_frm,req) {
  var is_submit = true;
  for (k in req){
    if (!$('[name=' + k + ']').val()) {
      alert('Вы забыли указать ' + req[k]);
      YandexTarget('form_error');
      is_submit = false;
      break;
    }
    if ($('[name=' + k + ']').attr('type') == 'checkbox' &&  !$('[name=' + k + ']')[0].checked) {
      alert(req[k]);
      YandexTarget('form_error');
      is_submit = false;
      break;
    }
  }
  return is_submit;
}
//----------------------------------------------------------------------------
function Date2ddmmyyyy(o_date) {
  var m = (o_date.getMonth() + 1) + '';
  if (m.length == 1) {m = '0' + m;}
  var d = (o_date.getDate() + 1) + '';
  if (d.length == 1) {d = '0' + d;}
  return d + '.' + m + '.' + o_date.getFullYear();
}
//===============
function SubmitTransprot(o_frm,req) {
  YandexTarget('zakazbileta');
  return FrmCheck(o_frm,req);
}
//===============
function YandexTarget(t) {
  if (!is_metrika) {return;}
  yaCounter2105464.reachGoal(t);
}
//--------------------------
function psPromptView () {
  $('INPUT#title').val(0);    // перед новым поиском обнуляем
  $('#ps4prompt LI').removeClass('over').removeClass('sel');
	$('#ps4prompt LI:last').css('border-bottom-color', '#ccc');
  $('#ps4prompt').show();

  $('#ps4prompt LI').hover(
  	function(event) {$(this).toggleClass('over');},
  	function(event) {$(this).toggleClass('over');}
  );

  $('#ps4prompt LI').click(function(event) {
  	$(this).parents('#ps4prompt').hide().prev().attr('value',$(this).html());
  	$('INPUT#title').val($(this).attr('id'));
  });
}

