var nextUrl;
var prevUrl;

var w = {};
var c = {};
var v = {};
var f = {};
var t = {};

var ratio = 1.5;
var photoNavThumbsTop = 9999;

jQuery(function($){
    //$("#content").prepend($('<div id="log">Results...</div>').css({ border: '1px dotted #CCC', padding: '5px', fontSize: '12px' }));
    
    //$(".mainImage img").hide();
    //$(".mainImage img").fadeIn(500);
    
    $("#mainNav > ul > li > ul").hide();
    /*$("#mainNav > ul > li").hover(
        function(){showMenu($(this))},
        function(){hideMenu($(this))}
    );*/
    $("#mainNav > ul > li > a").click(function(e){ e.preventDefault(); });
    
    $("#photoNav").prepend('<a href="#" id="photoNavTrigger" title="Show Thumbnails">Select Thumbnail</a>');
    
	$("#photoNavThumbs").css({ top: '-'+photoNavThumbsTop+'px' });
	
    $("#photoNavTrigger").click(function(e){
        e.preventDefault();
        
        w.o = $(window);
        w.w = w.o.width() - 100;
        w.h = w.o.height() - 100;
        w.r = w.w / w.h;
        
        t.o = $("#photoNavThumbs");
        t.h = t.o.height() - 100;
		if ($("#photoNavThumbs").hasClass('open')) {
		    hidePhotoThumbs();
			//$("#photoNavThumbs").animate({ top: '-'+(photoNavThumbsTop)+'px' }, 500, function(){
			//	$("#photoNavThumbs").removeClass('open');
			//});
		}
		else {
			$("#photoNavThumbs").animate({ top: '80px' }, 500, function(){
				$("#photoNavThumbs").addClass('open');
			});
		}
    });
    
    $("#mainNav > ul > li").hoverIntent({
        over:       showMenu,
        timeout:    350,
        out:        hideMenu,
    });
    
    /*$("#mainNav > ul > li > a").click(function(e){
        showMenu($(this).parent());
        return false;
    });*/
    
    //$("#galleryNavLink a").focus(function(){showMenu()});
    //$("#galleryNavLink a").blur(function(){hideMenu()});
    
    //$("ol.thumbnails").hide();
    
    prevUrl = $("link[rel='prev']").attr('href');
    nextUrl = $("link[rel='next']").attr('href');
    
    $(document).keydown(function(e) {
        switch(e.which) {
            case 37:
                if (prevUrl) {
                    window.location = prevUrl;
                }
                break;
            
            case 39:
                if (nextUrl) {
                    window.location = nextUrl;
                }
                break;
        }
        
        return;
    });
    
    /*if (prevUrl) {
        $(".mainImage").prepend('<a href="'+prevUrl+'" class="prev">Previous Photo</a>');
    }*/
    
    if (nextUrl) {
        $(".mainImage img").after('<a href="'+nextUrl+'" class="next">Next Photo</a>');
    }
    
    //$('body').append('<div id="logger" style="position:absolute; z-index:100; top:0; left:0; padding:5px; outline:1px solid #CCC; background:#fff;">&nbsp;</div>');
    //$('#logger').after('<div id="logger2" style="position:absolute; z-index:100; top:40px; left:0; padding:5px; outline:1px solid #CCC; background:#fff;">&nbsp;</div>');
    //$('#logger2').after('<div id="logger3" style="position:absolute; z-index:100; top:80px; left:0; padding:5px; outline:1px solid #CCC; background:#fff;">&nbsp;</div>');
    
    if ($(".mainImage .video iframe").size() == 1) {
        v.o = $(".mainImage .video iframe");
        v.r = v.o.width() / v.o.height();
        
        ratio   = v.r;
    }
    
    setSize();
    $(window).resize(function(){
        setSize();
    });
    
    $("body").click(function(){
        hidePhotoThumbs();
    });
});

var hidePhotoThumbs = function()
{
    if ($("#photoNavThumbs").hasClass('open')) {
        $("#photoNavThumbs").animate({ top: '-'+(photoNavThumbsTop)+'px' }, 500, function(){
            $("#photoNavThumbs").removeClass('open');
        });
    }
}

var setSize = function(){
    var width;
    var height;
    
    var maxWidth = 1200;
    
    if ($(".mainImage").size() == 1) {
        w.o = $(window);
        w.w = w.o.width() - 100;
        w.h = w.o.height() - 100;
        w.r = w.w / w.h;
        
        c.o = $("#container");
        
        c.o.height(w.h - 80);
        
        c.w = c.o.width();
        c.h = c.o.height() - $("#header").height();
        c.r = c.w / c.h;
        
        if ((w.h) * ratio > w.w) {
            width   = w.w;
            height  = w.w / ratio;
            
            if (width > maxWidth) {
                width  = 1200;
                height = 1200 / ratio;
            }
            
            c.o.css('max-width', width);
            
            $(".mainImage").width(width)
                           .height(height);
        }
        else {
            width   = w.h * ratio;
            height  = w.h;
            
            if (width > maxWidth) {
                width  = 1200;
                height = 1200 / ratio;
            }
            
            $(".mainImage").width(width)
                           .height(height);
            
            c.o.css('max-width', $(".mainImage").width());
        }
        
        if (v.o) {
            v.o.width(width)
               .height(height);
        }
		
		var totalWidth    = $("#container").width();
        var thumbWidth    = Math.round((totalWidth / 100) * 19);
        var thumbHeight   = Math.round(thumbWidth / ratio);
		var marginSize    = Math.round((totalWidth / 100) * 1.2);
		var rowCount      = $("#photoNavThumbs .thumbnails li.first").size();
		
		photoNavThumbsTop = (rowCount * marginSize) + (rowCount * thumbHeight);
		
		$("#photoNavThumbs:not(.open)").css({ top: '-'+photoNavThumbsTop+'px' }).show();
		
        /*console.log('Count',    rowCount);
        console.log('Margin',   marginSize);
        console.log('Width',    thumbWidth);
        console.log('Height',   thumbHeight);
        console.log('Offset',   photoNavThumbsTop);*/
    }
};

window.onbeforeunload = function (e) {
    if ($("#photoNavThumbs").is(':visible')) {
        $("#photoNavThumbs").slideToggle('fast');
    }
}

// Preload images only when the page is fully loaded (images, stylesheets etc)
$(window).load(function() {
    if (prevUrl) {
        $.get(prevUrl, function(data){
            preloadImage($(data).find('img').attr('src'));
        });
    }
    
    if (nextUrl) {
        $.get(nextUrl, function(data){
            preloadImage($(data).find('img').attr('src'));
        });
    }
});

var preloadImage = function(url)
{
    $('<img />', { src: url }).load(function(){});
}

var showMenu = function(e){
    var subnav = $(e.currentTarget).find('ul');
    
    subnav.slideDown(350);
}

var hideMenu = function(e){
    var subnav = $(e.currentTarget).find('ul');
    
    subnav.slideUp(350);
}

