
function FNEmpWz(wz)
{
	return (wz&&wz!="");
}

function AChld(p,c)
{
	if(p&&c)p.appendChild(c);
}

function AImg(mi,wzISrc,wzIAlt)
{
	if(!mi)return;
	if(FNEmpWz(wzISrc))mi.setAttribute("iconSrc",wzISrc);
	if(FNEmpWz(wzIAlt))
        mi.setAttribute("iconAltText",wzIAlt);
    else
        mi.setAttribute("iconAltText","");
}

function CMenu(wzID)
{
	var m=document.createElement("MENU");
	if(!m)return null;
	if(wzID)m.id=wzID;
	m.className="ms-SrvMenuUI";
	AChld(document.body,m);
	return m;
}

function CMItm(wzType)
{
	var mi=document.createElement("SPAN");
	if(!mi)return null;
	mi.setAttribute("type",wzType);
	return mi;
}

function CMOpt(wzText,wzAct,wzISrc,wzIAlt)
{
	var mo=CMItm("option");
	if(!mo)return null;
	mo.innerText=wzText;
	mo.setAttribute("onMenuClick", wzAct);
	AImg(mo,wzISrc,wzIAlt);
	return mo;
}

function CAMOpt(p,wzText,wzAct,wzISrc,wzIAlt)
{
	var mo=CMOpt(wzText,wzAct,wzISrc,wzIAlt);
	if(!mo)return null;
	AChld(p,mo);
	return mo;
}

function CMSep()
{
	return CMItm("separator");
}

function CAMSep(p)
{
	var ms=CMSep();
	if(!ms)return null;
	AChld(p,ms);
	return ms;
}

function CSubM(wzText,wzISrc,wzIAlt)
{
	var sm=CMItm("submenu");
	var sml=CMItm("label");
	if(!sm||!sml)return null;
	AImg(sm,wzISrc,wzIAlt);
	sml.innerText=wzText;
	AChld(sm,sml);
	return sm;
}

function CASubM(p,wzText,wzISrc,wzIAlt)
{
	var sm=CSubM(wzText,wzISrc,wzIAlt);
	if(!sm)return null;
	AChld(p,sm);
	return sm;
}

function FRdy(o)
{
	if (!o) return false;
	switch (o.readyState)
		{
		case "loaded": case "interactive": case "complete": return true;
		default: return false;
		}
}

function OMenu(m,r,fr,ft,yoff)
{
	if(typeof(m)=="string")m=document.getElementById(m);
	if(m)
		{
		if(FRdy(document)&&FRdy(m))
			{

			OMenuInt(m,r,fr,ft,yoff);
			}
		else
			{

			if(r!=null)m.setAttribute("relativeTo",r);
			if(fr!=null)m.setAttribute("forceRefresh",fr);
			if(ft!=null)m.setAttribute("flipTop",ft);
			if(yoff!=null)m.setAttribute("yOffsetTop",yoff);

			m.onreadystatechange=OMenuEvnt;
			}
		}
	return false;
}

function OMenuInt(m,r,fr,ft,yoff)
{
	if(m&&!m.isOpen())m.show(r,fr,ft,yoff);
}

function OMenuEvnt()
{
	var m=event.srcElement;
	if(m&&FRdy(document)&&FRdy(m))
		{

		var r=m.getAttribute("relativeTo");
		var fr=m.getAttribute("forceRefresh");
		var ft=m.getAttribute("flipTop");
		var yoff=m.getAttribute("yOffsetTop");

		if(r!=null)m.removeAttribute("relativeTo");
		if(fr!=null)m.removeAttribute("forceRefresh");
		if(ft!=null)m.removeAttribute("flipTop");
		if(yoff!=null)m.removeAttribute("yOffsetTop");

		m.onreadystatechange=null;

		OMenuInt(m,r,fr,ft,yoff);
		}
}

