var loader = {
	
	disappearTimer : null,
	inChange : false,
	currentID : 0,
	currentLink : [],
	currTip : null,
	currMouseY : null,
	
	init : function(){
		$("#centrecolumn .slideshowBtn a").click(loader.loadImg);
		$("#centrecolumn .project").each(function(index) {
			jQuery.data(this, "id", { id : 0 });
			$(this).find(".slideshowBtn a:eq(0)").addClass("disableLink");
		});
		
		loader.configImg();
		//$(document).mousemove(loader.followMouse);
		/*$(".project").each(function(id) {
			$(this).append("<div class='tooltip'>Next image</div>");
		});*/
		//$("#centrecolumn .slideshowBtn a:eq(0)")
	},
	
	configImg : function() {
		$("ul.slideshow a").click(loader.NextImg);
		//$("ul.slideshow a").hover(loader.rollImg, loader.unrollImg);
	},
	
	rollImg : function(e) {
		e.preventDefault();
		
		var project = $(e.target).parent().parent().parent().parent();
		loader.currTip = $(project).find(".tooltip");
		$(loader.currTip).css("display", "block");
		loader.currTip.css("top", e.pageY - $(loader.currTip).parent().offset().top - $(loader.currTip).height() - 10);
		loader.currTip.css("left", e.pageX - $(loader.currTip).parent().offset().left);
		loader.currMouseY = e.pageY;
	},
	
	unrollImg : function(e) {
		e.preventDefault();
		$(loader.currTip).css("display", "none");
	},
	
	followMouse : function(e) {
		if(loader.currTip == null) return;
		loader.currTip.css("top", e.pageY - $(loader.currTip).parent().offset().top - $(loader.currTip).height() - 10);
		loader.currTip.css("left", e.pageX - $(loader.currTip).parent().offset().left);
		loader.currMouseY = e.pageY;
	},
	
	NextImg : function(e) {
		e.preventDefault();
		var tag = loader.chooseGoodTag("A", e.target);
		var project = $(e.target).parent().parent().parent().parent();
		var id = jQuery.data(project[0], "id").id + 1;
		var linkLength = $(project).find(".slideshowBtn").children().length;
		if(id >= linkLength) id = 0;
		
		loader.loadImg(null, $(project).find(".slideshowBtn").find("a:eq("+id+")"));
	},
	
	loadImg : function(e, target) {
		if(e != null) {
			e.preventDefault();
			target = $(e.target);
		}
		
		var idToLoad = parseInt($(target).text()) - 1;
		var project = $(target).parent().parent().parent();
		if(loader.inChange == true || jQuery.data(project[0], "id").id == idToLoad) return;
		
		
		$(project).find(".slideshowBtn a:eq("+jQuery.data(project[0], "id").id+")").removeClass("disableLink");
		
		loader.inChange = true;
		var cpturl = $(project).find("ul.slideshow img:eq(0)").attr("src");
		$(project).find("ul.slideshow img:eq(0)").css("opacity", .5);
		$(project).find("#centrecolumn .loader").css("display", "block");
		var url = "";
		
		for(var i = 0; i < cpturl.split("/").length; i++) {
			if(i != cpturl.split("/").length - 1) url += cpturl.split("/")[i]+"/";
		}
		jQuery.data(project[0], "id", { id : idToLoad });
		($(project)).find(".slideshowBtn a:eq("+idToLoad+")").addClass("disableLink");
		var img = new Image();
	  $(img)
	  
		.load(function () {
			
			$(project).find(".loader").css("display", "none");
			$(project).find("ul.slideshow li:eq(0)").after("<li></li>");
			$(project).find("ul.slideshow li:eq(1)").append("<a href='#'></a>");
			$(project).find("ul.slideshow li:eq(1) a").append(this);
			$(project).find("ul.slideshow li:eq(1)").css("left",594);
			$(project).find("ul.slideshow li:eq(1)").css("top",-429);
			loader.configImg();
			$(project).find('ul.slideshow li:eq(1)').animate({
				left: 0
			}, 750, function() {
				$(project).find('ul.slideshow li:eq(1)').removeAttr("style");
				$(project).find('ul.slideshow li:eq(0)').remove();
				loader.inChange = false;		
				
			});
			
			$(project).find('ul.slideshow li:eq(0)').animate({
				left: -594
			}, 750);
		})
		
		.error(function () {
			
		})
		
		.attr('src', url+"demo"+idToLoad+".jpg");
	},
	
	
	
	chooseGoodTag : function(tagName, ctx) {
		i = 0;
		while(ctx.tagName != tagName.toUpperCase()) {
			ctx = ctx.parentNode;
			i++;
			if(i > 5) break;
		}
		return ctx;
	}
}

jQuery(document).ready(function() { loader.init(); })