/* AJAX ERROR */
$(document).ajaxError(function (request,settings,e,emsg) {
    // alert(emsg);
});
/* URL ROUTER */
var Router = function (route,params) {
    //parametre
    if (typeof(params) == 'object') {
        var p = '';
        $.each(params,function (name,value) {
            if (p != '') {
                p += '&';
            }
            p += escape(name)+'='+escape(value);
        });
        return Router(route)+'?'+p;
    }
    else {
        return '/' + route;
    }
};
Router.route = function (route,params) {
    var url = Router(route,params);
    location.href = url;
}

/* Plugin na input hint */
jQuery.fn.inputHint = function () {
    this.each(function () {
        var self = $(this);
        if (self.is('input[type=text]')) {
            jQuery.inputHintShow(self);
            self.focus(function () {
                jQuery.inputHintHide(this);
            }).blur(function () {
                jQuery.inputHintShow(this);
            }).closest('form').submit(function () {
                jQuery.inputHintHide(self);
                return true;
            });
        }
    });
    return this;
};
jQuery.inputHintShow = function (inpt) {
    inpt = jQuery(inpt);
    if (inpt.val() == inpt.attr('title') || inpt.val() == '') {
        inpt.addClass('hint').val(inpt.attr('title'));
    }
}
jQuery.inputHintHide = function (inpt) {
    inpt = jQuery(inpt);
    inpt.removeClass('hint');
    if (inpt.val() == inpt.attr('title')) {
        inpt.val('');
    }
}

$(function(){
	//hinty vo formularoch
	$('input.hint').inputHint();
	
	//page menu
	$('#page-menu li').hover(function () {
        $(this).addClass('hover');
    }, function () {
        $(this).removeClass('hover');
    });
	
	//CESYS vyhladavanie - lokalita
	$('#cesysLoc').change(function (e, params) {
        var l = this.value;
        if (parseInt(this.value) > 0) {
            var cd = $('#cesysDest');
            cd.find('option').remove();
            // cd[0].add(new Option('...', 0), null); //nefunguje v piciIE
            cd[0].options[0] = new Option('...', 0);
            $.get('/system/cesys/',{
                cesys: '/searchmasks/destination_list/1?q=' + this.value
            }, function (json) {
                eval('var dests = ' + json);
                cd.find('option').remove();
                $.each(dests, function (idx, dest) {
                    cd[0].options[idx] = new Option(dest.oT, dest.oV);
                    // cd[0].add(new Option(dest.oT, dest.oV), null); //nefunguje v piciIE
                });
                if (params) {
                    if (typeof(params.done) == 'function') {
                        params.done.call(cd[0]);
                    }
                }
            });
        }
    });
    //zobrazenie destinacie
    var cesysDestSelected = $('#cesysDestSelected').val();
    if ($('#cesysLoc').val() > 0 && cesysDestSelected) {
        $('#cesysLoc').trigger('change', {
            done: function () {
                var selIndex = 0;
                $(this).find('option').each(function (idx, el) {
                    if ($(el).attr('value') == cesysDestSelected) {
                        selIndex = idx;
                    }
                });
                $(this).closest('select')[0].selectedIndex = selIndex;
            }
        });
    }
    //datepicker vo vyhladavacom formulari
    $('#cesysSearchForm input[name=df],#cesysSearchForm input[name=dt]')
        .attr('autocomplete','off')
        .css({
            width: '7em',
            verticalAlign: 'top'
        })
        .datepicker({
            closeText: 'Zavrieť',
            prevText: '&#x3c;Predchádzajúci',
            nextText: 'Nasledujúci&#x3e;',
            currentText: 'Dnes',
            monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
            'Júl','August','September','Október','November','December'],
            monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
            'Júl','Aug','Sep','Okt','Nov','Dec'],
            dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
            dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
            dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
            weekHeader: 'Ty',
            dateFormat: 'dd.mm.yy',
            firstDay: 1,
            isRTL: false,
            showMonthAfterYear: false,
            yearSuffix: '',
            
            duration: "", 
            firstDay: 1,
            dateFormat: "dd.mm.yy",
            showAnim: "fadeIn",
            
            showOn: "both",
            buttonImage: '/public/images/calendar.png',
            buttonImageOnly: true
        });
    
    //lastminute animation
    var lastminuteTimeout = null;
    $('#lastminute-animation').each(function () {
        displayNextLastminuteItem.call(this, true);
    });
    function displayNextLastminuteItem(init) {
        var $banners = $(this);
        var $bannerItems = $(this).find('div.lastminute-item');
        var animationDuration = 1000;
        if ($bannerItems.length > 1) {
            var bannerItemCur = $banners.find('div.lastminute-item:visible:eq(0)');
            var duration = 0;
            if (init) {
                duration = parseInt(bannerItemCur.find('input[name=duration]').val());
            } else {
                var nextItem = bannerItemCur.next('div.lastminute-item');
                if (nextItem.length == 0) {
                    nextItem = $banners.find('div.lastminute-item:first');
                }
                bannerItemCur.fadeOut(animationDuration);
                nextItem.fadeIn(animationDuration);
                duration = parseInt(nextItem.find('input[name=duration]').val());
            }
            if (!duration) {
                duration = 5000;
            }
            lastminuteTimeout = window.setTimeout(function () {
                displayNextLastminuteItem.call($banners[0]);
            },duration + animationDuration);
        }
    }
});
