/*
Giant javascript

Designed and built by Jonathan Brain
http://jonathanbrain.com
*/

var slide_width = 846;
var slide_current = 0;
var slide_total = 0;
var slide_moving = false;


//set up page and events
$(document).ready( function() {
	grid_hover();
	gallery_clicks();
	about_click();
});


//pop-up project names
function grid_hover() {
	
	if ( $.browser.msie ) {
		//add extra elements to aid fading block
		$('#grid .grid-title-bg').wrap('<span class="grid-title-bg-outer" />');
		
		//fade needs extra help 'cos of ie's shitness
		$('#grid a').hover( function() {
			$(this).find('.grid-title').hide();
			$(this).find('.grid-title-bg-outer').hide();
			$(this).find('.grid-title-box').show();
			$(this).find('.grid-title').show();
			$(this).find('.grid-title-bg-outer').fadeIn(200);
		}, function() {
			$(this).find('.grid-title-bg-outer').fadeOut(200);
			$(this).find('.grid-title').hide();
			$(this).find('.grid-title-box').hide();
		});
	}
	else {
		//all other browsers have it easy
		$('#grid a').hover( function() {
			$(this).find('.grid-title-box').fadeIn(200);
		}, function() {
			$(this).find('.grid-title-box').fadeOut(200);
		});
	}
}


function gallery_clicks() {
	//set up gallery links to show slides
	$('.portfolio-items a').click( function() {
		//get slide data in raw form
		var slide_image = $(this).find('.slide-content').val();
		var slide_title = $(this).find('.slide-title').val();
		var slide_count = $(this).find('.slide-count').val();
		
		if ( slide_image != undefined && slide_title != undefined && slide_count != undefined ) {
		
			//initiate slide show
			show_slides( slide_image, slide_title, slide_count );
		}
		
		return false;
	});
}
		
		
function show_slides( slide_image, slide_title, slide_count ) {
	//try {
		//add lightbox elements to document
		if ( document.getElementById( 'lightbox' ) === null ) {
			
			if ( slide_count > 0 ) {			
			
				//slide show
				$('body').append('<div id="lightbox-overlay" onclick="lightbox_close();"></div><div id="lightbox"><div id="lightbox-title"><h2>' + slide_title + '</h2><a id="lightbox-close" onclick="lightbox_close(); return false;" href="#"><span>Close</span></a></div><div id="lightbox-outer"><div id="lightbox-inner"><img src="' + slide_image + '" alt="" onload="begin_slideshow(\'' + slide_count + '\');" /></div><a id="lightbox-previous" class="invisible" href="#" onclick="slide_previous(); return false;"><span>Previous</span></a><a id="lightbox-next" class="invisible" href="#" onclick="slide_next(); return false;"><span>Next</span></a></div></div>');
				
				//show it
				$('#lightbox-overlay').hide().height( $(document).height() ).show();
				$('#lightbox').hide().fadeIn(200);
				$('#lightbox-inner').css({ width: (slide_count * slide_width) + 'px' });
			}
			else {
				//movie clip		
				$('body').append('<div id="lightbox-overlay" onclick="lightbox_close();"></div><div id="lightbox"><div id="lightbox-title"><h2>' + slide_title + '</h2><a id="lightbox-close" onclick="lightbox_close(); return false;" href="#"><span>Close</span></a></div><div id="lightbox-outer"><iframe id="lightbox-movie" src="movie.php?title=' + slide_title + '&path=' + slide_image + '" scrolling="no" frameborder="0" hspace="0" width="846px" height="476px"></iframe></div></div>');
			}
		}
		
	/*}
	catch(e) {
	}*/
}


function begin_slideshow( slide_count ) {
	//show slide image
	$('#lightbox-inner img').fadeIn(200);
	
	//set global variables
	slide_total = slide_count;
	slide_current = 0;	
	slide_moving = false;
	
	//bind events to buttons
	$('#lightbox-outer').hover( function() {
		slide_buttons();
		$('#lightbox-outer a').fadeIn(200);
	}, function() {
		$('#lightbox-outer a').fadeOut(200);
	});
	
	//show buttons initially
	slide_buttons();
}


function lightbox_close() {
	//remove the lightbox
	$('#lightbox').fadeOut(200, function() { 
		$(this).remove(); 
	});
	$('#lightbox-overlay').remove(); 
}


function slide_previous() {
	//show previous slide
	if ( !slide_moving ) {
		slide_moving = true;
		
		if ( slide_current > 0 ) {
			slide_current--;
			show_slide( slide_current );
			
			//tidy up buttons
			slide_buttons();
		}
	
		slide_moving = false;
	}
}


function slide_next() {
	//show next slide
	if ( !slide_moving ) {
		slide_moving = true;
		
		if ( slide_current < slide_total-1 ) {
			slide_current++;
			show_slide( slide_current );
			
			//tidy up buttons
			slide_buttons();
		}
	
		slide_moving = false;
	}
}


function show_slide( slide ) {
	//animate slideshow
	$('#lightbox-inner').animate({ marginLeft: '-' + (slide * slide_width) + 'px' }, 400);
}


function slide_buttons() {
	//show only relevant buttons
	if ( slide_current == 0 ) {
		$('#lightbox-previous').addClass('invisible');
	}
	else { 
		$('#lightbox-previous').removeClass('invisible');
	}
	
	if ( slide_current == slide_total-1 ) {
		$('#lightbox-next').addClass('invisible');
	}
	else { 
		$('#lightbox-next').removeClass('invisible');
	}
}


function about_click() {
	$('#nav-about').click( function() {
		//add lightbox elements to document
		if ( document.getElementById( 'about-overlay' ) === null ) {
			
			var about_content = $('#about-content-hidden').html();
			
			$('body').append('<div id="clear-overlay" onclick="about_close(); return false;"></div><div id="about-overlay"><div id="about-title"><div id="about-title-bg"></div><h2><span>About</span></h2><a id="about-close" onclick="about_close(); return false;" href="#"><span>Close</span></a></div><div id="about-content">' + about_content + '</div></div>');
		}
		
		//show it
		$('#clear-overlay').hide().height( $(document).height() ).show();
		$('#about-overlay').hide().fadeIn(200);
	});
}


function about_close() {
	//remove the lightbox
	$('#about-overlay').fadeOut(200, function() { 
		$(this).remove(); 
	});
	$('#clear-overlay').remove(); 
}
