function createXMLHttp(){
	var obj = null;
	try {
		obj = new XMLHttpRequest();
	}
	catch(e){
		try{
			obj = new ActiveXobject("Msxml2.XMLHTTP");
		}
		catch(e2){
			try{
				obj = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e3){}
		}
	}
	return obj;
}

function requestXML(url, xmlhandler){
	var errorbox = document.getElementById("errorbox");
	var xmlhttp = createXMLHttp();
	if(xmlhttp){
		try{
			xmlhttp.onreadystatechange = gotData;
			xmlhttp.open("GET", url, true);
			xmlhttp.send(null);
		}
		catch(e){
			if(errorbox)
				errorbox.innerHTML = "送信に失敗しました。最新のブラウザで試してみてください。";
		}
	}
	else{
		if(errorbox)
			errorbox.innerHTML = "XHTMLHttpRequestが作成できません。最新のブラウザで閲覧してください。";
	}
	
	function gotData(){
		if(xmlhttp.readyState != 4) return;
		if((xmlhttp.status == 200) || xmlhttp.status == 0)
			var xmldoc = xmlhttp.responseXML;
		else {
			if(errorbox)
				errorbox.innerHTML = "HTTPエラー:" + xmlhttp.status;
			return;
		}
		
		if(xmldoc && xmldoc.hasChildNodes())
			xmlhandler(xmldoc);
		else if(errorbox)
			errorbox.innerHTML = "xmlデータが取得できませんでした。最新のブラウザで閲覧してください。";
	}
}

function requestXML2(url, xmlhandler){
	var errorbox = document.getElementById("errorbox2");
	var xmlhttp = createXMLHttp();
	if(xmlhttp){
		try{
			xmlhttp.onreadystatechange = gotData;
			xmlhttp.open("GET", url, true);
			xmlhttp.send(null);
		}
		catch(e){
			if(errorbox)
				errorbox.innerHTML = "送信に失敗しました。最新のブラウザで試してみてください。";
		}
	}
	else{
		if(errorbox)
			errorbox.innerHTML = "XHTMLHttpRequestが作成できません。最新のブラウザで閲覧してください。";
	}
	
	function gotData(){
		if(xmlhttp.readyState != 4) return;
		if((xmlhttp.status == 200) || xmlhttp.status == 0)
			var xmldoc = xmlhttp.responseXML;
		else {
			if(errorbox)
				errorbox.innerHTML = "HTTPエラー:" + xmlhttp.status;
			return;
		}
		
		if(xmldoc && xmldoc.hasChildNodes())
			xmlhandler(xmldoc);
		else if(errorbox)
			errorbox.innerHTML = "xmlデータが取得できませんでした。最新のブラウザで閲覧してください。";
	}
}

function processXML(xmldoc){
	var items = xmldoc.getElementsByTagName("item");
	var ul = document.getElementById("articles");
	for(var i =0; i < 5 && i < items.length; i++){
		var title = getChildText(items[i], "title");
		var link = getChildText(items[i], "link");
		var description = getChildText(items[i], "description");
		var a = document.createElement("A");
		a.href = link;
		a.innerHTML = title;
		var li = document.createElement("LI");
		var p = document.createElement("P");
		p.innerHTML = description
		ul.appendChild(li);
		li.appendChild(a);
		ul.appendChild(p);
		}
}

function processXML2(xmldoc){
	var items = xmldoc.getElementsByTagName("item");
	var ul = document.getElementById("articles2");
	for(var i =0; i < 5 && i < items.length; i++){
		var title = getChildText(items[i], "title");
		var link = getChildText(items[i], "link");
		var description = getChildText(items[i], "description");
		var a = document.createElement("A");
		a.href = link;
		a.innerHTML = title;
		var li = document.createElement("LI");
		var p = document.createElement("P");
		p.innerHTML = description
		ul.appendChild(li);
		li.appendChild(a);
		ul.appendChild(p);
		}
}

function getChildText(elem, tagName){
	if(!elem)return "";
	for (var i = 0; i < elem.childNodes.length; i++){
		var node = elem.childNodes[i];
		if(node.nodeType == 1 && node.tagName == tagName){
			var textnode = node.firstChild;
			if(textnode && textnode.nodeType == 3)
				return textnode.nodeValue;
			else return "";
		}
	}
	return "";
}
