var mainUrl = "/httpdocs/options/";

var xmlHttp = new XMLHttpRequest();

function makeMenu(menuDir) {
	var url = "/cgi-bin/menu.cgi?menu="+menuDir;
	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = updatePage;
	xmlHttp.send(null);
}

function utfdecode(utftext) {
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;
 
	while ( i < utftext.length ) {
 
		c = utftext.charCodeAt(i);
 
		if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}
	} 
		return string;
}

function updatePage() {
	if (xmlHttp.readyState == 4) {
		var response = xmlHttp.responseText;
		responsList = eval(response);
		responsList.sort();
		currentDir = document.URL.split("/").slice(-2,-1);
		currentPage = document.URL.split("/").slice(-1);
		var pickList = '<span><b><a href="/">home</a></b></span><br /><br />\n';
		for (i=1; i<responsList.length; i++) {
			levelOne = responsList[i];
			if (utfdecode(levelOne[1])==currentDir) {
				imgsrc = "/images/Expanded.png";
				displaystyle = "display:block;";
			} else {
				imgsrc = "/images/Collapsed.png";
				displaystyle = "display:none;"
			}
			theHref = levelOne[0].replace("../httpdocs", "");
			nameList = String(levelOne[2]).replace("index",levelOne[1]);
			pickList += '<span id="'+ i + '" onmousedown="showMenu('+i+','+ '\''+ nameList +'\'' +')"><img id="img'+ i + '" src="' + imgsrc + '" /><b><a class="l0">' + utfdecode(levelOne[1]) + '</a></b></span><br />\n';
			for (j in levelOne[2]) {
				levelTwo = levelOne[2][j];
				ext = getExt(levelTwo);
				substyle = "l1 greytxt";
				if (utfdecode(levelTwo)==decodeURIComponent(currentPage)) {
					substyle = "l1 bluetxt";
				}
				pageName = utfdecode(levelTwo.replace(ext, "").replace("index",levelOne[1]));
				if (levelTwo.indexOf("hide") == -1) {
					pickList += '<span style="'+ displaystyle + '" id="'+ pageName +'"><a class="' + substyle + '" href="'+ utfdecode(theHref) +'/'+utfdecode(levelTwo)+'">'+ pageName +'</a><br /></span>\n';
				}
			}
		}
		//document.getElementById("testtext").innerHTML = response;
		document.getElementById("menu").innerHTML = pickList;
	}
}

function showMenu(boxID, pageList) {
	iconID = "img" + boxID;
	pageList = pageList.split(',');
	srcimg = document.getElementById(iconID).src;
	if(srcimg.search("Collapsed.png")>0) {
		document.getElementById(iconID).src = "/images/Expanded.png";
		for (p in pageList) {
			if (pageList[p].indexOf("hide") == -1) {
				ext = getExt(pageList[p]);
				q = pageList[p].replace(ext, "");
				document.getElementById(utfdecode(q)).style.display = "block";
			}
		}
	}
	else {
		document.getElementById(iconID).src = "/images/Collapsed.png";
		for (p in pageList) {
			if (pageList[p].indexOf("hide") == -1) {
			ext = getExt(pageList[p]);
			q = pageList[p].replace(ext, "");
			document.getElementById(utfdecode(q)).style.display = "none";
			}
		}
	}
}

function loadPage(){
	//page info
	util = new dateUtils()					//instantiate date utilities
	docDate = Date.parse(document.lastModified);		//date str to millisecs
	util.jdString(docDate, '', 3); util.makeUTCString(docDate);	//get jd and utc for doc
	document.getElementById("mod").innerHTML= "" + "<br />" + util.jdString + " IDT<br />(" + util.utcStringShort + ")";
	delete util
}

function utfencode(string) {
	string = string.replace(/\r\n/g,"\n");
	var utftext = "";
 
	for (var n = 0; n < string.length; n++) {
 
		var c = string.charCodeAt(n);
 
		if (c < 128) {
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) {
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else {
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}
 
	}
 
	return utftext;
}

function getExt(fileField) {
  var extension;
  if (fileField.indexOf('.') > -1) {
    extension = fileField.substring(fileField.lastIndexOf('.') + 1, fileField.length);
  } else {
    extension = "";
  }
  return "." + extension;
}
