using System;
using System.Drawing;
// The 'windowHandle' parameter will contain the window handle for the:
//   - Active window when run by hotkey
//   - Window Location target when run by a Window Location rule
//   - TitleBar Button owner when run by a TitleBar Button
//   - Jump List owner when run from a Taskbar Jump List
//   - Currently focused window if none of these match
public static class DisplayFusionFunction
{
	public static void Run(IntPtr windowHandle)
	{
		//make a list of websites you would like to have opened
		string[] websites =
		{
			"http://www.binaryfortress.com/",
			"http://www.displayfusion.com/",
			"http://www.checkcentral.cc/",
			"http://www.clipboardfusion.com/",
			"http://www.fileseek.ca/",
			"http://www.itunesfusion.com/",
			"http://www.logfusion.ca/",
			"http://www.wallpaperfusion.com/"
		};
		
		//get the monitor ids
		uint[] monitorIds = BFS.Monitor.GetMonitorIDs();
		
		//if we were unable to get the monitor Ids, exit
		if (monitorIds.Length == 0)
			return;
		
		//loop until the end of monitors, or websites
		for (int i = 0; i < websites.Length; i++)
		{
			//get the website url
			string website = websites[i];
			
			//get the monitor id and ensure we dont get an array out of bounds exception
			uint monitor = monitorIds[i % monitorIds.Length];
			
			//open the website in a new window and caputre its handle
			IntPtr window = BFS.Web.OpenUrlNewWindow(website);
			
			//if we failed to get the handle, continue to next loop iteration
			if(window == IntPtr.Zero)
				continue;
			
			//move the window to the specified monitor
			BFS.Window.MoveToMonitorMaximized(monitor, window);
		}
	}
}