var rotateInterval;

function rotateHeaderNews() {
    var headerNews = $('#headerNews');
    var headerNewsDivs = headerNews.find('div');
    var notHidden = headerNewsDivs.not(':hidden');
    var hidden = headerNewsDivs.filter(':hidden');
    
    notHidden.fadeOut('slow', function() {
        hidden.fadeIn('slow');
    });
}

function ajaxForm(selector) {
    $(selector).find('form').live('submit', function() {
        var data = $(this).serializeArray(),
        url = $(this).attr('action'),
        image = $('<img src="' + baseurl + 'images/icons/loading.gif" />').load(function() {
            $.ajax({
                url: url,
                data: data,
                dataType: 'html',
                type: 'POST',
                success: function(data) {
                    $('#loginPanelCenter').html($(data).find('#loginPanelCenter').html());
                    $('#loginButton').html($(data).find('#loginButton').html());
                    $('#loginButton>a').toggle();
                }
            });
        });

        $(this).html(image);

        return false;
    });
}

function refreshPage() {
    location.href = location.href;
}

function shareOnFacebook(url) {
    window.open(url, "shareOnFacebook", "width=500,height=500,status=no,scrollbars=yes,resizable=yes").focus();
}

function refreshPageContent(url) {
    $('body').css('cursor', 'wait');
    
    $('#content').stop().fadeOut('slow', function() {
        $('#content').html('Die Seite wird geladen …').show();
    });
    
    $.ajax({
        type: 'POST',
        url: url,
        data: {ajax: true},
        dataType: 'html',
        success: function(data) {
            $('#content').stop().fadeOut('fast', function() {
                data = $(data);
                $('title').text(data.filter('title'));
                $(this).html(data.not('title'));
                
                socialNetworks();
                
                $(this).fadeTo('fast', 1);
                $('body').css('cursor', 'default');
            });
        },
        error: function() {
            refreshPage();
        }
    });
}

function login() {
    $('#loginButton>a').live('click', function() {
        $('#loginPanel').filter(':not(:animated)').slideToggle('slow', function() {
            $('#loginButton>a').toggle();
        });
        $('#loginShadow').filter(':not(:animated)').slideToggle('slow');

        return false;
    });
    
    ajaxForm('#loginPanelRegister');
    ajaxForm('#loginPanelLogin');
}

function header() {
    rotateInterval = setInterval(rotateHeaderNews, 7000);

    $('#headerNews').mouseover(function() {
        clearInterval(rotateInterval);
    });
    
    $('#headerNews').mouseout(function() {
        rotateInterval = setInterval(rotateHeaderNews, 7000);
    });
}

function socialNetworks() {
    // Share on Facebook
    $('.shareFacebook').click(function() {
        shareOnFacebook($(this).attr('href'));
        return false;
    });
    
    // Google-Plus-Button
    if ($('.shareGoogle').length !== 0) {
        // Cookie überprüfen
        var showPlusOne = new RegExp('(?:^|; )' + encodeURIComponent('showPlusOne') + '=([^;]*)').exec(document.cookie);
        if (showPlusOne !== null) {
            showPlusOne = decodeURIComponent(showPlusOne[1]);

            if (showPlusOne === 'true') {
                $.getScript('https://apis.google.com/js/plusone.js');
                $('.shareGoogle>a').remove();
            }
        }
    }
    
    // Google-Plus Vor-Button
    $('.shareGoogle>a').click(function() {
        $.getScript('https://apis.google.com/js/plusone.js');
        $(this).remove();
        
        var in30Days = new Date();
        in30Days.setDate(in30Days.getDate() + 30);

        document.cookie = [
            encodeURIComponent('showPlusOne'), '=',
            encodeURIComponent('true'),
            '; expires=' + in30Days.toUTCString(),
            '; path=/'
        ].join('');
        
        return false;
    });
}

function ligenspiele() {
    // Jahr ändern
    $('#jahr a').live('click', function() {
        $('#jahr').hide();
        $('#jahrAuswahl').slideDown();

        return false;
    });

    // Liga ändern
    $('#ligaAendern a').live('click', function() {
        $('#ligaAendern').hide();
        $('.liga').slideDown('fast');

        return false;
    });

    $('.spielerDiagrammLink').fancybox({
        'type': 'iframe',
        'hideOnContentClick': false,
        'width': 650,
        'height': 640
    });

    var wirdAktualisiert = $('#wird_aktualisiert');
    if (wirdAktualisiert.length !== 0) {
        wirdAktualisiert.after('<p>Die Seite wird automatisch neu geladen, sobald die Aktualisierung beendet ist.</p>');

        setTimeout(refreshPage, 5000);
    }
}

$(function() {
    // Alle Seiten
    $('.no_js').remove();
    
    $('a[target="_blank"]').not(':has(img)').addClass('external');
    
    $('a[href$=".pdf"]').fancybox({
        'type': 'iframe',
        'hideOnContentClick': false,
        'width': '90%',
        'height': '90%'
    });
    $('.box').fancybox();

    login();

//    header();
    
    socialNetworks();

    // E-Mail wieder darstellen
    $('span.mail').each(function() {
        var text = $(this).text(),
            elements = text.split(','),
            content = '',
            mail = ''
            
        content = elements[2] + elements[1] + '@' + elements[0];
        
        if (!isNaN(truncate_mail)) {
            if (content.length > truncate_mail) {
                content = content.substr(0, truncate_mail - 1) + '…';
            }
        }
        
        mail = '<a href="mailto:' + elements[2] + elements[1] + '@' + elements[0] + '">' + content + '</a>';

        $(this).html(mail);
        $(this).show();
    });
    
    // Ajax-Links
    // Funktioniert noch nicht richtig
//    if (history !== null && history.pushState !== null) {
//        $('.lsAjax').live('click', function() {
//            refreshPageContent(this.href);
//            history.pushState({ path: this.href }, '', this.href);
//            
//            return false;
//        });
//        
//        $(window).bind('popstate', function(event) {
//            if (event.originalEvent.state){
//                refreshPageContent(event.originalEvent.state.path);
//            }
//        });
//    }
    
    ligenspiele();
});
