window.addEvent('domready', function(){
	var viewmenus = $$('.viewmenu').each(function(el){new ViewMenu(el);});
});

function ViewMenu(el)
{
	var me = this;
	this.el = el;
	this.c = $(el).getChildren();
	this.selected = this.c[0];
	this.isopen = false;
	var c = this.c;
	for(var i=0; i < c.length; i++)
	{
		if(c[i].className.search(/\bviewmenuitem\b/i) != -1)
		{
			c[i].style.display = "none";
			if(c[i].className.search(/\bdefaultvmi\b/i) != -1)
			{
				c[i].style.display = "block";
				this.selected = c[i];
			}
		}
	}
	this.menuplacement = $(el).getCoordinates();
	var menu = document.createElement("div");
		menu.className = "introtitle viewmenubox";
		menu.style.position = "absolute";
		menu.style.width = this.menuplacement.width + 20 + "px";
		this.el.style.width = menu.style.width;
		menu.style.top = this.menuplacement.top + "px";
		//menu.style.right = (document.body.clientWidth - this.menuplacement.right) + "px";
		menu.style.display = "none";
	this.menubox = menu;
	this.menuboxtop = document.createElement("div");
	this.menubox.appendChild(this.menuboxtop);
	
	for(var i=0; i < c.length; i++)
	{
		if(c[i].className.search(/\bviewmenuitem\b/i) != -1)
		{
			this.menubox.appendChild(c[i]);
			c[i].style.display = "block";
			c[i].onclick = function(){
				me.select(this);
				};
		}
	}
	
	document.body.appendChild(this.menubox);
	this.close();
	this.menubox.style.left = (($(this.el).getCoordinates().right) - this.menubox.clientWidth) + "px";
	el.onclick = function(){me.open();};
	$(this.menubox).addEvent('mouseleave', function(){me.close();});
}

ViewMenu.prototype.select = function(item)
{
	var me = this;
	this.selected.onclick = function(){me.select(this);};
	this.menubox.appendChild(this.selected);
	
	this.selected = item;
	this.selected.onclick = null;//function(){me.open();};
	this.close();
};

ViewMenu.prototype.open = function()
{
	var me = this;
	//this.menubox.appendChild(this.selected);
	this.menuboxtop.appendChild(this.selected);
	//this.menuplacement = $(this.el).getCoordinates();
	this.menubox.style.display="block";
	this.menubox.style.left = (($(this.el).getCoordinates().right) - this.menubox.clientWidth - 2) + "px";

	this.selected.onclick = function(){me.close();};
	this.isopen = true;
	
};

ViewMenu.prototype.close = function()
{	
	var me = this;
	this.el.appendChild(this.selected);
	this.menubox.style.display="none";
	
	this.selected.onclick = null;//function(){me.open();};
	this.menubox.onblur = null;
	this.isopen = false;	
};
