function IkpMenu(captions,actions)
{
	var div=null;
	var range=new Object();
	var thisObj=this;
	var table=null;

	var build=function(body)
	{
		if( div!=null )
			return;
		div=new Element('div');


		body.appendChild(div);

		div.hide();
		div.absolutize();

		div.addClassName('ikpmenu');

		table=new Element('table');
		div.appendChild(table);

		var tbody=new Element('tbody');
		table.appendChild(tbody);

		thisObj.args=null;

		for(var i=0;i<captions.length;i++)
		{
			var tr=new Element('tr');
			tbody.appendChild(tr);
			var td=new Element('td');
			tr.appendChild(td);
			var a=new Element('a');
			td.appendChild(a);
			a.writeAttribute("href","javascript:void(0);");
			a.writeAttribute("idx",i);
			a.update(captions[i]);

			a.observe('click', thisObj.clickedIndex);
		}
	}


	this.clickedIndex=function(e) {
		var i=Event.element(e).readAttribute('idx');
		div.hide();
		actions[i](i,thisObj.args);
	}

	this.show=function(body, e, args) {
		build(body);
		if( div.visible() )
			return;

		this.args=args;

		div.setStyle({left: Event.pointerX(e), top: Event.pointerY(e)});

		Element.extend(body).observe('mousemove',this.onMove);
		div.show();

		range.x1=Event.pointerX(e)-8;
		range.y1=Event.pointerY(e)-8;

		range.x2=range.x1+16+table.getWidth();
		range.y2=range.y1+16+table.getHeight();
	}


	this.onMove=function(e) {
		var x=Event.pointerX(e);
		var y=Event.pointerY(e);

		if( x<range.x1 )
			div.hide();
		if( x>range.x2 )
			div.hide();
		if( y<range.y1 )
			div.hide();
		if( y>range.y2 )
			div.hide();
	}

}


function doMenu(id,head,captions,links)
{
	var tmpHead='';
	tmpHead='<tr><td style="background-color: #fbfbd9; font-weight: bold; padding: 2"><table style="margin: 0; width: 100%;" cellpadding="0" cellspacing="0"><tr><td style="padding:0; text-align: left; font-weight: bold; width: 90%;"><span style="white-space:nowrap;">'+head+'</span>&nbsp;<td style="text-align: right; vertical-align: top; padding: 0; font-size: 9; width: 10%;"><a href="javascript:hideMenu(\''+id+'\')">X</a></table>';


	var rows='';

	var i;
	for(i=0;i<captions.length;i++)
	{
		rows+='<tr><td style="background-color: #efefef; font-weight: bold; padding: 2"><a href="javascript:menuAction(\''+id+'\',\''+links[i]+'\')"><span style="white-space:nowrap;">'+captions[i]+'</span></a>';
	}


	document.write('<div id="menu'+id+'" style="z-index: 99; background-color: #ffffff; display: none; position: absolute;"><table cellspacing="1" cellpadding="0" style="margin:0; border: solid 1px #e3e3e3;">'+tmpHead+'<tr>'+rows+'</table></div>')
}

var menuActionParam=null;
function showMenu(x,y,id,actionParam,title,ar1,ar2)
{
	var element=document.getElementById('menu'+id);


	if( element )
	{


	menuActionParam=actionParam;
//	window.alert(element);

	//	fitObject(elementHref);
		var l=x+3;
		var t=y+3;

		Element.extend(element).setStyle({left:l,top:t});

		if( title!=null && $('menu'+id+'title')!=null )
			$('menu'+id+'title').update(title);



		if( ar1!=null && ar2!=null && $('menu'+id+'table')!=null ) {
			$('menu'+id+'table').update('');
			for(var i=0;i<ar1.length;i++) {
				var tr=Element.extend(document.createElement("tr"));
				var td=Element.extend(document.createElement("td"));
				td.addClassName("menu");
				var a=Element.extend(document.createElement("a"));
				a.addClassName("menu");
				a.writeAttribute("href","javascript:menuAction('"+id+"','"+ar1[i]+"')");
				a.update(ar2[i]);

				td.appendChild(a);
				tr.appendChild(td);

				$('menu'+id+'table').appendChild(tr);
			}
		}

		element.style.display='block';



	}
}

function hideMenu(id)
{
	element=document.getElementById('menu'+id);

	if( element )
		element.style.display='none';
}
