RBS.System.RegisterNamespace("RBS.Page");

RBS.Page.Init = function(evt) 
{
	RBS.Dom.Content = new RBS_Dom_Element("RBS_CONTENT");
	if (RBS.Dom.Content.Base != null) 
	{
		RBS.Page.InitDisplay();
	}
	return true;
}

RBS.Event.AddEvent(window, "load", RBS.Page.Init);

RBS.Page.RecoverFocus = function() 
{
	window.focus();
	setTimeout("RBS.Page.RecoverFocus()",4000);
}

RBS.Page.GetIntUnique = function()
{
	var t = new Date();
	var r = t.getTime();
	return 'msg'+r;
}

RBS.Page.Redirect = function(url, newwin)
{
	dump("RBS.Page.Redirect('" + url + "', '" + newwin + "')");
	var unique = this.GetIntUnique();
	url = (url == null) ? "about:blank" : url;
	newwin = (newwin == null) ? false : newwin;
	
	if (url.indexOf(RBS.Context.webpathroot) == 0) 
	{
		if (url != "about:blank") 
		{
			url += (url.indexOf("?") == -1) ? "?" : "&";
			url += "reload=" + unique;
		}
	}
	try 
	{
		if (newwin) 
		{
		    RBS.Page.hasPopup = true;
			return window.open(url);
		}
		else 
		{
			window.location.href = url; 
		}
	}
	catch (e) {dump("Redirection annuler");}
}

RBS.Page.PopUp = function(url, name, w, h, l, t, scroll) 
{
	dump("RBS.Page.PopUp('" + url + "', '" + name + "', ...)");
	var unique = this.GetIntUnique();
	url = (url == null) ? "about:blank" : url;
	name = (name == null) ? unique : name;
	w = (w == null) ? 640 : w;
	h = (h == null) ? 480 : h;
	l = (l == null) ? (screen.width - w) / 2 : l;
	t = (t == null) ? (screen.height - h) / 2 : t;
	scroll = (scroll == null) ? "yes" : scroll;

	if (url != "about:blank") 
	{
		url += (url.indexOf("?") == -1) ? "?" : "&";
		url += "reload=" + unique;
	}
	
	var params = 'toolbar=no,location=no,directories=no,status=no,menubar=no,' ;
	params += 'scrollbars='+scroll+',resizable=yes,width='+w+',height='+h+',left='+l+',top='+t ;		
	
	MsgBox = window.open(url, name, params);
	MsgBox.focus();
		
	RBS.Page.hasPopup = true;
	return MsgBox;
}

RBS.Page.UpdateParentControl = function()
{
	dump("RBS.Page.UpdateParentControl(" + arguments.length + ")");
	var i=0;
	while (i < arguments.length)
	{
		opener.RBS.Dom.GetElement(arguments[i]).value = arguments[i+1];
		i += 2;
	}
}
	
RBS.Page.ClosePopup = function(submitParent)
{
	submitParent = (submitParent == null) ? false : submitParent;
	dump("RBS.Page.ClosePopup(" + submitParent + ")");
	if (submitParent == true)
	{
		opener.RBS.Form.Submit();
	}
	window.close();
}

RBS.Page.Print = function()
{
	window.print();
}

RBS.Page.keepAlive = function(timeout)
{
	dump("RBS.Page.keepAlive(" + timeout + ")");
    img = new Image();
    img.src = '../Resources.wResources.aspx?Res=null.gif&NoCache=true&t=' + new Date().getTime();
    setTimeout('RBS.Page.keepAlive('+ timeout + ')', timeout);
}

RBS.Page.InitDisplay = function()
{
	var fl = new RBS_Dom_Element("RBS_FRAMELEFT");
	if (fl.Base == null) return;
	
	//Store the state of frame
	var hidden = fl.HasClass("hidden");
	var stateframe = RBS.Dom.CreateElement("INPUT");
	stateframe.name = "RBS_FRAMELEFT_STATE";
	stateframe.id = stateframe.name;
	stateframe.type = "hidden";
	stateframe.value = (hidden) ? "hidden" : "";
	
	//Display the toggle button
	var toggle = RBS.Dom.CreateElement("INPUT");
	toggle.name = "RBS_FRAMELEFT_TOGGLE";
	toggle.id = toggle.name;
	toggle.className = "frametoggle";
	toggle.type = "button";
	
	toggle.value = (hidden) ? ">>>     <<<" : "<<<     >>>";
	if (hidden) 
	{	
		if (RBS.Dom.body) 
			RBS.Dom.body.className = "";
		else
			document.getElementsByTagName("BODY")[0].className = "";
	}	
	
	var fc = new RBS_Dom_Element("RBS_FRAMECONTENT")
	toggle.style.position = "absolute";
	toggle.style.left = fc.GetLeft();
	toggle.style.top = fc.GetTop();
	toggle.style.width = fc.GetWidth();
	
	
	fc.Base.appendChild(toggle);
	fc.Base.appendChild(stateframe);
	
	RBS.Event.AddEvent(toggle, "click", RBS.Page.ToggleFrame);
	RBS.Event.AddEvent(window, "resize", RBS.Page.ResizeFrame);
}

RBS.Page.ResizeFrame = function(evt) 
{
	var tg = new RBS_Dom_Element("RBS_FRAMELEFT_TOGGLE");
	var fc = new RBS_Dom_Element("RBS_FRAMECONTENT");
	if (fc.Base != null && tg.Base != null) 
	{
		tg.Base.style.left = fc.GetLeft();
		tg.Base.style.top = fc.GetTop();
		tg.Base.style.width = fc.GetWidth();
	}
}

RBS.Page.ToggleFrame =  function(evt)
{
	new RBS_Event_Event(evt);
	var fl = new RBS_Dom_Element("RBS_FRAMELEFT");
	var fs = new RBS_Dom_Element("RBS_FRAMELEFT_STATE");
	var hidden = !fl.HasClass("hidden");
	if (hidden) 
	{
		fs.Base.value = "hidden";
	} 
	else 
	{
		fs.Base.value = "";
	}
	
	window.onbeforeunload = null;
	RBS.Form.Submit();
}


