Created
December 26, 2014 12:31
-
-
Save sa2kasov/8026e911a6e22007d478 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Получение класса [night | morning | afternoon | evening] в зав-сти от часа | |
function getDayClass(hour){ | |
if(hour >= 0 && hour <= 4) | |
return '.night'; | |
else if(hour >= 5 && hour <= 11) | |
return '.morning'; | |
else if(hour >= 12 && hour <= 16) | |
return '.afternoon'; | |
else if(hour >= 17 && hour <= 23) | |
return '.evening'; | |
else | |
return false; | |
} | |
/* | |
* Фильтр для выбора рейсов | |
* !!!Вызывать только в момент полной загрузки страницы!!! | |
*/ | |
function initFilter(){ | |
var flightItems = $('.flightItem'); | |
//Изначально отключаю все лейблы фильтра | |
$('#wagonType label').addClass('disabled'); | |
$('#departure label').addClass('disabled'); | |
$('#arrival label').addClass('disabled'); | |
//Отключение пунктов фильтра | |
$('.flightItem').each(function(i, e){ | |
//Тип вагона | |
//Места: Общий | |
if($(e).find('.commonplaces strong').length != 0) | |
$('#wagonType').find('.commonplaces').removeClass('disabled'); | |
//Места: Сидячий | |
if($(e).find('.seating strong').length != 0) | |
$('#wagonType').find('.seating').removeClass('disabled'); | |
//Места: Плацкартный | |
if($(e).find('.second-class strong').length != 0) | |
$('#wagonType').find('.second-class').removeClass('disabled'); | |
//Места: Купе | |
if($(e).find('.coupe strong').length != 0) | |
$('#wagonType').find('.coupe').removeClass('disabled'); | |
//Места: Мягкий | |
if($(e).find('.soft strong').length != 0) | |
$('#wagonType').find('.soft').removeClass('disabled'); | |
//Места: Люкс | |
if($(e).find('.lux strong').length != 0) | |
$('#wagonType').find('.lux').removeClass('disabled'); | |
//Отправление | |
var departure = new Date(); | |
departure.setTime(Date.parse($(e).find('.DepartureDateTime').text())); | |
var departureClass = getDayClass(departure.getHours()); | |
console.log(departureClass); | |
if(departureClass !== false) | |
$('#departure').find(departureClass).removeClass('disabled'); | |
//Прибытие | |
var arrival = new Date(); | |
arrival.setTime(Date.parse($(e).find('.ArrivalDateTime').text())); | |
var arrivalClass = getDayClass(arrival.getHours()); | |
if(arrivalClass !== false) | |
$('#arrival').find(arrivalClass).removeClass('disabled'); | |
}); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Обновление списка «Количества мест» при выборе мест в вагоне | |
function update_place_quantity($this){ | |
var count_of_places = $($this).parent().children('.is_usel').length; | |
var select = $($this).parents('#scheme_block').find('#count_places_selector'); | |
$(select).children('option').removeAttr('selected'); | |
$(select).children('option[value="' + count_of_places + '"]').attr('selected', 'selected'); | |
} | |
//Обработчик изменения списка «Количество мест» | |
var $update_places = function(){ | |
var select = $(this); | |
//Значение выбранного option'a в списке «Количество мест» | |
var selected_places = select.find('option:selected').val(); | |
//Объект с элементами мест | |
var places = select.parents('#scheme_block').children('.places_block'); | |
//Выбранные места | |
var is_usel = $(places).children('div'); | |
if(places.children('.is_usel').length > 0) | |
is_usel = $(places).children('.is_usel'); | |
//Кол-во выбранных мест | |
var is_usel_count = 0; | |
if($(is_usel).length > 0) | |
is_usel_count = $(places).children('.is_usel').length; | |
//Если кол-во выбранных мест в select'e > кол-ва мест | |
if(is_usel_count > selected_places){ | |
is_usel.each(function(i, e){ | |
if(i + 1 > selected_places) | |
$(e).toggleClass('is_usel place_empty'); | |
}); | |
} | |
else if(is_usel_count < selected_places){ | |
var difference = selected_places - is_usel_count; | |
var last_element = 0; | |
if($(is_usel).first().html() != 1) | |
last_element = $(is_usel).first().html(); | |
var el = 0, reverse = false; | |
while(selected_places > is_usel_count){ | |
el = $(places).children('div').eq(last_element); | |
if(el.hasClass('place_empty')){ | |
el.toggleClass('place_empty is_usel'); | |
is_usel_count++; | |
} | |
//Выбор мест в вагоне от посл. выбранного и до конца | |
if(last_element < 50 && !reverse) | |
last_element++; | |
//Если места закончились, до занятие места от посл. выбранного и до начала | |
else{ | |
reverse = true; | |
last_element--; | |
} | |
} | |
} | |
}; | |
$('#count_places_selector').live('change', $update_places); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment