Nogenlunde fornuftigt, jeg tog for god ordens skyld også tidspunkt med da det næppe vil give noget særligt arbejde, heller ikke serverside !-)
Bemærk i øvrigt, at jeg også bruger et timestamp, Now i updated-variablen, som bruges til at udligne forskellen mellem servertiden og den lokale browsertid:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<title>ShowUpdatedMenus</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
#menu a{position:relative;}
#menu a img{display:none;position:absolute;top:0px;left:5px;height:6px;border:0;}
</style>
<script type="text/javascript">
//Indsat server-side:
var updated = {Produkter:"29-12-2006 06:00:00",Services:"29-12-2006 06:00:00",About:"27-12-2006 06:00:00",Kontakt:"29-12-2006 06:00:00",Now:"27-12-2006 08:00:00"}
var refDate = new Date();
var prevCookies = retrieveCookies(),newCookies = {};
function retrieveCookies(){
if(document.cookie){
var c = document.cookie.split(/; */);
var retVal = new Array();
for(i=0;c.length>i;i++){
c[i] = c[i].split("=");
retVal[c[i][0]] = unescape(c[i][1]);
}
return retVal;
}
return null;
}
function updateCookie(elm){
var pic = elm.getElementsByTagName("img")[0];
var menu = elm.firstChild.nodeValue;
newCookies = prevCookies ? prevCookies : {};
var nu = new Date();
nu = "" + nu.getDate() + "-" + (nu.getMonth()+1) + "-" + nu.getFullYear() + " " + nu.getHours() + ":" + nu.getMinutes() + ":" + nu.getSeconds();
newCookies[menu] = nu;
writeCookies(newCookies);
prevCookies = newCookies;
}
function writeCookies(cooks){
var exp = new Date().getTime()+365*24*60*60*1000;
exp = new Date(exp).toGMTString();
for(menus in cooks)
document.cookie = menus + "=" + escape(cooks[menus]) + ";expires=" + exp + ";path=/";
alert(document.cookie);
}
window.onload = function(){
if(prevCookies){
var lnks = document.getElementById("menu").getElementsByTagName("a");
var tid;
for(vals in updated){
tid = updated[vals];
tid = tid.split(" ");
tid[0] = tid[0].split("-");
tid[1] = tid[1].split(":");
tid = new Date(tid[0][2],tid[0][1]-1,tid[0][0],tid[1][0],tid[1][1],tid[1][2]);
updated[vals] = tid;
}
var timeDiff = updated.Now.getTime() - refDate.getTime();
var actDates = {};
for(vals in prevCookies){
tid = prevCookies[vals];
tid = tid.split(" ");
tid[0] = tid[0].split("-");
tid[1] = tid[1].split(":");
tid = new Date(tid[0][2],tid[0][1]-1,tid[0][0],tid[1][0],tid[1][1],tid[1][2]);
actDates[vals] = tid;
}
for(i=0,im=lnks.length;im>i;i++){
var men = lnks[i].firstChild.nodeValue;
if(actDates[men]){
lnks[i].getElementsByTagName("img")[0].style.display = actDates[men].getTime() + timeDiff > updated[men].getTime() ? "none" : "block";
}
}
}
}
</script>
</head>
<body>
<div id="menu">
<a href="Produkter" onclick="updateCookie(this);">Produkter<img src="../img/updated.gif"></a>
<a href="Services" onclick="updateCookie(this);">Services<img src="../img/updated.gif"></a>
<a href="About" onclick="updateCookie(this);">About<img src="../img/updated.gif"></a>
<a href="Kontakt" onclick="updateCookie(this);">Kontakt<img src="../img/updated.gif"></a>
</div>
</body>
</html>
-- da datoformatet er låst, skal du altså lave tidspunkterne serverside i formatet: dd-mm-åååå tt:mm:ss !o]