last_slide = "";
open_item_uid = "";
preload_list = [];

$(document).ready( function () {
	var hash = window.location.hash;
	hash = hash.substring(1, hash.length);
	
	if (hash) {
		var uid = performRequest('url2uid.php?url='+hash);
		console.log(uid);
		if (uid != "" && uid != "error") {
			var item = $(".item[data-cms-id="+uid+"]").not('.blurb').get(0);
			preload_list.push(item);
			openParent(item);
		} else {
			var first = $("#nav").children('.root.item').first().get(0);
			openItem(first, true);
		}
	} else {
		var first = $("#nav").children('.root.item').first().get(0);
		openItem(first, true);
	}
});

function openParent(item) {
	var parent_uid = $(item).attr('data-cms-parent');
	var parent_item = $(".item[data-cms-id="+parent_uid+"]").not('.blurb');
	if (parent_item.length != 0) {
		parent_item = parent_item.get(0);
		preload_list.push(parent_item);
		openParent(parent_item);
	} else {
		preload_list = preload_list.reverse();
		$(preload_list).each( function(value, index) {
			openItem(preload_list[value], true);
		});
	}
}

function hideSubSiblings(item) {
	$(item).siblings().each( function (index, value) {
		var sib_uid = $(value).attr('data-cms-id');
		var subs = false;
		var blurbs = false;
		
		if ($(".blurb.item[data-cms-id="+sib_uid+"]").is(":visible")) {
			blurbs = true;
		}
		if ($(".sub.list[data-cms-id="+sib_uid+"]").is(":visible")) {
			subs = true;
		}
		
		
		if (subs && blurbs) {
			$(".blurb.item[data-cms-id="+sib_uid+"]").slideUp( function() {
				$(".sub.list[data-cms-id="+sib_uid+"]").slideUp( function() {
					showSubItem(item);
				});
			});
		} else if (subs) {
			$(".sub.list[data-cms-id="+sib_uid+"]").slideUp( function() {
				showSubItem(item);
			});
		} else if (blurbs) {
			$(".blurb.item[data-cms-id="+sib_uid+"]").slideUp( function() {
				showSubItem(item);
			});
		} else {
			showSubItem(item);
		}
	
	});
}

function showSubItem(item) {
	var uid = $(item).attr('data-cms-id');

	if ($(".sub.list[data-cms-id="+uid+"]").children().length != 0) {
		$(".sub.list[data-cms-id="+uid+"]").slideDown();
	}
	
	if ($(".blurb.item[data-cms-id="+uid+"]").find('.auto_update_blurb').first().html() != "") {
		$(".blurb.item[data-cms-id="+uid+"]").slideDown();
	}
}

function openItem(item, override) {
	var uid = $(item).attr('data-cms-id');
	
	if (uid == open_item_uid || $(item).hasClass('selected') && !override) {
		return false;
	}
	
	if ($(item).hasClass('root item')) {
		$(".sub.list:visible").slideUp();
		$(".blurb.item:visible").slideUp();
		
		
		$(".sub.list[data-cms-id="+uid+"]").slideDown();
		$(".blurb.list[data-cms-id="+uid+"]").show();
		$(".blurb.item[data-cms-id="+uid+"]").slideDown();
	} else if ($(item).hasClass('sub item')) {
		hideSubSiblings(item);
	}
	
	$(item).addClass('selected');
	$(item).siblings().removeClass('selected');

	var children = $(".sub.list[data-cms-id="+uid+"]").children();
	
	if (children.length > 0) {
		var child = $(".sub.list[data-cms-id="+uid+"]").children().first().get(0);
		openItem(child, true);
	} else {
		$("#content").animate({opacity: 0.0}, function() {
			loadItem(item);
		});
	}
	
	event.stopPropagation();
}

function loadItem(item) {
	var uid = $(item).attr('data-cms-id');
	
	clearTimeout(window.fader);
	$("#tray").attr('class', '');
	$(".file_link").remove();
	$("#content").html('');
	$("#tray").html('');
	
	var item_package = JSON.parse(performRequest('load_item.php?item_uid='+uid));
	var content = item_package['content'];
	var tray = item_package['tray'];
	var type = item_package['type'];
	
	$("#content").html(content);
	$("#tray").html(tray);
	
	if (type == 'auto_slideshow') {
		$("#content").attr('class', 'slideshow');
		last_slide = $("#content").children().first();
		last_slide.css({opacity: 1.0});
		window.fader = setTimeout(function(){autoSlideshow($("#content"), 2000, 4000)}, 4000);
	} else if (type == 'stepped_slideshow') {
		$("#content").attr('class', 'slideshow');
		$("#slideshow_stepper").children().first().addClass('selected');
		last_slide = $("#1");
		last_slide.css({opacity: 1.0});
		if ($("#content img").length == 1) {
			$("#slideshow_stepper").hide();
		}
	} else if (type == 'single_video') {
		$("#content").attr('class', 'single_video');
	} else if (type == 'custom') {
		$("#content").attr('class', '');
		linked_list = JSON.parse(item_package['linked_list']);
		for (file in linked_list) {
			var link = linked_list[file];
			var code_type = link['type'];
			var src_path = link['src_path'];
			
			if (code_type == 'javascript') {
				var fileref = document.createElement('script');
				fileref.setAttribute('type','text/javascript');
				fileref.setAttribute('src', src_path);
			} else if (code_type == 'css') {
				var fileref = document.createElement('link');
				fileref.setAttribute('rel', 'stylesheet');
				fileref.setAttribute('type', 'text/css');
				fileref.setAttribute('href', src_path);
			}
			
			if (typeof fileref != 'undefined') {
				document.getElementsByTagName('head')[0].appendChild(fileref);
				$(fileref).addClass('file_link');
			}
		}
	} else if (type == 'group') {
		$("#content").attr('class', 'group');
		$("#tray").attr('class', 'group');
		$("#content").html('group');
		$("#tray").html('group');
	}
	
	$("#content").animate({opacity: 1.0});
}

function autoSlideshow(container, speed, pause) {
	
	//RANDOM
	// var $sibs  = $active.siblings();
    // var rndNum = Math.floor(Math.random() * $sibs.length );
    // var $next  = $( $sibs[ rndNum ] );
	
	var next_slide = last_slide.next();
	
	if (next_slide.length == 0) {
		next_slide = container.children().first();
	}
	
	next_slide.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, speed, function() {
		last_slide.css({opacity: 0.0});
		next_slide.removeClass('active');
		last_slide = next_slide;
	});
	
	window.fader = setTimeout(function(){autoSlideshow(container, speed, pause)}, pause);
}

function showImage(number, li) {
	$("#slideshow_stepper").children().removeClass('selected');
	$(li).addClass('selected');
	var next_slide = $("#"+number);
	next_slide.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, 500, function() {
		last_slide.css({opacity: 0.0});
		next_slide.removeClass('active');
		last_slide = next_slide;
	});
}
