// JavaScript Document
var listeWindows = new Array();		// [[id, pointeur window, opened] [...]...]

function GetWindowIndex(idWindow)
{
	var nbWindow = listeWindows.length;
	
	for (i=0; i<nbWindow; i++)
	{
		if (listeWindows[i][0] == idWindow)
			return i;
	}

	return -1;
}

function RefreshWindowList()
{
	//on pourrait afficher la liste des fenetres ouvertes
}

function HideWindow(idWindow)
{	
	WindowUtilities.enableScreen('overlay_winwip');
	
	var nbWindow = listeWindows.length;
	for (i=0; i<nbWindow; i++)
	{
		if (listeWindows[i][0] == idWindow)
		{
			listeWindows[i][2] = false;
			win = listeWindows[i][1];
			win.hide();
			
			break;
		}
	}
		
	RefreshWindowList();
}

function CloseWindow(win)
{
	WindowUtilities.enableScreen('overlay_winwip'); //overlay_darkArtex
	
	var nbWindow = listeWindows.length;
	for (i=0; i<nbWindow; i++)
	{
		if (listeWindows[i][1] == win)
		{
			listeWindows[i][2] = false;
			listeWindows.splice(i, 1);
			
			return;
		}
	}
}

function ShowWindow(id, winUrl, winTitle, winFixedSize, winWidth, winHeight)
{
	eval(defaults(arguments, 1, "", "", false, 200, 200));
	
	var bReload = false;
		
	var pointerWindowID = GetWindowIndex(id);
	if (pointerWindowID > -1)
	{
		if (bReload == true)
		{
			listeWindows[pointerWindowID][1].refresh();	
		}
		listeWindows[pointerWindowID][1].show();
		listeWindows[pointerWindowID][1].toFront();
		
		listeWindows[pointerWindowID][2] = true;
		
		RefreshWindowList();
	}
	else
	{
		var iHeight = winHeight; //GetActualWindowHeight() / 1.5; 	//hauteur de la fenetre - hauteur(menu + statusbar) - hauteur barres PWM 
		var iWidth = winWidth; //GetActualWindowWidth() / 1.5; //largeur de la fenetre - largeur SideBar - marge erreur
		
		if (iHeight < 100) 	iHeight = 100;
		if (iWidth < 100) 	iWidth = 100; 
						
		var win = new Window
		(
			id,
			{
				className: "winwip", //darkArtex
				title: winTitle, 
				recenterAuto:false, 
				width:iWidth, height:iHeight, 
				url: winUrl,
				showEffect: Element.show, 
				hideEffect: Element.hide, //Effect.DropOut, 
				draggable:true, 
				wiredDrag: true,
				resizable: winFixedSize,
				minimizable: false,
				maximizable: false,
				onClose:function(win)
				{
					CloseWindow(win);
					RefreshWindowList();
				},
				
				ok:function(win) {return true;}, 
				cancel:function(win) {return true;}
			 }
		); 
		
		WindowUtilities.disableScreen(win.options.className, 'overlay_winwip', win.overlayOpacity, win.getId(), win.options.parent);//overlay_darkArtex
		
		
		win.setDestroyOnClose(); 
		//win.setConstraint(true, {left:-10000, top:25, right:-100000, bottom:-100000}); 
		win.showCenter();
		win.setZIndex(10000);
		win.toFront();
		
		newWindow = new Array(id, win, true);
		listeWindows[ listeWindows.length ] = newWindow;
		RefreshWindowList();
		
		
		
		//WindowStore.init();
	}
}

function closeAllWindows()
{
	Windows.closeAll();
}

function HistoryBack()
{
	var win = Windows.getFocusedWindow();
	
	var nbWindow = listeWindows.length;
	for (i=0; i<nbWindow; i++)
	{
		if (listeWindows[i][1] == win)
			listeWindows[i][0].history.back();
	}
}

