function OpenWindow(Path, WName, WProperty, nFocus, nReturnHanle, bCentre)
{
	TopWindow = getTopWindowHandle();
	if(!TopWindow || TopWindow.closed)
	{
		return false;
	}
		
	var Width = Height = 0;

	if(!WProperty)
	{
		Height	= Number((screen.availHeight * 75)/100);
		Width	= Number((screen.availWidth	* 75)/100);
		WProperty = 'width=' + Width + ',height=' + Height;
	}
	else
	{
		var RegExps	= new RegExp("[^0-9|,]", 'g');
		var Value	= String(WProperty.replace(RegExps, '')).split(',');
		Width		= Number(Value[0]);
		Height		= Number(Value[1]);
	}

	var X = Number((screen.availWidth/2)-(Width/2));
	var Y = Number((screen.availHeight/2)-(Height/2));

	WProperty += ',dependent=no,location=no,menubar=no,status=no,titlebar=yes,toolbar=no,scrollbars=yes,resizable=yes,screenX='+ X + ',screenY=' + Y + ',top='+ Y +',left= ' + X;

	CTime = new Date();
	if(Path.indexOf('?') < 0) 
	{
		Path += '?Time=' + CTime.getTime();
	}        

	var Handle	= null;	
	Handle		= TopWindow.open(Path, WName, WProperty);		

	if(Handle.closed || TopWindow.closed || !TopWindow.ChildWindow)
	{
		return false;
	}

	TopWindow.ChildWindow[WName] = 0;
	
	if(Handle != null)
	{
		if(Handle.closed || TopWindow.closed)
		{
			return false;
		}

		if (!Handle.opener)
		{
			Handle.opener = TopWindow;
		}
	}

	if(Handle.closed || TopWindow.closed)
	{
		return false;
	}
	
	var WindowNames = TopWindow.ChildWindow.toString();
	if(WindowNames.indexOf(WName) < 0)
	{
		TopWindow.ChildWindow[TopWindow.ChildWindow.length] = WName;
	}
	
	TopWindow.ChildWindow[WName] = Handle;

	if(Handle != null && nFocus)
	{
		Handle.focus();
	}
	
	if(Handle!= null && nReturnHanle)
	{
		return Handle;
	}
}

function CloseAllChild()
{
	if(top.ChildWindow)
	{
		len = top.ChildWindow.length;
		for(i=0; i < len; i++)
		{
			Window = top.ChildWindow[top.ChildWindow[i]];
			if(Window && Window.open && !Window.closed)
			{
				Window.close();		
			}
		}
	}
}

function RefreshWindow(WName)
{
	TopWindow = getTopWindowHandle()
	if(!TopWindow || !TopWindow.ChildWindow)
	{
		return false;
	}

	CChildWindow = TopWindow.ChildWindow[WName];
	
	if(CChildWindow && CChildWindow.open && 
		!CChildWindow.closed && CChildWindow.name == WName)
	{
		CChildWindow.document.location.reload();
	}
}

function GetWindowHandle(WName) 
{
	Window = getTopWindowHandle()
	if(!Window || !Window.ChildWindow)
	{
		return false;
	}

	var WindowNames	= Window.ChildWindow.toString();		
	if(WindowNames.indexOf(WName) < 0)
	{
		return false;
	}

	ChildWindows = WindowNames.split(',');
	i = ChildWindows.length-1;

	for(; i >= 0; i--)
	{
		CChildWindow = Window.ChildWindow[WName];

		if(CChildWindow)
		{
			if(CChildWindow.open && !CChildWindow.closed && CChildWindow.name == WName)
			{
				return CChildWindow;
			}
		}
	}
	
	return false;
}

function getTopWindowHandle()
{
	TopWindow = window;
	for(;TopWindow.name != "Index";)
	{
		if((TopWindow.opener && TopWindow.opener.open && !TopWindow.opener.closed) || 
			(!TopWindow.parent.closed && TopWindow.parent.open && (TopWindow.parent.name == "Index" || TopWindow.parent.name == "Main")))
		{
			TopWindow = (TopWindow.opener) ? TopWindow.opener : TopWindow.parent;
		}
		else
		{
			return false;
		}
	}

	if(TopWindow && TopWindow.name == window.name)
	{
		return window;
	}
	else if(TopWindow)
	{
		return TopWindow;
	}
	
	return false;
}

function UpdateLogoFrame(Increment, Price, bReplacePrice, bReplaceItem)
{
	Price = (Price) ? Price : 0;
	
	var Parent = window.opener;
	if(window.parent && window.parent.name == 'Index')
	{
		Parent = window.parent;
	}

	if(Parent && Parent.Logo && Parent.Logo.document)
	{
		Document	= Parent.Logo.document;
		ItemSpan	= Document.getElementById('CART_ITEM');
		TotalSpan	= Document.getElementById('CART_TOTAL');
		
		if(ItemSpan && TotalSpan)
		{
			ItemSpan.innerHTML	= (bReplaceItem)	? Increment	: (Number(ItemSpan.innerHTML) + Number(Increment));
			TotalSpan.innerHTML	= FormatNumber((bReplacePrice) ? Price : (parseFloat(TotalSpan.innerHTML) + parseFloat(Price)));
		}
	}
}