document.getElementsByClass = function(needle) {
  var my_array = document.getElementsByTagName("*");
  var retvalue = new Array();
  var i;
  var j;

  for (i = 0, j = 0; i < my_array.length; i++) {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}

function sendRequest(url,payload,callback,postData) {
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
			return;
		}
		callback(req, payload);
	}
	if (req.readyState == 4) return;
  req.send(postData);
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

function cmcms_fetchArticle(summary) {
  var file = summary.id.substring(2) + ".xml";
  sendRequest(file, summary, function(req, payload) {
    var fulltext = req.responseXML.getElementsByTagName("content")[0].firstChild;
    payload.parentNode.replaceChild(fulltext, payload);
  });
}

function cmcms() {
  var summarys = document.getElementsByClass("summary");
  var i;
  for (i = 0; i < summarys.length && i < 5; i++) {
    cmcms_fetchArticle(summarys[i]);
  }
}
