function crypt(username,password){
 var c = 0;
 var crypted = "";
 
 salt = from10toradix(Math.floor(Math.random()*61439+4096),16);
 crypted += salt;

 userlength = from10toradix(username.length,16);
 if (username.length <= 15) userlength = '0' + userlength;
 crypted += userlength;

 for (c=0; c<username.length; c++) crypted += from10toradix(username.charCodeAt(c) + 1,16);
 for (c=0; c<password.length; c++) crypted += from10toradix(password.charCodeAt(c) + 1,16);

 return crypted;
}

function initArray() {
    this.length = initArray.arguments.length;
    for (var i = 0; i < this.length; i++)
        this[i] = initArray.arguments[i];
}

function from10toradix(value,radix){
    var retval = '';
    var ConvArray = new initArray(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f');
    var intnum;
    var tmpnum;
    var i = 0;

    intnum = parseInt(value,10);
    if (isNaN(intnum)){
        retval = 'NaN';
    }else{
        while (intnum > 0.9){
            i++;
            tmpnum = intnum;
            // cancatinate return string with new digit:
            retval = ConvArray[tmpnum % radix] + retval;  
            intnum = Math.floor(tmpnum / radix);
            if (i > 100){
                // break infinite loops
                retval = 'NaN';
                break;
            }
        }
    }
    return retval;
}


