//$(document).ready(init_floater);

function init_floater(ul_list) {
	
	// maximum characters for TITLE
	var TITLE_CHARACTER_MAX = 26;
	var MINIMIZED_ITEM_WIDTH = 300;
	var MINIMIZED_ITEM_HEIGHT = 55;
	var VIEWPORT_WIDTH = 980;
	var VIEWPORT_HEIGHT = 285;
	var MAX_LEFT_MOVE = VIEWPORT_WIDTH - MINIMIZED_ITEM_WIDTH;
	var MAX_DOWN_MOVE = VIEWPORT_HEIGHT - MINIMIZED_ITEM_HEIGHT;
	
	var HIGHLIGHTED_ITEM = 5; // can be randomized Math.floor(Math.random() * 10), or pass in as parameter
	var ix = 1, iy = 1;
	
	var ltitle_array = new Array(ul_list.children().length);
	var stitle_array = new Array(ul_list.children().length);
	
	// reset the position of ul.picks - VERY IMPORTANT!
	$("#content_scroll").attr({scrollLeft: 0});
	
	
	// begin - item processing
	ul_list.children().each(function(index, element) {
		
		// to revert to original value
//		var li_orig_index;
		var title_long = "";
		var title_short = "";
		
		//var ix = 1, iy = 1;
		
		$(element).fadeOut(500);
		
		function moveCompleted() {	
			$(element).animate({"left":getRandomNumber(MAX_LEFT_MOVE - 10)+"px", "top":getRandomNumber(MAX_DOWN_MOVE - 10)+"px"},
					{duration: getRandomNumber(7000) + 9000, easing: "swing", queue: false, complete: moveCompleted});
		}
		
		//$(element).fadeOut(500, function() {
			//$(element).removeClass("list").addClass("small_float");
			$(element).addClass("float").removeClass("list");
			$(element).css({"width": MINIMIZED_ITEM_WIDTH + "px", "height": MINIMIZED_ITEM_HEIGHT + "px", "opacity": 0.8, "position": "absolute", "background": "#313131 none repeat scroll 0 0", "border": "1px solid #4E4E4E", "z-index": index});
//			$(element).find("div.legend").css("display", "none");
			$(element).find("p.section").css("display", "none");
			$(element).find("p.description").css("display", "none");
			$(element).find("div.itemImg").css("width", "76px").find("img").attr("width", 76).attr("height", 55);
			
//			log($(element).find("div.legend").css("display"));
			
			title_long = $(element).find("h4.title").css("font-size", "0.9em").children("a").text();
			ltitle_array[index] = title_long;
			if (title_long.length > TITLE_CHARACTER_MAX) {
				short_title = (title_long.length > TITLE_CHARACTER_MAX) ? title_long.substring(0, TITLE_CHARACTER_MAX) + "..." : title_long;
				stitle_array[index] = short_title;
				$(element).find("h4.title").children("a").text(short_title);
			}

			var tx = getRandomNumber(MAX_LEFT_MOVE - 10);
			var ty = getRandomNumber(MAX_DOWN_MOVE - 10);
			ix = ((tx = tx + (2 * MINIMIZED_ITEM_WIDTH)) > MAX_LEFT_MOVE) ? tx -= MAX_LEFT_MOVE : tx;
			iy = ((ty = ty + (2 * MINIMIZED_ITEM_HEIGHT)) > MAX_DOWN_MOVE) ? ty -= MAX_DOWN_MOVE : ty;
			//$(element).css({"top": getRandomNumber(MAX_DOWN_MOVE - 10)+"px", "left": getRandomNumber(MAX_LEFT_MOVE - 10)+"px", "opacity": 0.8})
			$(element).css({"top": iy+"px", "left": ix+"px", "opacity": 0.8})
				.fadeIn(1000 + getRandomNumber(5000))
				.animate({"left":getRandomNumber(MAX_LEFT_MOVE - 10)+"px", "top":getRandomNumber(MAX_DOWN_MOVE - 10)+"px"}, {duration: 8000, easing: "swing", queue: false, complete: moveCompleted})
				.hover(
					function() { // in
						
						$(element).stop();
						var xpos = parseInt($(element).css("left"));
						var ypos = parseInt($(element).css("top"));
						xpos = (xpos > 500) ? 500 : xpos;
						ypos = (ypos > 100) ? 100 : ypos;
//						expandItem(index, 600, {x: xpos, y: ypos})
						expandItem($(this), 600, {x: xpos, y: ypos});
						
					},
					function() { // out
						
						
						shrinkItem($(this), 600);
						
						
					}
				);
			
		//});//fadeout
		
			
			
			// expand this item
			// need to stop and get the location x,y
			function expandItem(selectedItem, dur, pos) {
//				var selectedItem = ul_list.children(":eq(" + selectedIndex + ")");
				selectedItem.css({"z-index": 1000});
				selectedItem.find("div.legend").show(dur);
//				log(selectedItem.find("div.legend").text() + selectedItem.css("z-index") + "; " + selectedItem.find("div.legend").css("display"));
				selectedItem.find("div.itemContent").css("width" , "185px");
				selectedItem.find("div.itemImg").animate({"width": "205px"}, {duration: dur, queue: false})
					.find("img").animate({width: 205, height: 145}, {duration: dur, queue: false});
				selectedItem.animate({
					"width": 420 + "px", "height": 145 + "px",
					"top":pos.y+"px", "left":pos.x+"px",
					"opacity":1
				}, {duration: dur, queue: false});
				selectedItem.find("p.section").show(dur);
				selectedItem.find("p.description").show(dur);
				selectedItem.find("h4").css("font-size", "1em").children("a").text(ltitle_array[index]);
			}

			// shrink this item
			function shrinkItem(selectedItem, dur) {
//				var selectedItem = ul_list.children(":eq(" + selectedIndex + ")");
				selectedItem.find("div.legend").hide(dur);
				selectedItem.find("div.itemImg").animate({"width": "76px"}, {duration: dur, queue: false})
					.find("img").animate({width: 76, height: 54}, {duration: dur, queue: false});
				selectedItem.find("p.section").hide(dur / 10);
				selectedItem.find("p.description").hide(dur /10);
				
				selectedItem.css("z-index", index);
				selectedItem.animate({"width": 300 + "px", "height": 55 + "px", "opacity": 0.8}, {duration: dur, queue: false})
					.animate({"left":getRandomNumber(MAX_LEFT_MOVE - 10)+"px", "top":getRandomNumber(MAX_DOWN_MOVE - 10)+"px"},
							{duration: getRandomNumber(7000) + 9000, easing: "swing", queue: false, complete: moveCompleted});
				
				selectedItem.find("h4").css("font-size", "0.9em").children("a").text(stitle_array[index]);
			}

			
			
	});
	// end - item processing
	
	
	
} // floater


//begin - highlighted item
function highlightedItem() {
	
}
// end - highlighted item	



function getRandomNumber(limit) {
	return (Math.random() * limit + 1);
}

function log(msg) {
	//$("p.testo").text(msg);
}