$(document).ready(function() {

	$('.nav .nav__item--superuser').first().addClass('top-bordered');

	$('.js-filter-switcher').click(function(){
		$(this).closest('.filter').toggleClass('displayed');
	});

//--- OLD------------------

	handleHidingMenu();
	handleUserPopUp();
	handleCountryPopUp();

	handleConfirmationPopUp();

	handleTableFilterDisplaying();
	handleFormFilterDisplaying();

	handleCheckboxesInTable();

	handleTree();

	handleEars();
	handleVerticalEars();

	handleHideRoletkaOnFocusLost();

	handleRemoveRemoveableFormItem();

	handleDateTimePickers();
	handleDatePickers();

	handleSliders();

	handleNewsCheckboxes();
	if($('.nav ul').height() > $(window).height()){
		$('.page__container').css('min-height',$('.nav ul').height() + 65); // bulharska konstanta
	}

}); 

function handleSliders() {
	$('.form__item__slider').each(function() {
		var myrange = 'min';
		var mystep = 25;
		var myvalue = 0;
		var mymax = 100;
		var mymin = 42;

		var input = $(this).parent().find('input');

		if(Number(input.attr('value')) != myvalue) myvalue = Number(input.attr('value'));
		if(Number(input.attr('step')) != mystep) mystep = Number(input.attr('step'));
		if(Number(input.attr('min')) != mymin) mymin = Number(input.attr('min'));
		if(Number(input.attr('max')) != mymax) mymax = Number(input.attr('max'));

		console.log(input.attr('value'));

		$(this).slider({
			range	: myrange,
			step 	: mystep,
			value	: myvalue,
			max		: mymax,
			min 	: mymin,
			slide	: function(e, ui) {
				$(this).parent().find('input').val(ui.value);
			}
		});

		input.change(function() {
			$(this).parent().parent().find('.form__item__slider').slider('value', $(this).val());
		});
	});
}

function handleHidingMenu(){ 
	$('.header__hamburger').on('click', function() {
		$('body').toggleClass('menu--show');
	});
}

function handleUserPopUp(){
	$('.header__userbox').on('click', function() {
		if($('.header__userbox__popup').hasClass('active')) { $('.header__userbox__popup').fadeOut().removeClass('active'); }
		else { $('.header__userbox__popup').toggleClass('active').fadeIn(100); }
	});
	$(document).click(function(e) {
		if($(e.target).closest('.header__userbox').length < 1) {
			$('.header__userbox__popup').removeClass('active').fadeOut(100);
		}
	});
}

function handleCountryPopUp(){
	$('.header__countries').on('click', function() {
		if($('.header__countries__popup').hasClass('active')) { $('.header__countries__popup').fadeOut().removeClass('active'); }
		else { $('.header__countries__popup').toggleClass('active').fadeIn(100); }
	});
	$(document).click(function(e) {
		if($(e.target).closest('.header__countries').length < 1) {
			$('.header__countries__popup').removeClass('active').fadeOut(100);
		}
	});
}

// Obsluha potvrzovacího popup okna před úplným vymazáním
function handleConfirmationPopUp(){
	$('.fce--delete, table .btn--delete').on('click', function(e) {
		e.preventDefault();
		var link = $(this).attr('href');
		var zaznam = $(this).attr('rel');
		$('.popup #do').attr('href',link);

		$('.popup').fadeIn();
		$('.popup .zaznam').text(zaznam);
	});
	$('.popup .popup__message .close, .popup--form .popup__content .close').on('click', function(e) {
		e.preventDefault();
		$('.popup').fadeOut();
		$('body').removeClass('overlayered');
	});
	$('.popup .popup__message #back, .popup--form .popup__content #back').on('click', function(e) {
		e.preventDefault();
		$('.popup').fadeOut();
		$('body').removeClass('overlayered');
	});
}

function handleTableFilterDisplaying() {
	$('.table--filtered .filterable .filterable__btn').on('click', function() {
		$(this).parent().toggleClass('filtering');
	});
}

function handleFormFilterDisplaying() {
	$('.header__filter-button').on('click', function() {
		$(this).toggleClass('active');
		$('form.form--filter').toggleClass('active');
	});
}

function handleEars() {
	$('.ears a').on('click', function(e){
		console.log($(this).data('link'));
		e.preventDefault();
		if(!$(this).hasClass('active')) {
			$('.ears a.active').removeClass('active');
			$('.ear-content.active').removeClass('active');
			$(this).addClass('active');
			$('.ear-content[data-link='+$(this).data('link')+']').addClass('active');
		}
	});
}

function handleCheckboxesInTable() {
	$('table td.checkbox label[for^=checkbox]').on('click', function() {
		$(this).parent().parent().toggleClass('highlighted');
	});
}

function showPopUp(ident) {
	$('.roletka').hide();
	$('.roletka--tickets').hide();
	$(ident).fadeIn().css('display', 'block');
	$(ident).find('.close').on('click', function() {
		$(ident).hide();
	});
    $('body').addClass('overlayered');
}

function appendFormItem(ident) {
	$(ident).clone().removeAttr('id').removeClass('alone').addClass('removeable').insertAfter($(ident).parent().find('.clone').last());
	$(ident).parent().find('.clone').last().prev().addClass('alone');
	$(ident).parent().find('.clone').last().find('input').val('');
	handleRemoveRemoveableFormItem();
}

function handleRemoveRemoveableFormItem() {
	$('.remove-removeable-form-item').on('click', function() {
		if(!$(this).hasClass('alone')) {
			$(this).parent().parent().find('.clone').last().prev().removeClass('alone');
		}
		$(this).parent().remove();
	});
}

function handleKeyboardOnRoletka(roletka){
  //console.log('keys')
  $(document).off('keydown'); // vypnuti jinych sledovacu klavesnice (jinych roletek)
  roletka = $(roletka);
  $('.roletka, .roletka--tickets').not(roletka).hide();

  roletka.find('.roletka__line').first().addClass('focused').addClass('first');
  roletka.find('.roletka__line').last().addClass('last');



  $(document).keydown(function(e) {
    switch(e.which) {
      case 40: //down
        var focused = roletka.find('.focused');
        if (!focused.hasClass('last')) {
          focused.removeClass('focused').next().addClass('focused');
        }
        break;
      case 38: //up
        var focused = roletka.find('.focused');
        if (!focused.hasClass('first')) {
          focused.removeClass('focused').prev().addClass('focused');
        }
        break;
      case 13: //enter
        roletka.find('.focused').trigger('click');
        $(document).off('keydown');
        break;
      default: 
        roletka.parent().find('input').focus();
        //isAlreadyHandlingKeysOnRoletka = false;
        $(document).off('keydown');
        return;
    }
    e.preventDefault();
  });
}

function handleHideRoletkaOnFocusLost() {
  // schování roletek při ztrátě focusu inputu
	$('input').focusout(function(elem) {
		setTimeout(function() {
			console.log('hide-rol');
			$('.roletka, .roletka--tickets').hide();
  			$(document).off('keydown'); // vypnuti jinych sledovacu klavesnice (jinych roletek)
		}, 200);
	});	
}

function handleDateTimePickers() {
	$('input.datetimepicker').each(function() {
		handleDateTimePicker($(this));
	});
}

function handleDateTimePicker($input) {
var myControl=  
	$input.datetimepicker({
		controlType: 	{
			create: function(tp_inst, obj, unit, val, min, max, step){
				$('<input class="ui-timepicker-input" value="'+val+'">')
					.appendTo(obj)
					.spinner({
						min: min,
						max: max,
						step: step,
						change: function(e,ui){ // key events
								// don't call if api was used and not key press
								if(e.originalEvent !== undefined)
									tp_inst._onTimeChange();
								tp_inst._onSelectHandler();
							},
						spin: function(e,ui){ // spin events
								tp_inst.control.value(tp_inst, obj, unit, ui.value);
								tp_inst._onTimeChange();
								tp_inst._onSelectHandler();
							}
					});
				return obj;
			},
			options: function(tp_inst, obj, unit, opts, val){
				if(typeof(opts) == 'string' && val !== undefined)
					return obj.find('.ui-timepicker-input').spinner(opts, val);
				return obj.find('.ui-timepicker-input').spinner(opts);
			},
			value: function(tp_inst, obj, unit, val){
				if(val !== undefined)
					return obj.find('.ui-timepicker-input').spinner('value', val);
				return obj.find('.ui-timepicker-input').spinner('value');
			}
		},
		timeFormat: 	'HH:mm',
		dateFormat: 	'd.m.yy',
		showTime: 		false,
		hourText: 		'Čas',
		minuteText:		''
	});
}

function handleTree() {
	if($('.tree').length > 0) {
		$('.tree li').each(function() {
			if(!$(this).hasClass('open')) {
				$(this).addClass('close');
			}
		});
		$('.tree__leave').click(function(e) {
			//e.preventDefault();
			$(this).parent().toggleClass('close'); 
		});
		$('.tree__leave').each(function() {
			if(!$(this).parent().find('.tree').length) {
				$(this).parent().removeClass('close').addClass('final');
			}
		});
	}
}

function handleVerticalEars() {
	if( $('.ears-vertical').length > 0 ) {
		$('.ears-vertical input:checked').parent().parent().parent().addClass('active');
		$('.ear-vertical__item[data-link="'+$('.ears-vertical .active').data('link')+'"]').addClass('active');
		$('.ears-vertical__right').css('min-height',$('.ears-vertical__left').height());

		$('.ear-vertical__item').click(function() {
			if(!$(this).hasClass('active')) {
				$('.ears-vertical .active').removeClass('active');
				$('.ears-vertical input').prop('checked', false);
				$('.ear-vertical__item--right[data-link="'+$(this).data('link')+'"').addClass('active');
				$(this).addClass('active');
			}
		});
	}
}

function handleNewsCheckboxes() {
	if($('.news-checkbox__val').length > 0) {
		$('.news-checkbox__val').each(function() {
			$(this).parent().find('.form__item__caption--checkbox').text($(this).text());
		});
	}
}

function handleDatePickers() {
	$('input.datepicker').each(function() {
		handleDatePicker($(this));
	});
}

function handleDatePicker($input){
		$input.datepicker({
			dateFormat: "d.m.yy"
		});
}