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

$(function(){
    //hinty vo formularoch
	$('input.hint').inputHint();
	
	//menu
	$('#menu > ul > li:not(.opened)').hover(
        function(){
            var self = $(this);
            self.addClass('hover');
            var selfUL = self.find('ul');
            
            if(selfUL.width() < self.outerWidth()){
                selfUL.find('li').css('width' , self.outerWidth() - 1 + 'px');
            }
            
            selfUL
            .css({
                'top' : '27px'
               ,'opacity' : 0.95
            })
            .stop(true,true)
            .slideDown();
        }
       ,function(){
            var self = $(this);
            self.removeClass('hover');
            self.find('ul').stop(true,true).hide();
        }
    );
    
   	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);
    }
    
    $("#siteMap").click(function(){
        var self = $(this);
        if (!$('#siteMapTree').length) {
            
            var sitemapTree = $('<div>').attr('id','siteMapTree');
            var sitemapTreeOverlay = $('<div>')
            .attr('id','siteMapTreeOverlay')
            .css({
                'position' : 'absolute'
               ,'width' : pageWidth + 'px'
               ,'height' : pageHeight + 'px'
               ,'left' : '0px'
               ,'top' : '0px'
               ,'background' : '#FFF'
               ,'z-index' : 100
               ,'opacity' : 0
            })
            .click(function(){
                sitemapTreeOverlay.hide();
                sitemapTree.hide();                
            });
            
            $('body').append(sitemapTreeOverlay);
            $('body').append(sitemapTree);
            
            sitemapTree.load(LANGROOT + '/sitemap/',function () {
                $(this).css({
                    'left' : (self.offset().left - 10) + 'px'
                   ,'top' : (self.offset().top - $(this).height() - 5) + 'px'
                   ,'z-index' : 100
                }).show();
            });
        } else {
            var sitemapTree = $('#siteMapTree');
            if(sitemapTree.is(':visible')){
                sitemapTree.hide();
                $('#siteMapTreeOverlay').hide();
            } else {
                sitemapTree.show();
                $('#siteMapTreeOverlay').show();
            }
        }
    });

});

