Får splitta den sista koden...
<%
Private Function TableWidth(i) ' ### Funktion för tabellbrädd och tomma tabellceller
Dim ArrWeek(2)
If SubWeekNumbers = True Then ArrWeek(0) = 371 Else ArrWeek(0) = 325
If SubWeekNumbers = True Then ArrWeek(1) = 8 Else ArrWeek(1) = 7
If SubWeekNumbers = True Then ArrWeek(2) = 0 Else ArrWeek(2) = 1
TableWidth = ArrWeek(i)
End Function
Private Function SetDate() ' ### Funktion för att sätta ett datum (#100-01-01# till #9999-12-31#)
With Request
If .QueryString("year") = "" Then SetDate = Year(Date()) Else SetDate = Trim(.QueryString("year"))
If .QueryString("month") = "" Then SetDate = SetDate&"-"&Month(Date())&"-01" Else SetDate = SetDate&"-"&Trim(.QueryString("month"))&"-01"
If Not IsDate(SetDate) Then SetDate = CDate(Year(Date())&"-"&Month(Date())&"-01")
End With
End Function
Private Sub Navigation() ' ### Funktion för att formatera datum för navigationssystemet
If SubNavigation = False Then Exit Sub
Dim ArrDate(3)
Select Case Month(SetDate())
Case 1
ArrDate(0) = Year(SetDate()) - 1 ' ### År bakåt
ArrDate(1) = Year(SetDate()) ' ### År framåt
ArrDate(2) = 12 ' ### Månad bakåt
ArrDate(3) = 2 ' ### Månad framåt
Case 12
ArrDate(0) = Year(SetDate())
ArrDate(1) = Year(SetDate()) + 1
ArrDate(2) = 11
ArrDate(3) = 1
Case Else
ArrDate(0) = Year(SetDate())
ArrDate(1) = Year(SetDate())
ArrDate(2) = Month(SetDate()) - 1
ArrDate(3) = Month(SetDate()) + 1
End Select
With Response
.Write "<table border = '0px' cellpadding = '3px' cellspacing = '0px'><tr>"
.Write "<td><a href = '"&Request.ServerVariables("script_name")&"?Year="&ArrDate(0)-1&"&month="&ArrDate(2)+1&"'><img src = 'y1.gif'/></a> "
.Write "<a href = '"&Request.ServerVariables("script_name")&"?Year="&ArrDate(0)&"&month="&ArrDate(2)&"'><img src = 'm1.gif'/></a></td>"
.Write "<td style = 'text-align: center;'><a href = '"&Request.ServerVariables("script_name")&"?year="&Year(Date())&"&month="&Month(Date())&"'><img src = 'today.gif'/></a></td>"
.Write "<td style = 'text-align: right;'><a href = '"&Request.ServerVariables("script_name")&"?year="&ArrDate(1)&"&month="&ArrDate(3)&"'><img src = 'm0.gif'/></a> "
.Write "<a href = '"&Request.ServerVariables("script_name")&"?year="&ArrDate(1)+1&"&month="&ArrDate(3)-1&"'><img src = 'y0.gif'/></a></td>"
.Write "</tr></table><br/>"
End With
End Sub
Private Function PrintMonthName() ' ### Funktion för att skriva ut aktuell månads namn och aktuellt år
If SubMonthName = False Then Exit Function
PrintMonthName = "<tr><td colspan = '"&TableWidth(1)&"'><b>"&UCase(Left(MonthName(Month(SetDate()),True),1))&Right(MonthName(Month(SetDate()),False),Len(MonthName(Month(SetDate()),False))-1)&" "&Year(SetDate())&"</b></td></tr>"
End Function
Private Function PrintWeekDays() ' ### Funktion för att skriva ut veckodagarnas namn
If SubWeekDays = False Then Exit Function
Dim i
For i = 0 To 7
If i > 0 Then
PrintWeekDays = PrintWeekDays & "<td class = 'border'><b>" & UCase(Left(WeekDayName(i,True,2),1)) & Right(WeekDayName(i,True,2),1) & "</b></td>"
Else
If SubWeekNumbers = True Then PrintWeekDays = PrintWeekDays & "<td class = 'border'><b>v.</b></td>"
End If
Next
PrintWeekDays = "<tr>" & PrintWeekDays & "</tr>"
End Function
Private Sub Calender() ' ### Funktion för att skriva ut kalendern
If SubCalender = False Then Exit Sub
Dim i,BgClr,OffSet,CaDays,ThisDay,HolyDay,item,Entrys
OffSet = Int(WeekDay(SetDate(),2)-1) ' ### Berättar för oss vilken dag vi skall börja aktuell månad med
CaDays = Int(DaysInMonth()+OffSet) ' ### Månadens totala antal dagar plus den dag vi börjar skriva kalendern
With Response
.Write "<table border = '0px' cellpadding = '3px' cellspacing = '3px'>"
.Write PrintMonthName()
.Write PrintWeekDays()
.Write "<tr>"
For i = 0 To CaDays ' style = 'border: 2px solid #000000;'
If i = 1 Then .Write CurrentWeek(i) ' ### Skriver ut första veckorutan
If OffSet > 0 And OffSet = i Then .Write "<td colspan = '"&OffSet&"'></td>" ' ### Ordnar så vi börjar skriva på månadens första dag
If i > OffSet Then ' ### Om vi räknat upp till månadens första dag så börjar vi skriva ut kalendern
' ### Markera aktuell dag om aktuell dag är dagens datum
BgClr = ""
ThisDay = SetHolydays((i-OffSet),ThisDay) ' ### Berättar för oss om aktuell dag är en allmän helgdag
HolyDay = Split(ThisDay,"<br/>") ' ### Separerar de eventuella helgdagarna från varandra
For item = 0 To Ubound(HolyDay) ' ### Markerar aktuell dag med alternativ färg om aktuell dag är en allmän helgdag
If SubSundays = False Then Exit For
If CStr(Left(HolyDay(item), 2)) = CStr(AddZero((i-OffSet), 10)) Then BgClr = " bgcolor = '#ffa8a8' "
Next
If CDate(Year(SetDate())&"-"&Month(SetDate())&"-"&(i-OffSet)) = Date() Then ' ### Om aktuell dag är idag
If BgClr = " bgcolor = '#ffa8a8' " Then ' ### Och aktuell dag är helgdag
BgClr = " style = 'color: #ff0000;' " ' ### Skall dagnummret vara rött
End If
BgClr = " bgcolor = '#d5d5ff' " & BgClr ' ### Dagen blir blå
End If
.Write "<td "&BgClr&"class = 'border'>" ' ### Skriver ut kalendercellen
If i Mod 7 = 0 Then .Write "<font color = '#ff0000'>" ' ### Kontrolerar om dagens datum är en söndag
.Write (i-OffSet) ' ### Skriver ut dagens nummer
If i Mod 7 = 0 Then .Write "</font>"
.Write "</td>"
' ### skriver ut övriga veckorutor
If i Mod 7 = 0 And Not i = CaDays Then .Write "</tr><tr>"&CurrentWeek((i - OffSet + 1))
End If
Next
