Lembre-se de que o Javascript, como a maioria das linguagens, causa um curto-circuito ao lidar com declarações if.
O que isso significa?
Bem, por exemplo, ao executar uma avaliação OR com duas funções, como
if( doThis(var1) || doThat(var2) ){
alert("Woot!");
}
Se a primeira função for verdadeira, a segunda função não será executada.
Algo a ter em mente para referência futura, se você estiver se perguntando por que sua função não está funcionando.