/*<RMJSDep>SharedServices\ClientScripts\BrowserUtils; SharedServices\ClientScripts\WindowUtils; SharedServices\ClientScripts\RMWJSServerVariables.js.aspx; SharedServices\ClientScripts\EditUserControl</RMJSDep>*/
var ModalWindow = null;
var ModalWindowOnClick = null;
var ModalWindowOnFocus = null;
var ModalWindowOnUnload = null;
var ModalWindowOnMouseMove = null;

var ModalDoRefresh = false;

var RMWModalImageBlock = null;
 
function ModalWindowIgnoreEvents(e)
{
    if (ModalWindowHandleFocus(e))
    {
      CancelEvent(e);
    	return false;
    }
    else
    {
      return true;
    }
}

function GetModalDialogFeatures(WindowOpenFeatures)
{
	WindowOpenFeatures = WindowOpenFeatures.toUpperCase();

	WindowOpenFeatures = ReplaceFeature(WindowOpenFeatures, 'LEFT', 'DialogLeft');//donotlocalize
	WindowOpenFeatures = ReplaceFeature(WindowOpenFeatures, 'TOP', 'DialogTop');//donotlocalize
	WindowOpenFeatures = ReplaceFeature(WindowOpenFeatures, 'WIDTH', 'DialogWidth');//donotlocalize
	WindowOpenFeatures = ReplaceFeature(WindowOpenFeatures, 'HEIGHT', 'DialogHeight');//donotlocalize
		
	WindowOpenFeatures = WindowOpenFeatures.replace(/,/g,";");
	WindowOpenFeatures = WindowOpenFeatures.replace(/=/g,":");
	
	return WindowOpenFeatures;
}

function ReplaceFeature(WindowOpenFeatures, OldFeatureName, NewFeatureName)
{
	var result;
	var FeatureValue = GetIEFeatureValue(WindowOpenFeatures, OldFeatureName);
	if (FeatureValue!="")
	{
	    if ((WindowOpenFeatures.substr(WindowOpenFeatures.length -1, 1) != ";") &&
	        (WindowOpenFeatures.substr(WindowOpenFeatures.length -1, 1) != ";"))
	        WindowOpenFeatures += ";";
		WindowOpenFeatures = RemoveFeature(WindowOpenFeatures, OldFeatureName);
		WindowOpenFeatures += NewFeatureName + ":" + FeatureValue + ";";
	}
	
	return WindowOpenFeatures;
}

function GetIEFeatureValue(WindowOpenFeatures, FeatureName)
{
	var FeatureValue = "";
	var StartPos = WindowOpenFeatures.indexOf(FeatureName);
	if ((StartPos==0) ||
		(WindowOpenFeatures.substring(StartPos-1,StartPos)==',') ||
		(WindowOpenFeatures.substring(StartPos-1,StartPos)==' '))
	{
		var EndPos;
		if (StartPos!=-1)
		{
			StartPos = WindowOpenFeatures.indexOf("=",StartPos) +1;
			EndPos = WindowOpenFeatures.indexOf(",",StartPos);
			if (EndPos !=-1)
				FeatureValue = WindowOpenFeatures.substring(StartPos, EndPos);
			else
				FeatureValue = WindowOpenFeatures.substr(StartPos);
			
			if (FeatureName == 'HEIGHT')
			{
			    FeatureValue.replace("PX", "");
			    var newValue= parseInt(FeatureValue) + 73;
			    FeatureValue = newValue.toString();
			}
				
			if (((FeatureName == 'LEFT') ||
				(FeatureName == 'TOP') ||
				(FeatureName == 'WIDTH') ||
				(FeatureName == 'HEIGHT'))
				&& (FeatureValue.indexOf('PX')==-1))
				FeatureValue += ' px';
		}
	}
	
	return FeatureValue;
}

function RemoveFeature(WindowOpenFeatures, FeatureName)
{
	var result;
	var StartPos = WindowOpenFeatures.indexOf(FeatureName);
	while(StartPos!=-1)
	{
		if ((StartPos==0) ||
			(WindowOpenFeatures.substring(StartPos-1,StartPos)==',') ||
			(WindowOpenFeatures.substring(StartPos-1,StartPos)==' '))
		{
			var EndPos = WindowOpenFeatures.indexOf(",",StartPos);
			result = WindowOpenFeatures.substring(0,StartPos);
			if (EndPos!=-1)
				result += WindowOpenFeatures.substr(EndPos+1);
			
			break;
		}
		StartPos = WindowOpenFeatures.indexOf(FeatureName, StartPos);
	}
	
	return result;
}
 
function ShowModalWindow(Url,WindowName,WindowFeatures, NoCache)
{
	SetWindowEventsBlocked(true);
	
	if (isIE())
	{
		ModalWindow = OpenWindow(Url,WindowName,WindowFeatures);
		ModalWindow.focus();
	}
	else
	{
		ModalWindow = OpenWindow(Url,WindowName,WindowFeatures);
		ModalWindow.focus();
	}
}

function SetWindowEventsBlocked(Blocked)
{
    if (Blocked)
    {
	    if (isIE())
	    {
	        //Guardar eventos para nao perder
            if (window.document.onclick != ModalWindowOnClick)
		        ModalWindowOnClick = window.document.onclick;

	        window.document.onclick = ModalWindowIgnoreEvents;
	    }
	    else
	    {
		    //Guardar eventos para nao perder
	        if (window.top.onclick!=ModalWindowOnClick)
    		    ModalWindowOnClick = window.top.onclick;

		    window.top.captureEvents(Event.CLICK|Event.FOCUS);
		    window.top.onclick=ModalWindowIgnoreEvents;
	    }
	    
        if (window.top.onfocus != ModalWindowOnFocus)
	        ModalWindowOnFocus = window.top.onfocus;
	    if (window.document.onmousemove != ModalWindowOnMouseMove)
	        ModalWindowOnMouseMove = window.document.onmousemove; 
		if (window.onunload != ModalWindowOnUnload)
            ModalWindowOnUnload = window.onunload;
            
        window.top.onfocus = ModalWindowHandleFocus; 
        window.document.onmousemove = ModalWindowHandleFocus; 
        window.onunload = GetEventHandlerFunction(window.onunload, "CloseModalWindow()");
	}
	else
	{
	    if (isIE())
	    {
            window.document.onclick = ModalWindowOnClick;
        }
        else
        {
		    window.top.releaseEvents(Event.CLICK|Event.FOCUS);
		    window.top.onclick = ModalWindowOnClick;
        }
        
        window.top.onfocus = ModalWindowOnFocus;
        window.document.onmousemove = ModalWindowOnMouseMove; 
        window.onunload = ModalWindowOnUnload;
	}
	
	SetWindowImageEventsBlocked(Blocked);
	
	if ((!Blocked) &&
	    (ModalDoRefresh))
	{
        SubmitWindow(window);
	}
}

/*
Função criada para simular janelas modais no IE
*/
function SetWindowImageEventsBlocked(Blocked)
{
    //A Imagem é criada para ficar por cima de todos os botões e não ficar 
    //disponível o clique nestes quando o usuário estiver visualizando
    //a janela modal
    if (RMWModalImageBlock == null)
    {
        RMWModalImageBlock = document.createElement("IMAGE");
    
        RMWModalImageBlock.style.width="100%";
        RMWModalImageBlock.style.height="100%";
        RMWModalImageBlock.style.position = "absolute";//donotlocalize
        RMWModalImageBlock.style.left = "0px";
        RMWModalImageBlock.style.top = "0px";
        RMWModalImageBlock.style.zIndex = "10000";
        RMWModalImageBlock.src = ApplicationPath + "/SharedServices/Images/Space.gif"
        RMWModalImageBlock.disabled = true;
        
        if (isNS())
            document.body.appendChild(RMWModalImageBlock);
        else
            document.body.insertAdjacentElement("afterBegin", RMWModalImageBlock);//donotlocalize
    }
    
    if (Blocked)
        RMWModalImageBlock.style.display = "";
    else
        RMWModalImageBlock.style.display = "none";
}
 
//Retorna true se focou na janela modal
function ModalWindowHandleFocus()
{
	if (ModalWindow)
	{
	  var  disableModalWindow = false;
	  try
	  {
	    disableModalWindow = ModalWindow.closed;
	  }
	  catch(E)
	  {
	    disableModalWindow = true;
	  }
		
		if (!disableModalWindow)
		{
		  try
		  {
			  ModalWindow.focus();
			}
			catch(e)
			{
			}
			
			return true;
	  }
    else
    {
      SetWindowEventsBlocked(false);
    	return false;
    }
	}
	
	return false; 
}

function ConfigureWindowOpener()
{
	if (window.opener==null)
	{
		var Args = window.dialogArguments;
		if ((Args!=null) &&
			(Args.opener!=null))
			window.opener = Args.opener;
	}
}

function CloseModalWindow()
{
	if (ModalWindow)
	{
		if (!ModalWindow.closed)
            ModalWindow.close();
	}
}