// JavaScript Document

var xmlHTTP;
var artCtr = 0;
var articleLimit;

function loadBlogXML(xmlURL, maxArticles) {

	var browser;
	var defaultArticles = 5;
	
	if (maxArticles) {
		articleLimit = maxArticles;	
	} else {
		articleLimit = defaultArticles;	
	}

	xmlHTTP = getHTTPObject();
	if (xmlHTTP) {
		xmlHTTP.onreadystatechange = checkState;
	}
	
	xmlHTTP.open("GET", xmlURL, true);

	if (xmlHTTP.overrideMimeType) {
		xmlHTTP.overrideMimeType('text/xml');
	}
	xmlHTTP.send(null);
}

function checkState() {
	if (xmlHTTP.readyState == 4) {
		if (xmlHTTP.status == 200) {
			traverseXML(xmlHTTP.responseXML);

		}
	}
}

function getHTTPObject() { 
	// code for IE7, Firefox, Mozilla, etc.
	if (typeof XMLHttpRequest != 'undefined') { 
		return new XMLHttpRequest(); 
	} 

	try { 
		return new ActiveXObject("Msxml2.XMLHTTP"); 
	} 
	catch (e) {
		try { 
			
			return new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch (e) {
			return null;
		} 
	}
	
}

function traverseXML(xmlRoot) {

	//alert(xmlRoot);
	var blogHTML = "<div><a href='http://blog.norml.org/'><img src='images/fromtheblog.jpg' alt='From the blog' width='201' height='34' border='0'></a><BR /><BR /></div>";
	var itemNode;
	var iTitle;
	var iDate;
	var iCreator;
	var iDesc;
	var iLink;
	var iCommentsLink;
	
	if (! xmlRoot.documentElement) {
		var xmlAXHTML = new ActiveXObject("Microsoft.XMLDOM");
		xmlAXHTML.loadXML(xmlHTTP.responseText);
		channel = xmlAXHTML.documentElement.getElementsByTagName("channel");
	} else {
		channel = xmlRoot.documentElement.getElementsByTagName("channel");
	}
		
	var items = channel[0].getElementsByTagName("item")	
		
	for (i = 0; i < items.length; i++) {
		itemNode = items[i];
		//item loop
		for (j = 0; j < itemNode.childNodes.length; j++) {
			if (itemNode.childNodes[j].nodeName == "title" && itemNode.childNodes[j].childNodes.length > 0) {
				iTitle = itemNode.childNodes[j].childNodes[0].nodeValue;
			} else if (itemNode.childNodes[j].nodeName == "pubDate") {
				iDate = itemNode.childNodes[j].childNodes[0].nodeValue;
				iDate = iDate.slice(0, iDate.length - 6);
			} else if (itemNode.childNodes[j].nodeName == "dc:creator") {
				iCreator = itemNode.childNodes[j].childNodes[0].nodeValue;
			} else if (itemNode.childNodes[j].nodeName == "content:encoded" && itemNode.childNodes[j].childNodes.length > 0) {
				iDesc = itemNode.childNodes[j].childNodes[0].nodeValue;	
			} else if (itemNode.childNodes[j].nodeName == "link") {
				iLink = itemNode.childNodes[j].childNodes[0].nodeValue;
			} else if (itemNode.childNodes[j].nodeName == "comments") {
				iCommentsLink = itemNode.childNodes[j].childNodes[0].nodeValue;
			}
		}
		
		var encodeLink = encodeURIComponent(iLink);
		var encodeTitle = encodeURIComponent(iTitle);
		
		if (artCtr < articleLimit) {
			blogHTML += "<div class='blogItemTitle'><a class='blogItemTitleLink' href='" + iLink + "'>" + iTitle + "</a></div>";
			blogHTML += "<div class='blogItemDate'>" + iDate + " &nbsp;By: " + iCreator + "</div>";
			
			blogHTML += "<div class='blogShareHome'><strong>Share This Article </strong>";
			blogHTML += "<a target ='_blank' href='http://digg.com/submit?phase=2&topic=Politics&url=" + encodeLink + "&title=" + encodeTitle + "'> <img src='http://www.norml.org/images/community/digg.gif' width='16' height='16' border='0'title='Share this Article on digg' alt='Share this Article on digg'/></a>";
			blogHTML += "<a target ='_blank' href='http://www.reddit.com/submit?url=" + encodeLink + "&title=" + encodeTitle + "'> <img src='http://www.reddit.com/static/spreddit4.gif' width='16' height='16' border='0'title='Share this Article on Reddit' alt='Share this Article on Reddit'/></a>";			
			blogHTML += "<a target ='_blank' href='http://del.icio.us/post?v=4&noui&jump=close&url=" + encodeLink + "&title=" + encodeTitle + "'> <img src='http://www.norml.org/images/community/delicious.gif' title='Share this Article on del.icio.us' alt='Share this Article on del.icio.us' width='16' height='16' border='0' /></a>";
			blogHTML += "<a target ='_blank' href='http://www.stumbleupon.com/submit?url=" + encodeLink + "&title=" + encodeTitle + "'> <img src='http://norml.org/images/community/stumble.gif' width='16' height='16' border='0' title='Share this Article on Stumble Upon' alt='Share this Article on Stumble Upon'/></a>";
			blogHTML += "<a target ='_blank' href='http://www.facebook.com/sharer.php?u=" + encodeLink + "&t=" + encodeTitle + "'> <img src='http://norml.org/images/community/facebook.gif' width='16' height='16' border='0' title='Share this Article on Facebook' alt='Share this Article on Facebook'/></a>";
			blogHTML += "<a target ='_blank' href='http://www.norml.org/scripts/gotwitter.pl?title=" + encodeTitle + "&longurl=" + encodeLink + "'> <img src='http://norml.org/images/community/twitter.gif' width='16' height='16' border='0' title='Share this Article on Twitter' alt='Share this Article on Twitter'/></a>";
			blogHTML += "<a target ='_blank' href='http://technorati.com/faves?add=" + encodeLink + "'> <img src='http://norml.org/images/community/technorati.gif' width='16' height='16' border='0' title='Share this Article on Technorati' alt='Share this Article on Technorati'/></a>";
			blogHTML += "<a target ='_blank' href='http://norml.org/index.cfm?Group_ID=5858'> <img src='http://norml.org/images/community/rsslogo.gif' width='16' height='16' border='0' title='Get the Feed to this Blog' alt='Get the Feed to this Blog'/></a>";

			blogHTML += "</div>";
			
			//remove past more link <span id="more
			
			var morePos = iDesc.indexOf('<span id="more');
			if (morePos != -1) {
				var woAfterMore = iDesc.substring(0, morePos);
				iDesc = woAfterMore + "<p><a href='" + iLink + "'>Full Story</a></p>";
			}
			
			
			blogHTML += "<div class='blogItemDesc'>" + iDesc + "</div>";
			blogHTML += "<div class='blogItemCommentLink'><a href='" + iCommentsLink + "'>View Comments</a></div>";
		}
		if (artCtr < articleLimit - 1) {
			blogHTML += "<hr class='blogFrontPage' />";			//don't show bar for last one
		} else if (artCtr == articleLimit - 1) {
			blogHTML += "<hr class='blogFrontPage' />";			//don't show bar for last one
			blogHTML += "<div class='blogMoreArts'><strong style='font-size:1.3em;'>More Blog Articles</strong><BR /><ul> ";			//Show title	
		} else {
			blogHTML += "<li> <a href='" + iLink + "'>" + iTitle + "</a> </li>";
		}
		artCtr++;
	}

	blogHTML = blogHTML.slice(0, blogHTML.length - 8);
	blogHTML += "</ul><BR /><BR /><BR /></div><hr class='blogFrontPage' />";

	document.getElementById("blog").innerHTML = blogHTML;
}