// Various scripts

function encodeHex(str){
    var result = "";
    for (var i=0; i<str.length; i++){
        result += pad(toHex(str.charCodeAt(i)&0xff),2,'0');
    }
    return result;
}

function decodeHex(str){
    str = str.replace(new RegExp("s/[^0-9a-zA-Z]//g"));
    var result = "";
    var nextchar = "";
    for (var i=0; i<str.length; i++){
        nextchar += str.charAt(i);
        if (nextchar.length == 2){
            result += ntos(eval('0x'+nextchar));
            nextchar = "";
        }
    }
    return result;
    
}

var digitArray = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
function toHex(n){
    var result = ''
    var start = true;
    for (var i=32; i>0;){
        i-=4;
        var digit = (n>>i) & 0xf;
        if (!start || digit != 0){
            start = false;
            result += digitArray[digit];
        }
    }
    return (result==''?'0':result);
}


function pad(str, len, pad){
    var result = str;
    for (var i=str.length; i<len; i++){
        result = pad + result;
    }
    return result;
}


// adapted from http://www.quirksmode.org/index.html?/js/lastmod.html
function takeYear(theDate)
{
	x = theDate.getYear();
	var y = x % 100;
	y += (y < 38) ? 2000 : 1900;
	return y;
}

function lastMod()
{
	var x = new Date(document.lastModified);
	
	Modif = new Date(x.toGMTString());
	Year = takeYear(Modif);
	Month = Modif.getMonth();
	Day = Modif.getDate();
	Mod = (Date.UTC(Year,Month,Day,0,0,0))/86400000;
	x = new Date();
	today = new Date(x.toGMTString());
	Year2 = takeYear(today);
	Month2 = today.getMonth();
	Day2 = today.getDate();
	now = (Date.UTC(Year2,Month2,Day2,0,0,0))/86400000;
	daysago = now - Mod;
	if (daysago < 0) return '';
	unit = 'dage';
	if (daysago > 730)
	{
		daysago = Math.floor(daysago/365);
		unit = '&aring;r';
	}
	else if (daysago > 60)
	{
		daysago = Math.floor(daysago/30);
		unit = 'm&aring;ned(er)';
	}
	else if (daysago > 14)
	{
		daysago = Math.floor(daysago/7);
		unit = 'uge(r)'
	}
	var towrite = 'Sidst opdateret ';
	if (daysago == 0) towrite += 'i dag';
	else if (daysago == 1) towrite += 'i g&aring;r';
	else towrite += ' for ' + daysago + ' ' + unit + ' siden';
	return towrite;
}

