Kalendář (2) - ukázka zdrojového kódu zdrojový kód

<html>
<head>
<title>Java Script ze stránky - www.jaknaweb.com</title>
</head>
<body>


<SCRIPT LANGUAGE="JavaScript">
var dDate = new Date();
var dCurMonth = dDate.getMonth();
var dCurDayOfMonth = dDate.getDate();
var dCurYear = dDate.getFullYear();
var objPrevElement = new Object();

function fToggleColor(myElement) {
  var toggleColor = "#ff0000";
  if (myElement.id == "calDateText") {
   if (myElement.color == toggleColor) {
    myElement.color = "";
   } else {
    myElement.color = toggleColor;
   }
  } else if (myElement.id == "calCell") {
     for (var i in myElement.children) {
      if (myElement.children[i].id == "calDateText") {
       if (myElement.children[i].color == toggleColor) {
        myElement.children[i].color = "";
       } else {
        myElement.children[i].color = toggleColor;
       }
      }
     }
  }
}

function fSetSelectedDay(myElement){
  if (myElement.id == "calCell") {
    if (!isNaN(parseInt(myElement.children["calDateText"].innerText))) {
      myElement.bgColor = "#c0c0c0";
      objPrevElement.bgColor = "";
      document.all.calSelectedDate.value = parseInt(myElement.children["calDateText"].innerText);
      objPrevElement = myElement;
    }
  }
}

function fGetDaysInMonth(iMonth, iYear) {
  var dPrevDate = new Date(iYear, iMonth, 0);
  return dPrevDate.getDate();
}

function fBuildCal(iYear, iMonth, iDayStyle) {
  var aMonth = new Array();
  aMonth[0] = new Array(7);
  aMonth[1] = new Array(7);
  aMonth[2] = new Array(7);
  aMonth[3] = new Array(7);
  aMonth[4] = new Array(7);
  aMonth[5] = new Array(7);
  aMonth[6] = new Array(7);
  var dCalDate = new Date(iYear, iMonth-1, 1);
  //alert (dCalDate)
  var iDayOfFirst = dCalDate.getDay();
  //alert (iDayOfFirst)
  if (iDayOfFirst==0) iDayOfFirst=7
  var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
  var iVarDate = 1;
  var i, d, w;
  if (iDayStyle == 2) {
    aMonth[0][6] = "Neděle";
    aMonth[0][0] = "Pondělí";
    aMonth[0][1] = "Úterý";
    aMonth[0][2] = "Středa";
    aMonth[0][3] = "Čtvrtek";
    aMonth[0][4] = "Pátek";
    aMonth[0][5] = "Sobota";
  }else {
    aMonth[0][6] = "Ne";
    aMonth[0][0] = "Po";
    aMonth[0][1] = "Út";
    aMonth[0][2] = "St";
    aMonth[0][3] = "Čt";
    aMonth[0][4] = "Pá";
    aMonth[0][5] = "So";
  }
  for (d = iDayOfFirst-1; d < 7; d++) {
    aMonth[1][d] = iVarDate;
    iVarDate++;
  }
  for (w = 2; w < 7; w++) {
    for (d = 0; d < 7; d++) {
      if (iVarDate <= iDaysInMonth) {
        aMonth[w][d] = iVarDate;
        iVarDate++;
      }
    }
  }
  return aMonth;
}

function fDrawCal(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle) {
  var myMonth;
  myMonth = fBuildCal(iYear, iMonth, iDayStyle);
  document.write("<table border='1'>")
  document.write("<tr>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][0] + "</td>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][1] + "</td>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][2] + "</td>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][3] + "</td>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][4] + "</td>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][5] + "</td>");
  document.write("<td align='center' style='FONT-FAMILY:Arial;FONT-SIZE:12px;FONT-WEIGHT: bold'>" + myMonth[0][6] + "</td>");
  document.write("</tr>");
  for (w = 1; w < 7; w++) {
    document.write("<tr>")
    for (d = 0; d < 7; d++) {
      document.write("<td align='left' valign='top' width='" + iCellWidth + "' height='" + iCellHeight + "' id=calCell style='CURSOR:Hand' onMouseOver='fToggleColor(this)' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>");
      if (!isNaN(myMonth[w][d])) {
        document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)>" + myMonth[w][d] + "</font>");
      } else {
        document.write("<font id=calDateText onMouseOver='fToggleColor(this)' style='CURSOR:Hand;FONT-FAMILY:Arial;FONT-SIZE:" + sDateTextSize + ";FONT-WEIGHT:" + sDateTextWeight + "' onMouseOut='fToggleColor(this)' onclick=fSetSelectedDay(this)> </font>");
      }
      document.write("</td>")
    }
    document.write("</tr>");
  }
  document.write("</table>")
}

function fUpdateCal(iYear, iMonth) {
  myMonth = fBuildCal(iYear, iMonth);
  objPrevElement.bgColor = "";
  document.all.calSelectedDate.value = "";
  for (w = 1; w < 7; w++) {
    for (d = 0; d < 7; d++) {
      if (!isNaN(myMonth[w][d])) {
        calDateText[((7*w)+d)-7].innerText = myMonth[w][d];
      } else {
        calDateText[((7*w)+d)-7].innerText = " ";
      }
    }
  }
}
</script>

</head>
<body>

<script language="JavaScript" for=window event=onload>
  var dCurDate = new Date();
  frmCalendarSample.tbSelMonth.options[dCurDate.getMonth()].selected = true;
  for (i = 0; i < frmCalendarSample.tbSelYear.length; i++)
    if (frmCalendarSample.tbSelYear.options[i].value == dCurDate.getFullYear())
      frmCalendarSample.tbSelYear.options[i].selected = true;
</script><script language="JavaScript" for=window event=onload>
  var dCurDate = new Date();
  frmCalendarSample.tbSelMonth.options[dCurDate.getMonth()].selected = true;
  for (i = 0; i < frmCalendarSample.tbSelYear.length; i++)
    if (frmCalendarSample.tbSelYear.options[i].value == dCurDate.getFullYear())
      frmCalendarSample.tbSelYear.options[i].selected = true;
</script>

<form name="frmCalendarSample" method="post" action="http://scripty.webz.cz/js/cas/" >
<input type="hidden" name="calSelectedDate" value="">
<table border="1">
<tr>
<td>
<select name="tbSelMonth" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="1">Leden</option>
<option value="2">Únor</option>
<option value="3">Březen</option>
<option value="4">Duben</option>
<option value="5">Květen</option>
<option value="6">Červen</option>
<option value="7">Červenec</option>
<option value="8">Srpen</option>
<option value="9">Září</option>
<option value="10">Říjen</option>
<option value="11">Listopad</option>
<option value="12">Prosinec</option>
</select>
  
<select name="tbSelYear" onchange='fUpdateCal(frmCalendarSample.tbSelYear.value, frmCalendarSample.tbSelMonth.value)'>
<option value="1995">1995</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
</select>
</td>
</tr>
<tr>
<td>
<script language="JavaScript">
  var dCurDate = new Date();
  fDrawCal(dCurDate.getFullYear(), dCurDate.getMonth()+1, 10, 10, "12px", "bold", 1);
</script>
&nbsp;</td>
</tr>
</table>
</form>
</body>
</html>
Vložil/Poslal/Autor: Admin
Funkčnost: správná funkčnost testována v IE 6 a Firefoxu
zavřít okno | jít na hlavní stránku JakNaWeb.com