/* Copyright (C) Olav Hellesø-Knutsen 1997-1998. All rights reserved. This code may be copied for non-commercial use. Redistribution prohibited. Please do not remove this copyright-information. Questions goes to: olav@iconmedialab.no http://home.sol.no/~nbk/olav/ September 17, 1998 Known bugs/features: - It's not possible to have two calenders on the same page - The browser have to accept cookies (and IE2.0 and NN2.0++ do!) */ // Set this variabel to 1 if you want to be able to click through the month // If the variabel is anything else than 1 (e.g. 0), you will only be able to see the current month var usesaved = 1; // valid variables = 1 or 0 // Change the day- and month abbreviation for your own language var dn = new Array('Søn','Man','Tir','Ons','Tor','Fre','Lør'); var ma = new Array('Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec'); // If daylink is anyting else than 1, you're missing the link for each day // The format for the links in a month explains best by example: // 19980104.htm = Year:1998, month:01, day:4 // 20011202.htm = Year:2001, month:12, day:2 var daylink = 1; // valid variables = 1 or 0 // If linktarget not is an empty string, you'll get target on each daylink // Example: var linktarget = '_blank'; opens a new window when clicking on a day var linktarget = ''; // if the variable 'daylink' is set to 1, this one let you specify if you // want to show links only up to the current date var linkstoptoday = 1; // valid variables = 0, 1 and 2 // Change this to your favourite font types and size for all the text var fontface = 'Verdana, Arial, Helvetica'; var fontsize = '2'; // Special characters for left and right arrow var leftarr = '«'; var rightarr = '»'; // ******************************************* // Don't change the code below this point // ******************************************* var nyDato = new Date(); var currmaaned = new Date(); var calcook; var globaar, globmaaned, globdag; function makeCalender(aar,maaned,dag){ var il = makeCalender.arguments.length; var spart; if(usesaved==1){ spart=GetCookie('calender'); if(spart!=null&&spart!='0'){ var rekke = spart.split('&'); nyDato.setYear(rekke[0]) nyDato.setMonth(rekke[1]); nyDato.setDate(rekke[2]); } else{ if(il==3){ nyDato.setYear(aar) nyDato.setMonth(maaned-1); nyDato.setDate(dag); } } } aar = nyDato.getYear(); //getYear = 76 hvis årstallet er før 2000 etter år 2000 returneres 2001 maaned = nyDato.getMonth(); dag = nyDato.getDate(); var diw = nyDato.getDay(); //getDay = day of week 0-6 globaar = aar; globmaaned = maaned; globdag = dag; var calender, cal; var as1, as2, ae; if(daylink==1){ var as1 = ''; } else{ var as2 = '">'; } var ae = ''; } if(aar<2000)aar+=1900; // JavaScritt has it own year 2000 "problem" cal = dn[diw+1] + ' ' + aar + ' ' +maaned+' '+dag; var ts = '\n'; var te = '
'; var rs = ''; var re = '\n'; var cs = ''; var ce = '\n'; cal = ts + rs; if(usesaved==1)cal += ''+leftarr+''; if(usesaved==1)cal += '' + ma[maaned] +', ' + aar + ce; if(usesaved==1)cal += ''+rightarr+''; cal += re+rs+cs; for(i=0;i<6;i++)cal += dn[i] + ce + cs; cal += dn[6] + ce + re; var tmp; nyDato.setDate(1); nyDato.setMonth(maaned); var midl; var diu = nyDato.getDay(); cal+=rs; t = nyDato.getMonth(); for(i=0;i1||(gd==1&&i==1))&&gm==maaned){ diw = nyDato.getDay(); if(diw==0)cal+=rs; // Hvis første dag i uken if(diw!=7){ // Hvis ikke siste dag i uken tmp1 = gm + 1; tmp2 = gd; if(tmp1<10)tmp1 = '0' + tmp1; if(tmp2<10)tmp2 = '0' + tmp2; if(daylink==1){ if(linkstoptoday==1&&nu.valueOf()>=nyDato.valueOf() || linkstoptoday==2){ if(fresh==gd&&globmaaned==currmaaned.getMonth())cal += cs + bs + as1 + gy + tmp1 + tmp2 + '.htm' + as2 + gd + ae + be + ce; // else cal += cs + as1 + gy+'/'+tmp1+'/' +gy + tmp1 + tmp2 + '.htm' + as2 + gd + ae + ce; else cal += cs + as1 + gy + tmp1 + tmp2 + '.htm' + as2 + gd + ae + ce; } else{ if(fresh==gd&&globmaaned==currmaaned.getMonth())cal += cs + bs + tmp2 + be + ce; else cal += cs + tmp2 + ce; } } else{ if(fresh==gd&&globmaaned==currmaaned.getMonth())cal += cs + bs + tmp2 + be + ce; else cal += cs + tmp2 + ce; } } if(diw==7)cal+=re; // Hvis siste dag i uken } nyDato.setDate(gd+1); } if(diw<6){ for(i=diw;i<6;i++){ if(i<7)cal += cs +' '+ce; if(i==6)cal += re; } } cal += te; calender = cal; return calender; } function go(hva){ if(hva==1)SaveCookie(globaar,globmaaned-1,globdag); else SaveCookie(globaar,globmaaned+1,globdag); document.location=document.location; } // *************************************** Start cookie ****************************** // *************************************** Start cookie ****************************** // If visit before: get saved data function getCookieVal(offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } function GetCookie(name){ var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function SetCookie(name, value){ var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (2 < argc) ? argv[2] : null; var path = (3 < argc) ? argv[3] : null; var domain = (4 < argc) ? argv[4] : null; var secure = (5 < argc) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires="+expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } function SaveCookie(aarvar,maanedvar,dagvar){ var expdate = new Date(); expdate.setTime(expdate.getTime() + (60 * 60*1000*3)); SetCookie("calender", aarvar+'&'+maanedvar+'&'+dagvar, expdate, "/", null, false); } function clearCookie(){ var tid = new Date(); tid.setTime(tid.getTime()+(60*60)) SetCookie("calender", 0, tid, "/", null, false); history.go(0); }