/* Author: Joseph Parker @ The Office of Thierry Despont

*/
var current_submenu = null;
var to_load = new Array();
var menus_spaced = new Array();
var ticker = 0;
var current_loading = 0;
var current_viewing = 0;

$(document).ready(function() {

});

$(window).load(function() {

	// let's show some stuff
	$('#slideshow').fadeIn(300);
	$('#menu').fadeIn(400);
	$('.overlay').fadeIn(500);
	$('#infobar').fadeIn(400);

	$('.top-menu').each( function() {
		menus_spaced.push(0);
	});

    $('.top-menu').mouseenter(function() {
  		$('#infobar').fadeOut(200);
  		if (current_submenu && !$(this).is(current_submenu) ) {
  			$(current_submenu.children().get(1)).hide();
  			$(current_submenu.children().get(0)).css('color', 'black');
  		}
  		if ( !$(this).is(current_submenu) ) {
  			$('.sub-menu').hide();
			$($(this).children().get(1)).fadeIn(300);
			if (menus_spaced[ $(this).index()] == 0) {
				measure_submenu($(this));
				menus_spaced[ $(this).index()] = 1;
			}

		}
		$($(this).children().get(0)).css('color', 'yellow');
		current_submenu = $(this);
		
    }).mouseleave(function() {
	    
	});

	$('#nav').mouseenter(function() {
		if (current_submenu) {
			$(current_submenu.children().get(0)).css('color', 'black');
			current_submenu = 0;
		}
		$('.sub-menu').hide();
	}).mouseleave(function() {
	    
	});
	
	$('.lookup-img').each( function() {
		to_load[ticker] = $(this).attr('id');
		if (ticker == 0) {
			$('#nav').append('<img src="./img/box.jpg" class="current-nav-button nav-button" id='+ String(ticker)+ '/>')
		} else {
			$('#nav').append('<img src="./img/box.jpg" class="nav-button" id='+ String(ticker)+ '/>')
		}
		ticker += 1;
	});

	$('.nav-button').click( function() {
		pos = parseInt($(this).attr('id'));
		if (current_viewing != pos) {
			$('.nav-button').removeClass('current-nav-button');
			$(this).addClass('current-nav-button');
			$( $('.content-img')[current_viewing]).fadeOut(300);
			current_viewing = pos;
			$( $('.content-img')[current_viewing]).fadeIn(300);
		}
	});

	// arrow key navigation of images
	$(document).keydown(function(e){
	    if (e.keyCode == 37) { 
	    	if (current_viewing == 0) {
	    		switch_image(ticker-1);
	    	} else {
	    		switch_image(current_viewing-1);
	    	}  
	    }
	    if (e.keyCode == 39) { 
	    	if (current_viewing == ticker-1) {
	    		switch_image(0);
	    	} else {
	    		switch_image(current_viewing+1);
	    	}  
	    }
	});


	// jquery mobile swipe navigation

	

	load_next();
  
});


function switch_image(image_number) {
	if (current_viewing != image_number && image_number < ticker) {
		$('.nav-button').removeClass('current-nav-button');
		$( $('.nav-button')[image_number]).addClass('current-nav-button');
		$( $('.content-img')[current_viewing]).fadeOut(300);
		current_viewing = image_number;
		$( $('.content-img')[current_viewing]).fadeIn(300);
	}
};


function load_next( ) {
	if (ticker > 0) {
		url = to_load[ current_loading ];

		var img = $("<img class='content-img'/>").attr('src', url).load( function() {
			$('#slideshow').append(img);

			if (img.height() > 760) {
				img.css('width', String(772/img.height()*img.width() )+'px' );
			} 
			// center the image horizontally and vertically
			img.offset( { left: $('#main').offset().left+515-img.width()/2});
			//img.offset( { top:386-img.height()/2});

			if (img.height() < 676) {
				img.offset( { top:676-img.height()});

			} else {
				img.offset( { top:0});
			}
			
			if (current_viewing == current_loading) {
				img.fadeIn(300);
			}
			current_loading += 1
			if (current_loading < ticker) {
				load_next();
			}
		});
	}

};


function measure_submenu( item ) {
	var submenu = $(item.children().get(1) );
	var counter = 0;
	var item_left = item.offset().left;
	var item_width = item.width();
	submenu.children().each( function() {
		counter += $(this).width();
	});
	submenu.width(counter);
	var item_center = item_width/2 + item_left;
	var desired = item_center-counter/2;
	if (desired < $('#main').offset().left) {
		desired = $('#main').offset().left;
	} else if ( desired + counter > $('#main').offset().left + $('#main').width()) {
		desired = $('#main').offset().left + $('#main').width() - counter;
	}
	submenu.offset( {left: desired});

}

















