(function($){
	var updateUpDown = function(sortable){
		$('dl:not(.ui-sortable-helper)', sortable)
			.removeClass('first').removeClass('last')
			.find('.up, .down').removeClass('disabled').end()
			.filter(':first').addClass('first').find('.up').addClass('disabled').end().end()
			.filter(':last').addClass('last').find('.down').addClass('disabled').end().end();
	};
	
	var moveUpDown = function(){
		var link = $(this),
			dl = link.parents('dl'),
			prev = dl.prev('dl'),
			next = dl.next('dl');
	
		if(link.is('.up') && prev.length > 0)
			dl.insertBefore(prev);
	
		if(link.is('.down') && next.length > 0)
			dl.insertAfter(next);
	
		updateUpDown(dl.parent());
	};
/*	
	var addItem = function(){
		var sortable = $(this).parents('.ui-sortable');
		var options = '<span class="options"><a class="up">up</a><a class="down">down</a></span>';
		var tpl = '<dl class="sort"><dt>{name}' + options + '</dt><dd>{desc}</dd></dl>';
		var html = tpl.replace(/{name}/g, 'Dynamic name :D').replace(/{desc}/g, 'Description');
	
		sortable.append(html).sortable('refresh').find('a.up, a.down').bind('click', moveUpDown);
		updateUpDown(sortable);
	};
*/	
/*	var emptyTrashCan = function(item){
		item.remove();
	};
*/	
	var sortableChange = function(e, ui){
		if(ui.sender){
			var w = ui.element.width();
			ui.placeholder.width(w);
			ui.helper.css("width",ui.element.children().width());
			//alert(ui.element[0].id);
			sendLayout();
		}
	};
	
	var sortableUpdate = function(e, ui){
		
		//alert('id:'+ui.element[0].id+'  ,'+ui.item.id);
		
		/*if(ui.element[0].id == 'trashcan'){
			emptyTrashCan(ui.item);
		} else {*/
			updateUpDown(ui.element[0]);
			if(ui.sender)
				updateUpDown(ui.sender[0]);
		/*}*/
		sendLayout();
		
	};
	
	$(document).ready(function(){
							   
		var els = ['#kaire', '#centr-acce-sort', '#desine'];
		//var els = ['#kaire', '#desine'];
		var $els = $(els.toString());
		
		//$('h2', $els.slice(0,-1)).append('<span class="options"><a class="add">add</a></span>');
		//$('dt', $els).append('<span class="options"><a class="up">up</a><a class="down">down</a></span>');
		
		//$('a.add').bind('click', addItem);
		//$('a.up, a.down').bind('click', moveUpDown);
		
		$els.each(function(){
			updateUpDown(this);
		});
		
		$els.sortable({
			items: '.sort-blok',
			handle: '.sort-head',
			//accept: '.sort-blok',
			cursor: 'move',
			//cursorAt: { top: 0, left: 0 },
			//opacity: 0.8,
			//helper: 'clone',
			appendTo: 'body',
			//accept: ['.sort-blok'].toString(),
			//placeholder: 'clone',
			//placeholder: 'placeholder',
			//ghosting: true,
			floats: true,
			placeholder: "vietablokui", 
			helperclass: 'vietablokui',
			//fit:true,
			tolerance:'pointer',
			connectWith: els,
			start: function(e,ui) {
				ui.helper.css(  { width: ui.item.width() }  );
				//ui.placeholder.css(  { width: ui.item.width() }  );
				//ui.placeholder.css (  { width: ui.item.width(), background: "blue" }  );
				//$.iAutoscroller.start(this, document.getElementsByTagName('body'));
				//hideflash();
			},
			change: sortableChange,
			update: sortableUpdate
		});
		
	
		// n 2 start 
		var els = ['#centr-acce-sort'];
		//var els = ['#kaire', '#desine'];
		var $els = $(els.toString());
		
		$els.each(function(){
			updateUpDown(this);
		});
		
		
		
		$els.sortable({
			items: '.sort-blok, .sort-blok-2x',
			handle: '.sort-head, .sort-head-2x',
			//accept: '.sort-blok',
			cursor: 'move',
			//cursorAt: { top: 0, left: 0 },
			containment: ['#centr-acce-sort'].toString(), //veikia
			//opacity: 0.8,
			//helper: 'clone',
			appendTo: '#centr-acce-sort',
			//accept: ['.sort-blok'].toString(),
			//placeholder: 'clone',
			//placeholder: 'placeholder',
			//ghosting: true,
			floats: true,
			placeholder: "vietablokui", 
			helperclass: 'vietablokui',
			//fit:true,
			tolerance:'pointer',
			connectWith: els,
			onStart: function(e,ui) {
				ui.helper.css(  { width: ui.item.width() }  );
				//ui.placeholder.css (  { width: ui.item.width() }  );
				//$.iAutoscroller.start(this, document.getElementsByTagName('body'));
				//hideflash();
			},
			onStop : function()
				{
					//$.iAutoscroller.stop();
				},
			change: sortableChange,
			update: sortableUpdate
		});
		// n 2 end
		
		
	});
	
	//function hideflash() { var flash = document.getElementsByTagName('embed'); for (var i = 0; i < flash.length; i++) { flash[i].style.display = 'none'; } }
	
	//function showflash() { var flash = document.getElementsByTagName('embed'); for (var i = 0; i < flash.length; i++) { flash[i].style.display = 'block'; } }

	
   
    	
	
})(jQuery);
