
	function ItemObject( name, type ) {
		this.name = name;
		this.kl_object = layer(name);
		this.type = type;
	}

	function PopupObject( name, parent_object, parent_item, parent_item_type, halign, valign, xoffset, yoffset, onmouseover, onmouseout) {
		this.name = name;
		this.kl_object = layer(name);
		this.parent = new ItemObject(parent_item, parent_item_type);
		this.parent_object = parent_object;
		this.halign = halign;
		this.valign = valign;
		this.xoffset = xoffset;
		this.yoffset = yoffset;
		this.onmouseover = onmouseover;
		this.onmouseout = onmouseout;
	}


	function movePopup(object) {
		if ( object == null || object == undefined ) {
			return;
		}

		kl = layer(object.parent.name);
		klc = layer(object.name);

		parent_left	= kl.getAbsoluteLeft();
		parent_top	= kl.getAbsoluteTop();
		parent_width	= kl.getWidth();
		parent_height	= kl.getHeight();

		cur_left	= klc.getAbsoluteLeft();
		cur_top		= klc.getAbsoluteTop();
		cur_width	= klc.getWidth();
		cur_height	= klc.getHeight();

		x = parent_left;
		if ( object.halign == 'same' ) 		{ x = parent_left; } 
		if ( object.halign == 'center' ) 	{ x = parent_left + parent_width/2 - cur_width/2 + 1; } 
		if ( object.halign == 'left' ) 		{ x = parent_left - cur_width + 1; } 
		if ( object.halign == 'right' ) 	{ x = parent_left + parent_width + 1; }
		x += object.xoffset;

		y = parent_top;
		if ( object.valign == 'same' ) 		{ y = parent_top; } 
		if ( object.valign == 'center' ) 	{ y = parent_top + parent_height/2 - cur_height/2 + 1; } 
		if ( object.valign == 'top' ) 		{ y = parent_top - cur_height + 1; } 
		if ( object.valign == 'bottom' ) 	{ y = parent_top + parent_height + 0; }
		y += object.yoffset;

		object.kl_object.moveTo(x, y);

		delete kl;
		delete klc;	

	}

	function showPopup(object) {
		if ( object == null || object == undefined ) {
			return;
		}
		movePopup(object);
		object.kl_object.show()
		showPopup(object.parent_object);
		if (object.parent.type == 'link') {
			l = layer( object.parent.name );

			if ( object.parent.class_flag != 1 ) {
				object.parent.cl = document.getElementById(object.parent.name).getAttribute("class");
			}

//			document.getElementById(object.parent.name).style.border = 'solid 2px #365f99';
//			document.getElementById(object.parent.name).style.backgroundColor = '#365f99';
//			document.getElementById(object.parent.name).style.borderTop = 'solid 2px #5e7fad';

//			document.getElementById(object.parent.name).setAttribute("class", 'Hov');

			object.parent.class_flag = 1;
		} else {
		}
		return true;
	}

	function hidePopup ( object ) {
		if ( object == null || object == undefined ) {
			return;
		}
		if (object.parent.type == 'link') {
			l = layer( object.parent.name );

//			document.getElementById(object.parent.name).style.border = 'solid 2px #5e7fad';
//			document.getElementById(object.parent.name).style.backgroundColor = '#5e7fad';

//			document.getElementById(object.parent.name).setAttribute("class", object.parent.cl);

		} else {
		}
		hidePopup(object.parent_object);
		object.kl_object.hide();
	}