var img_count = 0;
var img_moved = false;

/* 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);
    }
}

$(function(){
    //hinty vo formularoch
	$('input.hint').inputHint();
	
	$('#topmenu li').hover(function () {
        $(this).addClass('hover');
    }, function () {
        $(this).removeClass('hover');
    });
    
    var pageWidth = $('body').width();
    var pageHeight = ($('body').height() > $(window).height()) ? $('body').height() : $(window).height();
	
	var reports = $('#reports');
    if(reports.length == 1){
    	    
        var reportsOverlay = $('<div id="reportsOverlay"></div>')
        .css({
            'position' : 'absolute'
           ,'width' : pageWidth + 'px'
           ,'height' : pageHeight + 'px'
           ,'left' : '0px'
           ,'top' : '0px'
           ,'background' : '#000'
           ,'z-index' : 100
           ,'opacity' : 0.6
        })
        .click(function(){
            reports.hide();
            reportsOverlay.hide();
        });
        
        var width = 400;
        reports
        .append('<div class="reportPopupClose"><button class="button">ZAVRIEŤ</button></div>')
        .addClass('reportPopup')
        .css({
            'position' : 'absolute'
           ,'top' : $(window).scrollTop() + 150 + 'px'
           ,'left' : ((pageWidth - width) / 2) + 'px'
           ,'z-index' : 100
           ,'border-radius' : '10px'
           ,'-moz-border-radius' : '10px'
           ,'background' : '#FFF'
           ,'padding' : '10px'
           ,'width' : width + 'px'
        })
        .show();
        
        $('#reports button')
        .click(function(){
            reports.hide();
            reportsOverlay.hide();
        });
        
        $('body').append(reportsOverlay);
        $('body').append(reports);
    }
    
    img_count = $('.article-img', '#lgImgs').length;
    
    $('#lgUp').click(function () { moveGallery('up'); });
    $('#lgDown').click(function () { moveGallery('down'); });
    
    var minWindowWidth = 1380;
    
    $('#sidebarControl, #sidebarTitle').click(function () {
        var sControl = $('#sidebarControl');
        var sControlSpan = sControl.find('span');
        var sContent = $('#sidebarContent');
        if (sContent.is(':hidden')) {
            //sControl.show();
            sContent.slideDown(1000,function(){
                sControlSpan.removeClass('sDown').addClass('sUp').html('schovať');
            });
        } else {
            sContent.slideUp(1000,function(){
                sControlSpan.removeClass('sUp').addClass('sDown').html('zobraziť');
                if ($(window).width() < minWindowWidth) {
                    //sControl.hide();
                }
            });
        }
    });
    
    if ($(window).width() < minWindowWidth) {
        $('#sidebar').css({
            top: 5,
            right: 5
        });
        $('#sidebarContent').hide();
        $('#sidebarControl').hide();
    }
    
    $("#contentimage").imgFadeEffect();
    
    // ZVYRAZNENIE HLADANEHO VYRAZU
    var searchString = $("#searchString");
    if(searchString.length && searchString.val() != '' && searchString.val() != searchString.attr('title')){
        var mask = new RegExp(searchString.val(),"ig");
        $(".searchContent").each(function(){
             var self = $(this);
             self.html(self.html().replace(mask,'<span class="highlight">' + searchString.val() + '</span>'));
        });
    }
});

function moveGallery(direction) {
    if(!img_moved){
        var img_height = 157;
        var lgImgs = $('#lgImgs');
        var top = parseInt(lgImgs.css('top'), 10);
        
        img_moved = true;
        if (direction == 'up') {
            if (top < 0) {
                lgImgs.css('opacity',0.5).animate({
                    top: '+=' + img_height + 'px'
                }, 'slow' , function(){
                    img_moved = false;
                    $(this).css('opacity',1);
                });
            } else {
                img_moved = false;
            }
        }
        if (direction == 'down') {
            if (top > -1 * ((img_count - 4) * img_height)) {
                lgImgs.css('opacity',0.5).animate({
                    top: '-=' + img_height + 'px'
                }, 'slow' , function(){
                    img_moved = false;
                    $(this).css('opacity',1);
                });
            } else {
                img_moved = false;
            }
        }
    }
}

