/* AJAX ERROR */
$(document).ajaxError(function (request,settings,e) {
    alert('Error requesting URL: '+e.url);
});
/* 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('');
    }
}

jQuery.fn.imgFadeEffect = function () {
    this.each(function () {
        var self = $(this);
        if (self.is('div') && self.find('img').length > 1){
            setTimeout(function(){ jQuery.imgFadeEffectAnimate(self , 0); },3000);
        }
    });
    return this;
}
jQuery.imgFadeEffectAnimate = function (obj , idx) {
    obj = jQuery(obj);
    if (obj.is('div')) {
        var active = obj.find('img:eq('+ idx +')');
        active
        .fadeOut(700,function(){
            $(this).removeClass('active');
        });
        
        idx = (idx + 1 < obj.find('img').length) ? idx + 1 : 0;
        var next = obj.find('img:eq(' + idx + ')');
        next
        .fadeIn(700,function(){
            $(this).addClass('active');
            
        });
        
        setTimeout(function(){ jQuery.imgFadeEffectAnimate(obj , idx); },4000);
    }
}

jQuery.fn.imgFadeEffect_banner = function () {
    this.each(function () {
        var self = $(this);
        if (self.is('div') && self.find('div.img').length > 1){
            setTimeout(function(){ jQuery.imgFadeEffectAnimate_banner(self , 0); },3000);
        }
    });
    return this;
}
jQuery.imgFadeEffectAnimate_banner = function (obj , idx) {
    obj = jQuery(obj);
    if (obj.is('div')) {
        var active = obj.find('div.img:eq('+ idx +')');
        active
        .fadeOut(700,function(){
            $(this).removeClass('active');
        });
        
        idx = (idx + 1 < obj.find('div.img').length) ? idx + 1 : 0;
        var next = obj.find('div.img:eq(' + idx + ')');
        next
        .fadeIn(700,function(){
            $(this).addClass('active');
            
        });
        
        setTimeout(function(){ jQuery.imgFadeEffectAnimate_banner(obj , idx); },4000);
    }
}


$(function(){
    //hinty vo formularoch
    $('input.hint').inputHint();
    
    $('#topmenu li').hover(function () {
        $(this).addClass('hover');
    }, function () {
        $(this).removeClass('hover');
    });
    
    $("#contentimage").imgFadeEffect();
    $("#contentimagegallery").imgFadeEffect();
    $("#contentactions").imgFadeEffect_banner();
    
    var currDate = new Date();
    var yearRange =  (currDate.getFullYear() - 100) + ':' + currDate.getFullYear();
    
    $('#date_from, #date_to').datepicker({
        duration: "",
        firstDay: 1,
        dateFormat: "dd.mm.yy",
        beforeShow: customRange,
        onSelect: checkDate,
        showOn: "both",
        buttonImage: '/public/themes/images/calendar.png',
        buttonText: "",
        buttonImageOnly: true,
        showAnim: "",
        changeYear: true,
        changeMonth: true
    }).attr('readonly', 'readonly');
});

function customRange(input) {
    return {minDate: (input.id == "date_to" ? $("#date_from").datepicker("getDate") : new Date())}; 
}
function checkDate(input) {
    var odlet = input.substring(6,10)+input.substring(3,5)+input.substring(0,2);
    var input2 = $("#date_to").val();
    var navrat = input2.substring(6,10)+input2.substring(3,5)+input2.substring(0,2);
    if(odlet>navrat){
        $("#date_to").val(input);
    }
}

