var r = -1;

var d = new ActiveXObject("Scripting.Dictionary");
var d2 = new ActiveXObject("Scripting.Dictionary"); 
var mx = 500; // maximum

function getNum()
{
  var a, b;
  
  a = (mx * Math.random()) + 1;
  b = Math.floor(a);
  return(b-1);
}

function AddNumsToDict()
{
   var h, i, j;
   j = -1;

   while (d2.Count < mx) 
   {
     var n = getNum();
     if (d2.Exists("x" + n.toString()))
     {   
       h++;
     }
     else
     {
       j++;
       d.Add("x" + j.toString(), n.toString());
       d2.Add("x" + n.toString(), n.toString());
     }

   } 
  
}


function AssignPadding(mystr)
{
  var v,wdth,fac,re;
  if (screen.width == 800)
  {
     wdth = 8.0;
     fac = 6;
  }
  else
  {
     wdth = 8.0;
     fac = 6;
     
  }
  if (mystr.indexOf("&nbsp;") != -1)
  {
	alert('replace');
	re = /&nbsp;*/gm;
	mystr = mystr.replace(re,"Z");
	//alert(mystr);
  }
  if (mystr.indexOf("<u>") != -1)
  {
   	re = /<u>*/gm;
        mystr = mystr.replace(re, "");
        re = /<\/u>*/gm;
	mystr = mystr.replace(re, "");
  }

  if (mystr.indexOf("<br>") != -1)
  {
    var ss, t;
    var lngest, pad;
    ss = mystr.split("<br>");
    lngest = ss[0].length;
    for (t=0; t < ss.length; t++)
    {
      if (ss[t].length > lngest)
      {
        lngest = ss[t].length;
      }
    }
    
    pad = ( wdth - ((lngest * fac)/72) ) / 2;
    //alert(lngest);
    v = pad;
  }
  else
  {
    lngest = mystr.length;
    pad = ( wdth - ((lngest * fac)/72) ) / 2;

    v = pad;
  }

  return(v)
}

function HideInstruct()
{
    instruct1.style.visibility = 'hidden';
}

function startup()
{
  var s;
  if (screen.width == 800)
  {
     table1.style.fontSize ='8pt';
     //table1.style.width = '8.0in'; 
     //table1.style.height = '5.0in'; 
  }
  else
  {
     table1.style.fontSize = '10pt';
     //table1.style.width = '8.0in';
     //table1.style.height = '5.0in';
  }

  s = "SENTENCES<br><br><br>Robert Grenier";
  //mytd.style.paddingLeft = AssignPadding(s) + 'in';
  s = s.replace("<br><br><br>","\n\n\n");
  SetCookie("pg", -1);
  mytd.innerText= s;
  prev.disabled=true;
  AddNumsToDict();
}

function SetCookie(sName, sValue)
{
  document.cookie = sName + "=" + escape(sValue) + ";"
  
}

function GetCookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

function previous(){
  var num = GetCookie("pg");
  if (num == mx){ //maximum
    SetCookie("pg",parseInt(num) - 1);
    num = GetCookie("pg");
  }
  nxt.disabled = false;
  
  if (num <= 1){
    prev.disabled = true;
  }
  if (num >= 1){
  readText(num, "prev");
  SetCookie("pg",parseInt(num) - 1);
  }
}

function next(){
  
  var num = GetCookie("pg");
  if (num > -1){
    prev.disabled = false;
  }
  else{
    prev.disabled = true;
  }
  if (num >= parseInt(mx)-1){  //maximum - 1
    nxt.disabled = true;
  }
  else {
    nxt.disabled = false;
  }
  if (num <= parseInt(mx)-2){
  readText(num,"next");
  SetCookie("pg",parseInt(num)+1);
  }
}

function readText(r, direction)
{

	//var k;
        //alert('inside readText: ' + r + " " + direction + " " + (Caption[d.item("x" + r.toString())]));
	try{
	if (r < mx)  //maximum 
	{
		if (direction == "next") {
		  r++;
		}
		else {
		  r--;
		}
		
		//k = AssignPadding(Caption[d.item("x" + r.toString())])
		
		//mytd.style.paddingLeft = k + 'in'	
		if (document.body.filters){	
		  if (direction == "next") {
		    table1.filters[0].apply();
		  }
		  else {
		    table1.filters[1].apply();
		  }
		}
		mytd.innerHTML = Caption[d.item("x" + r.toString())]

		if (document.body.filters){
		  if (direction == "next") {
		    table1.filters[0].play();
		  }
		  else {
		    table1.filters[1].play();
		  }
                }

	}
	}
	catch(e){
	}



}

function checkKey(){
//if (window.event.ctrlKey)
// {
//   prev.innerHTML = GetCookie("pg");
//   nxt.innerHTML = mx - GetCookie("pg");
// }
  var IE5=document.all? 1:0
  /* Grab the ascii code of the key that was pressed */
  var whKey = !IE5? e.which:event.keyCode;

  switch (String.fromCharCode(whKey))
  {
    case "B" :
    case "b" :
      previous();
      break;
    case "N" :
    case "n" :
      next();
      break;
    case "H" :
    case "h" :
       prev.innerHTML = GetCookie("pg");
       nxt.innerHTML = mx - GetCookie("pg") - 1;
       break;
  }
}
function resetButton(){
  nxt.innerHTML = "Next";
  prev.innerHTML = "Back";
}

function window.onbeforeprint(){
  var ih = Caption[d.item("x" + GetCookie("pg"))];
  table1.style.display = "none";
  nxt.style.visibility = "hidden";
  prev.style.visibility = "hidden";
  table2.style.display = "block";
  mytd2.style.visibility = "visible";
  mytd2.innerHTML = ih;
}

function window.onafterprint(){
  nxt.style.visibility = "visible";
  prev.style.visibility = "visible";
  table2.style.display = "none";
  table1.style.display = "block";
}
