Carga de archivos PHP AJAX

He buscado en todo el stackoverflow y el internet en general y no puedo encontrar un cargador de archivos AJAX simple (solo envío de formulario). Los que he encontrado no son lo suficientemente flexibles y no se ajustan a mi propósito. Si pudiera ajustar esta secuencia de comandos para subir archivos, sería genial:

<script type="text/javascript">
 function upload(str)
 {
 if (str.length==0)
 { 
document.getElementById("txtHint").innerHTML="";
 return;
  }
 if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("hint").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("GET","ajax/link.php?q="+str,true);
 xmlhttp.send();
 }

En el HTML tendría

<input type='file' onblur='upload(this.value)'>

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta