function station() {}

station.route = function() {};

//При выборе из списка полпулярных городов отправления
station.route.selectPopularArrival = function(obj) {
  var idStation = $(obj).val();
  var stationText = $(obj).find('option[value=' + idStation + ']').text();
  if (!parseInt(idStation)) { //не выбрано
    $("#stationTo").val("");
    $("#Train_arrive_station").val("");
    return;
  }
  $("#stationTo").val(idStation);
  $("#Train_arrive_station").val(stationText);
};

//При выборе из списка полпулярных городов прибытия
station.route.selectPopularDeparture = function(obj) {
  var idStation = $(obj).val();
  var stationText = $(obj).find('option[value=' + idStation + ']').text();
  if (!parseInt(idStation)) { //не выбрано
    $("#stationFrom").val("");
    $("#Train_depart_station").val("");
    return;
  }
  $("#stationFrom").val(idStation);
  $("#Train_depart_station").val(stationText);
  //$("#as-selections-Train_depart_station").unbind().parent().html(htmlInput);
//  activateSuggestDepart([objSelected]);
};

//Показать-спрятать дату возвращения
station.route.toggleReturnDate = function() {
  $(".returnDateBlock").each(function() {
    if ($(this).css("visibility") == "hidden") {
      $(this).css("visibility", "visible");
    } else {
      $(this).css("visibility", "hidden");
    }
  });
}

//Перед сабмтом убираем все лишние поля
station.route.onFormSubmit = function(objForm) {
  var emExceptions = new Exception_Multiline(objForm);
  if (!$("#stationFrom").val().length) emExceptions.add("You haven't chosen the station of departure");
  if (!$("#stationTo").val().length) emExceptions.add("You haven't chosen the station of arrival");
  if ($("#dateDepart").val().length < 10) emExceptions.add("You haven't chosen the date of the trip");
  if ($("#roundtrip").attr("checked")) {
    if ($("#dateReturn").val().length < 10) emExceptions.add("You haven't chosen the date of the return trip");
    if ($("#dateReturn").val().length == 10 && $("#dateDepart").val().length == 10) {
      var dateD = $("#dateDepart").val();
      var dateR = $("#dateReturn").val();
      var dateDnew = dateD.substr(6, 4) + dateD.substr(3, 2) + dateD.substr(0, 2);
      var dateRnew = dateR.substr(6, 4) + dateR.substr(3, 2) + dateR.substr(0, 2);
      if(dateRnew < dateDnew) emExceptions.add("Return date can't be earlier than departure date.");//Please check the date.
    }
  }
  if (emExceptions.exist()) {
    var html = emExceptions.getPlain({bullet: "-&nbsp;", separator: "<br />"});
    $("#bg_searchTicketsSubmit").popUpBox({
     'width': 347,
     'html': html
    });
    return false;
  }
  $('#as-values-Train_depart_station').removeAttr('name');
  $('#as-values-Train_arrive_station').removeAttr('name');
}


//Плагин, формирующий красивый селект из тега <select></select>
jQuery.fn.customSelect = function(options) {
  var that = this;
  
  var jqEl = $(this);
  // настройки по умолчанию
  var settings = jQuery.extend({
	    onChange: function () {}
  }, options);
  
  var jqSelect = $("<div id='" + jqEl.attr("id") + "' class='customSelect " + jqEl.attr("class") + "'></div>");
  //jqSelect.insertAfter(jqEl);
  var jqSelectValue = jqEl.attr("name") ? $("<input type='hidden' value='' name='" + jqEl.attr("name") + "'>").appendTo(jqSelect) : null;

  var jqClickOff = $("<div class='clickOff'></div>").width("100%").height("100%");
  var jqBtn = $("<img height='24' width='24' src='" + W_IMAGES + "background/bg_select_ui.gif' class='btnToggle'>").appendTo(jqSelect);
  
  var jqSelected;
  //Создаём ананалогичные элементы в новом списке
  jqEl.find("option").each(function () {
    var jqElOption = $(this);
    var jqOption = $("<div value='" + jqElOption.val() + "' class='listItem'><div>" + jqElOption.html() + "</div></div>").appendTo(jqSelect);
    if (jqElOption.attr("id").length) jqOption.attr("id", jqElOption.attr("id"));
    if (jqElOption.attr("class").length) jqOption.addClass(jqElOption.attr("class"));
    if (jqElOption.attr("selected")) jqSelected = jqOption;
  });
  
  if (jqSelectValue) jqSelectValue.val(jqSelected.attr("value"));
  jqEl = jqEl.replaceWith(jqSelect); //убираем из DOM старый элемент, заменив его новым
    
  //раскрываем-скрываем список выбора валюты
  function toggleSelect () {
    var jqBtn = jqSelect.find("input.btnToggle");
    if (jqSelect.hasClass("open")) { //раскрыто
      jqSelect.removeClass("open");
      jqSelect.css("z-index", 10);
      jqClickOff.unbind("click").remove();
    } else { //закрыто
      jqSelect.addClass("open");
      jqClickOff.prependTo("body").click(toggleSelect); //клик вне списка;      
      jqSelect.css("z-index", parseInt(jqClickOff.css("z-index")) + 1);
    }
  }
  jqBtn.click(function () { //кнопка раскрывания списка
    toggleSelect();
  });
  //выбираем элемент из списка валют
  function activateOption (objOption) {
    var jqOption = $(objOption);
    jqSelect.find(".selected").removeClass("selected");
    jqOption.addClass("selected");
    if (jqSelectValue) jqSelectValue.val(jqOption.attr("value"));
 }
  activateOption(jqSelected ? jqSelected : jqSelect.find(".listItem:first"));
  jqSelect.find(".listItem").each(function () {
    var jqItem = $(this);
    jqItem.hover( //наведение на элементы списка
      function () {
        jqItem.addClass("hover");
      }, 
      function () {
        jqItem.removeClass("hover");
      }
    );
    jqItem.click( //наведение на элементы списка
      function () {
        if (jqItem.hasClass("selected")) {
          toggleSelect();
        } 
        else {
          activateOption(jqItem);
          toggleSelect();
          settings.onChange.call(that);
        }
      }
    );
  });
}

/**
* html-Код, добавляющий алиас станции
*/
station.addStationAlias = function(nameStart) {
	var retStr = '<div class="collectionRow" elementNumber="str_replace">' +
	  '<p>Alias name str_replace: <input type="text" maxlength="32" class="standardText" style="width:200px;" value="" name="' + nameStart + '[str_replace][alias_name]" />' +
	    '<a href="#" style="margin-left:15px;" onclick="addDelete.deleteRowElement(\'aliasNames\', str_replace);return false;">Delete</a>' +
	  '</p>' +
  '</div>';
	return retStr;
};

/*
Прмиеняет фильтра для списка городов (админ) - по стране
*/
station.applyFilter = function() {
  var stationNameStart = $("#Station_station_name_start").val();
  window.location.href = W_ABSPATH + "administration/stations/?stationNameStart=" + stationNameStart;
};

// Удаляем станцию
station.deleteStation = function(id){
	if (confirm("Are you sure?")){
	  $.post(W_AJAX + 'train/delete_station/',
	    {
	      ID_station: id
	    },
	    function(responseText) {
	   	  if (navigator.userAgent.indexOf ("Opera") != -1) var arrInfo = eval('(' + responseText + ')');
	    	else var arrInfo = JSON.parse(responseText);
	      if (arrInfo['result'] == 'OK') {
					$('#editStation' + id).remove();
	      }
	      else alert(arrInfo['err_text']);
			}
		);
	}
};
