try {
	var blogID = 0;

	var scripts = document.getElementsByTagName("script");
	for (var b = 0; b < scripts.length; b++) {
		var a = scripts[b].src;
		if (a.search(/bw_share/) >= 0) {
			var regex = new RegExp("[\\?&]t=([^&#]*)", "g");
			var match = regex.exec(a);
			if (null !== match && null !== match[1]) {
				if (null == window['BW_initializer_' + match[1]]) {
					blogID = match[1];
					continue;
				}
			}
		}
	}
} catch (err) { }

window['BW_initializer_' + blogID] = function() {
	var parameters = [];
	var bwJS = null;
	var firstTime = true;
	var isIE = (navigator.userAgent.toUpperCase().indexOf("MSIE") >= 0);
	var ROOT = '';

	function getDomain(thestring) {
		var urlpattern = new RegExp("(http|ftp|https)://(.*?)/.*$");
		var parsedurl = thestring.match(urlpattern);
		return parsedurl[1] + "://" + parsedurl[2];
	}

	var keyString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

	var uTF8Encode = function(string) {
		string = string.replace(/\x0d\x0a/g, "\x0a");
		var output = "";
		for (var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
			if (c < 128) {
				output += String.fromCharCode(c);
			}
			else if ((c > 127) && (c < 2048)) {
				output += String.fromCharCode((c >> 6) | 192);
				output += String.fromCharCode((c & 63) | 128);
			} else {
				output += String.fromCharCode((c >> 12) | 224);
				output += String.fromCharCode(((c >> 6) & 63) | 128);
				output += String.fromCharCode((c & 63) | 128);
			}
		}
		return output;
	};

	var base64Encode = function(input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
		input = uTF8Encode(input);
		while (i < input.length) {
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}
			output = output + keyString.charAt(enc1) + keyString.charAt(enc2) + keyString.charAt(enc3) + keyString.charAt(enc4);
		}
		return output;
	};

	var getParamsString = function() {
		var parametersString = [];
		var t = "";
		for (var key in parameters) {
			if (key == "t")
				t = parameters[key]
			else
				parametersString.push('"' + key + '":"' + parameters[key] + '"');
		}
		return base64Encode("{" + parametersString.join(",") + "}");
	}

	var self = {
		init: function(blogWidgetID) {
			var bwScript = self.getScriptObject(blogWidgetID);
			parameters = self.parseQueryString(bwScript.src);
			if (null == parameters["t"]) return;
			if (null == document.getElementById("aytm_" + parameters.t)) return;
			ROOT = getDomain(bwScript.src);
			self.initMainLibraries();
		},

		initMainLibraries: function () {
			var jqueryExist = false;
			var scripts = document.getElementsByTagName("script");
			for (var i = 0; i < scripts.length; i++) {
				if (scripts[i].src.toLowerCase().indexOf("jquery") > -1)
					jqueryExist = true;
			}

			if (!jqueryExist && typeof jQuery == "undefined") {
				self.addJSLibraryToHead(ROOT + '/javascripts/_addons/jquery/jquery-1.3.2.min.js');
			}

			self.initSubLibraries();
		},

		initSubLibraries: function() {
			if (typeof jQuery == "undefined") {
				setTimeout(self.initSubLibraries, 100);
				return;
			}
			
			var highchartsExist = false;
			var excanvasExist = false;
			var scripts = document.getElementsByTagName("script");
			for (var i = 0; i < scripts.length; i++) {
				if (scripts[i].src.toLowerCase().indexOf("highcharts") > -1)
					highchartsExist = true;
				if (scripts[i].src.toLowerCase().indexOf("excanvas") > -1)
					excanvasExist = true;
			}

			var guiExist = false;
			var links = document.getElementsByTagName("link");
			for (i = 0; i < links.length; i++) {
				if (links[i].href.toLowerCase().indexOf("statistic_widget") > -1)
					guiExist = true;
			}

			if (!guiExist) {
				self.addCSSLibraryToHead(ROOT + '/stylesheets/_ui/statistic_widget/gui.css');
			}

			if (!highchartsExist && typeof Highcharts == "undefined") {
				self.addJSLibraryToHead(ROOT + '/javascripts/_hc/highcharts.js');
			}

			if (isIE && !excanvasExist && typeof G_vmlCanvasManager == "undefined") {
				self.addJSLibraryToHead(ROOT + '/javascripts/_hc/excanvas.compiled.js');
			}

			self.initBWLibraries();
		},

		initBWLibraries: function () {
			if (typeof Highcharts != "undefined" && ((isIE && typeof G_vmlCanvasManager != "undefined") || !isIE)) {
				setTimeout(self.initBWLibraries, 100);
				return;
			}

			var t_id = parameters.t.toString().substring(0, 14);
			var auth_id = parameters.t.toString().substring(14, 20);
			bwJS = self.addJSLibraryToHead(ROOT + '/sw/' + t_id + '/' + auth_id + '/' + getParamsString() + ".js");

			self.initWidget();
		},

		addJSLibraryToHead: function(src_url) {
			var headID = document.getElementsByTagName("head")[0];
			var newScript = document.createElement('script');
			newScript.type = 'text/javascript';
			newScript.src = src_url + "?r=" + Math.random();
			headID.appendChild(newScript);
			return newScript;
		},

		addCSSLibraryToHead: function(src_url) {
			var headID = document.getElementsByTagName("head")[0];
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = src_url;
			cssNode.media = 'screen';
			headID.appendChild(cssNode);
		},

		getScriptObject: function(searchWord) {
			var d = document.getElementsByTagName("script");
			var c = null;
			for (var b = 0; b < d.length; b++) {
				var a = d[b].src;
				if (a.search(/bw_share/) >= 0 && a.search(searchWord) >= 0) {
					c = d[b];
				}
			}
			return c;
		},

		parseQueryString: function(b) {
			var d = {};
			if (b == undefined) {
				b = location.search ? location.search : "";
			}
			if (b.charAt(0) == "?") {
				b = b.substring(1);
			}
			var f = b.indexOf("?");
			if (f) {
				b = b.substring(f + 1);
			}
			f = b.indexOf("#");
			if (f) {
				b = b.substring(f + 1);
			}
			b = b.replace("+", " ");
			var g = b.split(/[&;]/g);
			for (f = 0; f < g.length; f++) {
				var c = g[f].split("=");
				var a = decodeURIComponent(c[0]);
				var e = decodeURIComponent(c[1]);
				if (!d[a]) {
					d[a] = [];
				}
				d[a].push((c.length == 1) ? "" : e);
			}
			return d;
		},

		initWidget: function() {
			if (typeof window['BlogWidget_' + parameters.t] != "undefined" && null != window['BlogWidget_' + parameters.t]) {
				setTimeout(function() {
					window['BlogWidget_' + parameters.t].init();
				}, 50);
			}
			else {
				setTimeout(self.initWidget, 100);
			}
		}
	}

	return self;
} ();

try {
	window['BW_initializer_' + blogID].init(blogID);
} catch (err) { }
