function changePasswordType(oldElmID){
    var oldElm=document.getElementById(oldElmID);
    if(this.passwordVal){
        this.passwordVal.destroy();
        this.passwordVal=null;
    }
    //verify if the minimum functions exists
    if(!oldElm || !oldElm.parentNode || !document.getElementById || !document.createElement) return;
    var iType="password";
    var iValue= oldElm.value;
    (oldElm.type=="password")?iType="text":iType="password";
    var isMSIE=/*@cc_on!@*/false; //http://dean.edwards.name/weblog/2007/03/sniff/
    if(!isMSIE){
        var newElm=document.createElement('input');
        newElm.type=iType;
    } else {
        var newElm=document.createElement('span');
        newElm.innerHTML='<input type="'+iType+'" name="'+oldElm.name+'">';
        newElm=newElm.firstChild;
    }
    var props=['name','id','className','size','tabIndex','accessKey'];
    for(var i=0,l=props.length;i<l;i++){
        if(oldElm[props[i]]) newElm[props[i]]=oldElm[props[i]];
    }
    // some browsers need the value set before the element is added to the page
    // while others need it set after
    newElm.value=iValue;
    oldElm.parentNode.replaceChild(newElm,oldElm);
    if(!isMSIE) {
        newElm.value=iValue;
    } else {
        setTimeout("fieldFocus()",1000);
    }
    passwordVal = new Spry.Widget.ValidationTextField("passwordVal");
}

function fieldFocus() {
    document.loginform.password.focus();
    document.recalc();
}
