function loadDefaultPage() {
    if (location.hash == '#p-about') {
        $('#about').addClass('active');
    } else if (location.hash == '#p-contact') {
        $('#contact').addClass('active');
    } else {
        $('#portfolio').addClass('active');
    }
}

function loadMenu() {    
    $('nav li').each(function() {
        if ($(this).hasClass('active')) {
            $(this).css('width', '250px');
        } else if (!$(this).hasClass('sep')) {
            $(this).css('width', '100px');
        }
    });
}

function loadContent() {
    $('nav li').each(function() {
        if ($(this).hasClass('active')) {
            $('#page-'+$(this).attr('id')).show();
        } else if (!$(this).hasClass('sep')) {
            $('#page-'+$(this).attr('id')).hide();
        }
    });
}

function loadTitle() {
    var active = $('nav li.active').attr('id');
    if (active == 'about') {
        document.title = 'O mnie - Łukasz Rutkowski';
    } else if (active == 'contact') {
        document.title = 'Kontakt - Łukasz Rutkowski';
    } else {
        document.title = 'Portfolio - Łukasz Rutkowski';
    }
}

function animateContent() {
    $('nav li').each(function() {
        if ($(this).hasClass('active')) {
            $('#page-'+$(this).attr('id')).fadeIn();
        } else if (!$(this).hasClass('sep')) {
            $('#page-'+$(this).attr('id')).hide();
        }
    });
}

function animateMenu() {
    $('nav li').each(function() {
        if ($(this).hasClass('active')) {
            $(this).animate({
               width: '250px'
            });
        } else if (!$(this).hasClass('sep')) {
            $(this).animate({
               width: '100px'
            });
        }
    });
}

function navClick(el) {
    if (el.hasClass('sep')) {
        return true;
    }
    
    $('nav li.active').removeClass('active');
    el.addClass('active');
    
    animateMenu();
    animateContent();
    loadTitle();
    
    return true;
}

function projectsMarginLeft() {
    var str = $('#projects').css('margin-left').split('px');
    return parseInt(str[0]);
}

var portfolioSlides = 0;
var portfolioSlide = 0;

function updatePortfolioSlidesCount() {
    portfolioSlides = $('.project').length;
}

function updatePortfolioButtons() {
    if (portfolioSlide == 0) {
        $('#portfolio-left').hide();
        $('#portfolio-right').show();
    } else if (portfolioSlide == (portfolioSlides - 1)) {        
        $('#portfolio-right').hide();
        $('#portfolio-left').show();
    } else {  
        $('#portfolio-right').show();
        $('#portfolio-left').show();
    }
}

var animation = 0;
function portfolioRight() {
    if (animation == 1)
        return false;
    
    animation = 1;
    var margin = projectsMarginLeft();
    portfolioSlide++;
    margin = margin - 461;
    updatePortfolioButtons();
    $('#projects').animate({
       'margin-left': margin+'px' 
    }, 500, function() {
        animation = 0;
    });
}

function portfolioLeft() {
    if (animation == 1)
        return false;
    
    animation = 1;
    var margin = projectsMarginLeft();
    portfolioSlide--;
    margin = margin + 461;
    updatePortfolioButtons();
    $('#projects').animate({
       'margin-left': margin+'px' 
    }, 500, function() {
        animation = 0;
    });
}

function bindLabel(el) {
    var label = el.attr('data-label');
    el.val(label);
    el.addClass('labeled');
    
    el.focusin(function() {
        if (el.val() == label) {
            el.val('');
            el.removeClass('labeled');
        }
    });
    el.focusout(function() {
        if (el.val() == '') {
            el.val(label);
            el.addClass('labeled');
        }
    });
}

$(function() {
    loadDefaultPage();
    
    loadMenu();
    loadContent();
    loadTitle();
   
    $('nav li').click(function() {
        return navClick($(this));
    });
   
    updatePortfolioSlidesCount();
    updatePortfolioButtons();
   
    $('#portfolio-right').click(function() {
        portfolioRight();
    })
    $('#portfolio-left').click(function() {
        portfolioLeft();
    })
    
    $('.with-label').each(function() {
        bindLabel($(this));
    });
    
    $('#contact-form').submit(function() {
        if ($('#fullname').hasClass('labeled') || $('#email').hasClass('labeled') ||
            $('#msg').hasClass('labeled')) {
            alert('Proszę wypełnić wszystkie pola formularza');
            return false;
        }
        
        var submit = $('.submit', this);
        submit.removeClass('sent');
        submit.removeClass('error');
        submit.addClass('sending');
        submit.val('wysyłanie...');
        
        var vals = {
            fullname: $('#fullname').val(),
            email: $('#email').val(),
            msg: $('#msg').val()
        };
        
        $.ajax({
            url: 'email.php',
            context: document.body,
            data: vals,
            type: 'POST',
            success: function(data){
                if (data == 'ok') {
                    submit.removeClass('sending');
                    submit.addClass('sent');
                    submit.val('Wysłano!');
                } else {
                    submit.removeClass('sending');
                    submit.addClass('error');
                    submit.val('Wystąpił błąd! Spróbuj jeszcze raz');
                }
            }
        });
        
        return false;
    });
});
