/** 
 * PoiDDSource.js
 * 
 */

var Dom = YAHOO.util.Dom;
var Anim = YAHOO.util.Anim;
var Motion = YAHOO.util.Motion;
var Event = YAHOO.util.Event;
var DDM = YAHOO.util.DragDropMgr;

//**********************************************
// PoiDDSourceApp.
//**********************************************
PoiDDSourceApp = {
	init: function(clsName) {
		var Pois = Dom.getElementsByClassName(clsName);
		//** Init Poi DD Item.
		for (var i=0; i<Pois.length; i++) {
			new SourceDD(Pois[i], 'gpPoi');
		}
	}
};

//**********************************************
// custom drag and drop implementation
//**********************************************
SourceDD = function(id, sGroup, config) {

	SourceDD.superclass.constructor.call(this, id, sGroup, config);

	this.goingUp = false;
	this.lastY = 0;
};

YAHOO.extend(SourceDD, YAHOO.util.DDProxy, {

	startDrag: function(x, y) {
		
		if (Dom.get('m_my_content')) MyMoveTabView.set('activeIndex', 1);
		
		// make the proxy look like the source element
		var dragEl = this.getDragEl();
		var clickEl = this.getEl();
		
		var brickEl = clickEl.parentNode.parentNode;
		
		Dom.setStyle(brickEl, 'visibility', 'hidden');

		dragEl.innerHTML = clickEl.innerHTML;

		Dom.setStyle(dragEl, 'opacity', 0.6);
		Dom.setStyle(dragEl, 'border', '1px solid gray');
	},

	endDrag: function(e) {
		var srcEl = this.getEl();
		var proxy = this.getDragEl();
		
		var brickEl = srcEl.parentNode.parentNode;

		Dom.setStyle(proxy, 'visibility', 'hidden');
		Dom.setStyle(brickEl, 'opacity', 0);
		Dom.setStyle(brickEl, 'visibility', '');
		var a = new YAHOO.util.Anim(brickEl, {opacity: { from: 0, to: 1}}, 0.4, YAHOO.util.Easing.backIn);
		a.animate();
	},

	onDragDrop: function(e, id) {

		var destEl = Dom.get(id);
		var srcEl = this.getEl();
		
		var brickEl = srcEl.parentNode.parentNode;

		if (DDM.interactionInfo.drop.length == 1) {
			if (destEl.id == 'temp_poi_list') {

				//var destDD = DDM.getDDById(id);
				//destDD.isEmpty = false;
				//DDM.refreshCache();
				
				//** Add to Session.
				var tempEl = Dom.getElementsByClassName('showPoiDetail', 'span', brickEl)[0];
				var PoiId = tempEl.id.substring(4);
				PoiDDTargetApp.addTempPoi(PoiId);
			}
		}

	}
});
