var iRight = 0;
var iTop = 0;
var CloseImg = "App_Themes/Default/Images/btnClose.gif";


function Object(oElement, oType, oMenus)
{
	// Define Properities
	this.Menus = oMenus;
	this.Type = oType;
	this.Name = "dvpm_display_" + this.Type;
	this.innerHTML = "document.all." + this.Name + ".innerHTML"

	// Define Functions
	this.DisplayIt = doDisplayIt;
	this.DisplayItAsChild = doDisplayItAsChild;
	this.DisplayItAsPopup = doDisplayItAsPopup;
	this.ShowIt = doShowIt;
	this.ResizeIt = doResizeIt;
	this.HideIt = doHideIt;
	this.Visible = false;	
	
	// Define Object
	this.oElement = oElement
	eval(this.oElement + "=this")
	return this
}

function doDisplayIt(Id)
{
	doHideMenus(this);
	if(this.Menus[Id] == null)
	{
		this.HideIt();	
		return;
	}

	eval(this.innerHTML + " = '" + doBuildIt(this, Id) + "'");
	this.Visible = true;
	this.ShowIt();
}

function doDisplayItAsChild(parentId, childId)
{
	var Id = parentId + ":" + childId;
	if(this.Menus[Id] == null)
	{
		this.HideIt();
		return;
	}
	
	eval(this.innerHTML + " = '" + doBuildIt(this, Id) + "'");
	this.Visible = true;
	this.ShowIt();
}

function doDisplayItAsPopup(Id)
{
	if(this.Menus[Id] == null)
	{
		this.HideIt();
		return;
	}

	eval(this.innerHTML + " = '" + doBuildIt(this, Id) + "'");
	this.Visible = true;
	this.ShowIt();
}

function doShowIt()
{
	if(this.Type == "parent")
	{
		var plHldr = getLayer("menu");
		var lyr = getLayer(this.Name);
		
		var x = getPageRight(plHldr) + 3;
		var y = getPageTop(plHldr) + 2;
		if(browserFF)
		{
			x = x - 1;
			y = y - 2;			
		}
		
		moveLayerTo(lyr, x, y);
		showLayer(lyr);

		iRight = getPageRight(lyr) + 1;
		iTop = getPageTop(lyr);
		
	}
	else if(this.Type == "child")
	{
		var lyr = getLayer(this.Name);
		moveLayerTo(lyr, iRight, iTop);
		showLayer(lyr);
	}
	else
	{
		var plHldr = getLayer("info");
		var lyr = getLayer(this.Name);
		
		var x = getPageLeft(plHldr) - 325;
		var y = getPageTop(plHldr) + 2;
		if(browserFF)
		{
			x = x - 2;
			y = y - 2;
		}
		
		moveLayerTo(lyr, x, y);
		showLayer(lyr);
	
		iRight = getPageRight(lyr) + 1;
		iTop = getPageTop(lyr);
	}
}

function doResizeIt()
{
	if(this.Visible == true) 
		this.ShowIt();
}

function doHideIt()
{
	this.Visible = false;
	lyr = getLayer(this.Name);

	hideLayer(lyr);

	if(this.Type == "parent"){
		iRight = 0;
		iTop = 0;
	}
}

function doBuildIt(oElement, Id)
{	
	if(oElement.Type == "parent")
	{
		var Layout = "<table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"padding:5px;\"><tr><td width=\"100%\" height=\"10\" align=\"right\" style=\"color:white\" valign=\"top\"><a href=\"javascript://\" onclick=\"doHideMenus(" + oElement.oElement + ");\" style=\"text-decoration:none\">" + CloseLabel + "&nbsp;&nbsp;<img src=\"" + CloseImg + "\" border=\"0\" align=\"absmiddle\"></a></td></tr><tr><td class=\"itms\" valign=\"top\">";
		var Menu = oElement.Menus[Id].split("|");
		for(i = 0; i< Menu.length;i++)
		{
			var item = Menu[i].split("~");
			Layout += "<li>";
			Layout += "<a " + item[0];
			
			if(item[1] != "")
				if(item[1].substring(0, 10) == "javascript")
				{
					Layout += " href=\"javascript://\" onmouseover=\"" + item[1] + "\"";
				}
				else
					Layout += " href=\"" + item[1] + "\"";
			 
			Layout += ">" + item[2] + "</a>";
			Layout += "</li>";
		}
		Layout += "</td></tr></table>";
	}
	else if(oElement.Type == "child")
	{	
		var Layout = "<table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"padding:5px;\"><tr><td width=\"60%\" class=\"hdr\">" + oElement.Menus[Id].split("!")[0] + " </td><td width=\"40%\" height=\"10\" align=\"right\" style=\"color:white\" valign=\"top\"><a href=\"javascript://\" onclick=\"doHideMenus(" + oElement.oElement + ");\" style=\"text-decoration:none\">" + CloseLabel + "&nbsp;&nbsp;<img src=\"" + CloseImg + "\" border=\"0\" align=\"absmiddle\"></a></td></tr><tr><td colspan=2 style=\"height:1px;background-color:white\"></td></tr><tr><td class=\"itms\" valign=\"top\" colspan=\"2\">";
		var Menu = oElement.Menus[Id].split("|");
		for(i = 0; i< Menu.length;i++)
		{
			var item = Menu[i].split("~");
			Layout += "<li>";
			Layout += "<a " + item[0];
			
			if(item[1] != "")
				Layout += " href=\"" + item[1] + "\"";
			 
			Layout += ">" + item[2] + "</a>";
			Layout += "</li>";
		}
		Layout += "</td></tr></table>";
	}
	else
	{
		var Layout = "<table width=\"100%\" height=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"padding:5px;\"><tr><td width=\"60%\" class=\"hdr\">" + oElement.Menus[Id].split("!")[0] + " </td><td width=\"40%\" height=\"10\" align=\"right\" style=\"color:white\" valign=\"top\"><a href=\"javascript://\" onclick=\"doHideMenus(" + oElement.oElement + ");\" style=\"text-decoration:none\">" + CloseLabel + "&nbsp;&nbsp;<img src=\"" + CloseImg + "\" border=\"0\" align=\"absmiddle\"></a></td></tr><tr><td colspan=2 style=\"height:1px;background-color:white\"></td></tr><tr><td class=\"itms\" valign=\"top\" colspan=\"2\">";
		var Menu = oElement.Menus[Id].split("|");
		for(i = 0; i< Menu.length;i++)
		{
			var item = Menu[i].split("~");
			Layout += "<li>";
			Layout += "<a " + item[0];
			
			if(item[1] != "")
				Layout += " href=\"" + item[1] + "\"";
			 
			Layout += ">" + item[2] + "</a>";
			Layout += "</li>";
		}
		Layout += "</td></tr></table>";
	}
	return Layout;
}


function doHideMenus(oElement)
{
	oElement.HideIt();
	var oElementCounter = 0;
	var oElement;
	var lyr;

	if(oElement.Type == "parent")
	{
		try
		{
			while (oElementCounter < document.all.length)
			{
				oElement = document.all[oElementCounter];
	
				if(oElement.id == "dvpm_display_parent")
				{
					lyr = getLayer(oElement.id);
					hideLayer(lyr);
				}
				
				if(oElement.id == "dvpm_display_child")
				{
					lyr = getLayer(oElement.id);
					hideLayer(lyr);
				}
				oElementCounter ++;
			}
		
		}
		catch (ex)
		{}	
	}
}


function hideLayer(layer)
{
	layer.style.visibility = "hidden";
	layer.style.display = "none";
}

function showLayer(layer) 
{
	layer.style.visibility = "visible";
	layer.style.display = "block";
}

function moveLayerTo(layer, x, y) 
{
	layer.style.left = x;
    layer.style.top  = y;
}

function getLayer(name) 
{
	if(document.getElementById(name) != 0) return eval(document.getElementById(name));
	else return null;
}

function getPageTop(layer)
{
	var y;
	y = 0;
	while (layer.offsetParent != null) 
	{
  		y += layer.offsetTop;
		layer = layer.offsetParent;
	}
    y += layer.offsetTop;
    return y;
}

function getPageRight(layer)
{
	var x = getPageLeft(layer) + getWidth(layer);
	return x;
}

function getPageLeft(layer)
{
	var x;
	x = 0;
	while (layer.offsetParent != null)
	{
    	x += layer.offsetLeft;
      	layer = layer.offsetParent;
    }
    x += layer.offsetLeft;
    return x;
}

function getWidth(layer)
{
	if (layer.style.pixelWidth) return layer.style.pixelWidth;
    else return layer.clientWidth;
}
