var currentPage = 1;
var shitBrowser = false;
var numPages = null

jQuery(document).ready(function() {
	numProjects = jQuery('#projectSelector #screens ul li').length;
	numPages = Math.ceil(numProjects / 4);
	
	initHovers();
	initPageButtons();
	
	if(jQuery.browser.msie && jQuery.browser.version == '6.0')
		shitBrowser = true;

	// fade in first project
	jQuery('#projectSelector #screens ul li a#screen-1').addClass('selected');
	jQuery('#content.showcase #project-1').fadeIn('slow');
	jQuery('#content.showcase #project-1').addClass('showing');
	
	jQuery('#content.showcase #project-1 img.myreflect').each(function(){
		jQuery(this).reflect({height: 0.15, opacity: 0.5} );
	});
});

function initHovers()
{
	// featured thumbs
	jQuery('#projectSelector #screens ul li a').each(function() {
		jQuery(this).hover(function() {
			jQuery(this).addClass("active");
				}, function() {
			jQuery(this).removeClass("active");
			});
	});
}

function unbindPageButtons()
{
	// re-initialize next and prev buttons
	jQuery('#projectSelector #previousPage a').unbind();
	jQuery('#projectSelector #nextPage a').unbind();
	jQuery('#projectSelector #previousPage a img').attr("src","/themes/deversus/images/deversus/showcase/prev-page.png");
	jQuery('#projectSelector #nextPage a img').attr("src","/themes/deversus/images/deversus/showcase/next-page.png");	
	jQuery('#projectSelector #screens ul li a').unbind('click');
}

function initPageButtons()
{
	if(currentPage == 1) {
		jQuery('#projectSelector #previousPage a img').addClass('inactive');
	}
	else {
		jQuery('#projectSelector #previousPage a img').removeClass('inactive');
		jQuery('#projectSelector #previousPage a').hover(function() {
			jQuery('#projectSelector #previousPage a img').attr("src","/themes/deversus/images/deversus/showcase/prev-page-over.png");
				}, function() {
			jQuery('#projectSelector #previousPage a img').attr("src","/themes/deversus/images/deversus/showcase/prev-page.png");
		});
		
		jQuery('#projectSelector #previousPage a').click(function(e) {
			if(currentPage >= 2)
				slideSectionLeft();
			e.preventDefault();
		});
	}
	
	if(currentPage >= numPages) {
		jQuery('#projectSelector #nextPage a img').addClass('inactive');	
	}
	else {
		jQuery('#projectSelector #nextPage a img').removeClass('inactive');	
		jQuery('#projectSelector #nextPage a').hover(function() {
			jQuery('#projectSelector #nextPage a img').attr("src","/themes/deversus/images/deversus/showcase/next-page-over.png");
				}, function() {
			jQuery('#projectSelector #nextPage a img').attr("src","/themes/deversus/images/deversus/showcase/next-page.png");
		});	
		
		jQuery('#projectSelector #nextPage a').click(function(e) {
			if(currentPage < numPages)
				slideSectionRight();
			e.preventDefault();
		});
	}
	
	jQuery('#projectSelector #screens ul li a').click(function (e) {
		projId = jQuery(this).attr('rel');
		swapShowcaseProject(projId);
		e.preventDefault();
	});
}

function resetProjectSelector()
{
	jQuery('#projectSelector #screens ul li a').removeClass('active').removeClass('selected');
	unbindPageButtons();
}

function fadeSelectedProject()
{
	jQuery('#content.showcase .project.showing').fadeOut('fast');
	jQuery('#content.showcase .project.showing').removeClass('showing');
}

function showSelectedProject(id)
{	
	jQuery('#content.showcase #project-' + id).addClass('showing');
	jQuery('#content.showcase #project-' + id).fadeIn('normal');

	jQuery('#content.showcase #project-' + id + ' img.myreflect').each(function(){
		jQuery(this).reflect({height: 0.15, opacity: 0.5} );
	});
	
	initPageButtons();
}

function slideSectionLeft()
{
	var trans = 836;
	//if(shitBrowser)
		//trans = 901;
	newMargin = parseInt(jQuery('#projectSelector #screens ul').css('margin-left')) + trans;
	
	jQuery('#projectSelector #screens ul').animate({
		marginLeft: newMargin + 'px'
	},
	'normal',
	function()
	{
		currentPage--;
		var project = currentPage * 4;
		swapShowcaseProject(project);
	}
	);
}


function slideSectionRight()
{
	var trans = 832;
	if(currentPage > 1)
		trans = 834
	//if(shitBrowser)
		//trans = 895;
	var newMargin = trans*currentPage;
//	newMargin = Math.abs(parseInt(jQuery('#projectSelector #screens ul').css('margin-left'))) + trans;

	jQuery('#projectSelector #screens ul').animate({
		marginLeft: '-' + newMargin + 'px'
	},
	'normal',
	function()
	{
		currentPage++;
		var project = currentPage * 4 - 3;
		swapShowcaseProjectNoSlide(project);
	}
	);
}

function swapShowcaseProjectNoSlide(id)
{
	var newMargin = '0px';
	
	initHovers();
	jQuery('#projectSelector #screens ul li a#screen-' + id).unbind();
	
	// reset the thumb
	resetProjectSelector();
	
	// highlight the new thumb
	jQuery('#projectSelector #screens ul li a#screen-'+id).addClass('selected');
	
	fadeSelectedProject();
	
	jQuery('#projectSelector #screens #highlighter').animate({
		left: '0px'
	},
	'normal',
	function()
	{
		showSelectedProject(id);
	});
}


function swapShowcaseProject(id)
{
	var newMargin = '0px';
	var slideDelay = 0;
	var loc = id % 4;
		
	switch(loc)
	{
		case 1:
			newMargin = 0;
		break;
		case 2:
			newMargin = 209;
		break;
		case 3:
			newMargin = 418;
		break;
		case 0:
			newMargin = 627;
		break;
	}
	
	currentMargin = parseInt(jQuery('#projectSelector #screens #highlighter').css('left'));
	bouncePadding = 15;
	// set bounce padding
	// moving left, so negative
	if(currentMargin > newMargin)
		bouncePadding *= -1;
	newMarginPlus = newMargin + bouncePadding;
	
	// add some delay based on the distance we're sliding	
	slideDelay = 200 + Math.abs(newMargin - currentMargin) / 4;
	
	initHovers();
	jQuery('#projectSelector #screens ul li a#screen-' + id).unbind();
	
	// reset the thumb
	resetProjectSelector();
	
	jQuery('#projectSelector #screens ul li a#screen-'+id).addClass('selected');
	
	fadeSelectedProject();

	// slide the highlighter left or right plus 15px
	jQuery('#projectSelector #screens #highlighter').animate({
		left: newMarginPlus + 'px'
	},
	slideDelay,
	function() {
		showSelectedProject(id);
		
		// slide back 10% for bounce
		jQuery('#projectSelector #screens #highlighter').animate({
			left: newMargin + 'px'
		},
		100);
	});
}
