var workSamples = {
	
	setHtml: function() {
	
		var skinClass;
		
		workSamples.bodyID = $('body').attr('id');
		
		switch( workSamples.bodyID )
		{
			case "interactive" :
				skinClass = 'jcarousel-skin-interactivesamples';
				break;
			case "clients" :
				skinClass = 'jcarousel-skin-clientexamples';
				break;
			case "studio" :
				skinClass = 'jcarousel-skin-clientexamples';
				break;
			case "identity" :
				skinClass = 'jcarousel-skin-clientexamples';
				break;
	
			default :
				skinClass = 'jcarousel-skin-workexamples';
		}
		
		$('.mainContent').prepend(
			$('<div></div>').addClass('doubleLine').css({ position:'absolute', top: '44px', left: '0px' })
		).prepend(
			$('<div></div>').attr({ id: 'titleFade' })
		).append(
			$('<div></div>').attr({ id: 'workExamples' }).append(
				$('<ul></ul>').addClass(skinClass).attr({ id: 'workCarousel' }).append(
					$('<li></li>')
				)
			).append(
				$('<div></div>').attr({ id: 'projectNav' })
			).append(
				$('<div></div>').attr({ id: 'workTray' })
			).append(
				$('<div></div>').attr({ id: 'projectDetails' })
			)
		);
		
		$('#workCarousel').jcarousel({
			scroll: 1,
			itemFirstInCallback: workSamples.itemFirstInCallback,
			initCallback: workSamples.initCallback,
			visible: 1
			//, wrap: 'circular'
		});
		
	},
	
	setGlobals: function(initialLink) {
		workSamples.currentIndex = 1;
		workSamples.currentLink = initialLink;
		workSamples.isLoading = true;
		workSamples.linkCount = $('.workNav a').length;
		workSamples.tray = $('.mainContent > #workTray');
		workSamples.titleFade = $('.mainContent > #titleFade');
		//workSamples.projectNav = $('.mainContent > #projectNav');
		workSamples.workExamples = $('.mainContent > #workExamples');
	},
	
	loadContent: function(contentUrl) {

		var itemNum = contentUrl.split('#');
		
		itemNum = Number(itemNum[1]);
		
		if ( (itemNum < 0) || isNaN(itemNum) ){
			itemNum = 1;
		}
		
		$workCarousel.reset();
		workSamples.currentIndex = 1;
		
		$('#projectNav').html('').css({opacity: 0});
		
		$('#workExamples').addClass('loading').find('ul').css({opacity: 0});

		
		$('#workTray').load(contentUrl, function(){
		
			//alert('load done');
			
			var projectNavLeft;
			
			workSamples.length = $('#workTray li').length;
			
			$('#workExamples').removeClass('loading');
			
			if ($('#workTray #clientHead').html() != workSamples.titleFade.html()) {
				workSamples.titleFade.html( $('#workTray #clientHead').html() );
			}
			
			$('#workTray li').each(function(i){
				
				var tempCounter = i+1;
				
				$workCarousel.add(i, $(this).html());
				$('#projectNav').append(
					$('<a></a>').text(i).click(function(){
						if($(this).hasClass('selected')) {
							
						} else {
							$('.jcarousel-item .workexampleDetails', '#workExamples').stop().css({opacity: 0});
						
							$workCarousel.options.animation = 0;
						
							$('#printgallery').css({opacity: 0});
						
							$workCarousel.scroll(i+1);
							
							workSamples.currentIndex = i+1;
						
							$workCarousel.options.animation = 'normal';
							
							$('#projectNav a').removeClass('selected');
							$(this).addClass('selected');
						}
					})
				);
			});
			
			if (workSamples.length > 1) {
				if ( workSamples.bodyID == 'interactive' ) {
					$('#projectNav').css({ opacity: 1, left: ( 516 - ($('#workTray li').length * 17 / 2) )+'px' }); // midpoint = 515px
					//$('.jcarousel-next', workSamples.workExamples).css({ right:  ( ($('#workTray li').length * -17) - 80 )+'px' })
					$('#workExamples #projectDetails').html( $('#workTray .workexampleDetails').html() );
				} else {
					$('#projectNav').css({ opacity: 1, left: ( ( $('.mainContent').width() / 2 ) - ( ( $('#workTray li').length / 2 ) * 17 ) - 2 )+'px' });
				}
			}
			
			$workCarousel.size(workSamples.length);
			
			
			$('#projectNav a:eq('+ (itemNum - 1) +')').addClass('selected');

			$workCarousel.scroll(itemNum);
			
			$('#workExamples ul').animate({
				opacity: 1
			}, 600);
			
			workSamples.isLoading = false;
			
		});
		
	},
	
	setNav: function(initialLink) {
	
		var $initialLink = $('.workNav a:eq('+initialLink+')');
	
		$('.jcarousel-next', workSamples.workExamples).live('click', function(event){
			if ( workSamples.isLoading == false ) {
				var nextIndex = workSamples.currentIndex + 1;
				//alert(workSamples.currentIndex);
				
				if( nextIndex > $workCarousel.size() ) {
					//alert('go to next work');
					if ( workSamples.isLoading == false ) {
						workSamples.isLoading = true;
						workSamples.loadNext();
					}
					return false;
				} else {
					$('.jcarousel-item .workexampleDetails', '#workExamples').stop().css({opacity: 0});
					workSamples.currentIndex++;
				}
			} else {
				return false;
			}
			return false
		});
		
		$('.jcarousel-prev', workSamples.workExamples).live('click',function(){
			if ( workSamples.isLoading == false ) {
				var nextIndex = workSamples.currentIndex - 1;
				
				if( nextIndex > 0 ) {
					$('.jcarousel-item .workexampleDetails', '#workExamples').stop().css({opacity: 0});
					workSamples.currentIndex--;
				} else {
					//alert('go to previous work');
					if ( workSamples.isLoading == false ) {
						workSamples.isLoading = true;
						workSamples.loadPrev();
					}
					return false;
				}
			} else {
				return false;
			}
			
		});
		
		$('.workNav ul:visible').hide();
		
		$('.workNav .selected').removeClass('selected');
		$initialLink.addClass('selected');
		if( $initialLink.hasClass('groupTitle') == false ) {
			$initialLink.parent().parent().slideDown(300).parent().find('.groupTitle').addClass('selected');
		}
		

		$('.workNav a').each(function(i){
			$(this).click(function(){
			
				if( $(this).hasClass('selected') == false ){
					if ( $(this).hasClass('groupTitle') ) {
						$('.workNav ul:visible').slideUp('300');
						$('.workNav .groupTitle').removeClass('selected');
					}
					$('.workNav a').removeClass('selected');
					$(this).addClass('selected');
					workSamples.loadContent($(this).attr('href'));
					
				}
				workSamples.currentLink = i;
				return false;
			
			});
		});

		// Setting up actions for left nav
		$('span.groupTitle').each(function(i){
			
			$(this).css({ cursor: 'pointer' });
			$(this).click(function(){
				
				$this = $(this);
				
				if( $this.hasClass('selected') == false ){
				
					$('.workNav a, .workNav .groupTitle').removeClass('selected');
					
					if ( $('.workNav ul:visible').length ) {
						$('.workNav ul:visible').slideUp('150', function(){
						
							$this.addClass('selected').parent()
							.find('ul').slideDown('150')
							.find('a:first').click();
							//.find('a:first').addClass('selected');
							//workSamples.loadContent( $('.workNav a.selected').attr('href') );
	
						});
					} else {
				
						$this.addClass('selected').parent()
						.find('ul').slideDown('150')
						.find('a:first').click();
						//.find('a:first').addClass('selected');
						
						//workSamples.loadContent( $('.workNav a.selected').attr('href') );
	
					}
					
				}
				return false;
			});
			
		});
		
	},
	
	checkKey: function(e) {
		switch(e.keyCode)
		{
			// user presses the left arrow
			case 37:
				//alert('left');
				$('.jcarousel-prev', workSamples.workExamples).click();
				break;
			// user presses the right arrow
			case 39:
				//alert('right');
				$('.jcarousel-next', workSamples.workExamples).click();
				break;
			default:
				//alert('checkKey');
		}
	},
	
	setKeystrokes: function() {
	
		// listens for any navigation keypress activity
		if ($.browser.mozilla) {
			$(document).keypress (workSamples.checkKey);
		} else {
			$(document).keydown (workSamples.checkKey);
		}
		
	},
	
	loadNext: function() {
		
		var $nextLink;
	
		if ( (workSamples.currentLink+1) < workSamples.linkCount) {
			workSamples.currentLink++;
			$nextLink = $('.workNav a:eq('+(workSamples.currentLink)+')');
		} else {
			workSamples.currentLink = 0;
			$nextLink = $('.workNav a:eq('+(workSamples.currentLink)+')');
		}
		
		if ( $nextLink.hasClass('groupTitle') ) {
				
			$('.workNav a, .workNav .groupTitle').removeClass('selected');
		
			if ( $('.workNav ul:visible').length ) {
				$('.workNav ul:visible').slideUp('150', function(){
				
					$nextLink.addClass('selected');
					
					workSamples.loadContent( $nextLink.attr('href') );
	
				});
			} else {
				
				$nextLink.addClass('selected');
				
				workSamples.loadContent( $nextLink.attr('href') );
			}

		} else {
		
			if ( $nextLink.parent().parent().parent().find('.groupTitle').hasClass('selected') ) {
			
				$('.workNav a').removeClass('selected');
				$nextLink.addClass('selected');
				workSamples.loadContent( $nextLink.attr('href') );
			
			} else {
				
				$('.workNav a, .workNav .groupTitle').removeClass('selected');
				
				var $groupTitle = $nextLink.parent().parent().parent().find('.groupTitle');
			
				if ( $('.workNav ul:visible').length ) {
					$('.workNav ul:visible').slideUp('150', function(){
					
						$nextLink.addClass('selected');
						$groupTitle.addClass('selected')
						.parent().find('ul').slideDown('150');
						
						workSamples.loadContent( $nextLink.attr('href') );
	
					});
				} else {
				
					$nextLink.addClass('selected');
					$groupTitle.addClass('selected')
					.parent().find('ul').slideDown('150');
					
					workSamples.loadContent( $nextLink.attr('href') );
				}

			}
			
		}
	
	},
	
	loadPrev: function() {
		
		var $prevLink;
	
		if ( (workSamples.currentLink-1) >= 0) {
			workSamples.currentLink--;
			$prevLink = $('.workNav a:eq('+(workSamples.currentLink)+')');
		} else {
			workSamples.currentLink = workSamples.linkCount - 1;
			$prevLink = $('.workNav a:eq('+(workSamples.currentLink)+')');
		}
		
		if ( $prevLink.hasClass('groupTitle') ) {
				
			$('.workNav a, .workNav .groupTitle').removeClass('selected');
		
			if ( $('.workNav ul:visible').length ) {
				$('.workNav ul:visible').slideUp('150', function(){
				
					$prevLink.addClass('selected');
					
					workSamples.loadContent( $prevLink.attr('href') );
	
				});
			} else {
				
				$prevLink.addClass('selected');
				
				workSamples.loadContent( $prevLink.attr('href') );
			}

		} else {
		
			if ( $prevLink.parent().parent().parent().find('.groupTitle').hasClass('selected') ) {
			
				$('.workNav a').removeClass('selected');
				$prevLink.addClass('selected');
				workSamples.loadContent( $prevLink.attr('href') );
			
			} else {
				
				$('.workNav a, .workNav .groupTitle').removeClass('selected');
				
				var $groupTitle = $prevLink.parent().parent().parent().find('.groupTitle');
			
				if ( $('.workNav ul:visible').length ) {
					$('.workNav ul:visible').slideUp('150', function(){
					
						$prevLink.addClass('selected');
						$groupTitle.addClass('selected')
						.parent().find('ul').slideDown('150');
						
						workSamples.loadContent( $prevLink.attr('href') );
	
					});
				} else {
				
					$prevLink.addClass('selected');
					$groupTitle.addClass('selected')
					.parent().find('ul').slideDown('150');
					
					workSamples.loadContent( $prevLink.attr('href') );
				}

			}
			
		}
	
	},
	
	itemFirstInCallback: function(carousel, li, index, state) {
		//alert(index);
		//alert(workSamples.currentIndex);
		workSamples.currentIndex = index;
		$('.jcarousel-item .workexampleDetails:eq('+(index - 1)+')').animate({ opacity: 1 }, 800);
		$('#projectNav a').removeClass('selected');
		$('#projectNav a:eq('+(index-1)+')').addClass('selected').animate({opacity: 1}, 1);
	},
	
	initCallback: function(carousel) {
		//alert('initCallback');
		$workCarousel = carousel;
	},
	
	init: function(initialLink, contentUrl) {
		workSamples.setHtml();
		workSamples.setGlobals(initialLink);
		workSamples.loadContent(contentUrl);
		workSamples.setNav(initialLink);
		workSamples.setKeystrokes();
	}
};