function setSourceCode() {
    var expdate = new Date();
    fixCookieDate(expdate);
    expdate.setTime(expdate.getTime() + (24*60*60*1000)); // 1 day from now

    var refer = getCookie("refer");
    var init = getCookie("init");
    var rid = getKeycode("rid");
    var dtd = getKeycode("dtd");
    var source = getCookie("source");

    if (rid) {
       rid += "_c";
       if (!refer || refer!=rid) setCookie("refer", rid, expdate, "/");
       if (!init) setCookie("init", rid, expdate, "/");
    }

    if (dtd) {
       if (!source || source!=dtd) setCookie("source", dtd, expdate, "/");
    }
}

function getVal(src, offset, separator) {
   var endstr = src.indexOf(separator, offset);
   if (endstr == -1)
	endstr = src.length;
   return unescape(src.substring(offset, endstr));
}

function fixCookieDate(date) {
   var base = new Date(0);
   var skew = base.getTime();
   if (skew > 0) date.setTime(date.getTime() - skew);
}

function getValue(src, name, separator) {
   var arg = name + "=";
   var alen = arg.length;
   if (src.indexOf(arg) != -1) {
	return getVal(src, src.indexOf(arg)+alen, separator);
   }
   return null;
}

function getCookie(name) {
   return getValue(document.cookie, name, ";");
}

function getKeycode(name) {
   return getValue(document.location.href, name, "&");
}

function setCookie(name, value, expires, path, domain, secure) {
   document.cookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
}
