Ohm, vaya, no me acordaba que getElementsByName() no devuelve un Array normal...
A ver, prueba así:
Código javascript
:
Ver originalfunction mezclar(x) {
var i = x.length;
while (i>0) {
k = Math.floor(Math.random()*i);
i--;
var temp = x[i];
x[i] = x[k];
x[k] = temp;
}
return x;
}
function anadir_aleatorias(){
chk3 = document.getElementsByName('check');
canciones = new Array();
for(i=0;i<chk3.length;i++){ canciones.push(chk3[i].value); }
canciones = mezclar(canciones);
canciones = canciones.join("|");
alert(canciones); // Este alert es para que veas el orden. lo puedes quitar
window.open("agregar_cancion.php?canciones="+canciones, "reproductor");
}
En tu codigo hay algo un poco raro, que es eso de poner el checked a true y luego comprobar si es true. Lo he quitado. Además, tal como lo tenías se estaban abriendo múltiples ventanas.