//XML load
function readXML(container_id, source_format,len)
{
	var doc = document;
	var con = doc.getElementById(container_id);
	var request = createRequest();
	var isMSIE = /*@cc_on!@*/false;
	
	var loadComplete = function()
	{
		if(request.readyState == 4)
		{
			var res = request.responseText;
			res = res.split("<![CDATA[").join("");
			res = res.split("]]>").join("");
			
			var items = res.match(/<item>((.|\r|\n)+?)<\/item>/gi);
			var n = Math.min(items.length, len);
			for(var i=0;i<n;i++)
			{
				var node = items[i];
				var _title = node.match(/<title>((.|\r|\n)+?)<\/title>/i)[1];
				var _url   = node.match(/<url>((.|\r|\n)+?)<\/url>/i)[1];
				var _desc  = node.match(/<description>((.|\r|\n)+?)<\/description>/i)[1];
				
				var code_string = source_format;
				code_string = code_string.replace("{%TITLE%}"      , _title);
				code_string = code_string.replace("{%URL%}"        , _url);
				code_string = code_string.replace("{%DESCRIPTION%}", _desc);
				
				con.innerHTML += code_string;
			}
		}
	}
	if(String(request.onload) != "undefined") request.onload = loadComplete;
	else request.onreadystatechange = loadComplete;
	
	request.open("get", "xml/sites.xml", false);
	request.send(null);


	function createRequest()
	{
	    try { return new XMLHttpRequest(); }
	    catch(e) {
	        try { return new ActiveXObject("Msxml2.XMLHTTP"); }
	        catch(e) {
	            try { return new ActiveXObject("Microsoft.XMLHTTP"); }
	            catch(e) { return null; }
	        }
	    }
	    return null;
	}
	
}