Día de la semana incorrecto que se muestra en el campo de fecha de entrada

Tengo un código en un sitio web que no cumple con las reglas de "mis".

El código:

<script>
function do_date()
  {
    v=document.getElementById('date').value;
    n=v.split('-');
    y=n[0];
    m=n[1];
    d=n[2];
    var g=new Date(d,m,y);
    var weekday=new Array(7);
    weekday[0]="Sunday";
    weekday[1]="Monday";
    weekday[2]="Tuesday";
    weekday[3]="Wednesday";
    weekday[4]="Thursday";
    weekday[5]="Friday";
    weekday[6]="Saturday";
    booking_date=d+'/'+m+'/'+y;
    bd=y+''+m+''+d;
    wd=weekday[g.getDay()]
    document.getElementById('viewdate').innerHTML=wd+' '+booking_date;
  }
</script>

<input type="date" id="date" name="date" value="" onchange="do_date()" style="width:150px;" /> 

La variablewd devuelve 5 para el viernes 5 de julio de 2013, pero el lunes 8 de julio de 2013 devuelve 2 días consecutivos, desde el 1 de julio hasta el 31 de julio de 2013, lo siguiente:

g.getDay() log=0,1,2,4,5,6,0,2,3,5,0,1,2,3,5,6,0,1,3,4,5,0,2,3,4,6,0,1,2

que muestra los días en un orden muy extraño

Domingo Lunes Martes,miércoles,Jueves, Viernes, Sábado, Domingo,lunes, Martes etc.

Obviamente he hecho algo mal, pero por mi vida no puedo resolverlo.

Si alguien pudiera apuntarme en la dirección correcta, lo apreciaría :)

Respuestas a la pregunta(1)

Su respuesta a la pregunta