﻿

//modal window
var mw_modalDIV = null;
var mw_divfirst = true;

vs_addModule(vs_registerModalWinModule);

function vs_registerModalWinModule(vs)
{
	vs.doModal = mw_doModal;
	vs.closeModualWindow = mw_closeModualWindow;
}

function mw_createModalDiv()
{
	var div;
	var left=document.body.scrollLeft;
	var top=document.body.scrollTop;

	div =document.createElement('<div style="background-color:white;position:absolute;left:'+left+';top:'+top+';width:'+document.body.clientWidth+'px;height:'+document.body.clientHeight+'px;filter:alpha(opacity=50);opacity:0.5;"></div>');
	if(div)
	{
		div.innerText=" ";
		document.body.appendChild(div);
		g_vs.bringElementToFront(div);
		//div.style.zIndex=100000;
		mw_modalDIV=div;

		if(mw_divfirst)
		{
			mw_divfirst=false;
			document.body.lastonscroll=document.body.onscroll;
			document.body.onscroll=mw_onscroll;
			document.body.lastonresize=document.body.onresize;
			document.body.onresize = mw_onresize;			
		}
		
		mw_disableDesktop(true);
	}
}

function mw_onresize()
{
	if(typeof(document.body.lastonresize)=="function")
	{
		document.body.lastonresize();
	}
	mw_moveModalWindow();
}

function mw_onscroll()
{	
	if(document.body.lastonscroll&&typeof(document.body.lastonscroll=="function"))
	{
		document.body.lastonscroll();
	}

	if(mw_modalDIV && mw_modalDIV)
	{
		mw_modalDIV.style.left=document.body.scrollLeft;
		mw_modalDIV.style.top=document.body.scrollTop;
	}
	mw_moveModalWindow(true);
}

function mw_destroyModalDiv()
{
	if(mw_modalDIV)
	{
		mw_modalDIV.removeNode(true);
		mw_disableDesktop(false);
	}
}

function mw_disableDesktop(dis)
{
	var desktop = document.getElementById("vsDesktop");
	if(desktop)
	{
		desktop.disabled=dis;
	}
}

function mw_doModal(cap, w, h)
{
	var win = g_vs.createWindow("mw_modal", null, cap, -1, 0, 0, w, h, false, true, null, true, true);
	var str_cap;
	var div;
	var elem;
	
	if(win)
	{	
		win.onclose = mw_onCloseFWindow;
		mw_showWin(win);
		
		//hide flash div
		if(typeof(top.showStatGraph) == "function")
		{
			top.showStatGraph(0);
		}
		//combox ...
		if(!g_vs.isIE(7) && typeof(top.showStandOutElements) == "function")
		{
			top.showStandOutElements(0);
		}
		
		//win.capBar.style.hegiht = "24px";
		//win.capBar.children[0].style.hegiht = "24px";
	}
	return win;
}

function mw_onCancel()
{
	var win = g_vs.windows["mw_modal"];
	if(win)
	{
		mw_onCloseFWindow();
	}
}


function mw_onCloseFWindow()
{
	var win = g_vs.windows['mw_modal'];
	var objects;
	var i;
	if(win)
	{
		//win.hide();
		//win.destroy();
		//win.iframe.src="about:blank";
		mw_destroyModalDiv();
		objects=document.getElementsByTagName("OBJECT");
		for(i=0;i<objects.length;i++)
		{
			objects[i].style.visibility = objects[i].oldvis;
		}
		
		//show flash div
		if(typeof(top.showStatGraph) == "function")
		{
			top.showStatGraph(1);
		}
		//combox ...
		if(!g_vs.isIE(7) && typeof(top.showStandOutElements) == "function")
		{
			top.showStandOutElements(1);
		}
	}
	return true;
}


function mw_showWin(win)
{
	var objects;
	var i;
	mw_createModalDiv();
	if(win)
	{
		win.show();
		g_vs.bringElementToFront(win.div);
		
		mw_moveModalWindow();
		
		objects=document.getElementsByTagName("OBJECT");

		for(i=0;i<objects.length;i++)
		{
			objects[i].oldvis=objects[i].style.visibility;
			objects[i].style.visibility = "hidden";
		}
	}
}

function mw_moveModalWindow(bchk)
{
	var offset=0;
	var win=g_vs.windows["mw_modal"];
	var left;
	var top;
	
	if(bchk == true)
	{
		if(win && !win.autoMove)
		{
			return;
		}
	}
	
	if(mw_modalDIV)
	{
		offset = g_vs.getElementOffset(mw_modalDIV);			
	}
	
	left=mw_modalDIV.scrollWidth/2+offset.x-160;
	top=document.body.scrollTop+80;
	if(win)
	{
		left = Math.floor(left);
		win.moveto(left, top);
	}
}

function mw_closeModualWindow(win)
{
	var destroy = true;
	
	if(win)
	{
		if(typeof(win.onclose) == "function")
		{
			destroy = win.onclose();
		}

		win.hide();

		if(destroy)
		{
			win.destroy();
		}		
	}
}
