<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>




<SCRIPT language=javascript>

var theobject = null; //This gets a value as soon as a resize start

function resizeObject() {
	this.el        = null; //pointer to the object
	this.dir    = "";      //type of current resize (n, s, e, w, ne, nw, se, sw)
	this.grabx = null;     //Some useful values
	this.graby = null;
	this.width = null;
	this.height = null;
	this.left = null;
	this.top = null;
}
	

//Find out what kind of resize! Return a string inlcluding the directions
function getDirection(el) {
	var xPos, yPos, offset, dir;
	dir = "";

	xPos = window.event.offsetX;
	yPos = window.event.offsetY;

	offset = 8; //The distance from the edge in pixels

	if (yPos<offset) dir += "n";
	else if (yPos > el.offsetHeight-offset) dir += "s";
	if (xPos<offset) dir += "w";
	else if (xPos > el.offsetWidth-offset) dir += "e";

	return dir;
}


function doDown() {

var el = getReal(event.srcElement, "className", "note");


	if (el == null) {
		theobject = null;
		return;
	}		

	dir= getDirection(el);
	if (dir == "") return;

	theobject = new resizeObject();
		
	theobject.el = el;
	theobject.dir = dir;

	theobject.grabx = window.event.clientX;
	theobject.graby = window.event.clientY;
	theobject.width = el.offsetWidth;
	theobject.height = el.offsetHeight;
	theobject.left = el.offsetLeft;
	theobject.top = el.offsetTop;

	window.event.returnValue = false;
	window.event.cancelBubble = true;
}



function doMove() {
	var el, xPos, yPos, str, xMin, yMin;
	xMin = 8; //The smallest width possible
	yMin = 8; //             height

el = getReal(event.srcElement, "className", "note");

	if (el.className == "note") {
		str = getDirection(el);
	//Fix the cursor	
		if (str == "") str = "default";
		else str += "-resize";
		el.style.cursor = str;
	}
	
//Dragging starts here


	if(theobject != null) {



	
		if (dir.indexOf("e") != -1){
			theobject.el.style.width = Math.max(xMin, theobject.width + 

window.event.clientX - theobject.grabx) + "px";

$.get('update_width.php',{	 
				 

		 
width : theobject.el.style.width,
				  id	:theobject.el.id
			});

}
		if (dir.indexOf("s") != -1){
			theobject.el.style.height = Math.max(yMin, theobject.height + 

window.event.clientY - theobject.graby) + "px";

//document.getElementById("demo").style.height=theobject.height + 

window.event.clientY;
$.get('update_height.php',{	 
				 

		 
height : theobject.el.style.height,
				  id	:theobject.el.id
			});

}

		if (dir.indexOf("w") != -1) {
			



theobject.el.style.left = Math.min(theobject.left + 

window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) + 

"px";
			


theobject.el.style.width = Math.max(xMin, theobject.width - 

window.event.clientX + theobject.grabx) + "px";

$.get('update_width.php',{	 
				 

		 
width : theobject.el.style.width,
				  id	:theobject.el.id
			});
		}
		if (dir.indexOf("n") != -1) {
			theobject.el.style.top = Math.min(theobject.top + 

window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) + 

"px";


			theobject.el.style.height = Math.max(yMin, theobject.height - 

window.event.clientY + theobject.graby) + "px";


$.get('update_height.php',{	 
				 

		 
height : theobject.el.style.height,
				  id	:theobject.el.id
			});


		}
		




		window.event.returnValue = false;
		window.event.cancelBubble = true;





	} 




}




function doUp() {


	if (theobject != null) {
		theobject = null;
	}




}

function getReal(el, type, value) {
	temp = el;
if (temp.tagName == "H3"){

doUp();

}

	while ((temp != null) && (temp.tagName != "BODY")) {
		if (eval("temp." + type) == value) {
			el = temp;
			return el;
		}

		temp = temp.parentElement;
	}
	return el;
}

document.onmousedown = doDown;
document.onmouseup   = doUp;
document.onmousemove = doMove;



</SCRIPT>


<SCRIPT language=javascript>
// JavaScript Document



$(function(){
	var tmp;
	
	$('.note').each(function(){
		tmp = $(this).css('z-index');
		if(tmp>zIndex) zIndex = tmp;
	})


 make_draggable($('.note'));
});

var zIndex = 0;
function make_draggable(elements){


	elements.draggable({

 handle: "h3",



		opacity: 0.8,
		containment:'parent',
		start:function(e,ui){ ui.helper.css('z-index',++zIndex); },
		stop:function(e,ui){
			$.get('update_position.php',{
				  x		: ui.position.left,
				  y		: ui.position.top,
				  z		: zIndex,

				  id	: ui.helper.context.id

			});


		}
	});
}

</SCRIPT>
