function Abrir_fiestra(strUrl, strName, strOption)
{
  var strNewWindow = "";
  var ExpReg = "";
  var DefineHeight = null;
  var DefineWidth = null;
  var DefineTop = null;
  var DefineLeft = null;
  var NewTop = 0;
  var NewLeft = 0;
  var NewOption = "";

  //$ Recolle o valor de'top' da fiestra
  ExpReg = new RegExp('top\\s*=\\s*(\\d+)', 'gi');
  if(strOption.match(ExpReg))DefineTop =  RegExp.$1;

  //$ Recolle o valor de 'left' da fiestra
  ExpReg = new RegExp('left\\s*=\\s*(\\d+)', 'gi');
  if(strOption.match(ExpReg))DefineLeft =  RegExp.$1;

  //$ Recolle o valor de 'width' da fiestra
  ExpReg = new RegExp('width\\s*=\\s*(\\d+)', 'gi');
  if(strOption.match(ExpReg))DefineWidth =  RegExp.$1;

  //$ Recolle o valor de 'height' da fiestra
  ExpReg = new RegExp('height\\s*=\\s*(\\d+)', 'gi');
  if(strOption.match(ExpReg))DefineHeight =  RegExp.$1;

  //$ Determinar o novo 'top'
  if(DefineTop == null) //$ Se a opcion ne contient pas de 'top'
  {
  
    if (DefineHeight == null)DefineTop = "top=0";
    else
    {
      DefineTop = ((screen.availHeight - DefineHeight) / 2);
      DefineTop = "top=" + parseInt(DefineTop);
    }

    if(strOption != "")DefineTop = "," + DefineTop;
  }
  else DefineTop = "";

  //$ Determinar o novo 'left'
  if(DefineLeft == null) 
  {
    
    if (DefineWidth == null)DefineLeft = "left=0";
    else
    {
      DefineLeft = ((screen.availWidth - DefineWidth) / 2);
      DefineLeft = "left=" + parseInt(DefineLeft);
    }

    
    if(strOption != "")DefineLeft = "," + DefineLeft;
  }
  else DefineLeft = "";

  var NewOption = strOption + DefineLeft + DefineTop;
  strNewWindow = window.open(strUrl, strName, NewOption);
  strNewWindow.creator = self;
  return strNewWindow;
}
