curioso, en Fx me funciona perfecto y no lo habia verificado en iexplorer. en todo caso, es el error es porque utilice una palabra reservada en la funcion setInput,
class. simplemente cambia el nombe del argumento.
Código:
function setInput(type, name, classname){
var input = document.createElement("input");
input.setAttribute("type", type);
input.setAttribute("name", name);
input.className = classname;
return input;
}