<!--//DATUM MED DOLD KALENDER för Glostolken


document.write("<FONT COLOR='#330099' SIZE=-2 FACE='arial'>Dagens Datum:</FONT><BR>")


document.write("<SPAN onClick='visakal()' STYLE='cursor:hand'>")

document.write("<FONT COLOR='#0099ff' SIZE=-2 FACE='arial'>")

dt=new Date(); days=new Array(8); mons=new Array(13)
days[1]="Söndag"; days[2]="Måndag"; days[3]="Tisdag"
days[4]="Onsdag"; days[5]="Torsdag"; days[6]="Fredag"; days[7]="Lördag"
mons[1]="Januari"; mons[2]="Februari"; mons[3]="Mars"; mons[4]="April"
mons[5]="Maj"; mons[6]="Juni"; mons[7]="Juli"; mons[8]="Augusti"
mons[9]="September"; mons[10]="Oktober"; mons[11]="November"; mons[12]="December"
dag=days[dt.getDay()+1]; man=mons[dt.getMonth()+1]; ar=dt.getYear()
if (ar < 2000) ar=dt.getYear()+1900; // Årstillägg för Netscape
dat=dt.getDate(); nu=dag+" "+dat+" "+man+" "+ar

document.write(nu)
document.write("</FONT></SPAN>")




//VISA KALENDER - IE & NN
function visakal() { //var obj = document.getElementById(obj);
if (kal.style.display=="none") { kal.style.display="" }
else { kal.style.display="none" }}



////////////////////////////// SPANNING RUNT HELA KALENDERSCRIPTET ////////////////////////

document.write("<SPAN ID='kal' STYLE='display:none'><BR><BR>")


// Kalendern anpassad för Glostolken av LL 2006

// Copyright (c) 1996-1997 Tomer Shiran. All rights reserved.
// Permission given to use the script provided that this notice remains as is.
// Additional scripts can be found at http://www.geocities.com/~yehuda/

// Cookie functions to store and retrieve cookies
// Boolean variable specified if alert should be displayed if cookie exceeds 4KB

var caution = false

// name - name of the cookie
// value - value of the cookie
// [expires] - expiration date of the cookie (defaults to end of current session)
// [path] - path for which the cookie is valid (defaults to path of calling document)
// [domain] - domain for which the cookie is valid (defaults to domain of calling document)
// [secure] - Boolean value indicating if the cookie transmission requires a secure transmission
// * an argument defaults when it is assigned null as a placeholder
// * a null placeholder is not required for trailing omitted arguments


function setCookie(name, value, expires, path, domain, secure) {

	var curCookie = name + "=" + escape(value) +

		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "")

	if (!caution || (name + "=" + escape(value)).length <= 4000)
		document.cookie = curCookie
	else
		if (confirm("Cookie exceeds 4KB and will be cut!"))
			document.cookie = curCookie
}


// name - name of the desired cookie
// * return string containing value of specified cookie or null if cookie does not exist

function getCookie(name) {
	var prefix = name + "="
	var cookieStartIndex = document.cookie.indexOf(prefix)

	if (cookieStartIndex == -1)
		return null

	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)

	if (cookieEndIndex == -1)
		cookieEndIndex = document.cookie.length
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}


// name - name of the cookie
// [path] - path of the cookie (must be same as path used to create cookie)
// [domain] - domain of the cookie (must be same as domain used to create cookie)
// * path and domain default if assigned null or omitted if no explicit argument proceeds

function deleteCookie(name, path, domain) {

	if (getCookie(name)) {
		document.cookie = name + "=" + 
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		"; expires=Thu, 01-Jan-70 00:00:01 GMT"
	}
}


// date - any instance of the Date object
// * you should hand all instances of the Date object to this function for "repairs"
// * this function is taken from Chapter 14, "Time and Date in JavaScript", in "Learn Advanced JavaScript Programming"

function fixDate(date) {

	var base = new Date(0)
	var skew = base.getTime()

	if (skew > 0)
		date.setTime(date.getTime() - skew)
}


function initCookie(monthName) {

	// initializes cookie with the following format:
	// ^1^^2^^3^^4^...^30^^31^
	// initialize accumulative variable

	var text = ""

	for (var i = 1; i <= 31; ++i) {
		text += "^" + i + "^"
	}

	var now = new Date()

	fixDate(now)


	// set time to one month (31 days) in the future

	now.setTime(now.getTime() + 1000 * 60 * 60 * 24 * 31)
	setCookie(monthName + "Calendar", text, now)
}


function getSpecificReminder(num, monthName) {

	var prefix = "^" + num + "^"
	var totalCookie = getCookie(monthName + "Calendar")
	var startIndex = totalCookie.indexOf(prefix, 0)
	var startData = totalCookie.indexOf("^", startIndex + 1) + 1

	if (num == 31)
		var endData = totalCookie.length
	else
		var endData = totalCookie.indexOf("^", startData)
	return totalCookie.substring(startData, endData)
}


function setSpecificReminder(num, monthName, newValue) {

	var prefix = "^" + num + "^"
	var totalCookie = getCookie(monthName + "Calendar")
	var startIndex = totalCookie.indexOf(prefix, 0)
	var startData = totalCookie.indexOf("^", startIndex + 1) + 1

		if (num == 31)
		var endData = totalCookie.length
	else
		var endData = totalCookie.indexOf("^", startData)
	var now = new Date()
	fixDate(now)



	// set time to one month (31 days) in the future

	now.setTime(now.getTime() + 1000 * 60 * 60 * 24 * 31)
	setCookie(monthName + "Calendar", totalCookie.substring(0, startData) + newValue + totalCookie.substring(endData, totalCookie.length), now)
}


function getInput(num, monthName) {

	if (!getCookie(monthName + "Calendar")) 
		initCookie(monthName)
	var newValue = prompt("Skriv påminnelse för detta datum:", getSpecificReminder(num, monthName))
	if (newValue) // user did not cancel
		setSpecificReminder(num, monthName, newValue)
}


function getTime() {

	// initialize time-related variables with current time settings

	var now = new Date()
	var hour = now.getHours()
	var minute = now.getMinutes()
	now = null
	var ampm = "" 


	// validate hour values	and set value of ampm

	if (hour >= 12) {

		hour -= 12

		ampm = "PM"

	} else

		ampm = "AM"

	hour = (hour == 0) ? 12 : hour



	// add zero digit to a one digit minute

	if (minute < 10)

		minute = "0" + minute // do not parse this number!



	// return time string

	return hour + ":" + minute + " " + ampm

}



function leapYear(year) {

	if (year % 4 == 0) // basic rule
		return true // is leap year
	return false // is not leap year
}



function getDays(month, year) {

	// create array to hold number of days in each month

	var ar = new Array(12)
	ar[0] = 31 // Januari
	ar[1] = (leapYear(year)) ? 29 : 28 // Februari
	ar[2] = 31 // Mars
	ar[3] = 30 // April
	ar[4] = 31 // Maj
	ar[5] = 30 // Juni
	ar[6] = 31 // Juli
	ar[7] = 31 // Augusti
	ar[8] = 30 // September
	ar[9] = 31 // Oktober
	ar[10] = 30 // November
	ar[11] = 31 // December



	// return number of days in the specified month (parameter)

	return ar[month]
}



function getMonthName(month) {

	// create array to hold name of each month

	var ar = new Array(12)
	ar[0] = "Januari"
	ar[1] = "Februari"
	ar[2] = "Mars"
	ar[3] = "April"
	ar[4] = "Maj"
	ar[5] = "Juni"
	ar[6] = "Juli"
	ar[7] = "Augusti"
	ar[8] = "September"
	ar[9] = "Oktober"
	ar[10] = "November"
	ar[11] = "December"


	// return name of specified month (parameter)

	return ar[month]
}



function setCal() {

	// standard time attributes

	var now = new Date()
	var year = now.getYear()

	var month = now.getMonth()
	var monthName = getMonthName(month)
	var date = now.getDate()
	now = null


	// create instance of first day of month, and extract the day on which it occurs

	var firstDayInstance = new Date(year, month, 1)
	var firstDay = firstDayInstance.getDay()
	firstDayInstance = null



	// number of days in current month
	var days = getDays(month, year)



	// CALL FUNCTION TO DRAW CALENDAR

	drawCal(firstDay + 1, days, date, monthName, year) // Tidigare: monthName, 1900 + year)
}

function drawCal(firstDay, lastDate, date, monthName, year) {

	// constant table settings
	var headerHeight = 10 // height of the table's header cell
	var border = 0 // 3D height of table's border
	var cellspacing = 0 // width of table's border
	var headerColor = "CYAN" // color of table's header
	var headerSize = "-2" // size of tables header font
	var colWidth = 21 // width of columns in table
	var dayCellHeight = 7 // height of cells containing days of the week
	var dayColor = "steelblue" // color of font representing week days
	var cellHeight = 7 // height of cells representing dates in the calendar
	var todayColor = "limegreen" // color specifying today's date in the calendar
	


	// create basic table structure

	var text = "" // initialize accumulative variable to empty string
	//text += '<CENTER>'
	text += '<TABLE BORDER=' + border + ' CELLSPACING=' + cellspacing + '>' // table settings
	//// OBS TABELLHEAD ÄR ÖVERSTRUKET HÄR:
	//text += 	'<TH COLSPAN=7 HEIGHT=' + headerHeight + '>' // create table header cell
	//text += 		'<FONT COLOR="' + headerColor + '" SIZE=' + headerSize + '>' // set font for table header
	//text += 			monthName + ' ' + year 
	//text += 		'</FONT>' // close table header's font settings
	//text += 	'</TH>' // close header cell



	// variables to hold constant settings

	var openCol = '<TD WIDTH=' + colWidth + ' HEIGHT=' + dayCellHeight + '>'
	openCol += '<FONT COLOR="' + dayColor + '">'
	var closeCol = '</FONT></TD>'



	// create array of abbreviated day names

	var weekDay = new Array(7)
	weekDay[0] = "<FONT COLOR='DARKRED'><B>S</B></FONT>"
	weekDay[1] = "M"
	weekDay[2] = "T"
	weekDay[3] = "O"
	weekDay[4] = "T"
	weekDay[5] = "F"
	weekDay[6] = "L"

	

	// create first row of table to set column width and specify week day

	text += '<TR ALIGN="center" VALIGN="center">'
	for (var dayNum = 0; dayNum < 7; ++dayNum) {
		text += openCol + weekDay[dayNum] + closeCol 
	}
	text += '</TR>'

	

	// declaration and initialization of two variables to help with tables

	var digit = 1
	var curCell = 1

	

	for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
		text += '<TR ALIGN="center" VALIGN="top">'
		for (var col = 1; col <= 7; ++col) {

			if (digit > lastDate)
				break
			if (curCell < firstDay) {
				text += '<TD></TD>';
				curCell++
			} else {

				if (digit == date) { // current cell represent today's date
					text += '<TD HEIGHT=' + cellHeight + '>'
					text += '<FONT COLOR="' + todayColor + '">'
					text += '<A HREF="javascript:getInput(' + digit + ', \'' + monthName + '\')" onMouseOver="window.status = \'Spara eller läs data för den ' + digit + ' ' + monthName + '\'; return true"><FONT COLOR="' + todayColor + '">' + digit + '</FONT></A>'
					text += '</TD>'
					} else
					text += '<TD HEIGHT=' + cellHeight + '><A HREF="javascript:getInput(' + digit + ', \'' + monthName + '\')" onMouseOver="window.status = \'Spara eller läs data för den ' + digit + ' ' + monthName + '\'; return true">' + digit + '</A></TD>'
				digit++
			}
		}

		text += '</TR>'
	}

	

	// close all basic table tags

	text += '</TABLE>'
	text += '</CENTER>'



	if (navigator.appName != "Netscape") { /// Tillägg: Utskrift av kalender körs inte i Netscape
	// print accumulative HTML string:
	document.write(text) 
	} /// Netscape if slut

}

setCal()




document.write("<BR><BR></SPAN>")


// -->
