// Code for floating menus (personalbar, objectmenu and actionmenu)
//
//

// Script Source: CodeLifter.com
// Copyright 2003
// Do not remove this header

var isIE = document.all;
var ddEnabled = false;
var ddFloater = null;
var floaters = new Array("personaltools", "objectmenu", "statusmenu");


function ddInit(e)
{
	topDog = "HTML";
	whichDog = document.getElementById("floater");
	hotDog = isIE ? event.srcElement : e.target;
	while (hotDog.className.search(/floaterTitle/i) == -1 && hotDog.tagName != topDog) {
		hotDog = hotDog.parentNode;
	}
	if (hotDog.className.search(/floaterTitle/i) != -1) {
		hotDog.className = "floaterTitle drag";
		while (hotDog.id.search(/floater-/i) == -1) {
			hotDog = hotDog.parentNode;
		}
		ddFloater = hotDog;
		//ddFloater.style.opacity = 0.9;
		offsetx = isIE ? event.clientX : e.clientX;
		offsety = isIE ? event.clientY : e.clientY;
		nowX = parseInt(hotDog.style.left);
		nowY = parseInt(hotDog.style.top);
		ddEnabled = true;
		document.onmousemove = dd;
		ddFloater.style.zIndex = 10000;
	}
}


function ddStop(e)
{
	if (!ddEnabled) return;
	ddEnabled = false;
	var floaterTitle = ddFloater.getElementsByTagName('h5');
	floaterTitle[0].className = "floaterTitle";
	var floatLeft = isIE ? nowX + event.clientX - offsetx : nowX + e.clientX - offsetx;
	var floatTop = isIE ? nowY + event.clientY - offsety : nowY + e.clientY - offsety;
	createCookie(ddFloater.id + "x", parseInt(floatLeft), 365);
	createCookie(ddFloater.id + "y", parseInt(floatTop), 365);
	ddFloater.style.zIndex = ddFloater.style.zIndex - 1;
	for (var i=0; i<floaters.length; i++) {
		var floater = document.getElementById("floater-" + floaters[i]);
		if (floater != null) 
			if (ddFloater.id != floater.id) floater.style.zIndex--;
	}
	//ddFloater.style.opacity = 1;
	ddFloater = null;
}


function dd(e)
{
	if (!ddEnabled) return;
	var floatLeft = isIE ? nowX + event.clientX - offsetx : nowX + e.clientX - offsetx;
	var floatTop = isIE ? nowY + event.clientY - offsety : nowY + e.clientY - offsety;
	if (floatLeft < 0) floatLeft = 0;
	if (floatTop < 0) floatTop = 0;
	ddFloater.style.left = floatLeft + "px";
	ddFloater.style.top = floatTop + "px";
	return false;
}


document.onmousedown = ddInit;
document.onmouseup = ddStop;


function showFloater(srcFloater)
{
	var n = srcFloater;
	// Search for floater's content container in order to minimize/maximize it
	while (n.nodeName.toLowerCase() != "div") {
		n = n.nextSibling;
	}
	if (n.style.display == "") n.style.display = "none";
	else n.style.display = "";
	var content = n;

	// Find floater's outermost container in order to change its opacity
	n = srcFloater;
	while (n.className != "floatMenuShade") {
		n = n.parentNode;
	}
	if (content.style.display == "none") n.style.opacity = 0.6;
	else n.style.opacity = 1;
}


function resetFloaters()
{
	var floaterX = new Array(5, 5, 5);
	var floaterY = new Array(30, 371, 235);
	for (var i=0; i<floaters.length; i++) {
		var floater = document.getElementById("floater-" + floaters[i]);
		if (floater != null) {
			floater.style.left = floaterX[i] + "px";
			floater.style.top = floaterY[i] + "px";
			createCookie(floater.id + "x", floaterX[i], 365);
			createCookie(floater.id + "y", floaterY[i], 365);
		}
	}
}


function setFloaters()
{
   	if (! document.getElementById) return false;
	for (var i=0; i<floaters.length; i++) {
		var floater = document.getElementById("floater-" + floaters[i]);
		if (floater != null) {
			var floatLeft = readCookie("floater-" + floaters[i] + "x");
			var floatTop = readCookie("floater-" + floaters[i] + "y");
			if (floatLeft != null) floater.style.left = floatLeft + "px";
			if (floatTop != null) floater.style.top = floatTop + "px";
			floater.style.display = '';
		}
	}
}


registerPloneFunction(setFloaters);