
var PersonElement = function (newnaiNum, hoverId, selfId, otherId, btId) {
	PersonElement.currentUserId = newnaiNum;
	PersonElement.personHover = YAHOO.util.Dom.get(hoverId);
	PersonElement.selfPanel = YAHOO.util.Dom.get(selfId);
	PersonElement.otherPanel = YAHOO.util.Dom.get(otherId);
	PersonElement.headImg = YAHOO.util.Dom.getElementsByClassName(PersonElement.IMG_CLASS, "IMG", PersonElement.personHover)[0];
	PersonElement.button = YAHOO.util.Dom.get(btId);
	YAHOO.util.Event.on(PersonElement.button, "click", function () {
		if (YAHOO.util.Dom.hasClass(this, "up")) {
			document.body.onclick = "";
			YAHOO.util.Dom.removeClass(this, "up");
			YAHOO.util.Dom.setStyle(PersonElement.currentPanel, "display", "none");
			PersonElement.islock = false;
		} else {
			YAHOO.util.Dom.addClass(this, "up");
			YAHOO.util.Dom.setStyle(PersonElement.currentPanel, "display", "block");
			PersonElement.islock = true;
			window.setTimeout(function () {
				document.body.onclick = function () {
					PersonElement.removeHidden();
					PersonElement.clear();
					PersonElement.islock = false;
					document.body.onclick = "";
				};
			}, 20);
		}
	});
	PersonElement.headImg.onmouseover = function () {
		if (PersonElement.islock) {
			return;
		}
		PersonElement.removeHidden();
	};
	PersonElement.headImg.onmouseout = function () {
		if (PersonElement.islock) {
			return;
		}
		PersonElement.hiddenTime = window.setTimeout(function () {
			PersonElement.removeHidden();
			PersonElement.clear();
		}, 500);
	};
	PersonElement.button.onmouseover = function () {
		if (PersonElement.islock) {
			return;
		}
		PersonElement.removeHidden();
	};
	PersonElement.button.onmouseout = function () {
		if (PersonElement.islock) {
			return;
		}
		PersonElement.hiddenTime = window.setTimeout(function () {
			PersonElement.removeHidden();
			PersonElement.clear();
		}, 500);
	};
	document.body.insertBefore(PersonElement.personHover, document.body.childNodes[0]);
};
PersonElement.IMG_CLASS = "person-hover-img";
PersonElement.personHover = null;
PersonElement.selfPanel = "";
PersonElement.otherPanel = "";
PersonElement.selfPanel = "";
PersonElement.headImg = "";
PersonElement.button = "";
PersonElement.currentUserId = 0;
PersonElement.currentPanel = null;
PersonElement.islock = false;
PersonElement.target = null;
PersonElement.showTime = null;
PersonElement.hiddenTime = null;
PersonElement.showUserId = 0;
PersonElement.clear = function () {
	PersonElement.islock = false;
	YAHOO.util.Dom.removeClass(PersonElement.button, "up");
	YAHOO.util.Dom.setStyle(PersonElement.currentPanel, "display", "none");
	YAHOO.util.Dom.setStyle(PersonElement.personHover, "display", "none");
	YAHOO.util.Dom.setStyle(PersonElement.personHover, "z-index", "0");
};
PersonElement.removeHidden = function () {
	if (PersonElement.hiddenTime != null) {
		window.clearTimeout(PersonElement.hiddenTime);
		PersonElement.hiddenTime = null;
	}
};
PersonElement.delayTimer = function (obj, newnaiNum) {
	if (obj.onmouseout == undefined) {
		obj.onmouseout = function () {
			if (PersonElement.showTime != null) {
				window.clearTimeout(PersonElement.showTime);
				PersonElement.showTime = null;
			}
			if (PersonElement.hiddenTime != null) {
				window.clearTimeout(PersonElement.hiddenTime);
				PersonElement.hiddenTime = null;
			}
		};
	}
	var delay = 500;
	if (PersonElement.islock) {
		return;
	}
	if (PersonElement.hiddenTime != null) {
		window.clearTimeout(PersonElement.hiddenTime);
		PersonElement.hiddenTime = null;
		delay = 10;
	}
	PersonElement.showTime = null;
	if (newnaiNum == PersonElement.currentUserId) {
		PersonElement.currentPanel = PersonElement.selfPanel;
	} else {
		PersonElement.currentPanel = PersonElement.otherPanel;
	}
	PersonElement.showUserId = newnaiNum;
	PersonElement.target = obj;
	PersonElement.showTime = window.setTimeout(function () {
		PersonElement.fillLink();
		YAHOO.util.Dom.setStyle(PersonElement.personHover, "z-index", "100000");
		YAHOO.util.Dom.setStyle(PersonElement.personHover, "display", "block");
		PersonElement.headImg.src = obj.src;
		PersonElement.headImg.parentNode.href = obj.parentNode.href;
		var point0 = YAHOO.util.Dom.getXY(obj);
		var point1 = YAHOO.util.Dom.getXY(PersonElement.personHover);
		var point2 = YAHOO.util.Dom.getXY(PersonElement.headImg);
		var x = point0[0] + point1[0] - point2[0];
		var y = point0[1] + point1[1] - point2[1];
		YAHOO.util.Dom.setStyle(PersonElement.personHover, "left", x + "px");
		YAHOO.util.Dom.setStyle(PersonElement.personHover, "top", y + "px");
		PersonElement.hiddenTime = null;
		PersonElement.showTime = null;
	}, delay);
};
PersonElement.fillLink = function () {
	var links = PersonElement.currentPanel.getElementsByTagName("A");
	for (var i = 0; i < links.length; i++) {
		var link = PersonElement.currentPanel.getElementsByTagName("A")[i];
		if (link.saveHref == undefined) {
			link.saveHref = link.href;
		}
		link.href = link.saveHref + PersonElement.showUserId;
	}
};

