schroere: Problem mit kalender

Beitrag lesen

hallo,
hab nach langen suchen mich für die überarbeitung eines einfachen javascritkalendes entschieden. er funktioniert auch bis auf das vor und zurückblättern. eigentlich habe ich 2 probleme.
1. wenn ich das update des kalenders per body onload initial aufrufe findet er die funktion update beim vorblättern nicht mehr.
2. wenn ich innerhalb des body das update aufrufe funktioniert es. ich habe zusätzlich eine globale variable definiert um den aufruf innerhalb des body nur beim neuladen der seite zu bewerkstelligen. irgendwie wird meine variable überschrieben und ein klich auf vor zeigt den nächsten monat und dann sofort wieder den alten.

wer kann helfen ??

<?
if (isset($_GET['datum'])) $datum=$_GET['datum'];
?>
<html>
<head>
<script language="JavaScript">
<!--

myupdate=2;

function update(Diff)
{
alert('check1 myupdate'+myupdate)

myupdate=1;
   var now = new Date();
   switch(Diff){
   case 1:
            var Monat = now.getMonth()
            var Jahr = now.getYear()
            var MN = dstring
            var Wo = MN.indexOf(" ")
            Monatname = MN.substring(0,Wo)
            Jahr = eval(MN.substring(Wo+1,MN.length))
            if (Monatname=="Januar"){Monat=0}
            if (Monatname=="Februar"){Monat=1}
            if (Monatname=="März"){Monat=2}
            if (Monatname=="April"){Monat=3}
            if (Monatname=="Mai"){Monat=4}
            if (Monatname=="Juni"){Monat=5}
            if (Monatname=="Juli"){Monat=6}
            if (Monatname=="August"){Monat=7}
            if (Monatname=="September"){Monat=8}
            if (Monatname=="Oktober"){Monat=9}
            if (Monatname=="November"){Monat=10}
            if (Monatname=="Dezember"){Monat=11}
            var Monat = Monat + 1
            if (Monat==12) {
               Monat = 0
               Jahr = Jahr + 1
            }
            var Monatname = ""
            var Erster = new Date(Jahr,Monat,1)
            window.document.dateform.monat.value=Monat
            window.document.dateform.jahr.value=Jahr
            window.document.dateform.update.value=1
            break;
   case 0:
            var Monat = now.getMonth()
            Monat=window.document.dateform.monat.value
            var Monatname = ""
            var Jahr = now.getYear()+1900
            Jahr=window.document.dateform.jahr.value
            var Erster = new Date(Jahr,Monat,1)
            break;
   case -1:            var Monat = now.getMonth()
            var Jahr = now.getYear()
            var MN = dstring
            var Wo = MN.indexOf(" ")
            Monatname = MN.substring(0,Wo)
            Jahr = eval(MN.substring(Wo+1,MN.length))
            if (Monatname=="Januar"){Monat=0}
            if (Monatname=="Februar"){Monat=1}
            if (Monatname=="März"){Monat=2}
            if (Monatname=="April"){Monat=3}
            if (Monatname=="Mai"){Monat=4}
            if (Monatname=="Juni"){Monat=5}
            if (Monatname=="Juli"){Monat=6}
            if (Monatname=="August"){Monat=7}
            if (Monatname=="September"){Monat=8}
            if (Monatname=="Oktober"){Monat=9}
            if (Monatname=="November"){Monat=10}
            if (Monatname=="Dezember"){Monat=11}
            var Monat = Monat - 1
            if (Monat==-1)
            {
               Monat = 11
               Jahr = Jahr - 1
            }
            var Monatname = ""
            var Erster = new Date(Jahr,Monat,1)
            window.document.dateform.monat.value=Monat
            window.document.dateform.jahr.value=Jahr
            window.document.dateform.update.value=1
            break;
      default:
            break;
   }

if (Monat==0){Monatname="Januar"}
   if (Monat==1){Monatname="Februar"}
   if (Monat==2){Monatname="März"}
   if (Monat==3){Monatname="April"}
   if (Monat==4){Monatname="Mai"}
   if (Monat==5){Monatname="Juni"}
   if (Monat==6){Monatname="Juli"}
   if (Monat==7){Monatname="August"}
   if (Monat==8){Monatname="September"}
   if (Monat==9){Monatname="Oktober"}
   if (Monat==10){Monatname="November"}
   if (Monat==11){Monatname="Dezember"}
 dstring=Monatname+' '+Jahr
  window.document.write('<table>')
  window.document.write('<tr><td><a href="#" onclick="update(-1);"><</a></td><td colspan="5">'+dstring+'</td><td><a href="#" onclick="update(1);">></a></td></tr>')
  window.document.write('<tr><td>Mo</td><td>Di</td><td>Mi</td><td>Do</td><td>Fr</td><td>Sa</td><td>So</td></tr>')
  if (Erster.getDay()==1){window.document.write('<tr>')}
  if (Erster.getDay()==2){window.document.write('<tr><td>&nbsp;</td>')}
  if (Erster.getDay()==3){window.document.write('<tr><td>&nbsp;</td><td>&nbsp;</td>')}
  if (Erster.getDay()==4){window.document.write('<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>')}
  if (Erster.getDay()==5){window.document.write('<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>')}
  if (Erster.getDay()==6){window.document.write('<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>')}
  if (Erster.getDay()==0){window.document.write('<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>')}
  i=0
  while (i<=31)
  {
    i++;
    Heute = new Date(Jahr,Monat,i)
    if (Heute.getMonth()==Monat){
    if (i<=9){i="0"+i}
    {
      if (Heute.getDay()==1){window.document.write('<tr>')}
      var mymonat=now.getMonth()+1
      var myjahr=now.getYear()+1900
      window.document.write('<td><a href="#" onclick="send('+myjahr+','+mymonat+','+i+');">'+i+'</a></td>')
      if (Heute.getDay()==0){window.document.write('</tr>')}
    }
    }
  }
  window.document.write('<table>')
alert('check2 myupdate'+myupdate)
}

function send(jahr,monat,tag)
{
   if (tag<=9){tag="0"+tag}
   if (monat<=9){monat="0"+monat}
   var mydatum1=tag+'.'+monat+'.'+jahr
   parent.window.opener.window.document.myform.datum.value = mydatum1;
   parent.close();
}

//-->
</script>
</head>
<body>
<form name="dateform">
<?list($tag,$monat,$jahr)=split('.',$datum);?>
<input name="jahr" type="hidden" value="<?echo $jahr?>">
<input name="monat" type="hidden" value="<?echo $monat-1?>">
<input name="update"  value="0">
<script language="JavaScript">
<!--
alert('my1: '+myupdate);
if (myupdate==2){ update(0);}
alert('my2: '+myupdate);
//-->
</script>

</form>
</body>
</html>