(function()
{
	// ActiveX parts compiled from http://www.builtfromsource.com/category/code/
	var r;
	function conv(v)
	{
		v = parseInt(v);
		if (! isNaN(v))
			r = Math.max(r, v);
	}

	var ax = window.ActiveXObject;
	var nav = window.navigator || {};
	var nm = nav.mimeTypes || {};
	var np = nav.plugins || [];
	function navOK(m)
	{
		return nm[m] && nm[m].enabledPlugin;
	}

	// Compiled from http://www.adobe.com/products/flashplayer/download/detection_kit/
	function flash(a,b)
	{
		function convResult(v)
		{
			v = parseInt(v);
			if (isNaN(v) || (v < a)) 
				return "";
			else
				return "&FL=FL" + Math.min(v, b);
		}

		if (navOK("application/x-shockwave-flash") && (np["Shockwave Flash 2.0"] || np["Shockwave Flash"])) {
			var swVer2 = np["Shockwave Flash 2.0"] ? " 2.0" : "";
			var desc = np["Shockwave Flash" + swVer2].description;
			return convResult(desc.split(" ")[2].replace(/\..*/, ""));
		}

		if (ax) {
			try {
				var axo = new ax("ShockwaveFlash.ShockwaveFlash.7");
				return convResult(axo.GetVariable("$version").split(" ")[1].replace(/,.*/, ""));
			} catch (e) {}

			try {
				new ax("ShockwaveFlash.ShockwaveFlash.6");
				return convResult(6);
			} catch (e) {}

			try {
				var axo = new ax("ShockwaveFlash.ShockwaveFlash.3");
				return convResult(axo.GetVariable("$version").split(" ")[1].replace(/,.*/, ""));
			} catch (e) {}

			try {
				new ax("ShockwaveFlash.ShockwaveFlash.3");
				return convResult(3);
			} catch (e) {}
		}

		return "";
	}

	function realPlayer(a,b)
	{
		r = 0;
		if (navOK("audio/x-pn-realaudio-plugin")) {
			for (i=0; i < np.length; i++ ) {
				var plugin = np[i];
				if (plugin.name.indexOf("RealPlayer") > -1) {
					conv(plugin.description);
					conv(a);
				}
			}
		}

		if (ax) {
			var controls = [
				'rmocx.RealPlayer G2 Control',
				'rmocx.RealPlayer G2 Control.1',
				'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)',
				'RealVideo.RealVideo(tm) ActiveX Control (32-bit)',
				'RealPlayer'];
			for (var i = 0; i < controls.length; i++) {
				try {
					var rp = new ax(controls[i]);
					if (rp)
						conv(rp.GetVersionInfo());
				} catch (e) {}
			}
		}

		if (r < a)
			return "";
		else
			return "&RV=RV" + Math.min(r, b);
	}

	function mediaPlayer(a,b)
	{
		r = 0;
		if (navOK("application/x-mplayer2")) {
			for (i=0; i < np.length; i++ ) {
				var plugin = np[i];
				if (plugin.name.indexOf("Windows Media Player") > -1)
					conv(6);
			}
		}

		if (ax) {
			try {
				var control = new ax('WMPlayer.OCX');
				conv(7);
			} catch (e) {}
		}

		if (r < a)
			return "";
		else
			return "&WM=WM" + Math.min(r, b);
	}

	function res()
	{
		var s = window.screen || {};
		r = {
			w800h600:	"RS1",
			w1024h768:	"RS2",
			w1280h1024:	"RS3",
			w1600h1200:	"RS4",
			w1920h1440:	"RS5",
			w640h480:	"RS6",
			w720h480:	"RS7",
			w720h576:	"RS8",
			w848h480:	"RS9",
			w1152h864:	"RS10",
			w1280h720:	"RS11",
			w1280h768:	"RS12",
			w1280h960:	"RS13"}["w" + window.screen.width + "h" + window.screen.height];
		return "&RES=" + (r ? r : "OTHER");
	}

	function split(u, k, v)
	{
		var v1 = 0;
		var v2 = 0;
		var i = u.indexOf(k);
		if (i != -1) {
			var v12 = u.substr(i + k.length + 1).replace(/[^ \.0-9].*/, "").split(".");
			v1 = parseInt(v12[0]);
			v2 = parseInt(v12[1]);
			if (isNaN(v1)) {
				v1 = 0;
				v2 = 0;
			}
			if (isNaN(v2))
				v2 = 0;
		}

		var b1 = -1;
		var b2 = -1;
		var r = "OTHER";
		for (var c12 in v) {
			c1 = parseInt(c12.split("_")[1]);
			c2 = parseInt(c12.split("_")[2]);
			if (((c1 < v1) || ((c1 == v1) && (c2 <= v2))) &&
				((c1 > b1) || ((c1 == b1) && (c2 > b2)))) {
				b1 = c1;
				b2 = c2;
				r = v[c12];
			}
		}

		return r;
	}

	function browser()
	{
		// See http://unixpapa.com/js/gecko.html
		var u = nav.userAgent || "";
		var v = nav.vendor || "";
		if (u.indexOf("AOL") != -1)
			return "AOL";
		if (u.indexOf("OmniWeb") != -1)
			return "OTHER";
		if (v.indexOf("Apple") != -1)
			return "SAFARI";
		if (window.opera)
			return "OPERA";
		if (v.indexOf("iCab") != -1)
			return "OTHER";
		if (v.indexOf("Konqueror") != -1)
			return "OTHER";
		if (u.indexOf("Firefox") != -1)
			return split(u, "Firefox", {_2_0:(u.indexOf("Navigator/9") == -1)?"FF20":"NN90",_1_5:"FF15",_1_0:"FF10",_0_0:"FF0"});
		if (u.indexOf("Firebird") != -1)
			return "FF0";
		if (v.indexOf("Camino") != -1)
			return "OTHER";
		if (u.indexOf("Netscape") != -1)
			return split(u, "Netscape", {_9_0:"NN90",_7_2:"NN72",_0_0:"NN0"});
		if (u.indexOf("MSIE") != -1)
			return split(u, "MSIE", {_7_0:"IE7",_6_0:"IE6",_5_5:"IE55"});
		if (u.indexOf("Gecko") != -1)
			return split(u, "rv", {_1_7:"MZ17",_0_0:"MZ0"});
		return "OTHER";
	}

	function os()
	{
		var p = nav.platform.toLowerCase();
		if (p.indexOf("mac") != -1)
			return "MAC";
		if (p.indexOf("linux") != -1)
			return "LINUX";
		if (p.indexOf("win") != -1) {
			var u = nav.userAgent.toLowerCase();
			if (u.indexOf("windows nt 6.0") != -1)
				return "WINVISTA";
			if ((u.indexOf("nt") != -1) && (u.indexOf("5.1") != -1))
				return "WINXP";
			if ((u.indexOf("win 9x 4.90") != -1) || (u.indexOf("windows me") != -1))
				return "WINME";
			if (u.indexOf("98") != -1)
				return "WIN98";
			if (u.indexOf("nt 5.0") != -1)
				return "WIN2000";
			if (u.indexOf("nt") != -1)
				return "WINNT";
		}	
		return "OTHER";
	}

	var lang = (nav.language || nav.userLanguage || "").toLowerCase().substr(0,2);

	var url = application + "OS=" + os() + "&BROWSER=" + browser() +
		flash(3,9) + realPlayer(6,6) + mediaPlayer(6,7) + res() +
		"&JE=" + (((typeof(nav.javaEnabled) != "undefined") && nav.javaEnabled()) ? 1 : 0) +
		(lang ? ("&UL=" + lang) : "");

	if (application.search("[&?]tag=htm&") != -1)
		document.location.href = url;
	else if (application.search("[&?]tag=ajx&") != -1)
		CM8TransplantJSFile(url);
	else
		document.write("<scr"+"ipt language='JavaScript' src='" + url + "'></scr"+"ipt>");
})();

