	
	var status = "waiting";
	var changeInt;
	var lastText;
	var newImage;
	var panel0;
	var panel1;
	var panelArray = new Array();
	var scrollObject;
	var scrollInt;

	function debug(textIn) {
		var debugDiv = document.getElementById("debugDiv");
		if (debugDiv) {
			debugDiv.innerHTML = textIn+"<br/>"+debugDiv.innerHTML;
		}
	}
	function checkChange() {
		if (status == "waiting") {
			changeInt = setInterval("textChange()",10);
			status = "checking";
		}
	}
	function textChange() {
		clearInterval(changeInt);
		var curPanel = panelArray[1];
		for (var i=0;i<panelArray.length;i++) {
			var curPanel = panelArray[i];
			panelArray[i].checkChange2(false);
		}
		status = "waiting";
	}
	function loadFirst(plID,showChars,sID) {
		debug("sID: "+sID);
		addPanel(plID,sID);
		if (showChars) {
			panelArray[0].showCharacters();
		}
	}
	function resizeToInner (w, h) {
		// make sure we have a final x/y value
		// pick one or the other windows value, not both
		var inner = getInnerSize();
		var outer = getOuterSize();
		var dw = outer[0] - inner[0];
		var dh = outer[1] - inner[1];
		window.resizeTo(w+dw, h+dh);
	}
	function getOuterSize() {
		if (window.outerWidth) {
  			winW = window.outerWidth;
  			winH = window.outerHeight;
 	 	}
		else if (document.documentElement && document.documentElement.clientHeight) {
			winW = document.documentElement.clientWidth;
			winH = document.documentElement.clientHeight;
		}
		else if (document.body) {
			winW = document.body.clientWidth;
			winH = document.body.clientHeight;
		}
		return [winW,winH];
	}
	function getInnerSize () {
		var x,y;
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight) {
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		}
		else if (document.body) {
			x = document.body.clientWidth;
			y = document.body.clientHeight;
		}
		return [x,y];
	}
	function addPanel(plID,styleID) {
	 	var newHeight = 192 + (1.0 * panelArray.length + 1) *  134 + 70;
		resizeToInner(800, newHeight);
		if (panelArray.length > 0) {
			var curFP = panelArray[panelArray.length-1];
			var newPlID = curFP.plID;
			var myFileArray = fileArray[curFP.plID];
			var curSID = curFP.getCurrentStyleID();
			var nextStyle = 0;
			try { 
				for (var i=0;i<myFileArray.length;i++) {
					var fileNameParts = myFileArray[i].split(":");
					var sID = fileNameParts[0];
					if (curSID == sID) {
							var fileNameParts = myFileArray[i+1].split(":");
						var newStyleID = fileNameParts[0];
					}
				}
			}
			catch (excep) {
// they are probably at the last style
				var newStyleID = 0;
			}
			debug("new style: "+newStyleID);
		}
		else {
			var newPlID = plID;
			var newStyleID = styleID;
		}
		var fontList= document.getElementById("fontList");
		debug("new styleID: "+newStyleID);
		var newPanel =  new fontPanel(panelArray.length,"panel"+panelArray.length,newPlID,newStyleID);
		panelArray.push(newPanel);
		fontList.appendChild(newPanel.draw());
	}
	function loadPL(myQuery) {
		var myRecords = myQuery.getRecords();
		var nextPlID = myRecords[0].getPropertyValue("plID");
		var fontList= document.getElementById("fontList");
		var newPanel =  new fontPanel(panelArray.length,"panel"+panelArray.length,nextPlID,0);
		panelArray.push(newPanel);
		fontList.appendChild(newPanel.draw());
	}
	function scrollCS(scrollObjectIn,speed) {
		if (scrollInt)  clearInterval(scrollInt);
		scrollObject = scrollObjectIn;
		scrollInt = setInterval("doScroll("+speed+")",10);
	}
	function doScroll(speed) {
		scrollObject.moveCharacters(speed);
	}
	function stopScrollCS(speed) {
		scrollObject.moveCharacters(speed);
		clearInterval(scrollInt);
	}
