if (!window.HN) HN = window.HN = {};

// taken from old jquery lib version
HN.userAgent = navigator.userAgent.toLowerCase();
HN.browser = {
	version: (HN.userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
	safari: /webkit/.test( HN.userAgent ),
	opera: /opera/.test( HN.userAgent ),
	msie: /msie/.test( HN.userAgent ) && !/opera/.test( HN.userAgent ),
	mozilla: /mozilla/.test( HN.userAgent ) && !/(compatible|webkit)/.test( HN.userAgent ),
	firefox: /firefox/.test( HN.userAgent ),
	firefoxVer: (HN.userAgent.match( /.+firefox\/([\d.]+)/ ) || [])[1],
	windows: /windows/.test( HN.userAgent )
};

HN.imageToReplaceCount = 0;
HN.replacedImageCount = 0;
HN.replaceImageComplete = function(){};

HN.replaceImage = function (img) {
	var span = document.createElement("span");
	if (img.id) span.id = img.id;
	if (img.className) span.className = img.className;
	span.className += " ie6img";
	if (img.title) span.title = img.title;
	span.style.display = "inline-block";
	span.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='" + img.src + "')";
	span.style.width = img.width+"px";
	span.style.height = img.height+"px";
	if (img.parentNode.nodeName.toLowerCase() == "a") {
		span.style.cursor = "pointer";
	}
	for (attr in img.style) {
		if (attr != "cssText" && attr != "accelerator") {
			if ((typeof img.style[attr] == "boolean" && img.style[attr] != false) ||
					(typeof img.style[attr] == "number" && img.style[attr] != 0) ||
					(typeof img.style[attr] == "string" && img.style[attr] != "")) {
				span.style[attr] = img.style[attr];
			}
		}
	}
	
	img.parentNode.replaceChild(span, img);
	HN.replacedImageCount++;
	if (HN.replacedImageCount == HN.imageToReplaceCount)
		HN.replaceImageComplete();
}

HN.png2alpha = function () {
	if ((HN.browser.msie && HN.browser.version >= 5.5 && HN.browser.version < 7.0)) {

		var class2ignore = String(arguments[0] ? arguments[0] : "");
		if (class2ignore != "")
			var class2ignore = new RegExp(arguments[0]);
	
		var images = document.getElementsByTagName("img");
		var images_to_change = [];
		for (var i=0; i<images.length; i++) {
			var imgName = images[i].src.toLowerCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "png" && (class2ignore == "" || !class2ignore.test(images[i].className))) {
				images_to_change.push(images[i]);
			}
		}
		HN.imageToReplaceCount = images_to_change.length;
		for (i=0; i<HN.imageToReplaceCount; i++) {
			if (images_to_change[i].complete)
				HN.replaceImage(images_to_change[i]);
			else
				images_to_change[i].onload = function () { HN.replaceImage(this); };
		}
	}
};

HN.CookieManager = function(){};
HN.CookieManager.prototype = {
	read: function(name) {
		var arg = name + "=";
		var i = 0;
		while (i < document.cookie.length) {
			var offset = i + arg.length;
			if (document.cookie.substring(i, offset) == arg) {
				var endstr = document.cookie.indexOf (";", offset);
				if (endstr == -1) endstr = document.cookie.length;
				return unescape(document.cookie.substring(offset, endstr));
			}
			i = document.cookie.indexOf(" ",i) + 1;
			if (i == 0) break;
		}
		return null;
	},
	write: function(name, value) {
		var argv = this.write.arguments;
		var argc = this.write.arguments.length;
		var expires = (argc > 2) ? argv[2] : null;
		var path = (argc > 3) ? argv[3] : null;
		var domain = (argc > 4) ? argv[4] : null;
		var secure = (argc > 5) ? argv[5] : false;
		document.cookie = name + "=" + escape(value) +
			((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
			((path == null) ? "" : ("; path=" + path)) +
			((domain == null) ? "" : ("; domain=" + domain)) +
			((secure == true) ? "; secure" : "");	
	},
	del: function(name) {
		var date = new Date(0);
		this.write(name, null, date);
	}
};
