function shelfDragEnd2(element) {
          element._opacity = Element.getOpacity(element);
          Draggable._dragging[element] = true;
          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); 
        }
		
function shelfDragStart(element){
		//alert("starting to drag");
		Element.setOpacity(element,.7);
		Draggable._dragging[element] = true;
		Element.addClassName(element,"hovering");
}
function shelfDragEnd(element){
        //var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0;
        /*new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, 
          queue: {scope:'_draggable', position:'end'},
          afterFinish: function(){ 
            Draggable._dragging[element] = false 
          }		  
        })*/
		Element.setOpacity(element,1);
		Draggable._dragging[element] = false;
		Element.removeClassName(element,"hovering");
		}
function outerHTML(e){
	html = '<' + e.tagName + ' id="' + e.id + '" class="' + e.className + '">' + e.innerHTML + '</' + e.tagName + '>';
	return html
}

function moveToShelf(id){
  console.log("moving to shelf", id);
	e = $(id)
	Element.remove(e)
	new Insertion.Top('list_wish',outerHTML(e))
	// Delete the add button
	Element.remove(id + "_add")
	Sortable.destroy("list_wish")
	createSortable("list_wish")
	updateOrder()
}

function updateOrder(){
	new Ajax.Request('/shelf/update_order/', 
		{asynchronous:true, 
		evalScripts:true, 
		onComplete:function(request){eval(request.responseText)}, 
		parameters:Sortable.serialize("list_wish")})
}

function createSortable(id){
Sortable.create(id, 
	{containment:['list_wish','list_read','list_reading','search-results'], 
	dropOnEmpty:true, 
	endeffect:shelfDragEnd, 
	onUpdate:updateOrder,
	//onUpdate:function(){
		//new Ajax.Request('/shelf/update_order/1', 
			//{asynchronous:true, evalScripts:true, onComplete:function(request){eval(request.responseText)}, parameters:Sortable.serialize("list_wish")})}, 
	only:'shelf-item', 
	starteffect:shelfDragStart, 
	tag:'div'});
}
