var galleryData = null;
var animated = false;
var galleryTimer = 0;
var initialized = false;

var pageSize = 4;
var w = 145;
var paging = true;
var start = 0;

function init()
{
	//Load JS Files
	if($.browser.version == '6.0' && $.browser.msie)
	{
		$.include(['../javascript/jquery.ifixpng.js']);
	}
	
	if($.browser.msie)
	{
		$('#next').css('right','16px');
	}
	
	$('body').append('<div id="data" style="display:none"></div>');
	
	$.post('../gallery/getGalleryData.cfm',{output:'data'},getGalleryDataRH);
}

function getGalleryDataRH(d)
{
	$('#data').html(d);
	$('#thmCon').html($('.thumbsDH').html());
	$('.thumbsDH').remove();
	$('.thm.1').addClass('selected');
	
	var arr 		= $('.def');
	var	rem			= arr.length % pageSize;
	var	t			= arr.length - rem;
	
	if(paging)
	{
		start = pageSize  * w;
	}
	else
	{
		start = (pageSize + rem) * w;
	}
	
	
	if (arr.length > pageSize) 
	{
		if (arr.length == pageSize) 
		{
			$('#thumbWrapper').scrollLeft(0);
		}
		else 
		{
			$('#thumbWrapper').scrollLeft(start);
		}
	}
	else
	{
		$('#prev').hide();
		$('#next').hide();
	}
	
	if($.browser.version == '6.0' && $.browser.msie)
	{
		$.ifixpng('../interface/pixel.gif'); 
		$('#projectDetailContainer').ifixpng();
		$('#next').ifixpng();
		$('#prev').ifixpng();
		$('.thumb').ifixpng();
	}
	
	initGallery();
}

function initGallery()
{	
	$('.thm').click(thmEvt);
	$('.thm').hover(thmEvt,thmEvt);
	$('#prev').click(navEvt);
	$('#next').click(navEvt);
	$('#prev').mouseup(navEvt);
	$('#next').mouseup(navEvt);
	$('#prev').mousedown(navEvt);
	$('#next').mousedown(navEvt);
	
	galleryTimer = setInterval("cycleGallery()",6000);
 	cycleGallery();
}

function thmEvt(evt)
{	
	switch(evt.type)
	{
		case "mouseenter":
			if ($.browser.version == '6.0' && $.browser.msie) 
			{
				$('.thumb.'+ this.id).css('top','-73px');
			}
			else
			{
				$('.thumb.'+ this.id).addClass('over');
			}
		break
		
		case "mouseleave":
			if (!$(this).hasClass('selected'))
			{
				if ($.browser.version == '6.0' && $.browser.msie) 
				{
					$('.thumb.'+ this.id).css('top','0px');
				}
				else
				{	
					$('.thumb.'+ this.id).removeClass('over');
				}
			}
		break;
		
		case "click" :
			selectProject(this.id);
			clearInterval(galleryTimer);
			gallerytimer = 0;
		break;
	}
	
}

function navEvt(evt)
{
	switch(evt.type)
	{
		case "mousedown":
			if(this.id == 'next') 
			{
				$(this).css('background-image',"url('../gallery/images/right_on.png')");
			}
			else 
			{
				$(this).css('background-image',"url('../gallery/images/left_on.png')");	
			}
			
			if ($.browser.version == '6.0' && $.browser.msie) 
			{
				$(this).ifixpng();
			}
		break
		
		case "mouseup":
			if(this.id == 'next') 
			{
				$(this).css('background-image',"url('../gallery/images/right_off.png')");
			}
			else 
			{
				$(this).css('background-image',"url('../gallery/images/left_off.png')");
			}
			
			if ($.browser.version == '6.0' && $.browser.msie) 
			{
				$(this).ifixpng();
			}
		break;
		
		case "click" :
			clearInterval (galleryTimer);
			galleryTimer = 0;
			posThumbs(this.id);
		break;
	}
}

function posThumbs(d)
{
	var pos = 0;
	var shift = 0;
	
	if(paging){shift = w * pageSize;}
	else{shift = w;}
	
	if(d == 'next') 
	{
		pos = $('#thumbWrapper').scrollLeft();

		if (!animated) 
		{
			animated = true;
			$('#thumbWrapper').animate({scrollLeft: pos + shift},1200,posWrapper);
		}
		
	}
	else 
	{
		pos = $('#thumbWrapper').scrollLeft();
		if (!animated) 
		{
			animated = true;
			$('#thumbWrapper').animate({scrollLeft: pos - shift},1200,posWrapper);
		}
	}	
	
	
}

function posWrapper(evt)
{
	var arr = $('.thm');
	var rem = arr.length % pageSize;
	var pages = ($('#thmCon li').length / pageSize);
	var t = arr.length - rem;
	
	var currentPage = 0;
	
	animated = false;
	pos = $('#thumbWrapper').scrollLeft();
	currentPage = pos / (w * pageSize);
	
	if(paging)
	{	
		if(currentPage == pages - 1)
		{
			$('#thumbWrapper').scrollLeft(start);
		}
		
		if(currentPage == 0)
		{
			$('#thumbWrapper').scrollLeft((pages - 2) * (pageSize * w));
		}
	}
	else
	{
		if(pos == 0)
		{
			$('#thumbWrapper').scrollLeft(arr.length * w);
		}
		
		if(pos == ((arr.length * w) + ((pageSize + rem) * w)))
		{	
			$('#thumbWrapper').scrollLeft(start);
		}
	}
	
		
	if(galleryTimer != 0)
	{
		var id = Number($('.selected')[0].id);
				
		if(id == 99)
		{
			selectProject(1);
		}
		else
		{
			if(id == $('.def').length)
			{
				id = 0;
			}
			
			selectProject((id + 1));
		}
	}

}

function selectProject(id)
{
	if ($.browser.version == '6.0' && $.browser.msie) 
	{
		$('.thumb').css('top','0px');
	}
	else
	{
		$('.thumb').removeClass('over');
		$('.thumb.' + id).addClass('over');
	}
	
	$('.selected').removeClass('selected');
	$('.thm.' + id).addClass('selected');
	$('#detailCon').html($('#project' + id).html());
	
	$('.projectContent').hide();
	$('.projectContent.' + id).fadeIn({duration:1500});
}

function cycleGallery()
{
	var id = Number($('.selected')[0].id);
	
	if(initialized)
	{
		id = id + 1;
		
			if ((id - 1) % 4 == 0 || id > $('.def').length)
			 {
			 	if (id > 4 && $('.def').length > 4) 
				{
					posThumbs('next');
				}
				else
				{
					selectProject(1);
				}
			}
			else 
			{
				selectProject(id);
			}
		
	}
	else
	{
		initialized = true;
		selectProject(id);
	}
}

$(document).ready(init);
