~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 PROBLEMAS NO IE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- IEN1  : Os elementos sem superior ficam com 'parentNode' a apontar para um
          documento inválido.
          [8-]	<== RESOLVIDO

- IEN2  : A passagem de objectos 'Events' através de 'setTimeout' (e
          possivelmente outros tipo de execução deferida) resultam em erro
          porque o 'srcElement' perde o valor.
          [8-]	<== RESOLVIDO

- IEN3  : Quando se passa para um campo que não suporta o método 'select' deixa
          activa a selecção do último campo em que foi aplicado.
          [X-]

- IEN4  : Uma função atribuída a um evento da forma «el.onevent = func» não recebe
          o evento como parâmetro, ao contrário do que acontece com
          «el.attachEvent».
          [8-]	<== RESOLVIDO

- IEN5  : isNaN aceita objectos de todos os tipos como parâmetros.
          O código seguinte gera uma excepção:
 	      var o = new ActiveXObject ('Msxml2.DOMDocument');
	      isNaN ([o]);)
          [X-]

- IEN6  : Um NodeList retornada por getElementsByTagName sobre um elemento orfão
          passa a ser inválida mal o tal elemento seja inserido no documento.
          [X-]

- IEN7  : String.substr não suporta índices negativos.
          [8-]  <== RESOLVIDO

- IEN8  : O readyState "interactive" dispara antes do documento estar pronto,
          inclusive com !document.body.
          [8-, aleatório no 9 e 10 e resolvido no 11]  <== RESOLVIDO

- IEN9  : O oninput é suportado na versão 9 mas não dispara quando se elimina
          caracteres, seja com «delete», «backspace- ou por corte.
          [9-]  <== RESOLVIDO

- IEN10 : D.importNode() não importa elementos de XMLDocument.
          [10-]  <== RESOLVIDO

- IEN11 : <LINK> CSS suporta "load"?
          [9-]	<= RESOLVIDO

- IEN12 : O evento "onresize" propaga o "srcElement" a nulo.
          [8-]

- IEN13 : Não suporta o elemento <OUTPUT>.
          [X-]

- IEN14 : Não é possível criar e configurar um <OBJECT> pelo DOM para conter
          Flash. Aparentemente, nem referenciado o Flash fica; na melhor das
          hipóteses, a interface com o Javascript não funciona.
          Resolve-se o problema criando o objecto com "parent.innerHTML=...".
          No caso do player_mp3_js.swf, a inicialização da interface com o
          Javascript requer um <SCRIPT EVENT="FSCommand(command,args)"
          FOR="objId">eval(args)</SCRIPT> (ver AudioPlayer/flah-ie.js).
          [X-]

- IEN15 : O XMLHttpRequest não aceita métodos HTTP próprios.
          [8-]	<== RESOLVIDO

- IEN16 : O XMLHttpRequest não preenche o responseXML devidamente quando recebe
          XHTML.
	  [8-]	<== RESOLVIDO
		  
- IEN17 : Não respeita "xmlns=http://www.w3.org/1999/xhtml" no XML recebido via
          XMLHttpRequest.
          [9-]	<= RESOLVIDO

- IEN18 : Suporta o HTMLLabelElement.control.
          [X-]
          
- IEN19 : String não suporta trim().
          [8-]	<== RESOLVIDO

- IEN20 : String não suporta trimLeft().
          [X-]

- IEN21 : String não suporta trimRight().
          [X-]

- IEN22 : Suporte para autofocus.
          [9-]  <== RESOLVIDO

- IEN23 : String.splice com índice negativo não assume a contagem.
          [8-]	<== RESOLVIDO

- IEN24 : Não suporta XMLDocument.
          [10-]

- IEN25 : O evento "onload" propaga o "srcElement" a nulo nas imagens.
          [8-]

- IEN26 : Suporta o XMLHTTPRequest.responseType="json"?
          => http://msdn.microsoft.com/en-us/library/ie/hh872882%28v=vs.85%29.aspx

- IEN27 : O IE não suporta HTMLButtonElement.type = 'button' antes de ser
          inserido no documento.
          [8-]

- IEN28 : window.open() retorna um objecto sem suporte para addEventListener()
          (mesmo enquanto o documento não carrega).
          [X-]
          
- IEN29 : Suporta para String.prototype.startsWith()
          [X-]

- IEN30 : Suporta para String.prototype.endsWith()
          [X-]

- IEN31 : document.all é detectado com um simples if(document.all)?
          (isto provavelmente pretende desencorajar a utilização desses objectos)
          [11+]

- IEN32 : <LINK> CSS omite "load" para recursos inexistentes?
          [X-]

- IEN33 : <LINK> CSS dispara "error" para recursos inexistentes?
          [X-]

- IEN34: Suporta String.prototype.endsWith()?
         [Usado para detectar browseres de última geração]
         [X-]

- IEN35: Suporta window.scrollX/Y?
         [10-]

- IEN36 : Suporte para Image.naturalWidth/naturalHeight.
          [9-]  <== RESOLVIDO

- IEN37 : O evento "onchange" não "borbulha".


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IE 11

- O IE11 já não necessita de tratamento especial e passa a ser «compensado»
  pelo "w3c-.js". Parte-se do princípio que já não serão precisos módulos
  específicos, pelo que se usa o Im() definido no "w3c.js" em detrimento do
  de "ie10-.js". Se de futuro se revelar que afinal isso ainda é necessário
  será preciso copiar o Im() de "ie10-.js" para a secção IE do "w3c-.js".


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Testes sobre o Number.toFixed no IE 8-

i = 135.9;
dbg.print (i, i.toFixed (2));
i = 41.2797960002;
dbg.print (i, l = i.toFixed (20), l.length);
i = 0.27979600023456789;
dbg.print (i, l = i.toFixed (20), l.length);
i = 191.27979600023456789123456789;
dbg.print (i, l = i.toFixed (20), l.length);
i = 192;
dbg.print (i, l = i.toFixed (20), l.length);
i = 192279796000234567891;
dbg.print ("i", i + "", l = i.toFixed (20), l.length);
i = -0.94;
dbg.print ("i", i + "", l = i.toFixed (0), l.length);
i = .94;
dbg.print ("i", i + "", l = i.toFixed (0), l.length);