
// begin Popup
var curtop = 0;
var curleft = 0;
function findX(x) {
	curleft = 0;
	var objx = document.getElementById(x);
	if (objx.offsetParent) {
		while (objx.offsetParent) {
			curleft += objx.offsetLeft
			objx = objx.offsetParent;
		}
	}	else if (objx.x) 
		curleft += objx.x;
		return curleft;
}
function findY(y) {
	curtop = 0;
	var objy = document.getElementById(y);
	if (objy.offsetParent) {
		while (objy.offsetParent) {
			curtop += objy.offsetTop
			objy = objy.offsetParent;
		}
	} else if (objy.y)
		curtop += objy.y;
		return curtop;
}

// show popups on page
var Page = {}; // interact with elements on the page
Page.GetObject =
    function( objOrStr ) { // objOrStr = object or string
        if ( typeof( objOrStr ) == "string" ) {
            return document.getElementById( objOrStr );
        }
        return objOrStr;
    };
	
Page.GetObjectYPos = 
	function ( obj ) {	
		var srcObj = Page.GetObject( obj );
		var currObj = srcObj;
		
		var ypos = 0;
		while ( currObj.offsetParent ) {
		    ypos += currObj.offsetTop;
		    currObj = currObj.offsetParent;
		}
		return ypos;
	};
	
Page.GetObjectXPos = 
	function ( obj ) {	
		var srcObj = Page.GetObject( obj );
		var currObj = srcObj;
		var xpos = 0;
		while ( currObj.offsetParent ) {
		    xpos += currObj.offsetLeft;
		    currObj = currObj.offsetParent;
		}
		return xpos;
	};

Page.HideObject = 
	function ( objId, dispStyle ) { // objId = object or string
	    var objToDisp = Page.GetObject( objId );
		var displayValue = ( dispStyle != undefined )? dispStyle : "none";
		if ( objToDisp ) {
			objToDisp.style.display = displayValue;		
		}
	};

Page.ShowObject = 
	function ( objId, dispStyle ) { // objId = object or string
		var objToDisp = Page.GetObject( objId );	
		var displayValue = ( dispStyle != undefined )? dispStyle : "block";
		if ( objToDisp ) {
			objToDisp.style.display = displayValue;		
		}
	};

var Popup = {};

Popup.MenuTimer = "-1";
Popup.MenuIsActive = false;
Popup.MenuFadeTime = 150;
Popup.ActiveMenu = null;

Popup.ShowActionsDropList =
	function( actionLink, divId ) {
		// clear other menus
		Page.HideObject( Popup.ActiveMenu );
		// position div
		window.clearTimeout( Popup.MenuTimer );
		var menuObj = document.getElementById(divId);
		menuObj.style.top = Page.GetObjectYPos( actionLink )  + 10 + 'px';	
		menuObj.style.left = Page.GetObjectXPos( actionLink ) + 10 + 'px';
		Page.ShowObject( menuObj );
		Popup.ActiveMenu = menuObj;
		Popup.MenuIsActive = true;
};

Popup.HideActionsDropList =
	function( menuObj ) {
		var hideHndlr = 
			function() {
				Page.HideObject( menuObj );
				Popup.MenuIsActive = false;
			}
		Popup.MenuTimer = window.setTimeout( hideHndlr, Popup.MenuFadeTime );
	};
// end Popup

function showPopup(actionLink,divId,xpos,ypos) {
	var trgt = divId + 'Target';
	var trgtY = parseInt(findY(trgt)) - ypos + 'px';
	var trgtX = parseInt(findX(trgt)) - xpos + 'px';
	//Hide video component, if found
	var dvs = document.getElementsByClassName('videoplayer');
    for (var i = 0; i < dvs.length; i++) {
    	dvs[i].style.display = 'none';
	}	
	document.getElementById('bkgrd_layer').style.display = 'block';
	document.getElementById(divId).style.display = 'block';
	document.getElementById(divId).style.top = trgtY;
	document.getElementById(divId).style.left = trgtX;
}

function closePopup() {
	document.getElementById('bkgrd_layer').style.display = 'none';
	//get all of the elements on this page with a class of popupOBJ (for a popup) and then close them
    var dvs = document.getElementsByClassName('popupOBJ');	//popups
    for (var i = 0; i < dvs.length; i++) {
    	dvs[i].style.display = 'none';
	}
	//Show video component, if found
	var dvs = document.getElementsByClassName('videoplayer');
    for (var i = 0; i < dvs.length; i++) {
    	dvs[i].style.display = '';
	}	
}

document.getElementsByClassName = function(name) {
	var results = new Array();
	var elems = document.getElementsByTagName("*");

	for (var i=0; i<elems.length; i++) {
		if (elems[i].className.indexOf(name) != -1) {
			results[results.length] = elems[i];
		}
	}
  return results;
};