/**
 *
 * Fonction destinée au div à utilisation unique (popup).
 * Cette fonction va nous permettre de rendre notre "popup" drag & droppable sur toute la page.
 * Elle va nous permettre également de pouvoir retaillé l'élément sur sa hauteur.
 */

function TotalDrag(div_id, drop_id, resize_id, resize_what)
{
	var agt=navigator.userAgent.toLowerCase();
	var is_opera = (agt.indexOf("opera") != -1);
	var is_konq = (agt.indexOf('konqueror') != -1);
	var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
	var is_khtml = (is_safari || is_konq);
	var is_ie = ((agt.indexOf('msie') != -1)&&(!is_opera)&&(!is_khtml));
	
	
	YAHOO.example.DDResize = function(panelElId, handleElId, sGroup, config) { 
	YAHOO.example.DDResize.superclass.constructor.call(this, panelElId, sGroup, config);
	if (handleElId) { 
	this.setHandleElId(handleElId); 
	} 
	};
	 
	YAHOO.extend(YAHOO.example.DDResize, YAHOO.util.DragDrop, { 
	
		onMouseDown: function(e) { 
			var panel = this.getEl();
			
			this.startWidth = panel.offsetWidth; 
			this.startHeight = panel.offsetHeight;
			
			this.startPos = [YAHOO.util.Event.getPageX(e), 
			YAHOO.util.Event.getPageY(e)]; 
		}, 
		
		onDrag: function(e) { 
			var newPos = [YAHOO.util.Event.getPageX(e), 
			YAHOO.util.Event.getPageY(e)]; 
			
			
			var offsetX = newPos[0] - this.startPos[0];
			var offsetY = newPos[1] - this.startPos[1];
			
			var newWidth = Math.max(this.startWidth + offsetX, 10); 
			var newHeight = Math.max(this.startHeight + offsetY, 10);
			
			 
			var panel = this.getEl();
			
			
			if(resize_what == '1')
			{
				panel.style.width = newWidth + "px";
			}
			else if(resize_what == '2')
			{
				panel.style.height = newHeight + "px"; 
			}
			else
			{
				panel.style.width = newWidth + "px";
				panel.style.height = newHeight + "px"; 
			}
		
		
		}
	}); 
	 
	(function() { 
	var dd, dd2, dd3; 
	YAHOO.util.Event.onDOMReady(function() { 
	// put the resize handle and panel drag and drop instances into different 
	// groups, because we don't want drag and drop interaction events between 
	// the two of them.
	
	if(resize_id != '')
	{
		dd = new YAHOO.example.DDResize(div_id, resize_id, "panelresize");
	}
	
	dd2 = new YAHOO.util.DD(div_id, "paneldrag");
	
	// Configure one or more child element as a drag handle
	
	if(is_ie)
	{
		if(resize_id == '')
		{
			dd2.setHandleElId(drop_id);
		}
	}
	else
	{
		dd2.setHandleElId(drop_id);
	}
	
	// addInvalidHandleid will make it so a mousedown on the resize handle will  
	// not start a drag on the panel instance.
	
	if(resize_id != '')
	{  
		dd2.addInvalidHandleId(resize_id);
	}
	
	}); 
	})();
}