function savePosition(layout) {

	//alert(layout);
        var url = '/bin/users/box/saveposition.php';
        var pars = 'layout='+layout;

        var callback = {
        success: function (o) {
             //alert(o.responseText);
        },
        failure: function(o) {
            //alert('Sorry. There was an error.');
        }
        }
        YAHOO.util.Connect.asyncRequest('POST', url, callback, pars);

}

(function() {

var Dom = YAHOO.util.Dom;
var Event = YAHOO.util.Event;
var DDM = YAHOO.util.DragDropMgr;

//////////////////////////////////////////////////////////////////////////////
// example app
//////////////////////////////////////////////////////////////////////////////
var DDCatapulta = {
	init: function() {
		new YAHOO.util.DDTarget("homecoluno"); 
		new YAHOO.util.DDTarget("homecoldue"); 
		var moduli = Dom.getElementsByClassName("draggabile","div");
		for (var i=0;i<moduli.length;i++) {
			new DDList(moduli[i]);
		}
		this.refresh();
	},
	refresh: function() {
		var h1 = 0;
		var h2 = 0;
		var m = 0;
		var moduli = Dom.getElementsByClassName("draggabile","div","homecoluno");
		for (var i=0;i<moduli.length;i++) {
			h1 += YAHOO.util.Region.getRegion(moduli[i]).height + 10;
		}
		var moduli = Dom.getElementsByClassName("draggabile","div","homecoldue");
		for (var i=0;i<moduli.length;i++) {
			h2 += YAHOO.util.Region.getRegion(moduli[i]).height + 10;
		}
		m = (h1 > h2)?h1:h2;
		Dom.setStyle("dragdrop","height",m + "px");
		Dom.setStyle("homecoluno","height",m + "px");
		Dom.setStyle("homecoldue","height",m + "px");
	},
	save: function() {
		var id1 = [];
		var id2 = [];
		var moduli = Dom.getElementsByClassName("draggabile","div","homecoluno");
		for (var i=0;i<moduli.length;i++) {
			id1.push(moduli[i].id);
		}
		var moduli = Dom.getElementsByClassName("draggabile","div","homecoldue");
		for (var i=0;i<moduli.length;i++) {
			id2.push(moduli[i].id);
		}
		//alert(id1.join(","));		
		//alert(id2.join(","));		
		id1.join(",");
		id2.join(",");
		savePosition(id1+'|'+id2);
	}
};

var DDList = function(id, sGroup, config) {
	DDList.superclass.constructor.call(this, id, sGroup, config);

	this.logger = this.logger || YAHOO;
	var el = this.getDragEl();
	Dom.setStyle(el, "opacity", 0.67); // The proxy is slightly transparent

	this.goingUp = false;
	this.lastY = 0;
};

YAHOO.extend(DDList, YAHOO.util.DDProxy, {
	startDrag: function(x, y) {

		var dragEl = this.getDragEl();
		var clickEl = this.getEl();
		Dom.setStyle(clickEl, "visibility", "hidden");

		dragEl.innerHTML = clickEl.innerHTML;

		Dom.addClass(dragEl, "modulo");
		Dom.setStyle(dragEl, "color", Dom.getStyle(clickEl, "color"));
		Dom.setStyle(dragEl, "backgroundColor", Dom.getStyle(clickEl, "backgroundColor"));
		Dom.setStyle(dragEl, "border", "2px solid gray");
	},

    endDrag: function(e) {	    
		var srcEl = this.getEl();
		var proxy = this.getDragEl();

		Dom.setStyle(proxy, "visibility", "");
		var a = new YAHOO.util.Motion( 
			proxy, { 
				points: { 
					to: Dom.getXY(srcEl)
				}
			}, 
			0.2, 
			YAHOO.util.Easing.easeOut 
		)
		var proxyid = proxy.id;
		var thisid = this.id;

		a.onComplete.subscribe(function() {
			Dom.setStyle(proxyid, "visibility", "hidden");
			Dom.setStyle(thisid, "visibility", "");
			DDCatapulta.refresh();
		});
		a.animate();
		DDCatapulta.save();
    },

    onDragDrop: function(e, id) {
        if (DDM.interactionInfo.drop.length === 1) {
            var pt = DDM.interactionInfo.point; 
            var region = DDM.interactionInfo.sourceRegion; 
            if (!region.intersect(pt)) {
                var destEl = Dom.get(id);
                var destDD = DDM.getDDById(id);
                destEl.appendChild(this.getEl());
                destDD.isEmpty = false;
                DDM.refreshCache();
            }
        }
    },

    onDrag: function(e) {
        var y = Event.getPageY(e);

        if (y < this.lastY) {
            this.goingUp = true;
        } else if (y > this.lastY) {
            this.goingUp = false;
        }

        this.lastY = y;
    },

    onDragOver: function(e, id) {
        var srcEl = this.getEl();
        var destEl = Dom.get(id);

        //if (destEl.className.toLowerCase() == "draggabile") {
	if (Dom.hasClass(destEl,"draggabile")) {
            var orig_p = srcEl.parentNode;
            var p = destEl.parentNode;

            if (this.goingUp) {
                p.insertBefore(srcEl, destEl); // insert above
            } else {
                p.insertBefore(srcEl, destEl.nextSibling); // insert below
            }
            DDM.refreshCache();
        }
    }
});

Event.onDOMReady(DDCatapulta.init, DDCatapulta, true);

})();

