$(function(){
	function init($items){
		var $window = $(window);
		var MAX_WIDTH = 4096;
		var MARGIN_RIGHT = 5;
		
		var $cover = $("<div></div>");
		$cover.attr("id","cover");
		$(window.document.body).append($cover);
		
		var $bottom = $("#bottom");
		var $ul = $bottom.find("ul");
		$items.each(function(){
			var src = $(this).attr("src");
			if(!src) return;
			
			var $li = $("<li/>");
			var $img = $("<img/>");
			$img.attr("src",src);
			
			var alt = $(this).attr("alt");
			if(alt) $img.attr("alt",alt);
			
			var href = $(this).attr("href");
			if(href){
				var $a = $("<a/>");
				$a.attr("href",href);
				var target = $(this).attr("target");
				$a.attr("target",target || "_self");
				$a.append($img);
				$li.append($a);
			}else{
				$li.append($img);
			}
			$ul.append($li);
		});
		
		var left = 0;
		var $currentLeft = null;
		var currentWidth = 0;
		function updateCurrentLeft(){
			$currentLeft = $ul.find("li:first");
			currentWidth = $currentLeft.width() + MARGIN_RIGHT;
		}
		
		function tick(){
			left -= 1;
			if(left <= -currentWidth){
				left = 0;
				$ul.append($currentLeft);
				updateCurrentLeft();
			}
			$ul.css({
				left:left
			});
		}
		
		var intervalId = null;
		function start(){
			var $li = $ul.find("li");
			var ulWidth = $ul.width() + $li.length * MARGIN_RIGHT;
			var count = Math.ceil(MAX_WIDTH / ulWidth);
			for(var i = 0;i < count;i++){
				$ul.append($li.clone());
			}
			count++;
			$ul.width(ulWidth * count);
			
			updateCurrentLeft();
			
			var height = $bottom.height();
			$bottom.animate({
				marginTop:-height
			},{
				duration:1000
			});
			
			$cover.animate({
				opacity:0
			},{
				duration:500,
				complete:function(){
					$cover.remove();
				}
			});
			
			intervalId = setInterval(function(){
				tick();
			},1/30*1000);
		}
		
		var $img = $ul.find("img");
		var loadedcount = $img.length;
		$img.each(function(){
			if(this.complete){
				loadedcount--;
				if(!loadedcount) start();
			}
		});
		if(loadedcount){
			$img.bind("load",function(){
				loadedcount--;
				if(!loadedcount) start();
			});
		}
	}
	
	$.ajax({
		url:"./xml/index.xml",
		dataType:"xml"
	}).success(function(responce){
		var $items = $(responce).find("item");
		init($items);
	}).error(function(){
		//error;
	});
	
});

