var currentObject;
var counter;
var xmlHttp;

function windowLoaded(evt,bail)
{
	if(bail != '')
	{
		//alert(bail);
		window.location = bail;
	}
	else
	{
	//alert(bail);
	// prevent IE text selection while dragging!!! Little-known trick!
	document.body.ondrag = function () { return false; };
	document.body.onselectstart = function () { return false; };
	}
}

function getX(node)
{
	return parseInt(node.style.left);
}

function getY(node)
{
	return parseInt(node.style.top);
}
	function getWidth(node) {
	return parseInt(node.style.width);
}

function getHeight(node)
{
	return parseInt(node.style.height);
}

function setX(node,x)
{
	node.style.left = x + "px";
}

function setY(node,y)
{
	node.style.top = y + "px";
}

function Evt(evt)
{
	this.evt = evt ? evt : window.event; 
	this.source = evt.target ? evt.target : evt.srcElement;
	this.x = evt.pageX ? evt.pageX : evt.clientX;
	this.y = evt.pageY ? evt.pageY : evt.clientY;
}
	
Evt.prototype.toString = function ()
{
	return "Evt [ x = " + this.x + ", y = " + this.y + " ]";
};

Evt.prototype.consume = function ()
{
	if (this.evt.stopPropagation) {
		this.evt.stopPropagation();
		this.evt.preventDefault();
	} else if (this.evt.cancelBubble) {
		this.evt.cancelBubble = true;
		this.evt.returnValue  = false;
	}
};
	
Evt.addEventListener = function (target,type,func,bubbles)
{
	if (document.addEventListener) {
		target.addEventListener(type,func,bubbles);
	} else if (document.attachEvent) {
		target.attachEvent("on"+type,func,bubbles);
	} else {
		target["on"+type] = func;
	}
};

Evt.removeEventListener = function (target,type,func,bubbles)
{
	if (document.removeEventListener) {
	target.removeEventListener(type,func,bubbles);
	} else if (document.detachEvent) {
		target.detachEvent("on"+type,func,bubbles);
	} else {
		target["on"+type] = null;
	}
};

function dragPress(evt)
{
	evt = new Evt(evt);
	box = evt.source;
	document.getElementById("sending").innerHTML = "Dragging...";
	deltaX = evt.x - getX(box);
	deltaY = evt.y - getY(box);
	Evt.addEventListener(document,"mousemove",dragMove,false);
	Evt.addEventListener(document,"mouseup",dragRelease,false);
}
	
function dragMove(evt)
{
	evt = new Evt(evt);
	setX(box,evt.x - deltaX);
	setY(box,evt.y - deltaY);
	evt.consume();
}
	
function dragRelease(evt)
{
	evt = new Evt(evt);
	n = evt.source.id;
	if (n != '')
	{
		//alert(box.id);
		n = n.replace(/[^\d]*(\d+)/, '$1');
		y = document.getElementById(box.id).style.top;
		x = document.getElementById(box.id).style.left;
		sender(n,'','',x,y,'position');
		document.getElementById("sending").innerHTML = "Done.";
	}
	Evt.removeEventListener(document,"mousemove",dragMove,false);
	Evt.removeEventListener(document,"mouseup",dragRelease,false);
	
}



function login(name)
{
	//alert(name);
	if(name != '' && name != 'Your name here')
	{
		xmlHttp=GetXmlHttpObject();
		var url="login.php?sid="+Math.random();
		xmlHttp.open("POST",url,false);
		xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlHttp.send("name="+name);
		//alert(xmlHttp.responseText);
		window.location = './prog.php';
	}
	else
	{
		alert('Please enter a name!');
		document.getElementById("name").value = '';
		document.getElementById("name").focus();
	}
}

function popupEditor(e, target, num)
{
	target = document.getElementById(target);
	target.style.visibility = "visible";
	target.style.left = e.clientX + 'px';
	target.style.top = e.clientY + 'px';
	document.getElementById("newTitle").focus();
	currentObject = num;
	//alert(num);
	document.getElementById("sending").innerHTML = "Retrieving...";
	document.getElementById("newTitle").value = getter('title',num,'');
	document.getElementById("newText").value = getter('content',num,'');
	document.getElementById("sending").innerHTML = "Editing...";
}

function hideEditor()
{
	title = document.getElementById("newTitle").value;
	text = document.getElementById("newText").value;
	theParent = document.getElementById("note" + currentObject);
	
	document.getElementById("sending").innerHTML = "Sending...";
	
	document.getElementById("editor").style.visibility = "hidden";
	document.getElementById("newText").value = '';
	document.getElementById("newTitle").value = '';
		
	sender(currentObject,title,text,theParent.style.left,theParent.style.top,'normal');
	
	document.getElementById("noteTitle" + currentObject).innerHTML = getter('title',currentObject,'true');
	document.getElementById("noteText" + currentObject).innerHTML = getter('content',currentObject,'true');
}

function newNote()
{
	//alert(counter);
	newCode = "<div id=\"note" + counter + "\" class=\"box\" style=\"position:absolute; left:50px; top:50px;\" onmousedown=\"dragPress(event);\">\n<div class=\"noteTitle\" id=\"noteTitle" + counter + "\"><b>Title of the Note</b></div><div class=\"noteText\" id=\"noteText" + counter + "\">Content of the note!</div><div class=\"deleteButton\" onclick=\"sender(" + counter + ",'','','','','delete');\">Delete</div><div class=\"editButton\" onclick=\"popupEditor(event,\'editor\',\'" + counter + "\')\">Edit</div>\n</div>";
	counter = counter + 1;
	document.getElementById("body").innerHTML = document.getElementById("body").innerHTML + newCode;
}

function GetXmlHttpObject()
{ 
	var objXMLHttp=null
	if (window.XMLHttpRequest)
	{
		objXMLHttp=new XMLHttpRequest()
	}
	else if (window.ActiveXObject)
	{
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
return objXMLHttp
} 

function sender(n,t,c,x,y,m)
{
	if(m == 'delete')
	{
		if (confirm("Are you sure you wish to delete this note?"))
		{
			document.getElementById('note'+n).style.visibility = "hidden";
		}
		else
		{
			return;
		}
	}

	t = t.replace(/&/g, "#amp;");
	c = c.replace(/&/g, "#amp;");

	xmlHttp=GetXmlHttpObject();
	var url="giver.php";
	url=url+"?n="+n+"&x="+x+"&y="+y+"&m="+m;
	url=url+"&sid="+Math.random();
	xmlHttp.open("POST",url,false);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.send("t="+t+"&c="+c);
	//alert(xmlHttp.responseText);
	document.getElementById("sending").innerHTML = xmlHttp.responseText;
}

function getter(part,id,br)
{
	xmlHttp=GetXmlHttpObject();
	var url="getter.php";
	url=url+"?m="+part+"&n="+id+"&br="+br;
	url=url+"&sid="+Math.random();
	xmlHttp.open("GET",url,false);
	xmlHttp.send(null);
	return xmlHttp.responseText;
}

function clearBox(Box)
{
	if (Box.value == Box.defaultValue)
	{
	Box.value="";
	}
}
