$(document).ready (function () {
	
	var columns = $('#content #left').add('#content .center').add('#content #right');
	var content = $('#content .content');
	
	var height_name = 'min-height';
	if ($.browser.msie && $.browser.version < '7')
	{
		height_name = 'height';
	}
	columns.css(height_name, content.height());
	
	content.find('.box').draggable({ 
		helper: function () { 
			var box = $(this);
			return $('<div class="box stuff"></div>')
				.css('height', box.height()-10)
				.insertBefore(box)
				.get(0);
			}, 
		revert: false,
		// grid: [$.browser.msie ? 304 : 302,10], 
		containment: $('#content'), 
		cursor: 'move',
		cursorAt: {top: 10, left: 20}, 
		handle: '.drag-title',
		snap: true, 
		snapMode: 'both',
		zIndex: 1000,
		start: function (ev, ui) {
			ui.helper.addClass('dragging');
			$(this).find('script:first').remove();
		},
		stop: function (ev, ui) {ui.helper.removeClass('dragging')} 
	}).each( function () {
		var box = $(this);
		box.prepend('<div class="drop_stuff"></div>');
		box.find('div.drop_stuff').css('height', box.height());
	});
		
	content.find('.box')
		.droppable({
			accept: '.box',
			greedy: true,
			tolerance: 'pointer',
			hoverClass: 'droppable-hover-box',
			drop: function(ev, ui) {
				var drop = $(this);
				var drag = ui.draggable;
				window.setTimeout(function(){drop.before(drag)}, 0);
				columns
					.removeClass('droppable-hover-column')
					.find('droppable-hover-box')
						.removeClass('droppable-hover-box');
				window.setTimeout(recalc_height, 500);
			}
		});
/*	*/	
	columns
		.droppable({
			accept: function (draggable) {
				return (draggable.hasClass('box') && $(this).find('.box:last').attr('id') != draggable.attr('id'));
			},
			greedy: true,
			tolerance: 'pointer',
			hoverClass: 'droppable-hover-column',
			drop: function(ev, ui) {
				if (ui.helper.find('.box:last').attr('id') != ui.draggable.attr('id'))
				{
					var drop = $(this);
					var drag = ui.draggable;
					window.setTimeout(function(){drop.append(drag)}, 0);
					columns
						.removeClass('droppable-hover-column')
						.find('droppable-hover-box')
							.removeClass('droppable-hover-box');
					window.setTimeout(recalc_height, 500);
				}
			}
		});
		
	content.find('.close a').click( function () {
		$(this).parents('.box:first').remove();
		recalc_height();
		return false;
	});
	
	clear_utf8_msg();
	
	function recalc_height()
	{
		columns
			.css(height_name, '100px')
			.css(height_name, content.height());
			
		update_cookie();
	}
	
	function update_cookie()
	{
		var COOKIE_NAME = 'home_gadgets';
		
		var left_gadgets = 'left:';
		var right_gadgets = 'right:';
		var center_gadgets = 'center:';
		var value = '';
		
		content.find('#left .box').each( function () { left_gadgets += $(this).attr('num') + ','; });
		content.find('#right .box').each( function () { right_gadgets += $(this).attr('num') + ','; });
		content.find('.center .box').each( function () { center_gadgets += $(this).attr('num') + ','; });
		
		value = left_gadgets + '!' + right_gadgets + '!' + center_gadgets;
		
		$.cookie(COOKIE_NAME, value, { path: '/', expires: 365 });
	}
	
	function clear_utf8_msg()
	{
		if ($.browser.msie)
		{
			content.find('div.google_wrap table.ig_reset').each( function () { $(this).find('td:last').empty();}) 
		}
	}	

});

