$.fn.centralize = function ( defaults ) {
    var selector = this;
    var p = (window.innerWidth - 982);
    if (p < 10) p = 10;
    $(selector).css('paddingLeft',p+'px');
};

$.fn.changeTopLine = function ( myHref ) {
    var classe = myHref.replace(/(http:\/\/)(www)?(brunobertolini)(.com)?(\/\#)/, '');

    if ( classe == '' )
        classe = 'home';

    $(this).removeClass();
    $(this).addClass( classe );

    return classe;
}

$.fn.showPage = function ( myHref , grid ) {

    var page = {
        name: myHref.replace(/(http:\/\/)(www)?(brunobertolini)(.com)?(\/\#)/, ''),
        href: myHref,
        grid: grid
    };

    //show/hide grid
    if (page.name == 'show' || page.name == 'hide'){
        $('a[href=#'+page.name+']').changeGrid();
        page.grid = "#"+page.name;
        page.name = $('header').attr('class');
        page.href = page.href.replace(/#(.*)?$/, '#' + page.name);
    } else {
        //historico do grid
        $('a[href='+page.grid+']').changeGrid();

        //changTopLine
        $('header').removeClass();
        $('header').addClass( page.name );

        //centralize
        $('section.page').centralize();
    }
    return page;
}

$.fn.changeGrid = function () {

    $(this).addClass('hide');

    switch ( $(this).attr('href') ) {
        case '#show':
            $('a[href=#hide]').removeClass('hide');
            $('section#all').addClass('grid');
            break;
        case '#hide':
                $('a[href=#show]').removeClass('hide');
            $('section#all').removeClass('grid');
            break;
    }
    return this;
}

$(document).ready(function () {

    //rel=external abre em nova janela
    $('a[rel=external]').live('click',function(){
        $(this).attr('target' , '_blank');
    });

    //scroll
    $.localScroll.defaults.axis = 'x';
    $.localScroll();
    var page = $('section.page').showPage( location.href , '#hide' );
    $('section.page').centralize();
    $.scrollTo("#"+page.name);

    //change top line
    $('nav a, footer a').click(function(){
        page = $(this).showPage( this.href , $('a[rel=grid].hide').attr('href') );
        history.pushState({page: page}, page.name );
    });

    //on resize
    $(window).resize(function(){
        page = $(this).showPage( page.href );
        $.scrollTo("#"+page.name);
    });

    //contact page
    $('#contact h1 a').mouseover(function(){
       $('#contact h1').addClass("hide");
    }).mouseout(function(){
       $('#contact h1').removeClass('hide');
    });

    //change grid
    $('a[rel=grid]').click(function(){
        $(this).changeGrid();
        return false;
    });


    //ao navegar no histórico
    window.onpopstate = function(event) {
        if (event.state) {
            page = $(this).showPage( event.state.page.href, event.state.page.grid );
        } else {
            page = $(this).showPage( "/" , '#hide' );
        }
    };
});