// JavaScript Document

var xmlChapterHTTP;
var iFrameBegin = '<IFRAME style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"  frameBorder="0" width="800" scrolling="no" height="600" src="';
var preLink = "http://www.google.com/calendar/embed?title=NORML%20Calendar%20of%20Events&amp;height=600&amp;wkst=1&amp;bgcolor=%23FFFFFF&amp;src=russ%40norml.org&amp;color=%234E5D6C&amp;";
var iFramePreTZ = 'ctz=';
var iFramePostTZ = '"></IFRAME>';
var timeZone = "";
var timeZoneString = "";

function loadChapterXML(xmlURL) {

	var browser;
	
	xmlChapterHTTP = getHTTPObject();
	if (xmlChapterHTTP) {
		xmlChapterHTTP.onreadystatechange = checkChapterState;
	}
	
	xmlChapterHTTP.open("GET", xmlURL, true);

	if (xmlChapterHTTP.overrideMimeType) {
		xmlChapterHTTP.overrideMimeType('text/xml');
	}
	xmlChapterHTTP.send(null);
}

function checkChapterState() {
	if (xmlChapterHTTP.readyState == 4) {
		if (xmlChapterHTTP.status == 200) {
			traverseChapterXML(xmlChapterHTTP.responseXML);
		}
	}
}

function setTimeZone() {
	
	var localTime = new Date();  
	tempZone = localTime.getTimezoneOffset()/60; // * (-1) + ":00"; 
	//flip sign
	if (tempZone < 0) {
		timeZone = "Eastern Time Zone";  //remove sign
		timeZoneString = timeZone;
	} else {
		if (tempZone < 10) {
			timeZone = "-0";
		} else {
			timeZone = "-";
		}
		 timeZone += tempZone + ":00 (your computer's time)";
		 timeZoneString = "GMT " + timeZone;
	}
}

function writeTimeZone() {
	
	if (timeZone == "") {
		setTimeZone();
	}
	document.write(timeZoneString);
}

function getTimeZone() {
	if (timeZone == "") {
		setTimeZone();
	}
	return(timeZone);	
}

function traverseChapterXML(xmlRoot) {

	var outHTML = "";
	var chapterNode;
	var mapAddress;

	var nodeName;
	var nodeValue;

	if (! xmlRoot.documentElement) {
		
		var xmlAXHTML = new ActiveXObject("Microsoft.XMLDOM");
		xmlAXHTML.async="false";
		xmlAXHTML.loadXML(xmlChapterHTTP.responseText);
		var chaptersNode = xmlAXHTML.getElementsByTagName("chapters");
		var chapters = xmlAXHTML.documentElement.getElementsByTagName("chapters");	
	} else {
		var chaptersNode = xmlRoot.getElementsByTagName("chapters");  //no .documentElement like RSS
		var chapters = chaptersNode[0].getElementsByTagName("chapter");	
	}
	
	outHTML = iFrameBegin + preLink + "junk=" + (new Date()).valueOf() + "&amp;"; 
	
	//var ctr = 0;
		
	for (i = 0; i < chapters.length; i++) {
		chapterNode = chapters[i];
		mapAddress = "";
		//item loop
		for (j = 0; j < chapterNode.childNodes.length; j++) {
			nodeName = chapterNode.childNodes[j].nodeName;
			if (chapterNode.childNodes[j].childNodes.length > 0) {
				nodeValue = chapterNode.childNodes[j].childNodes[0].nodeValue;
		
				//change to use template here ?
				switch (nodeName) {
					
					case "calendar":
						tempValue = nodeValue.replace(/amp;amp;/g,'amp;');
						outHTML += tempValue;
						//ctr++;
					break;

				}
			}
		}
	}

	outHTML += iFramePreTZ + getTimeZone() + iFramePostTZ;		//end of last chapter
	//outHTML += ctr;

	document.getElementById("chapters").innerHTML = outHTML;
}
