// Save the current order to a cookie
function getOrder() {
	$.cookie("orderLeft", $(".col-left").sortable("toArray"), { expires: 30, path: "/" });
	$.cookie("orderRight", $(".col-right").sortable("toArray"), { expires: 30, path: "/" });
};

//Restore Order
function restoreOrder() {
		
	// Make columns a var
	var listLeft = $(".col-left");
	var listRight = $(".col-right");
	var widgets = $(".widgets");
	
	if(listLeft == null) return;
	
	// Fetch cookie value
	var cookieOrderLeft = $.cookie("orderLeft")
	var cookieOrderRight = $.cookie("orderRight");
	if(!cookieOrderLeft) return;
	
	// Make array from saved order
	var savedIDLeft = cookieOrderLeft.split(",");
	var savedIDRight = cookieOrderRight.split(",");
	
	//fetch current order/make an array
	var originalIDLeft = widgets.children().sortable("toArray");
	var originalIDRight = widgets.children().sortable("toArray");

	// Get length of savedID
	var savedOrderLengthLeft=savedIDLeft.length;
	var savedOrderLengthRight=savedIDRight.length;

	// Get length of Original
	var originalOrderLengthLeft=originalIDLeft.length;
	var originalOrderLengthRight=originalIDRight.length;
	
	//  For Current Order
	for(var i=0; i<savedOrderLengthLeft; i++){
		var originalOrderLeft = widgets.children().children("#" + originalIDLeft[i]);
	}
	
	for(var i=0; i<savedOrderLengthRight; i++){
		var originalOrderRight = widgets.children().children("#" + originalIDRight[i]);
	}
	
	//Remove Items
	if(cookieOrderLeft !=null){
	//	originalOrderLeft.remove();
	//	originalOrderRight.remove();
	}
	
	// For every value of savedIDleft append it to col-left
	for(var i=0; i<savedOrderLengthLeft; i++){
		var savedOrderLeft = widgets.children().children("#" + savedIDLeft[i]);
		listLeft.append(savedOrderLeft);
	}
	
	// For every value of savedIDRight append it to col-right
	for(var i=0; i<savedOrderLengthRight; i++){
		var savedOrderRight = widgets.children().children("#" + savedIDRight[i]);
		listRight.append(savedOrderRight);
	}
};

// Toggle of Widgets
function widgetToggle() {
	var widgetIDs = new Array();
	$('.widget').each(function(){
	   var widgetid = $(this).attr('id');
	   widgetIDs.push(widgetid);
	});
	var widgetIDsLength = widgetIDs.length;
	
	$('.widget header span').click(function(){
		$(this).toggleClass("active").parent().siblings().slideToggle(500);
		var collapsedWidget = $(this).parent().parent().attr("id");
		$.cookie("collapsed" + collapsedWidget, "1", { expires: 30, path: "/" });
	});
	$('.widget header span').toggle(function(){
		var collapsedWidget = $(this).parent().parent().attr("id");
		$.cookie("collapsed" + collapsedWidget, "1", { expires: 30, path: "/" });
	},
	function(){
		var collapsedWidget = $(this).parent().parent().attr("id");
		$.cookie("collapsed" + collapsedWidget, "0", { expires: 30, path: "/" });
	});
	for(i=0;i<11;i++){
		if($.cookie("collapsed" + widgetIDs[i]) === "1"){
			$("#" + widgetIDs[i] + " header span").addClass("active").toggleClass("active").parent().siblings().hide(0);
			$("#" + widgetIDs[i] + " header span").toggle(function(){
				$.cookie("collapsed" + $(this).parent().parent().attr("id"), "0", { expires: 30, path: "/" });
			},
			function(){
				$.cookie("collapsed" + $(this).parent().parent().attr("id"), "1", { expires: 30, path: "/" });
			});
		}
	}
};

//AJAX - For Parents - Expand Collapse / Load Callback
function liveUpdate() {
	allWidgetIDs = new Array();
	$('.widget').each(function(){
	allWidgetid = $(this).attr('id');
	allWidgetIDs.push(allWidgetid);
	});
	var widgetAllIDsLength = allWidgetIDs.length;
	for(i=0; i<widgetAllIDsLength; i++){
		if(allWidgetIDs[i] != "twitter" && allWidgetIDs[i] != "community"){
			$("#" + allWidgetIDs[i] + " .widget-data").load("/assets/loads/" + allWidgetIDs[i] + "-data.php", function(response,status,xhrr){ 
				var moreId = $(this).parent().attr('id');
				var listExtended = $.cookie("extended" + moreId);
				$('ul li:gt(1)', this).hide();
				$('ul', this).after('<div class="extend"></div>');
				$('.extend', this).click(function(){
					$(this).toggleClass("retract");
					var moreId = $(this).parent().parent().parent().attr('id');
					$("#" + moreId + " .widget-container .widget-data > ul li:gt(1)").toggle(0);
				});
			});
		}
		else if(allWidgetIDs[i] == "twitter" || allWidgetIDs[i] == "community"){
			$("#" + allWidgetIDs[i] + " .widget-data").load("/assets/loads/" + allWidgetIDs[i] + "-data.php", function(response,status,xhrr){ 
				var moreId = $(this).parent().attr('id');
				var listExtended = $.cookie("extended" + moreId);
				$('ul li:gt(3)', this).hide();
				$('ul', this).after('<div class="extend"></div>');
				$('.extend', this).click(function() {
					$(this).toggleClass("retract");
					var moreId = $(this).parent().parent().parent().attr('id');
					$("#" + moreId + " .widget-container .widget-data > ul li:gt(3)").toggle(0);
				});
			});
		}
		else{
			return false;
		}
	}
};

//AJAX - For Tabs
function tabUpdate() {
	multWidgetIDs = new Array();
	$('.multiple').parent().each(function(){
		multID = $(this).attr('id');
		multWidgetIDs.push(multID);
	});	
	for(a=0; a<multWidgetIDs.length; a++){
		allTabID = new Array();
		$("#" + multWidgetIDs[a]).children(".multiple").children().each(function(){
			tabID = $(this).attr('id');
			allTabID.push(tabID);
		});
		for(i=0; i<allTabID.length; i++){
			if(allTabID[i] == "live-stream" || allTabID[i] == "changelogs" || allTabID[i] == "at-el" || allTabID[i] == "eecms" || allTabID[i] == "ellislab" || allTabID[i] == "frup-tweet"){
				$("#" + allTabID[i]).load("/assets/loads/" + multWidgetIDs[a] +"/" + allTabID[i] + "-data.php", function(response,status,xhrr){ 
					var liLengthID = $(this).parent().parent().attr("id");
					var moreId = $(this).parent().parent().attr('id');
					var listExtended = $.cookie("extended" + moreId);
					$('ul li:gt(3)', this).hide();
					$('ul', this).after('<div class="extend"></div>');
					$('.extend', this).click(function(){
						$(this).toggleClass("retract");
						var moreId = $(this).parent().parent().parent().attr('id');
						var tabID = $(this).parent().attr('id');
						$("#" + moreId + " .widget-container" + " #" + tabID + " > ul li:gt(3)").toggle(0);
					});
				});
			}
			
			else{
				$("#" + allTabID[i]).load("/assets/loads/" + multWidgetIDs[a] +"/" + allTabID[i] + "-data.php", function(response,status,xhrr){ 
					var liLengthID = $(this).parent().parent().attr("id");
					var moreId = $(this).parent().parent().attr('id');
					var listExtended = $.cookie("extended" + moreId);
					$('ul li:gt(1)', this).hide();
					$('ul', this).after('<div class="extend"></div>');
					$('.extend', this).click(function(){
						$(this).toggleClass("retract");
						var moreId = $(this).parent().parent().parent().attr('id');
						var tabID = $(this).parent().attr('id');
						$("#" + moreId + " .widget-container" + " #" + tabID + " > ul li:gt(1)").toggle(0);
					});
				});
			}
		}
	}
};

$(document).ready(function() {
	// Widget Pos
 	$( ".col-left, .col-right" ).sortable({
		connectWith: ".column",
		placeholder: "sortable-highlight",
		handle: 'header',
		forcePlaceholderSize: true,
		opacity: 0.8,
		update: function(event, ui){
			getOrder();
		}
	}).disableSelection();
	restoreOrder();
	// End Widget Pos
	
	// Extend/Collapse of Widgets
	widgetToggle();	
	// End Extend/Collapse of Widgets
		
	//AJAX Load - and Live Update
	$(function(){
   		liveUpdate();    		
   		var int = setInterval("liveUpdate()", 600000);
   	});
	$(function(){
   		tabUpdate();    		
   		var int = setInterval("tabUpdate()", 600000);
   	});
	// End AJAX Load - and Live Update
	
	//Tabs
	$( ".widget" ).tabs({ 
	    fx: { height: 'toggle', duration: 'slow' }
	});
	// End Tabs
});
