var ml_updates = new Array();

function ml_save(elem) {
	if (ml_updates) {
		var query = '';
		var parents = new Array();
		var i = 1;
		var j = 1;
		
		for (table in ml_updates) {
			for (id in ml_updates[table]) {
				if (query.length > 0) query += '&';
				query += 'rows['+i+'][table]=' + table + '&rows['+i+'][id]=' + id;
				
				if (ml_updates[table][id]['f_id'])
					query += '&rows['+i+'][info][f_id]=' + ml_updates[table][id]['f_id'];
				else
					query += '&rows['+i+'][info][p_id]=' + ml_updates[table][id]['p_id'];
				
				var parent = ml_updates[table][id]['parent'];
				if (parent.length > 0) 
					parents[parent] = table;
					
				i++;
			}
		}
		
		for (parent in parents) {
			var h = 1;
			var table = parents[parent];
			var list = $('#'+parent+' > li').each(
				function () {
					if (this.id.length > 0)
						query += '&l_order['+table+']['+h+']='+this.id;
						
					h++;
				}
			);
		}
		ajaxSave(query);
		ml_updates = new Array();
	}
}

function ml_disable(elem) {
	var items = $('#'+elem.parentNode.id+' > ul > ul').each(
		function() {
			var enabled = $('#'+this.id+' > #enabled');
			if (parseInt(enabled.attr('value')) > 0) {
				$(this).sortable("disable");
				enabled.attr('value',0);
				$('#dd_disabled').show();
				$('#dd_enabled').hide();
			}
			else {
				$(this).sortable("enable");
				enabled.attr('value',1);
				$('#dd_disabled').hide();
				$('#dd_enabled').show();
			}
		}
	);	
}

var delete_items = new Array();
function ml_delete(elem,li,is_sub,delete_controls) {
	if (!is_sub) {
		if (!confirm('This will delete any sub-elements. Are you sure you want to continue?'))
			return false;
	}

	var li = (li) ? $(li) : $(elem).parent();
	var ul = $(li).parent();
	var table = $(ul).children("#table").attr('value');
	var id = $(li).attr('id');
	
	if (!delete_items[table]) delete_items[table] = new Array();
	if (id.length > 0) delete_items[table][id] = id;
	
	var sub_ul = $(ul).children('ul').each(function () {
		if ($(this).children("#p_id").attr('value') == id) {
			$(this).children('li').each(function () {
				ml_delete(false,this,true);
			});
		}
	});
	
	$(li).remove();
	if (delete_controls) {
		var del_type = (table == 'admin_tabs') ? 'tab' : 'page';
		$('#del_'+del_type+'_'+id).remove();
	}
	
	if (!is_sub) {
		ajaxDeleteArray(delete_items,delete_controls);
		delete_items = new Array();
	}
	return true;
}

function deletePage(elem) {
	ml_delete(elem,false,false,true);
}
