var nBorder = 1;
var sMaxParam = "?max=false";
var sCols = "*,300";

function paramValue(sName,sDefault)
{
	var sQueryString = window.location.search;
	var nBegin = sQueryString.indexOf(sName);
	if (nBegin == -1) return sDefault;
	nBegin += sName.length + 1;
	var nEnd = sQueryString.indexOf("&",nBegin);
	if (nEnd == -1) nEnd = sQueryString.length;
	return sQueryString.substring(nBegin, nEnd);
}
var bClearApplet = (paramValue("open","none") != "activities");
function bareUrl()
{
	var sUrl = new String(window.location.href);
	return sUrl.substring(0,sUrl.length - new String(window.location.search).length);
}
function navDir()
{
	var sDir = new String(document.location);
	var nHookIndex = sDir.indexOf("?");
	if (nHookIndex != -1) sDir = sDir.substring(0, nHookIndex);
	sDir = sDir.substring(0,sDir.lastIndexOf("/")+1);
	return sDir;
}
function isMaximized()
{
	var sButtonImage = new String(frames.workspace.document.images.maxbtn.src);
	return sButtonImage.indexOf("restore") != -1;
}
function toggleMaximize(){setMaximized(!isMaximized());}
function setMaximized(bMaximize)
{
	var bIsMaximized = isMaximized();
	var sPanel = sCurrentPanel == "none" ? "instructions" : sCurrentPanel;
	
	// browsers that support resizing frames
	try {
		if (frames.inst && frames.inst.cols) 
		{
			// maximizing workspace
			if (bMaximize == true && !bIsMaximized) 
			{
				frames.workspace.document.images.maxbtn.src = "images/restore.gif";
				frames.inst.cols = '100%,*';
				return;
			}
			// restoring workspace
			else if (bMaximize == false && bIsMaximized) 
			{
				frames.workspace.document.images.maxbtn.src = "images/maximize.gif";
				frames.inst.cols = '*,300';
			}
			// display the page in the panel
			frames.frames[1].open("panelframes.html?page=" + sInstPage, "_self");
			return;
		}
	} 
	// browsers that don't support resizing frames 
	catch (e) {	}
	if (bIsMaximized == false && bMaximize == false)
	{
		frames.frames[1].open("panelframes.html?page=" + sInstPage, "_self");
	}
	else 
	{
		var sIndexParam = nCurrentActivity > 0 ? ("&index=" + nCurrentActivity) : "";
		window.open(bareUrl() + "?open=" + sPanel + sIndexParam + (bMaximize ? "&hidepanel=true" : "") + "&from=" + sFromPage, "_self");
	}
}
function nextActivity()
{
	if (nCurrentActivity < nActivityCount - 1) nCurrentActivity++;
	else nCurrentActivity = 0;
	displayActivityPage();
}
function prevActivity()
{
	if (nCurrentActivity != 0) nCurrentActivity--;
	else nCurrentActivity = nActivityCount - 1;
	displayActivityPage();
}
function displayActivityPage()
{
	frames.frames[1].open("panelframes.html?page=" + sWorkspaceDir + asActivityPages[nCurrentActivity] + "&activities=" + nActivityCount, "_self");
	frames.frames[0].open(navDir() + "vm.html?max=false", "_self");
}
function displayCurrentActivity()
{
	sCurrentPanel = "activities";
	sInstPage = sWorkspaceDir + asActivityPages[nCurrentActivity] + "&activities=" + nActivityCount;
	if (bClearApplet) 
	{
		frames.frames[0].open(navDir() + "vm.html?max=false", "_self");
		bClearApplet = false;
	}
	setMaximized(false);
}
function returnToNavPages()
{
	sDir = navDir();
	if (sFromPage.indexOf("query") == -1) 
		wnd = window.open(sDir + sFromPage, "nav");
	else 
		wnd = window.open(sDir.substring(0, sDir.length - 4) + sFromPage, "nav");
	if (wnd && wnd.focus) wnd.focus();
}
function displayHelp(){displayInst("instructions",sHelpPage);}
function displayLessonPlan(){displayInst("teacher",sTeacherPage);}
function displayNCTMStandard()
{
	var nHeight = screen.availHeight * .9;
	var nWidth = screen.availWidth - 12;
	if (nWidth > 640) nWidth = 640;
	window.open(sNCTMURL,'nctm','resizable=yes,toolbar=0,status=0,location=0,menubar=0,scrollbars=1,width=' + nWidth + ',height=' + nHeight);
}
function displayInst(sOpenParam, sPage)
{
	sCurrentPanel = sOpenParam;
	sInstPage = sPage;
	setMaximized(false);
}
function writeApplet(workspace)
{
	workspace.write('<applet name="vm" code="' + sCode + '" codebase="../applets/" archive="' + sArchive + '" width="' + sAppletWidth + '" height="' + sAppletHeight + '" align="middle" id="Applet1">');
	if (sCurrentPanel == "activities" && nActivityCount > 0 && asActivityConfigs[nCurrentActivity] != "") workspace.write('<param name="init_file" value="../' + sConfigDir + asActivityConfigs[nCurrentActivity] + '">');
	for (var nParam = 0; nParam < asVMParams.length - 1; nParam++)
	{
		workspace.write('<param name="' + asVMParams[nParam][0] + '" value="' + asVMParams[nParam][1] + '">');
	}
	workspace.write('<table border="1" width="500" cellpadding="10" align="center" style="font-size:13px"><tr><td align="center">');
	workspace.write('<span style="color:navy"><b>PROBLEM LOADING VIRTUAL MANIPULATIVE</b></span><br/>');
	workspace.write('A problem prevented the virtual manipulative from loading.<br>');
	workspace.write('<a href="javareq.html" target="_blank" style="text-decoration:underline; color:blue">Click here</a> for additional information.');
	workspace.write('</td></tr></table></applet>');
}
function writeActivitiesButton(workspace)
{
	if (nActivityCount > 0) 
	{
		workspace.write('<td align="center"><a href="javascript:void(null);" onMouseOver="MM_swapImage(\'document.activity\',\'document.activity\',\'images/activities_o.gif\',\'#945038463562\')" onMouseOut="MM_swapImage(\'document.activity\',\'document.activity\',\'images/activities_n.gif\',\'#945038463562\')"');
		workspace.write('onclick="parent.displayCurrentActivity(); return false;"');
		workspace.write('><img title="Activities" border="0" src="images/activities_n.gif" name="activity" /></a></td>');
	}
}
var sFromPage = paramValue("from", "vlibrary.html");

function navLanguage(box)
{
  // Determine selected language
  language = box.options[box.selectedIndex].value;

  // Determine page name
  curURL = window.location.href;
  pageName = getPageName(curURL);

  // Redirect to the same page, but for the selected language
  newURL = "../../" + language + "/nav/" + pageName;
  window.top.location = newURL
}
function getPageName(curURL)
{
  indexLastSlash = curURL.lastIndexOf("/");
  if (indexLastSlash == -1)
  {
    indexLastSlash = curURL.lastIndexOf("\\");
  }
  pageName = curURL.substring(1+indexLastSlash);

  return pageName;
}
