var projects = [];

jQuery(function( $ ){
	//TAB SWITCH FIX
	$('#nameInput').focus(function () {
		$('a.panel').removeClass('selected');
		$('#t4').addClass('selected');
		
		$('#top').scrollTo('#contact', 400, {axis:'x'});
	});

	//RESIZE OF WINDOW
	$(window).resize(function () {
		resizePanel();
	});

	//CONTACT FORM AJAX
	setupContactForm();

	//GENERAL NAVIGATION
	setupNavigation();

	//save and remove all src values for preloading
	removeImageSrc();
	
	//GALLERY NAVIGATION
	setupGallery();

	//GET WIDTH OF WINDOW ON STARTUP
	resizePanel();
});

function removeImageSrc() {
	for (var i=0; i<$('.project').length; i++) {
		var project_id = $(".project")[i]["id"];
		var images = $("#"+project_id+" img");
		
		var attributes = [];
		
		for (var c=0; c<images.length; c++) {
			attributes.push(images[c]["title"]);
		}
		
		projects.push(attributes);
		
		$("#"+project_id+" img").attr("src","images/ajax-loader-big.gif");
		$("#"+project_id+" img").attr("class","loader");
	}	
}

function resizePanel() {
	width = $(window).width();
	mask_width = width * $('.content').length;

	$('#top, .content').css({width: width});
	$('#mask').css({width: mask_width});
	$('#top').scrollTo($('a.selected').attr('href'), 0);
}

function setupGallery() {
	i = 1;
	$('#galleryProjectTitle').html($('#project1').attr('name'));
	loadImageOfProject(0,0);
	setupGalleryPagination('#project1',0);
	
	$('#galleryScroll').serialScroll({
		items:'.project',
		axis:'x',
		prev:'a#galleryControlLeft',
		next:'a#galleryControlRight',
		start:0,
		lazy: true,
		duration:250,
		force:true,	
		stop:true,
		lock:true,
		cycle:true,
		easing:'easeOutQuart',
		onBefore:function( e, elem, $pane, $items, pos ){			
			e.preventDefault()
			
			var project_id = '#project'+(pos+1);
			
			//fade old one out
			$('.galleryProjectDescription').fadeOut('slow');
			
			//fade new one in
			$(project_id+'Desc').fadeIn('slow');
			
			//preload first image of project
			loadImageOfProject(pos,0);
			
			//set title of project
			$('#galleryProjectTitle').html($('#project'+(pos+1)).attr('name'));
			
			setupGalleryPagination(project_id,pos);
		}
	});
}

function loadImageOfProject(project_i,img_i) {
	$("#project"+(project_i+1)+' img:eq('+img_i+')').css("display","block");
	$("#project"+(project_i+1)+' img:eq('+img_i+')').attr("src",projects[project_i][img_i]);
	$("#project"+(project_i+1)+' img:eq('+img_i+')').attr("width",32);
	$("#project"+(project_i+1)+' img:eq('+img_i+')').attr("height",32);
	$("#project"+(project_i+1)+' img:eq('+img_i+')').preload({
	    placeholder:'images/ajax-loader-big.gif',
	    notFound:'images/notfound.jpg',
		onComplete: function () {
		},
		onFinish: function() {
			$("#project"+(project_i+1)+' img:eq('+img_i+')').removeAttr("class");
			$("#project"+(project_i+1)+' img:eq('+img_i+')').attr("width",636);
			$("#project"+(project_i+1)+' img:eq('+img_i+')').attr("height",363);
		}
	});
}

function setupGalleryPagination(project_id,pos) {
	$("#galleryPagination > li").remove();
	$(project_id).scrollTo(0, 400, {axis:'y'});
	
	var numOfItems = $(project_id+">div.projectImgHolder").length;
	if (numOfItems > 1) {
		for (var i=0; i<numOfItems;i++) {
			if (i == 0) {
				$("#galleryPagination").append('<li class="first"><a class="pagination activePage">'+(i+1)+'</a></li>')
			} else if ((i+1) == numOfItems) {
				$("#galleryPagination").append('<li class="last"><a class="pagination">'+(i+1)+'</a></li>')
			} else {
				$("#galleryPagination").append('<li><a class="pagination">'+(i+1)+'</a></li>')
			}
		}

		$('a.pagination').click(function () {

			$('a.pagination').removeClass('activePage');
			$(this).addClass('activePage');

			var to_img_i = $(this).html()-1;
			var to_img = $(project_id+">img")[to_img_i];
			var scroll_height = $(".projectImgHolder").css("height").split("px")[0];

			loadImageOfProject(pos,to_img_i);

			$(project_id).scrollTo((scroll_height*to_img_i), 400, {axis:'y'});

			return false;
		});	
	}
}

function setupNavigation() {
	$.localScroll.defaults.axis = 'x';

	$.localScroll.hash({
		target: '#top',
		queue:true,
		duration:500,
		onBefore:function( e, anchor, $target ){
			$('a.panel').removeClass('selected');
			$("a.panel[href='#"+$(anchor).attr("id")+"']").addClass('selected');
		}
	});

	$.localScroll({
		target: '#top',
		queue:true,
		duration:500,
		hash:true,
		onBefore:function( e, anchor, $target ){
			$('a.panel').removeClass('selected');
			//$('#t1').attr('style','border: 1px solid red; position:relative')
			$("a.panel[href='#"+$(anchor).attr("id")+"']").addClass('selected');
		}
	});
}

function setupContactForm() {
	$('#submitContact').click(function () {
		var name = $('input[name=name]');
		var send = $('input[name=s]');
		var email = $('input[name=email]');
		var message = $('textarea[name=message]');
		var data = 'name=' + name.val() + '&send=' + send.val() + '&email=' + email.val() + '&message='  + encodeURIComponent(message.val());
		
		$('.loading_icon').show();
		
		$.ajax({
			url: "contact.php",
			type: "GET",
			data: data,
			success: function (reqMessage) {
				if (reqMessage==1) {
					$('.loading_icon').fadeOut('slow');
					$('.errorField').fadeOut('slow');
					$('.form').fadeOut('slow');
					$('.done').fadeIn('slow');
				} else if (reqMessage==2) {
					$('.error').show();
					$('.loading_icon').fadeOut('slow');
				} else {
					$('.loading_icon').fadeOut('slow');
					$('.errorField').html(reqMessage);
					$('.errorField').fadeIn('slow');
				}
			}
		});
		
		return false;
	});
}

jQuery.easing.easeOutQuart = function (x, t, b, c, d) {
	return -c * ((t=t/d-1)*t*t*t - 1) + b;
};