Hola!
He modificado tu código. En él he simplificado la validación de las contraseñas y además en la última parte encontrarás el código de una técnica básica para hacer el remplazo de la contraseña utilizando un servidor que es el único que se encargará de verificar si la vieja contraseña proporciona por el usuario es valida.
Código:
function validarPasswd () {
var p = document.getElementById("old_password").value;
var p1 = document.getElementById("new_password").value;
var p2 = document.getElementById("new_pwd_repeat").value;
p = p.trim();
// validar contraseña
if (p.length == 0 ) {
alert("Proporcione su contraseña original");
return false;
}
if (p1.length == 0) {
alert("Proporcione una nueva contraseña");
return false;
}
if ( p1.length < 6 ) {
alert("La nueva contraseña debe tener al menos seis caracteres");
return false;
}
if (p1 != p2) {
alert("Las contraseñas deben de coincidir");
return false;
}
// Realizar una petición POST al servidor utilizando jQuery
$.post('/url/cambiar/password', {old_password: p, new_password: p1},
function(response) {
// Leemos la respuesta del servidor. Suponemos que /url/cambiar/password
// devolverá un objeto JSON. Éste tendrá una propiedad `result` que cuando
// sea 0 signifique que la contraseña fue cambiada con éxito. -1 Indica
// que la vieja contraseña no es valida.
var json_response = JSON.parse(response);
if (json_response.result === 0) {
alert("Contraseña cambiada");
document.write('<meta http-equiv="refresh" content="0;URL=nivel3.php">');
}
else if (json_response.result === -1) {
alert('La vieja contraseña no es valida');
}
}
);
}
Este código está lejos de estar completo y lo tienes que adaptar a tu entorno. Pero en forma básica es así a cómo haces una verificación de cambio de contraseña.
Saludos!