			var pageLoaded = false;


			var initialLoadComplete = false;


			var currentTab = null;

			var oMain, mainViewer, newsFeed, oFooter;


			var ajaxServer = "res/serverside/streamserver.php";			


			


			function setMainWidth()


			{


				var oTabstrip = document.getElementById("tabbar");


				oMain.style.width = window.innerWidth - 245;


				oTabstrip.style.width = oMain.style.width;


				oFooter.style.width = oMain.style.width;


			}


			


			function loadXMLString(txt) 


			{


				if (window.DOMParser)


				{


  					parser=new DOMParser();


  					xmlDoc=parser.parseFromString(txt,"text/xml");


  				}else{ // Internet Explorer


  					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");


  					xmlDoc.async="false";


  					xmlDoc.loadXML(txt); 


				}


	


				return xmlDoc;


			}


			


			function updateAjaxElement(XMLText)


			{			
		

				var ajaxDOM = loadXMLString(XMLText);


				var root;


				var entryToProcess = "";


				var currentChar = "";


				var linkOpened;


				


				linkOpened = false;





				root = ajaxDOM.childNodes[0];


				


				if(root.nodeName != "feed")


				{


					//if(currentTab.id != root.nodeName)


					//{

						setTab(document.getElementById(root.nodeName));


					//}


					


					if(root.nodeName == "news" || root.nodeName == "tourdates" || root.nodeName == "aboutus")


						appendEntries(root);


					if(root.nodeName == "pictures" || root.nodeName == "videos")


						mediaViewer(root);
		
						refreshAjax(ajaxServer, "newsfeed");

				} else {


					updateFeed(root);


				}


			}


			


			function updateFeed(root)


			{

				var i;


				var feedEntries = root.getElementsByTagName("entry");
				newsFeed.innerHTML = "";

				for(i = 0; i < feedEntries.length; i++)


				{
					processBody(feedEntries[i], newsFeed);

					newsFeed.innerHTML += "<br>";


					


					if(i != feedEntries.length - 1)


						newsFeed.innerHTML = newsFeed.innerHTML + "<hr>";


				}


			}


			function thumbnailObject(root)
			{
				var oReturnObj = null;
				var oLink = null;
				var subcont= null;
				
				
				
				var oPic = document.createElement("img");
				oPic.setAttribute("class", "thumb");
				oPic.setAttribute("src", root.getElementsByTagName("src")[0].childNodes[0].nodeValue);
				
		
				var oText = document.createElement("div");
				oText.setAttribute("class", "thumbnail_text");
				oText.innerHTML = root.getElementsByTagName("title")[0].childNodes[0].nodeValue;
				
				oReturnObj = document.createElement("div");
				oReturnObj.setAttribute("class", "thumb");
				oReturnObj.setAttribute("onmouseover", "this.setAttribute('class', 'thumb_over');");
				oReturnObj.setAttribute("onmouseout", "this.setAttribute('class', 'thumb');");
				
				oLink = document.createElement("a");
				oLink.setAttribute("href", "#" + root.getElementsByTagName("href")[0].childNodes[0].nodeValue);
				oLink.setAttribute("onclick", "refreshAjax(ajaxServer, \'" + root.getElementsByTagName("href")[0].childNodes[0].nodeValue + "\');");
				
				subcont = document.createElement("div");
				subcont.style.width - "100%";
				subcont.style.height - "100%";
				subcont.appendChild(oPic);
				subcont.appendChild(oText);
				
				oLink.appendChild(subcont);
				
				oReturnObj.appendChild(oLink);
				
				
				return oReturnObj;
			}


			function navArrow(idTag)
			{
				if(idTag.childNodes[0].nodeValue != "null")
				{
					var oLink = document.createElement("a");
					oLink.setAttribute("href", "#" + idTag.childNodes[0].nodeValue);
					var oNavArrow = document.createElement("div");
					oNavArrow.setAttribute("class", "gallery_" + idTag.tagName);
					oNavArrow.setAttribute("onmouseover", "this.setAttribute('class', 'gallery_"+idTag.tagName+"_over')");
					oNavArrow.setAttribute("onmouseout", "this.setAttribute('class', 'gallery_"+idTag.tagName+"')");
					oNavArrow.onclick = function() {refreshAjax(ajaxServer, idTag.childNodes[0].nodeValue);};
					oLink.appendChild(oNavArrow);
					return oLink;
				}else{
					return document.createElement("div");
				}
			}
			
			
			function mediaObject(root)
			{
				var oRetObj = null;
				var oPlayer = null; 
				var oTitle = null;
				
				
				var mediaType = root.parentNode.nodeName;
				if(mediaType == "videos")
				{
					oPlayer = document.createElement("iframe");
					oPlayer.setAttribute("type", "application/x-shockwave-flash");
					oPlayer.setAttribute("width", "100%");
					oPlayer.setAttribute("height", "500");
					oPlayer.setAttribute("frameborder", "0");
				} else {
					oPlayer = document.createElement("img");
				}
				
				
				oPlayer.setAttribute("class", "viewer");
				oPlayer.setAttribute("src", root.getElementsByTagName("src")[0].childNodes[0].nodeValue);
				
				oRetObj = document.createElement("div");
				oRetObj.setAttribute("class", "media_frame");
				
				oTitle = document.createElement("div");
				oTitle.setAttribute("class", "viewer_title");
				oTitle.innerHTML = root.getElementsByTagName("title")[0].childNodes[0].nodeValue;
				
				oCaption = document.createElement("div");
				oCaption.setAttribute("class", "viewer_caption");
				oCaption.innerHTML = "&nbsp;&nbsp;&nbsp;" + root.getElementsByTagName("caption")[0].childNodes[0].nodeValue;
				
				
				
				oRetObj.appendChild(oTitle);
				oRetObj.appendChild(oPlayer);
				oRetObj.appendChild(oCaption);
				
				
				
				return oRetObj;
			}


			function mediaViewer(root)

			{
				var entries = null;
				var i, x, y;
				var type = null;
				var oThumb;
	
				type = root.getAttribute("type");
	
				mainViewer.innerHTML = "";
	

				oViewPage = document.createElement("div");
				if(type == "single")
					oViewPage.setAttribute("class", "viewer_frame");
				else
					oViewPage.setAttribute("class", "gallery_frame");
				mainViewer.appendChild(oViewPage);
				
				entries = root.getElementsByTagName("entry");
				

				if(type == "single")
				{
					oViewPage.appendChild(mediaObject(entries[0]));
					oViewPage.appendChild(navArrow(entries[0].getElementsByTagName("next")[0]));
					oViewPage.appendChild(navArrow(entries[0].getElementsByTagName("prev")[0]));
				} else {
					x = 40;
					y = 40;
					for(i = 0; i < entries.length; i++)
					{
						oThumb = thumbnailObject(entries[i]);
						oViewPage.appendChild(oThumb);
						oThumb.style.position = "absolute";
						oThumb.style.left = x;
						x += 150;
						oThumb.style.top = y;
						if(x > (mainViewer.offsetWidth - 150))
						{
							x = 40;
							y += 120;
						}
						
					}
					oViewPage.style.height = y + 150;
					oViewPage.appendChild(navArrow(root.getElementsByTagName("next")[0]));
					oViewPage.appendChild(navArrow(root.getElementsByTagName("prev")[0]));
				}
				


			}


			


			function processBody(root, div)


			{


				var i;
				var addHTML

				


				div.innerHTML += "&nbsp;&nbsp;&nbsp;";


				


				for(i = 0; i < root.childNodes.length; i++)


				{


					if(root.childNodes[i].nodeName == "a")
					{
						addHTML = "";

						addHTML += "<a href=\"" + root.childNodes[i].attributes.getNamedItem("href").nodeValue + "\" ";
						if(root.childNodes[i].attributes.getNamedItem("href").nodeValue.charAt(0) == "#")	
							addHTML += " onclick=\"refreshAjax(ajaxServer, \'" + root.childNodes[i].attributes.getNamedItem("href").nodeValue.substr(1) + "\');\" ";
						addHTML += ">" + root.childNodes[i].childNodes[0].nodeValue + "</a> ";
						div.innerHTML += addHTML;

					}else if(root.childNodes[i].nodeName == "img")
					{	

						div.innerHTML += "<center><img class=\"news\" src=\"" + root.childNodes[i].childNodes[0].nodeValue + "\"></center>&nbsp;&nbsp;&nbsp;";


					}else{


						div.innerHTML += root.childNodes[i].nodeValue;
					}


				}


			


			}


			


			function appendEntries(root)


			{


				var i, j;


				var entryString = "";


				var entries = root.getElementsByTagName("entry");


				var rootDiv, newChild;


				var type = root.getAttribute("type");
				
				if(type != "append")
					mainViewer.innerHTML = "";


				if(entries.length == 0)
					{
						newChild = document.createElement("div");
						newChild.innerHTML = "<br><center>There are no entries at this time.</center><br>";
						mainViewer.appendChild(newChild);
					}else{
				for(i = 0; i < entries.length; i++)


				{	


				


					rootDiv = document.createElement("div");


					rootDiv.setAttribute("class", root.nodeName+"_entry");


					mainViewer.appendChild(rootDiv); 


					

					
					for(j = 0; j < entries[i].childNodes.length; j++)


					{


						
						

					


						if(entries[i].childNodes[j].nodeName != "#text")


						{


							newChild = document.createElement("div");


							newChild.setAttribute("class", root.nodeName+"_"+entries[i].childNodes[j].nodeName);


							if(entries[i].childNodes[j].nodeName == "body")


							{


								processBody(entries[i].childNodes[j], newChild);


							}else{


								newChild.innerHTML = entries[i].childNodes[j].childNodes[0].nodeValue;


							}


							


							rootDiv.appendChild(newChild);


					


						}


					}
					}

					


				}


			}


			


			function refreshAjax(strURL, metaURL)


			{
				
				if(metaURL == "")
					metaURL = "news";
				

				var xmlHttpReq = false;


				var self = this;


   				// Mozilla/Safari 


 			  	if (window.XMLHttpRequest)


 			  	{ 


 			  		self.xmlHttpReq = new XMLHttpRequest();


   				} // IE 


    			else if (window.ActiveXObject)


    			{ 


    				self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");


    			}


 


 				self.xmlHttpReq.open('POST', strURL, true); 	


 				self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 


 				self.xmlHttpReq.onreadystatechange = function() 


 				{ 
		
					if(self.xmlHttpReq.readyState == 4)
					{
						updateAjaxElement(self.xmlHttpReq.responseText);
							
					}

 				}


 			
				self.xmlHttpReq.send("target=" + metaURL);


			}


			


			function getHistoryTag()


			{


				var url = document.URL;


				var tmpChar = "";


				var retString = "";


				var revString = "";


				var i = url.length - 1;


           	while(true)

				{


					tmpChar = url.charAt(i);


					if(tmpChar == "#" || tmpChar == "/") 


						break;


					revString += tmpChar;


					i--;


				}


				for(i = 0; i < revString.length; i++)


				{


					retString += revString.charAt(revString.length - i -1);


				}


				return retString;


			}



			


			function appStart()


			{


				


				oMain = document.getElementById("main");


				mainViewer = document.getElementById("mainviewer");


				oFooter = document.getElementById("footer");


				setMainWidth();


				newsFeed = document.getElementById("newsfeed");


				if(pageLoaded == false)


				{


					window.onresize = function(){


								setMainWidth();


							};
							
					refreshAjax(ajaxServer, getHistoryTag());

					pageLoaded = true;


				}
				
				

	

			}


			


			function iconOver(button)


			{	


				button.src = button.src.substr(0, button.src.length - ".png".length) + "_over.png";


			}


			


			function iconOut(button)


			{


				button.src = button.src.substr(0, button.src.length - "_over.png".length) + ".png";


			}


			


			function tabSelect(tab)


			{


				if(tab != currentTab)


					tab.style.backgroundColor = '#FF7F00';


			}


			


			function tabDeselect(tab)


			{


				if(tab != currentTab)


					tab.style.backgroundColor = '#7F7F7F';


			}


			


			function setTab(tab)


			{
				

				if(tab != currentTab)


				{
					
					if(currentTab)

						currentTab.style.backgroundColor = '#7F7F7F';
					

					tab.style.backgroundColor = '#000000';
					

					currentTab = tab;


					


				}


			}


			


			function tabActivate(tab)


			{


					setTab(tab);
					refreshAjax(ajaxServer,  tab.id);


			}


				
