var __PANASONIC_ECO_TOPICS_DATA__ = [];

function getReleaseList(conf){
	if (!window.XMLHttpRequest && window.ActiveXObject) {
		window.XMLHttpRequest = function() {
			var msxml = [ 'Msxml2.XMLHTTP.5.0',
			              'Msxml2.XMLHTTP.4.0',
			              'Msxml2.XMLHTTP.3.0',
			              'Msxml2.XMLHTTP'    ,
			              'Microsoft.XMLHTTP' ];
			for (var i = 0, n = msxml.length; i < n; i++) {
				try {
					return new ActiveXObject(msxml[i]);
				} catch (err) { }
			}
			return null;
		};
	}

	var XHRinstance = new function(){
		this.xhr = new window.XMLHttpRequest;
		var onReadyStateChange = function(){
			var self = arguments.callee.aThis;
			if (self.xhr.readyState === 4) {
				self.isComplete = true;
				self.onComplete();
				if (self.xhr.status.toString().charAt(0) === "2" || self.xhr.status.toString().charAt(0) === "3") {
					self.onSuccess();
				} else {
					self.onFail();
				}
			}
		};
		onReadyStateChange.aThis = this;
		this.xhr.onreadystatechange = onReadyStateChange;

		if (document.addEventListener) {
			var onLoad = function(){
				var self = arguments.callee.aThis;
				self.isContentLoaded = true;
				self.onSuccess();
			};
			onLoad.aThis = this;
			document.addEventListener("DOMContentLoaded", onLoad, false);
		} else if (document.attachEvent) {
			var onLoad = function(){
				if (document.readyState === "complete") {
					var self = arguments.callee.aThis;
					self.isContentLoaded = true;
					self.onSuccess();
					document.detachEvent("onreadystatechange", arguments.callee);
				}
			};
			onLoad.aThis = this;
			document.attachEvent("onreadystatechange", onLoad);
		}
	}
	XHRinstance.conf = conf;
	XHRinstance.onComplete = function() {
	}
	XHRinstance.onSuccess = function() {
		if (!this.isContentLoaded || !this.xhr.responseXML) {
			return;
		}

		var node = document.getElementById(this.conf.target);

		var month = [
			"Jan.",
			"Feb.",
			"Mar.",
			"Apr.",
			"May",
			"Jun.",
			"Jul.",
			"Aug.",
			"Sep.",
			"Oct.",
			"Nov.",
			"Dec."
		];
		function sanitize(str) {
			return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
		}

		var items = this.xhr.responseXML.getElementsByTagName("item");
		if (!items.length) return;

		var imageCount = this.conf.imageCount || 0;
		var max = this.conf.max || 0;
		var itemsNodes = [];
		for (var i = 0, n = items.length; i < n && i < max; i++) {
			var item = items[i];

			var subject = "";
			var url = "";
			var image = "";
			var date = "";
			var summary = "";

			var title = item.getElementsByTagName("title")[0];
			if (title) {
				subject = title.firstChild.nodeValue;
			}

			var category = item.getElementsByTagName("category")[0];
			if (category) {
				category = sanitize(category.firstChild.nodeValue);
			}

			var link = item.getElementsByTagName("link")[0];
			if (link) {
				url = encodeURI(sanitize(link.firstChild.nodeValue)).replace(/^http:\/\/.+?\/eco\//, location.href.match(/^(https?:\/\/.+?)\/eco\//)[1] + "/eco/");
			}

			var description = item.getElementsByTagName("description")[0];
			if (description && conf.useDescription) {
				summary = description.firstChild.nodeValue;
			}

			var pubDate = item.getElementsByTagName("pubDate")[0];
			if (pubDate) {
				date = new Date(pubDate.firstChild.nodeValue);
			}

			var enclosure = item.getElementsByTagName("enclosure")[0];
			if (enclosure) {
				image = encodeURI(enclosure.getAttribute("url")).replace(/^http:\/\/.+?\.net\/eco\//, location.href.match(/^(https?:\/\/.+?)\/eco\//)[1] + "/eco/");
			}

			itemsNodes.push('<li' + (imageCount > 0 && image ? ' class="with-image"' : '') + '>' + (imageCount > 0 && image ? '<img class="thumbnail" src="' + image + '" alt="" width="64" height="64">' : '') + (url ? '<a href="' + url + '">' : '') + '<em>' + month[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear() + (category ? ' [' + category + ']' : '') + '</em>' + subject + (url ? '</a>' : '') + '<span class="clear"><img src="/common/img/common/1px.gif" alt="" width="1" height="1"></span>' + (summary ? '<span class="description">' + summary + '</span>' : '') + '</li>');

			if (image && imageCount > 0) {
				imageCount--;
			}
		}

		node.innerHTML = '<ul class="btn-lnk-alignl">' + itemsNodes.join("") + '</ul>';
	}
	XHRinstance.onFail = function() {
	}

	XHRinstance.xhr.open("GET", conf.url + '?' + (new Date()), true);
	XHRinstance.xhr.send(null);
}

