
var vp_expandedveropaPlayer = "";
var vp_wpadding = 0;
var vp_hpadding = 0;
var vp_width = 0;
var vp_height = 0;
var resizePadding = 25;
var vp_oldWinW;
var vp_oldWinH;
var vp_redrawTimeout;

var vp_modal = document.createElement('div');
vp_modal.setAttribute('id','vp_modal');
vp_modal.style.position = "fixed";
vp_modal.style.visibility = "hidden";
vp_modal.style.background = '#000000';
vp_modal.style.opacity = "0.5";
vp_modal.style.filter = 'alpha(opacity=50)';


function vp_init(content, container)
{
	var veropaPlayer = document.getElementById(content);
	veropaPlayer.style.position = 'absolute';
	vp_setPos(content, container);
	setInterval('vp_setPos(\"' + content + '"\, \"' + container + '"\)', 100);
	return true;
}

function vp_setPos(content, container)
{
	if (content == vp_expandedveropaPlayer)
	{
		if (parseInt(navigator.appVersion)>3) 
		{
			if (navigator.appName == "Netscape") 
			{
				winW = document.documentElement.clientWidth;
				winH = document.documentElement.clientHeight;
				if (document.documentElement.clientHeight < document.documentElement.scrollHeight){vp_wpadding = 21;}else{vp_wpadding = 0;}
				if (document.documentElement.clientWidth < document.documentElement.scrollWidth){vp_hpadding = 21;}else{vp_hpadding = 5;}
			}
			if (navigator.appName.indexOf("Microsoft") != -1) 
			{
				winW = document.documentElement.offsetWidth;
				winH = document.documentElement.offsetHeight;
				
				if (winW != vp_oldWinW || winH != vp_oldWinH){
					vp_oldWinW = winW;
					vp_oldWinH = winH;
					clearTimeout(vp_redrawTimeout);
					vp_redrawTimeout = setTimeout('vp_redraw(\"' + content + '"\)', 300);
				}
				
				if (document.documentElement.offsetHeight < document.documentElement.scrollHeight){vp_wpadding = 21;}else{vp_wpadding = 21;}
				if (document.documentElement.offsetWidth < document.documentElement.scrollWidth){vp_hpadding = 5;}else{vp_hpadding = 5;}
			}
		}
		
		if( self.pageYoffset ) 
		{
			scrolledX = self.pageXoffset;
			scrolledY = self.pageYoffset;
		} 
		else if( document.documentElement && document.documentElement.scrollTop ) 
		{
			scrolledX = document.documentElement.scrollLeft;
			scrolledY = document.documentElement.scrollTop;
		} 
		else if( document.documentElement ) 
		{
			scrolledX = document.body.scrollLeft;
			scrolledY = document.body.scrollTop;
		} 
		
		if (document.getElementById) 
		{		
			var veropaPlayer = document.getElementById(content);
			
			if (vp_height == 0 || vp_width == 0)
			{
				veropaPlayer.style.position = 'absolute';
				
				if (navigator.appName.indexOf("Microsoft") != -1) 
				{
					veropaPlayer.style.width = winW-vp_wpadding + 'px';
					veropaPlayer.style.height = winH-vp_hpadding + 'px';
				}
				else
				{
					veropaPlayer.style.width = "100%"
					veropaPlayer.style.height= "100%"
				}
	
				veropaPlayer.style.top = scrolledY + 'px';
				veropaPlayer.style.left = scrolledX + 'px';
			}
			else
			{
				if (document.getElementById("vp_modal") == null) document.documentElement.appendChild(vp_modal);
				vp_modal.style.zIndex = veropaPlayer.style.zIndex -1;
				vp_modal.style.position = 'fixed';
				vp_modal.style.visibility = 'visible';
				if (navigator.appName.indexOf("Microsoft") != -1) 
				{
					vp_modal.style.width = winW-vp_wpadding + 'px';
					vp_modal.style.height = winH-vp_hpadding + 'px';
				}
				else
				{
					vp_modal.style.width = '100%';
					vp_modal.style.height = '100%';
					
				}
				vp_modal.style.bottom = 0;
				
				var targetWidth = vp_width;
				var targetHeight = vp_height;
				
				if (targetWidth > (winW-resizePadding))
				{
					targetHeight = ((winW-resizePadding)/targetWidth) * targetHeight;
					targetWidth = (winW-resizePadding);
				}
				if (targetHeight > (winH-resizePadding))
				{
					targetWidth = ((winH-resizePadding)/targetHeight) * targetWidth;
					targetHeight = (winH-resizePadding);
				}
				
				veropaPlayer.style.position = 'absolute';
				veropaPlayer.style.width = targetWidth + 'px';
				veropaPlayer.style.height = targetHeight + 'px';
				veropaPlayer.style.top = ((winH / 2) - (targetHeight/ 2)) + scrolledY + 'px';
				veropaPlayer.style.left = ((winW / 2) - (targetWidth/ 2)) + scrolledX + 'px';
			}
		}
	}
	else
	{
		var obj = document.getElementById(container);
		var veropaPlayer = document.getElementById(content);

		veropaPlayer.style.position = 'absolute';
		veropaPlayer.style.visibility = 'visible';
		veropaPlayer.style.left = obj.style.left;
		veropaPlayer.style.top = obj.style.top;
		veropaPlayer.style.width = obj.clientWidth + "px";
		veropaPlayer.style.height = obj.clientHeight + "px";
		veropaPlayer.style.zIndex = obj.style.zIndex;
	}
}

function vp_expand(content, width, height)
{
	vp_expandedveropaPlayer = content;
	vp_width = width;
	vp_height = height;
	var veropaPlayer = document.getElementById(content);
	veropaPlayer.style.zIndex = vp_getHighestZindex()+2;
	
	setTimeout('vp_redraw(\"' + content + '"\)', 100);
	
	vp_oldWinW = document.documentElement.offsetWidth;
	vp_oldWinH = document.documentElement.offsetHeight;
	
	return true;
}

function vp_collapse()
{
	vp_modal.style.visibility = 'hidden';
	vp_expandedveropaPlayer = "";
	return true;
}

function vp_redraw(content)
{
	if (content == vp_expandedveropaPlayer && navigator.appName.indexOf("Microsoft") != -1){
		document.documentElement.scrollTop = document.documentElement.scrollTop+1;
		document.documentElement.scrollTop = document.documentElement.scrollTop-1;
	}
}

function vp_getHighestZindex()
{
	var allElems = document.getElementsByTagName?
	document.getElementsByTagName("*"):
	document.all; // or test for that too
	var maxZIndex = 0;
	for(var i=0;i<allElems.length;i++) 
	{
		var elem = allElems[i];
		var cStyle = null;
		if (elem.currentStyle) 
		{
			cStyle = elem.currentStyle;
		}
		else if (document.defaultView && document.defaultView.getComputedStyle) 
		{
			cStyle = document.defaultView.getComputedStyle(elem,"");
		}
		var sNum;
		if (cStyle) 
		{
			sNum = Number(cStyle.zIndex);
		} else {
			sNum = Number(elem.style.zIndex);
		}
		if (!isNaN(sNum)) 
		{
			maxZIndex = Math.max(maxZIndex,sNum);
		}
	}
	
	return(maxZIndex);
}
