var mb_context_timeout=0;
var click_functions=new Array();

function mb_context_menu_show(e, title, items)
{
    create_mb_context_menu();
    document.getElementById("mb_context_menu_title").innerHTML=title;
    mb_context_menu_add_items(items);
    mb_context_menu_set_position(e);
    document.getElementById("mb_context_menu").style.display="block";
}

function create_mb_context_menu()
{
    if(!document.getElementById("mb_context_menu"))
    {
        var mb_context_menu=document.createElement("div");
        mb_context_menu.id="mb_context_menu";
        mb_context_menu.onmouseout=function () {mb_context_timeout=setTimeout("document.getElementById('mb_context_menu').style.display='none'", 100)};

        var mb_context_menu_title=document.createElement("div");
        mb_context_menu_title.id="mb_context_menu_title";
        mb_context_menu_title.onmouseover=function () {clearTimeout(mb_context_timeout);};
        mb_context_menu.appendChild(mb_context_menu_title);

        var mb_context_menu_content=document.createElement("div");
        mb_context_menu_content.id="mb_context_menu_content";
        mb_context_menu_content.onmouseover=function () {clearTimeout(mb_context_timeout);};
        mb_context_menu.appendChild(mb_context_menu_content);

        document.body.appendChild(mb_context_menu);
    }
}

function mb_context_menu_add_items(items)
{
    document.getElementById("mb_context_menu_content").innerHTML="";
    click_functions=new Array();
    for(var i=0;i<items.length;i+=3)
    {
        var mb_context_item=document.createElement("div");
        mb_context_item.className="mb_context_menu_item";
        mb_context_item.onmouseover=function () {clearTimeout(mb_context_timeout);this.className="mb_context_menu_item_active"};
        mb_context_item.onmouseout=function () {this.className="mb_context_menu_item"};
        click_functions.push(items[i+2]);
        if(click_functions[click_functions.length-1]!="")
            mb_context_item.onclick=function () {eval(click_functions[click_functions.length-1])};
        document.getElementById("mb_context_menu_content").appendChild(mb_context_item);
        
        if(items[i+1]!="")
        {
            var icon=document.createElement("div");
            icon.className=items[i+1];
            icon.onmouseover=function () {clearTimeout(mb_context_timeout);};
            mb_context_item.appendChild(icon);
        }
        var title=document.createElement("div");
        title.innerHTML=items[i];
        title.className="mb_context_menu_item_text";
        title.onmouseover=function () {clearTimeout(mb_context_timeout);};
        mb_context_item.appendChild(title);
    }
}

function mb_context_menu_set_position(e)
{
	if(!e)
		e=windows.event;

	x_pos=e.clientX;
	y_pos=e.clientY;
    var mb_context_menu=document.getElementById("mb_context_menu");

    var document_width=document.width ? document.width : document.documentElement.offsetWidth - 25;
    var scroll=mb_context_menu_get_scroll();

    if(document_width>x_pos+140)
  		mb_context_menu.style.left=x_pos-10+scroll.x+"px";
    else
   		mb_context_menu.style.left=x_pos-130+scroll.x+"px";

	mb_context_menu.style.top=y_pos-10+scroll.y+"px";
}


function mb_context_menu_get_scroll() {
   if (document.body.scrollTop != undefined) {	// IE model
      var ieBox = document.compatMode != "CSS1Compat";
      var cont = ieBox ? document.body : document.documentElement;
      return {x : cont.scrollLeft, y : cont.scrollTop};
   }
   else {
      return {x : window.pageXOffset, y : window.pageYOffset};
   }
}

