var Ajaxnavigation = function() {
    var options = {
        'highlight': '#e3ecf0'
        };
        
    var searchLink = function(url) {
        if(url.substr(0,1) != '!') {
            var urlparts = url.substr(1).split('/', 2),
                url = '/',
                urls = [];
                
            for (i in urlparts) {
                url += urlparts[i];
                urls.push(location.pathname + url);
                url += '/';
                }
                
            return urls;
            }
        else {
            url = url.substr(1);
            return [url];
            }
        };
    
    var loadContent = function(a, to) {
        var target = a.attr('target'),
            href = a.attr('href'),
            url = "/ajax" + href,
            parentNav = a.closest('nav');
            
        a.addClass('ajaxload');
            
        $.get(url, function(data) {
            var data = $.parseJSON(data),
                targetObj = $('#' + target),
                ocolor = targetObj.css('background-color');
            
            targetObj
                .css('background-color', options.highlight)
                .html(data.html)
                .animate({'backgroundColor': ocolor}, 'slow');
            
            $('a.active', parentNav).removeClass('active');
            a.addClass('active')
             .removeClass('ajaxload');
             
            //TODO bármekkora mélységig
            if (to) loadContent($('a[href="'+to+'"]'));
                
            $(document).trigger('changeDom', {where: targetObj});
            });
        };
    
    var load = function() {
        var hash = location.hash.split('#');

        if(hash[1]) {
            var links = searchLink(hash[1]);
            
            if ($('a[href="'+links[0]+'"]').attr('href') == undefined)
                loadContent($('a[href="'+links[1]+'"]'));
            else
                loadContent($('a[href="'+links[0]+'"]'), links[1]);
            }
       // else location.reload();
        };
        
    var init = function() {
        $(window).bind('hashchange', load);
        $(document).ready(load);
        }();
    
    return {};
}();

