/*##############################################################################*/
/*                                                                              */
/*   Программный модуль JavaScript layermenu.js                                 */
/*   Разработан ЗАО "Креатика", декабрь 2005 года (reklama@creatika.ru)         */
/*   Последняя редакция: 27.12.2005                                             */
/*   Программирование: Машнин Алексей (mashnin_a@mail.ru)                       */
/*   Все права защищены ©                                                       */
/*                                                                              */
/*   Подробное описание в файле layermenu.txt                                   */
/*                                                                              */
/*##############################################################################*/

	function Layermenu(sName, iAlpha) {
		var oNewimage				= document.createElement('IMG');
		oNewimage.id				= 'LayermenuMainElement';
		oNewimage.border			= 0;
		oNewimage.style.position	= 'absolute';
		oNewimage.style.zIndex		= 100;
		oNewimage.style.width		= 0;
		oNewimage.style.height		= 0;
		oNewimage.style.display		= 'none';
		if (iAlpha) iOpacity		= iAlpha;
		else iOpacity				= 100;
		oNewimage.style.filter		= 'alpha(Opacity=' + iOpacity + ')';
		oNewimage.onmousemove		= function(event) {Layermenu.showElement(event)};
		oNewimage.onmouseout		= function() {
			var oImg = document.getElementById('LayermenuMainElement');
			if (oImg) oImg.style.display='none';
		}
		document.body.insertBefore(oNewimage, document.body.firstChild);
		for (var i = 0; i < Layermenu.target.length; i++) {
			var oObject = document.getElementById(sName + i);
			if (oObject) {
				this.object = oObject;
				this.register();
			}
		}
	}
	
	Layermenu.count = 0;
	Layermenu.target = new Array();
	
	Layermenu.prototype.register = function() {
		var sId					= 'layermenuobject' + Layermenu.count;
		var iNum				= Layermenu.count;
		this.object.id			= sId;
		this.object.onmouseover	= function(){Layermenu.show('layermenuobject', iNum)};
		Layermenu.count++;
	}
	
	Layermenu.show = function(sName, iNum) {
		var oThis					= document.getElementById(sName + iNum);
		var oImg					= document.getElementById('LayermenuMainElement');
		if (oImg && oThis) {
			oImg.src				= Layermenu.target[iNum][0];
			oImg.style.width		= Layermenu.target[iNum][2];
			oImg.style.height		= Layermenu.target[iNum][3];
			if (Layermenu.target[iNum][1]) {
				oImg.style.cursor	= (document.all) ? 'hand' : 'pointer';
				var sHref			= Layermenu.target[iNum][1];
				oImg.onclick		= function() {
					window.location.href = sHref;
				}
			} else {
				oImg.style.cursor	= '';
				oImg.onclick		= function() {};
			}
			oImg.style.display		= '';
			var pos = Layermenu.absolutePosition(oThis);
			if (document.all) {
				pos.x += 2;
				pos.y += 2;
				var margin = 20;
				if (document.body.style.margin)	margin = parseInt(document.body.style.marginLeft) + parseInt(document.body.style.marginRight);
				var x = document.body.offsetWidth + document.body.scrollLeft - margin;
			} else {
				var margin = 16;
				if (document.body.style.margin)	margin = parseInt(document.body.style.marginLeft) + parseInt(document.body.style.marginRight);
				var x = document.body.offsetWidth + window.pageXOffset + margin;
			}
			if (x < pos.x + Layermenu.target[iNum][2])
				pos.x -= Layermenu.target[iNum][2] - x + pos.x;
			oImg.style.left			= pos.x;
			oImg.style.top			= pos.y;
		}
	}
	
	Layermenu.absolutePosition = function(oObject) {
		var oPos = {x : oObject.offsetLeft, y : oObject.offsetTop};
		if (oObject.offsetParent) {
			var oTemp = Layermenu.absolutePosition(oObject.offsetParent);
			oPos.x += oTemp.x;
			oPos.y += oTemp.y;
		}
		return oPos;
	}
	
	Layermenu.showElement = function(oEvent) {
		for (var i = 0; i < Layermenu.count; i++) {
			var oImg = document.getElementById('layermenuobject' + i);
			if (oImg) {
				var oPos		= Layermenu.absolutePosition(oImg);
				var oArea		= {x : oPos.x, y : oPos.y, w : oImg.offsetWidth, h : oImg.offsetHeight};
				XYPos = Layermenu.getEventposition(oEvent);
				if ((XYPos.x > oArea.x) && ((XYPos.x < oArea.x + oArea.w)) && (XYPos.y > oArea.y) && ((XYPos.y < oArea.y + oArea.h))) Layermenu.show('layermenuobject', i);
			}
		}
	}
	
	Layermenu.getEventposition = function(oEvent) {
		var oPos = {x : 0, y : 0};
		if (document.all) {
			oPos.x	= event.clientX + document.body.scrollLeft;
			oPos.y	= event.clientY + document.body.scrollTop;
		} else {
			oPos.x	= oEvent.pageX;
			oPos.y	= oEvent.pageY;
		}
		return oPos;
	}