/*
XML parser
written by:Donovan Hubbard, 2008
http://donovanh.com
*/
///////////////////////////////////VARZ/////////////////////////////////
var prefix = "http://www.donovanh.com/";
////////////////////////////////FUNCTIONS/////////////////////////////	
/*
creates a new xml object to load into
*/
function makeXML()
{
try //Internet Explorer
  {
  return xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
	{
	return xmlDoc=document.implementation.createDocument("","",null);
	}
  catch(e)
	{
	alert(e.message);
	return;
	}
  }
}
function getArticlesArray()
{
	var xmlDoc = makeXML();
	xmlDoc.async = false;
	xmlDoc.load("pages/blog/articles.xml");
	var i = 0;
	var articles = new Array();
	var posts = xmlDoc.getElementsByTagName("posts")[0];
	for(i;i<posts.childNodes.length;i++)
	{
		if(posts.childNodes[i].nodeType!=1)
		{
		}else{
			articles.push(posts.childNodes[i]);
		}
	}
	return articles;
}
function pasteBlogsByNum(bNum)
{
	var aArr = getArticlesArray();
	var a = 0;
	var link;
	if(bNum == "all")
		bNum = aArr.length;
	for(a;a<bNum;a++)
	{
		link = aArr[a].attributes.getNamedItem("link").nodeValue;
		document.write("<a href="+prefix+"main.php?page=blog/"+link+">"+aArr[a].childNodes[0].nodeValue+"</a><br/><br/>");
	}
}

//////////////////////////////////////////////////////////////////////////////////////////////////////
/*

*/
var xhr_obj;
function loadPage(file) {
	alert("trying to load = "+file);
  if (window.XMLHttpRequest) {
    xhr_obj = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    xhr_obj = new ActiveXObject("Microsoft.XMLHTTP");
  }

  xhr_obj.onreadystatechange = tryWritePage;

  xhr_obj.open("GET", file, true);

  xhr_obj.send(null);
}

function tryWritePage() {
  if (xhr_obj.readyState == 4) {
	alert("XHR complete");
 // if (xhr_obj.status == 200) {
      document.write(xhr_obj.responseText);
   //}
  }
}


/////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////TAG CLOUD FUNCTIONS//////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////
/*
produces a list of recent articles and links
*/
function getTagArray()
{
	var artList = getArticlesArray();
	var allTags = new Array();
	var p = 0;
	for(p;p<artList.length;p++)
	{
		var nxtTags = (artList[p].attributes.getNamedItem("tags").nodeValue);
		var q = 0;
		var newTagArr = nxtTags.split(",");
		for(q;q<newTagArr.length;q++)
		{
			var nxtTag = newTagArr[q];
			if(nxtTag.charAt(0)==" ")
				nxtTag = nxtTag.slice(1);
			var r = 0;
			if(allTags.length == 0)
				allTags.push(nxtTag);
			for(r;r<allTags.length;r++)
			{
				if(nxtTag==allTags[r])	
					break;
				if(r==allTags.length-1)
					allTags.push(nxtTag);
			}
		}
	}
	return allTags;
}
/*
places a list contining one of each tag on the page
*/
function makeTagCloud()
{
	var tagz = getTagArray();
	var t = 0;
	for(t;t<tagz.length;t++)
	{
		document.write("<a href='main.php?page=blog.php&blogTag="+tagz[t]+"')>"+tagz[t]+"</a><br/>");
	}
}
function getPagesByTag(tag)
{
	var artArr = getArticlesArray();
	var hasTag = new Array();
	var u = 0;
	alert("!@#%^$#@");
	for(u;u<artArr.length;u++)
	{
		var nxtTagz = (artArr[u].attributes.getNamedItem("tags").nodeValue);
		var v = 0;
		var tagzArr = nxtTags.split(",");
		for(v;v<newTagArr.length;v++)
		{
			var nxtTagz = tagzArr[v];
			if(nxtTagz.charAt(0)==" ")
				nxtTagz = nxtTagz.slice(1);
			if(nxtTagz == tag)
			{
				var page = (artArr(u).attributes.getNamedItem("link").nodeValue);
				hasTag.push(page);
			}
		}
	}		
	return hasTag;
}

