function loadNews() {
	// Locate News Data Div
	var news = document.getElementById("newsdata");
	// Request News XML
	var data = requestXML("./news.xml");
	// Remove Loading...
	news.innerHTML = "";
	// Loop through Articles
	var articles = data.getElementsByTagName("article");
	for (var i = 0; i < articles.length; i++) {
	    // Parse XML
		var article = articles[i];
		var title = getData(article, "title");
		var date  = getData(article, "date");
		var content = getData(article, "content");
		// Append Data
		news.innerHTML += "<h3>" + date + " - <i>" + title + "</i></h3>";
		news.innerHTML += parseText(content);
		// Slideshows
		// Not Working Dynamically
		/*var slideshows = article.getElementsByTagName("slideshow");
		for (var j = 0; j < slideshows.length; j++) {
			var slideshow = slideshows[j];
			var slideshow_id = getData(slideshow, "id");
			var slideshow_w = getData(slideshow, "width");
			var slideshow_h = getData(slideshow, "height");
			var slideshow_loc = getData(slideshow, "location");
			var images = slideshow.getElementsByTagName("image");
			//var data = new Array();
			for (var k = 0; k < images.length; k++) {
				var image = images[k];
				var url = image.firstChild.nodeValue;
				var cap = image.attributes.getNamedItem("caption").value;
				//data[url] = { 'caption': cap };
			}
			var data = {
			  'open1.jpg': { caption: 'Open House' }, 
			  'open3.jpg': { caption: 'Open House' }, 
			  'cake.jpg': { caption: 'The Riddle Cake' }, 
			  'dazzlingdawg1.jpg': { caption: 'The Dazzling Dawg' },
			  'missy.jpg': { caption: 'Missy, One of Our Visitors' }, 
			  'pug.jpg': { caption: 'A Visiting Pug' }, 
			  'harvestbakery1.jpg': { caption: 'Harvest Bakery and Deli' }, 
			  'dazzlingdawg2.jpg': { caption: 'The Dazzling Dawg.' }  
			};
			//news.innerHTML += getSlideshow(slideshow_id, slideshow_w, slideshow_h);
			//var myShow = new Slideshow(slideshow_id, data, {controller: true, height: slideshow_h, hu: slideshow_loc, loop: true, captions: true, resize: true, delay: 6000, thumbnails: false, width: slideshow_w});
			data.length = 0;
		}*/
		// Append Spacer
		news.innerHTML += "<br />";
	}
}

function loadDog(dogid) {
	// Locate News Data Div
	var name = document.getElementById("dogname");
	// Request News XML
	var data = requestXML("./dogs/" + dogid + ".xml");
	// Remove Loading...
	name.innerHTML = getData(data, "dogname");
	// Add Images
	var div  = document.getElementById("left");
	var imgs = data.getElementsByTagName("image");
	for (var i = 0; i < imgs.length; i++) {
		var img  = imgs[i].firstChild.nodeValue;
		var full = imgs[i].getAttribute("full");
		if (full != null) {
			div.innerHTML += "<p>" + getImg3(img, full) + "</p>";
		} else {
			div.innerHTML += "<p>" + getImg(img) + "</p>";
		}
	}
	// Add Information
	div = document.getElementById("right");
	var kids = getData(data, "children");
	var dogs = getData(data, "dogs");
	var cats = getData(data, "cats");
	div.innerHTML += getImg2("images/" + kids + ".jpg") + getImg2("images/child.jpg");
	div.innerHTML += getImg2("images/" + dogs + ".jpg") + getImg2("images/dog.jpg");
	div.innerHTML += getImg2("images/" + cats + ".jpg") + getImg2("images/cat.jpg");
	
	var breed = getData(data, "breed");
	var age   = getData(data, "age");
	var sex   = getData(data, "sex");
	var house = getData(data, "housebroken");
	var crate = getData(data, "cratetrained");
	var level = getData(data, "activitylevel");
	var output = "<p class=\"info\">";
	output += "<span>Breed: </span>" + breed + "<br />";
	output += "<span>Age: </span>" + age + "<br />";
	output += "<span>Sex: </span>" + sex + "<br />";
	output += "<span>Housebroken: </span>" + house + "<br />";
	output += "<span>Crate Trained: </span>" + crate + "<br />";
	output += "<span>Activity Level: </span>" + level + "<br />";
	output += "</p>";
	div.innerHTML += output;
	div.innerHTML += parseText(getData(data, "description"));
	var counter = "http://www.easycounter.com/counter.php?hullshaven," + dogid; 
	div.innerHTML += "<p class=\"center_text\">" + getImg2(counter) + "</p>";
} 

function loadAvailable() {
	// Locate News Data Div
	var update = document.getElementById("updated");
	var div = document.getElementById("top");
	// Request News XML
	var data = requestXML("./availabledogs.xml");
	// Remove Loading...
	update.innerHTML = "Last Updated: " + getData(data, "updated");
	// Get Available Dogs
	var available = data.getElementsByTagName("available")[0];
	var dogs = available.getElementsByTagName("dog");
	for (var i = 0; i < dogs.length; i++) {
		var output  = "<p style=\"clear: both;\"><p class=\"info_box_pics\">";
		var dogid   = dogs[i].attributes.getNamedItem("id").value;
		var dogdata = requestXML("./dogs/" + dogid + ".xml");
		var images  = dogdata.getElementsByTagName("image");
		for (var j = 0; j < images.length && j < 2; j++) {
			var image = images[j].firstChild.nodeValue;
			output += getImg3(image, "./dog.html?" + dogid);
		}
		output += "</p><p class=\"info_box_icons\">";
		var kids = getData(dogdata, "children");
		var dogz = getData(dogdata, "dogs");
		var cats = getData(dogdata, "cats");
		output += getImg2("images/" + kids + ".jpg") + getImg2("images/child.jpg");
		output += getImg2("images/" + dogz + ".jpg") + getImg2("images/dog.jpg");
		output += getImg2("images/" + cats + ".jpg") + getImg2("images/cat.jpg");
		
		output += "</p><p class=\"info_box\">";
		var dogname = getData(dogdata, "dogname");
		var breed = getData(dogdata, "breed");
		var age   = getData(dogdata, "age");
		var sex   = getData(dogdata, "sex");
		var house = getData(dogdata, "housebroken");
		var crate = getData(dogdata, "cratetrained");
		var level = getData(dogdata, "activitylevel");
		output += "<span class='dogname'>" + dogname + "</span><br />";
		output += "<span>Breed: </span>" + breed + "<br />";
		output += "<span>Age: </span>" + age + "<br />";
		output += "<span>Sex: </span>" + sex + "<br />";
		output += "<span>Housebroken: </span>" + house + "<br />";
		output += "<span>Crate Trained: </span>" + crate + "<br />";
		output += "<span>Activity Level: </span>" + level + "<br /><br />";
		output += "<span>&nbsp;</span><a href=\"./dog.html?" + dogid + "\">More Information...</a>";
		output += "</p>";
		
		div.innerHTML += output;
	}
	// List Pending Dogs
	var pending = data.getElementsByTagName("pending")[0];
	var dogs = pending.getElementsByTagName("dog");
	if (dogs.length > 0) {
		div.innerHTML += "<p style=\"clear: both;\"></p>";
		div.innerHTML += "<h2>Pending Adoptions</h2><p>The following dogs have adoptions pending and are not available for adoption!";
		var output = "<div id=\"list\"><p><ul>";
		for (var i = 0; i < dogs.length; i++) {
			var dogid   = dogs[i].attributes.getNamedItem("id").value;
			var dogdata = requestXML("./dogs/" + dogid + ".xml");
			var dogname = getData(dogdata, "dogname");
			output += "<li><a href=\"./dog.html?" + dogid + "\">" + dogname + "</a></li>";
		}
		output += "</ul></p></div>";
		div.innerHTML += output;
	}
}

function getData(xml, elem) {
  return xml.getElementsByTagName(elem)[0].firstChild.nodeValue;
}

function requestXML(url) {
	if (window.XMLHttpRequest) {  
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  xmlhttp = new XMLHttpRequest();
	} else {
	  // code for IE6, IE5
	  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("GET", url, false);
	xmlhttp.send(null);
	return xmlhttp.responseXML;
}

function parseText(text) {
	var s = text.split("[NL]");
	var o = "";
	var y = new Array();
	var k = new Array();
	var j = 0;
	for (var i = 0; i < s.length; i++) {
		// Parse Line
		n = parseLine(s[i], y, k);
		if (n != "") o += "<p>" + n + "</p>";
		// Add Images
		for (j = 0; j < k.length; j++) {
			o += "<p class=\"center_text\">" + getImg(k[j]) + "</p>";
		}
		// Add Youtube
		for (j = 0; j < y.length; j++) {
			o += "<div class=\"center_text\">" + getYoutube(y[j]) + "</div>";
		}
		k.length = y.length = 0;
	}
	return o;
}

function parseLine(line, y, k) {
	// Variables
	var index = line.indexOf("[img]");
	var id = "";
    // Images [img]path/to/image[/img]
	while (index != -1) {
		id = line.substr(index+5, line.indexOf("[/img]", index+5)-(index+5));
		k[k.length] = id;
		line = line.replace("[img]" + id + "[/img]", "");
		index = line.indexOf("[img]");
	}
	// Line Breaks
	while (line.indexOf("[BR]") != -1) line = line.replace("[BR]", "<br />");
	// Youtube
	index = line.indexOf("[youtube:");
	id = "";
	while (index != -1) {
		id = line.substr(index+9, line.indexOf("]", index+9) - (index+9));
		y[y.length] = id;
		line = line.replace("[youtube:" + id + "]", "");
		index = line.indexOf("[youtube:");
	}
	return line;
}

function getImg(url) {
  return "<img alt=\"img\" src='" + url + "' />";
}

function getImg2(url) {
  return "<img alt=\"img\" style=\"border: 0;\" src='" + url + "' />";
}

function getImg3(url, link) {
  return "<a href='" + link + "'>" + getImg(url) + "</a>";
}

function getYoutube(id) {
  return "<object width=\"480\" height=\"360\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + id + "?fs=1&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + id + "?fs=1&amp;hl=en_US\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"480\" height=\"360\"></embed></object>";
}

function getSlideshow(id, w, h) {
	return "<div style='display: block; width: " + w + "px; height: " + h + "px;' class='center'><div id='" + id + "' class='center'><noscript><p>Please enable java-script to view this slideshow.</p></noscript></div></div>";
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
