// SaibWN - Window operations
// Copyright (c) The Saudi Investment Bank 2006
// -----------------------------------------------------------
// The version below must be updated on every change
var SaibWNVersion = "SaibWN.Base.0001 2Mar06 Window Manager";
SaibVCStore(SaibWNVersion);				// Store it
// -----------------------------------------------------------
// Modification Log
// 03Mar06 MPC First version produced
// -----------------------------------------------------------

var __WNresize	= ",resizable=yes,scrollbars=yes";
var __WNstatus	= ",status=yes";

var SaibWNShowUrl = false;				// Turn on to track URLs

//-----------------------------------------------------------
// Internal Functions
//-----------------------------------------------------------
function __WNstringWidexHigh(WinWid, WinHig)
{
	return "width="+WinWid+",height="+WinHig;
}

function __WNstringTopLeft(WinTop, WinLft)
{
	var Str = "";
	var Brw = SaibSDWhatVendor(false);
	if (Brw == "IE") Str = "top="+WinTop+",left=";
	else		 Str = "screenY="+WinTop+",screenX=";
	return Str+WinLft;
}

function __WNscreenY(WinHig)
{
	var y = (screen.height - WinHig)/2;
	if (y < 0) y = 0; 
	return Math.floor(y);
}

function __WNscreenX(WinWid)
{
	var x = (screen.width - WinWid)/2;
	if (x < 0) x = 0; 
	return Math.floor(x);
}

function __WNstringCentre(WinWid, WinHig)
{
	var Ypos, Xpos;
	Ypos = __WNscreenY(WinHig);
	Xpos = __WNscreenX(WinWid);

	var WinFea = __WNstringWidexHigh(WinWid, WinHig);
	WinFea += ","+__WNstringTopLeft(Ypos, Xpos);
	return WinFea;
}

function __WNCentrePlain(WinUrl, WinNme, WinWid, WinHig, WinMor)		// Centered Plain Window
{
	var WinFea = __WNstringCentre(WinWid, WinHig) + WinMor;
//alert("CentrePlain="+WinFea);
	var WinHnd = window.open(WinUrl, WinNme, WinFea);
	WinHnd.focus();
	return WinHnd;
}

function __WNPlain(WinUrl, WinNme, WinWid, WinHig, WinMor)			// Plain Window
{
	var WinFea = __WNstringWidexHigh(WinWid, WinHig) + WinMor;
//alert("Plain="+WinFea);
	var WinHnd = window.open(WinUrl, WinNme, WinFea);
	WinHnd.focus();
	return WinHnd;
}

function __WNCentreStatus(WinUrl, WinNme, WinWid, WinHig)		// Centered Status Window
{
	return __WNCentrePlain(WinUrl, WinNme, WinWid, WinHig, __WNstatus);
}

function __WNStatus(WinUrl, WinNme, WinWid, WinHig)			// Status Window
{
	return __WNPlain(WinUrl, WinNme, WinWid, WinHig, __WNstatus);
}

function __WNCentreResize(WinUrl, WinNme, WinWid, WinHig)		// Centered Resize Window
{
	return __WNCentrePlain(WinUrl, WinNme, WinWid, WinHig, __WNresize);
}

function __WNResize(WinUrl, WinNme, WinWid, WinHig)			// Resize Window
{
	return __WNPlain(WinUrl, WinNme, WinWid, WinHig, __WNresize);
}

function __WNCentreFull(WinUrl, WinNme, WinWid, WinHig)			// Centered Full Window
{
	return __WNCentrePlain(WinUrl, WinNme, WinWid, WinHig, __WNresize+__WNstatus);
}

function __WNFull(WinUrl, WinNme, WinWid, WinHig)			// Full Window
{
	return __WNPlain(WinUrl, WinNme, WinWid, WinHig, __WNresize+__WNstatus);
}

//-----------------------------------------------------------
// External Functions
//-----------------------------------------------------------
function SaibWNOpen(WinUrl, WinNme, WinWid, WinHig, WinTyp)
{
	var WTYP = WinTyp.toUpperCase();		// FULL,RESIZE,STATUS,PLAIN,CENTRE
	var WCEN = "";					// Not centered (default)
	var WFEA = "PLAIN";				// Plain window (default)
	var	 i, j, k;				// Workers

	var ATYP = new Array();	
	ATYP = WTYP.split(",");				// List of operands
	for (i=0; i<ATYP.length; i++)
	{
		var OPCD = ATYP[i];
		if (OPCD.length == 0 || OPCD == "") continue;
		var OPCH = OPCD.charAt(0);
		if (OPCH == "F") WFEA = "FULL";
		if (OPCH == "R") WFEA = "RESIZE";
		if (OPCH == "P") WFEA = "PLAIN";
		if (OPCH == "S") WFEA = "STATUS";
		if (OPCH == "C") WCEN = "CENTRE";
		if (OPCD.length >= 3) 
		{	OPCH = OPCD.substring(0,3);
			if (OPCH == "NOC") WCEN = "";
		}
	}
	
	if (SaibWNShowUrl) alert("Open Type=("+WFEA+","+WCEN+") Size=("+WinWid+"x"+WinHig+")\nNamed=["+
				 WinNme+"]\nURL="+WinUrl);
	

	if (WFEA == "PLAIN")
	{  if (WCEN == "CENTRE") return __WNCentrePlain(WinUrl, WinNme, WinWid, WinHig, "");
	   else			 return __WNPlain      (WinUrl, WinNme, WinWid, WinHig, "");
	}
	if (WFEA == "STATUS")
	{  if (WCEN == "CENTRE") return __WNCentreStatus(WinUrl, WinNme, WinWid, WinHig);
	   else			 return __WNStatus	(WinUrl, WinNme, WinWid, WinHig);
	}
	if (WFEA == "RESIZE")
	{  if (WCEN == "CENTRE") return __WNCentreResize(WinUrl, WinNme, WinWid, WinHig);
	   else			 return __WNResize      (WinUrl, WinNme, WinWid, WinHig);
	}
	if (WFEA == "FULL")
	{  if (WCEN == "CENTRE") return __WNCentreFull  (WinUrl, WinNme, WinWid, WinHig);
	   else			 return __WNFull(WinUrl, WinNme, WinWid, WinHig);
	}
	alert("Invalid call to SaibWNOpen\nInternal error for Type="+WinTyp);
	return __WNCentrePlain(WinUrl, WinNme, WinWid, WinHig, "");
}



