$(function(){
    
    $('#work-gallery').galleria({
        history: false,
        insert: '#work-container',
        clickNext: false
    });
    
    $('#left-sidebar h1').localScroll({
        onAfter: function(){
            $('#left-sidebar ul#navigation li.selected').removeClass('selected');
        }    
    });
    $('#navigation').localScroll({
        onAfter: function(page){
            var pageId = $(page).attr('id');
            $('#left-sidebar ul#navigation li.selected').removeClass('selected');
            $('#left-sidebar ul#navigation li.'+pageId).addClass('selected');
        }    
    });
    
    
    $('#capabilities-navigation li a').click(function(){
        $('#capabilities-navigation li.selected').removeClass('selected');
        $(this).parent().addClass('selected');
        
        var id = $(this).attr('href').slice(1);
        showCapability(id);
        return false;
    });
    
    $('a.cap-page-up').click(function(){
        pageCapabilities("up");
        return false;    
    });
    
    $('a.cap-page-down').click(function(){
        pageCapabilities("down");
        return false;
    });
    
    $('#flash-home').flash({
        swf: '/flash/home.swf',
        width: 512,
        height: 382,
        params: {
            "wmode": "transparent"
        }
    });
    
    $('#artistry-chemistry h3 a').click(function(){
        var showClass = $(this).attr('id');
        $('#artistry-chemistry h3 a.selected').removeClass('selected');
        $(this).addClass('selected');
        $('#artistry-chemistry p.visible').removeClass('visible');
        $('#artistry-chemistry p.'+showClass).addClass('visible');
        return false; 
    });
    
    $('#contact-form').submit(function(){
        $('#contact .status').empty();
        var email = $('#contact-form #contact-email').val().trim();
        var emailFilter= /^(([a-zA-Z0-9\._-]+)@([a-zA-Z0-9-]+)\.([a-zA-Z]{2,4}))$/;
        var error = null;
        
        if(email.length < 1){
            error = 'Email address is required.';
        }
        else if(!(emailFilter.test(email))){
            error = 'Please enter a valid email address.';
        }
        var formData = $(this).serialize();
        if(!error){
            var loader = '<img src="/images/ajax-loader.gif" alt="Loading..." />';
            $('#contact .status').html(loader);
            $.ajax({
               url: '/thanks/',
               type: 'POST',
               data: formData,
               success: function(){
                    var message = 'Thanks.';
                    $('#contact .status').empty().text(message);
               }
            });
        }
        else {    
            $('#contact .status').text(error);
        }
        return false;
    });
});

function pageCapabilities(direction){
        var count = $('#capabilities-navigation li').length;
        var siblingsCount =  $('#capabilities-navigation li.selected').nextAll('li').length;
        var position = (count - siblingsCount);
        if(direction == "up"){
            var nextPosition = (position + count - 1) % count; //round-robin selection    
        }
        else {
            var nextPosition = (position + count + 1) % count; //round-robin selection    
        }
        
        if(nextPosition == 0){
            nextPosition = count; //nth-child and DOM indexed differently
        }

        $('#capabilities-navigation li.selected').removeClass('selected');
        $('#capabilities-navigation li:nth-child('+nextPosition+')').addClass('selected'); 
        var nextId = $('#capabilities-navigation li.selected a').attr('href').slice(1);

        showCapability(nextId);      
}

function showCapability(id){
    var itemToShow = $('#capabilities-container').children('.'+id);
    var itemToHide = $('#capabilities-container').children('.visible');
    itemToHide.removeClass('visible');
    itemToShow.addClass('visible');
}