function decode(str) {
	var s0, i, j, s, ss, u, n, f;

	s0 = "";
	for(i = 0 ; i < str.length ; i++) {
		s = str.charAt(i);
		if(s == "+") { s0 += " "; }
		else {
			if(s != "%") { s0 += s; }
			else {
				u = 0;
				f = 1;
				while(true) {
					ss = "";
					for(j = 0; j < 2; j++ ) {
						sss = str.charAt(++i);
						if(((sss >= "0") && (sss <= "9")) || ((sss >= "a") && (sss <= "f"))  || ((sss >= "A") && (sss <= "F"))) {
							ss += sss;
						}
						else {
							--i;
							break;
						}
					}
					n = parseInt(ss, 16);
					if(n <= 0x7f) { u = n; f = 1; }
					if((n >= 0xc0) && (n <= 0xdf)) { u = n & 0x1f; f = 2; }
					if((n >= 0xe0) && (n <= 0xef)) { u = n & 0x0f; f = 3; }
					if((n >= 0xf0) && (n <= 0xf7)) { u = n & 0x07; f = 4; }
					if((n >= 0x80) && (n <= 0xbf)) { u = (u << 6) + (n & 0x3f); --f; }
					if(f <= 1) { break; }
					if(str.charAt(i + 1) == "%") { i++; }
					else { break; }
				}
				s0 += String.fromCharCode(u);
			}
		}
	}
	return(s0);
}

function loadCookie(name) {

	var allcookies = document.cookie;
	if(allcookies == "")	return("");
	var start = allcookies.indexOf(name + "=");
	if(start == -1)			return("");
	start += name.length + 1;
	var end = allcookies.indexOf(';',start);
	if(end == -1) end = allcookies.length;
	return(decode(allcookies.substring(start, end)));
}

function saveCookie(name, value, day) {

	if(day != 0) {
		dt = new Date();
		dt.setTime(dt.getTime() + (day * 24 * 3600 * 1000));
		document.cookie = name + "=" + value + "; expires=" + dt.toGMTString() + "; path=/";
	}
	else {
		document.cookie = name + "=" + value + "; path=/";
	}
}

function GetDT() {
	dt		= new Date();
	year	= dt.getYear();
	year	= (year < 2000) ? year + 1900 : year;
	month	= dt.getMonth() + 1;
	day		= dt.getDate();
	hour	= dt.getHours();
	minute	= dt.getMinutes();
	second	= dt.getSeconds();
	if(month  < 10) { month  = "0" + String(month);  }
	if(day	  < 10) { day	 = "0" + String(day);    }
	if(hour   < 10) { hour   = "0" + String(hour);   }
	if(minute < 10) { minute = "0" + String(minute); }
	if(second < 10) { second = "0" + String(second); }
	return(String(year) + String(month) + String(day) + String(hour) + String(minute) + String(second));
}

function GetID() {
	dt = new Date();
	tm = dt.getTime();
	var d1 = "0000" + (Math.floor(tm / 0x100000) & 0xFFFFF).toString(16);
	var d2 = "0000" + (          (tm % 0x100000) & 0xFFFFF).toString(16);
	return((d1.substring(d1.length - 3) + d2.substring(d2.length - 5)).toUpperCase());
}

function GetReferrer(win) {
	if(win != win.parent && win.document.referrer == win.parent.location.href) {
		return(GetReferrer(win.parent));
	}
	else {
		ref = win.document.referrer + "#";
		ref = ref.substring(0, ref.indexOf("#"));
		return(ref);
	}
}

Uniqf	= loadCookie("Uniqf");
User	= loadCookie("User");
PreDt	= loadCookie("PreDt");
Count	= eval(loadCookie("Count"));

if(Uniqf == "") {
	Uniqf = "1";
}
saveCookie("Uniqf", "0", 0);

if(User == "") {
	User = GetID();
	saveCookie("User", User, 365);
}

if(PreDt == "") {
	PreDt = "-";
}
if(Uniqf == "1") {
	saveCookie("PreDt", GetDT(), 365);
}

if(Count == null) {
	Count = 0;
}
if(Uniqf == "1") {
	saveCookie("Count", Count + 1, 365);
}

Url = escape(GetReferrer(window));
if(Url == "")						{ Url = "-"; }
else if(Url.indexOf("http") != 0)	{ Url = "-"; }

Prm = escape(location.search.substring(1));
if(Prm == "") { Prm = "-"; }

if(Uniqf == "1") {
	if(window.screen) { Dsplay = screen.width + "x" + screen.height; }
	else			  { Dsplay = "-"; }
}
else {
	Dsplay = "";
}

//	IMGƒ^ƒCƒv
document.writeln("<IMG width=" + CounterWidth + " height=" + CounterHeight + " name=counter>");
counter.src =
	CounterUrl +
	"?prj="    + CounterPRJ +
	"&id="     + CounterID +
	"&Uniq="   + Uniqf +
	"&User="   + User +
	"&PreDt="  + PreDt +
	"&Count="  + Count +
	"&Url="    + Url +
	"&Prm="    + Prm +
	"&Dsplay=" + Dsplay;
