Je n'est pas regardé très profondément ton code, c'est plus facile quand il fonctionne, là il faudrait carrément le refaire ligne par ligne pour le faire fonctionner ici. Mais à première vue il sembble que "Num" local et "Num" globale soit à l'origine de l'erreur.
Et ATTENTION, le Javascript est "case-sensitive". Tu utilise donc une variable Num globale, une autre locale et un num dans l'objet. Ça fait beaucoup. Je regarderais là en partant.
Enlève la Num=i; (locale) et utilise la variable "Num" globale déclaré à l'extérieur de la fonction (var Num=0;)