var numImages = 0;
var currImage = 1;
var currFlip = 'b';
var lastImageSrc = '';
var topMarginAdjust = 0;

$(document).ready(
    function(){
        $('.preload').preload({onComplete:function(hash){  }});
    }
);

function scrollPane()
{
    $('.scroll-pane').jScrollPane({
			verticalDragMinHeight: 42,
			verticalDragMaxHeight: 42
    });
}

function portfolio()
{
    topMarginAdjust = 0;
    scrollPane();
    $('.portfolio-menu a').mouseover(handleImageMouseOver);
    $('.image-a').click(clickFullImage);
    $('.image-b').click(clickFullImage);
    setImage(1);
}

function clickFullImage()
{
    window.location = $('#image_'+currImage).attr('href');
}

function portfolioSingle()
{
    topMarginAdjust = 25;
    scrollPane();
    setupHandlers();
    setupImageNavigation();
    $('.portfolio-menu a').mouseover(handleImageMouseOver);
}

function setupImageNavigation()
{
    currImage = 1;
    currFlip = 'b';
    numImages = $('.jspPane > a').size() / 2;
    setImage(currImage,true);
}

function updateImageNavigation()
{
    $('.photo-area .image-navigation .controls .display .current').html(currImage);
    $('.photo-area .image-navigation .controls .display .total').html('/' + numImages);
    $('.photo-area .image-navigation .controls').show();
}

function setupHandlers()
{
    $('.photo-area .image-navigation .controls a').click(handleImageNavigationClick);
    $('.portfolio-menu a').click(handleImageClick);
}

function hoverImage(id,first)
{
    var title = $('#image_'+id+' img').attr('label');
    $('.photo-area h1').html(title ? title : 'Untitled');
    //$('.portfolio-menu a').removeClass('selected');
    //$('#image_'+id).addClass('selected');

    // don't reload the same image (prevents mouseover flickering)
    if($('#fullsize_'+id).attr('href') == lastImageSrc) return;

    lastImageSrc = $('#fullsize_'+id).attr('href');
    currFlip = (currFlip == 'a' ? 'b' : 'a');
    $('.image-' + currFlip).html('<img id="image-current-' + currFlip + '">');
    $('.image-' + currFlip).css('z-index',0);
    $('.image-' + (currFlip == 'a' ? 'b' : 'a')).css('z-index',1);
    $('.image-' + currFlip).hide();
    $('#image-current-' + currFlip).load(function(){ fadeImages(); });
    $('#image-current-' + currFlip).attr('src',$('#fullsize_'+id).attr('href'));
    //updateImageNavigation();
}

function setImage(id,first)
{
    currImage = id;

    var title = $('#image_'+id+' img').attr('label');
    $('.photo-area h1').html(title ? title : 'Untitled');
    $('.portfolio-menu a').removeClass('selected');
    $('#image_'+id).addClass('selected');

    // don't reload the same image (prevents mouseover flickering)
    if($('#fullsize_'+id).attr('href') == lastImageSrc) return;
    lastImageSrc = $('#fullsize_'+id).attr('href');
    currFlip = (currFlip == 'a' ? 'b' : 'a');
    $('.image-' + currFlip).html('<img id="image-current-' + currFlip + '">');
    $('.image-' + currFlip).css('z-index',0);
    $('.image-' + (currFlip == 'a' ? 'b' : 'a')).css('z-index',1);
    $('.image-' + currFlip).hide();
    $('#image-current-' + currFlip).load(function(){ fadeImages(); });
    $('#image-current-' + currFlip).attr('src',$('#fullsize_'+id).attr('href'));
    updateImageNavigation();
}

function fadeImages()
{
    var sp = $('#fullsize_'+currImage).attr('alt').split(';');
    var width = sp[0];
    var height = sp[1];
    var left = ((700 - parseInt(width)) / 2);
    var top = ((484 - parseInt(height)) / 2) + topMarginAdjust;
    $('.image-' + currFlip).css('left',left + 'px');
    $('.image-' + currFlip).css('top',top + 'px');
    $('.image-' + currFlip).fadeIn(500);
    $('.image-' + (currFlip == 'a' ? 'b' : 'a')).fadeOut(500);
}

function previousImage()
{
    if(currImage > 1) currImage--;
    else currImage = numImages;
    setImage(currImage,false);
}

function nextImage()
{
    if(currImage < numImages) currImage++;
    else currImage = 1;
    setImage(currImage,false);
}

function setNavigation(nav)
{
    $('.menu ul li').each(function(){
        if($(this).find('a').html().toLowerCase() == nav)
        {
            $(this).addClass('current_page_item');
        }
    });
}


var animatingMouseOver = false;
var currentMouseOver = null;
function handleImageMouseOver()
{
    $('.portfolio-menu a').removeClass('hover');
    $(this).addClass('hover');
    currentMouseOver = this;
    clearTimeout("mouseOverNow();");
    animatingMouseOver = true;
    setTimeout("mouseOverNow();",1100);
}

function handleImageMouseOutSingle()
{
    clearTimeout("mouseOverNowSingle();");
    clearTimeout("clearHoverImage();");
    setTimeout("clearHoverImage();",1100);
}

function clearHoverImage()
{
    setImage(currImage,false);
}

function handleImageMouseOverSingle()
{
    currentMouseOver = this;
    animatingMouseOver = true;
    clearTimeout("clearHoverImage();");
    setTimeout("clearHoverImage();",1100);
    clearTimeout("mouseOverNowSingle();");
    setTimeout("mouseOverNowSingle();",1100);
}

function mouseOverNowSingle()
{
    animatingMouseOver = false
    var sp = currentMouseOver.id.split('_');
    hoverImage(sp[1],false);
}

function mouseOverNow()
{
    animatingMouseOver = false
    var sp = currentMouseOver.id.split('_');
    setImage(sp[1],false);
}

function handleImageClick()
{
    var sp = this.id.split('_');
    setImage(sp[1],false);
}

function handleImageNavigationClick()
{
    switch(this.id)
    {
        case 'previous-image-button':
            previousImage();
        break;
        default:
            nextImage();
        break;
    }
}
