En javascript no es tan complicado el cálculo como en el enlace que mencionás 
http://es.wikibooks.org/wiki/Algorit..._en_Javascript
Mirá este ejemplo. 
 Código PHP:
    <script type="text/javascript">
function esBisiesto(a){
    return new Date(a,2,0).getDate()==29;
}
var aComprobar=[2000,2012,2013];
for(var i=0; i<3;i++){
    if( esBisiesto(aComprobar[i])){
        document.write(aComprobar[i]+' es bisiesto.<br>');
    }else{
        document.writeln(aComprobar[i]+' no es bisiesto.<br>');
    }
}
</script> 
   
  Al colocar 0 como día siempre nos estaremos refiriendo al último día del mes anterior al escrito; en este caso el mes que escribimos es 2, que  en javascript es marzo porque los meses se cuentan de 0 a 11, siendo 0 enero y 11 diciembre. Es decir, lo que hacemos es ver si febrero tiene o no un día 29. 
(El truco es de 
Choan Gálvez, que lo publicó en Scriptia, un blog que falleció hace 1 año 

 ) 
