function Zenz() {
    var self   = this;

    this.init = function(){
        _initMainNav();
        _initSearch();
        _initBreadcrumbs();
        
        switch(_getPageRef()){

            case '':
                _showLogo();
                _initGallery();
                break;

            case 'contact':
                _initMap();
                break;
            
            default:
                _initGallery();
                break;
        }
    };

    /**
     * Add hoverIntent to links with childnodes
     */
    var _initMainNav = function() {
        function menuHoverOver() {
            $(this).siblings().removeClass('over');
            $(this).addClass('over');
        };
        function menuHoverOut() {
            $(this).removeClass('over');
        }

        // fade main content down when using nav
        function wrapperHoverOver() {
            $('#wrapper').addClass('over');
        };
        function wrapperHoverOut() {
            $('#wrapper').removeClass('over');
        }

        $('#masthead nav li ul').parent()
            .addClass('subnav')
            .hoverIntent({
                timeout: 600,
                over:    menuHoverOver,
                out:     menuHoverOut
            });
        $('#masthead nav').hover(wrapperHoverOver, wrapperHoverOut);
    };

    /**
     * Autogrow searchbar on update
     */
    var _initSearch = function() {
        $('input#searchfield').autoGrowInput({
            comfortZone: 40,
            minWidth:    120,
            maxWidth:    360,
            wrapper:     '#search'
        });

        $('form#search').submit(function(){
            console.log("searching for:", this.searchfield.value);
            return false;
        });
    };

    /**
     * Hide breadcrumbs if none displayed
     */
    var _initBreadcrumbs = function(){
        var b = $('#breadcrumbs');
        if($('a', b).length) {
            b.css('display', 'block');
        }
    };

    var _initGallery = function(){
        $('#gallery ul').galleria({
            transition: 'fade',
            height: 480
        });
    };

    var _initMap = function(){
        
    };

    var _showLogo = function(){
        $('#logo_main')
            .delay(4000)
            .fadeOut(1000, function(){
                $(this).remove();
            });
    };

    /**
     * Get head of path
     * e.g. 'contact', 'architectural', etc
     */
    var _getPageRef = function() {
        return location.pathname.substr(1).split('/', 1).toString();
    };
};

var z = new Zenz();

$(document).ready(function() {
    z.init();
});
