// trpercent.js

    function addDigitPairs(digitstr) {
      var result = "";
      for(var i=0; i<digitstr.length-1; i++) {
        result += (parseInt(digitstr.charAt(i)) + parseInt(digitstr.charAt(i+1)));
      }
      return result; 
    }

    function flamecount(chr) {
      if ((chr=='b')||(chr=='c')||(chr=='d')||(chr=='g')) return true;
      if ((chr=='h')||(chr=='i')||(chr=='j')||(chr=='k')) return true;
      if ((chr=='n')||(chr=='o')||(chr=='p')||(chr=='q')) return true;
      if ((chr=='r')||(chr=='t')||(chr=='u')||(chr=='v')) return true;
      if ((chr=='w')||(chr=='x')||(chr=='y')||(chr=='z')) return true;
      return false;
    }

    function trpercentcalc() {
      var name1;
      var name2;
      var resbox;
      if (trpwcdom) {
        // Oooo, a newer browser... supporting W3C's DOM
        name1 = document.getElementById("trpercentname1").value;
        name2 = document.getElementById("trpercentname2").value;
	resbox = document.getElementById("trpercentworking");
      }
      else {
        if (trpntscpe4) {
          // NS4
          name1 = document.trpercentform.trpercentname1.value;
          name2 = document.trpercentform.trpercentname2.value;
	  resbox = document.trpercentform.trpercentworking;
        }
        else { 
	  if (trpie4) {
            // IE4
            name1 = document.all.trpercentname1.value;
            name2 = document.all.trpercentname2.value;
 	    resbox = document.all.trpercentworking;
          }
          else {
            // Not IE5, NS6, NS4 or IE4 
	    // Stamp feet and go off in a huff.
          }
        }
      }
      if( name1 != '' && name2 != '') {
	var letters = name1.toLowerCase() + name2.toLowerCase();
        var countLs = 0; var countOs = 0; var countVs = 0; 
        var countEs = 0; var countSs = 0; var flamesScore = 0;
        var flamesStr = "";
        for( var i = 0; i < letters.length; i++ ) {
	  // Why does NS4 hate case statement?  Grrr, lots of if's:
          var lttr = letters.charAt(i);
	  if (lttr=='l') countLs++;
	  if (lttr=='o') countOs++;
	  if (lttr=='v') countVs++;
	  if (lttr=='e') countEs++;
	  if (lttr=='s') countSs++;
          if (flamecount(lttr)) flamesScore++;
	}
        var lovesScore  = "" + countLs + countOs + countVs + countEs + countSs;
        var working = lovesScore + "\n";

        var counter = 0;
        while((2<lovesScore.length) && (30>counter++) && (lovesScore!="100")) {
	  lovesScore = addDigitPairs(lovesScore);
          working += lovesScore + "\n";
        }
	if (lovesScore.length>2) {
          working += "Giving up!\n";
	  lovesScore = "";
        }
        else
          lovesScore = parseInt(lovesScore) + "%";

        if ((flamesScore % 6)==1) flamesStr = "F";
        if ((flamesScore % 6)==2) flamesStr = "L";
        if ((flamesScore % 6)==3) flamesStr = "A";
        if ((flamesScore % 6)==4) flamesStr = "M";
        if ((flamesScore % 6)==5) flamesStr = "E";
        if ((flamesScore % 6)==0) flamesStr = "S";

        if (trpwcdom) {
          // Oooo, a newer browser... supporting W3C's DOM
          var newtrpercentresult = document.createTextNode(lovesScore);
          document.getElementById("trpercentresult").replaceChild(newtrpercentresult,trpercentresulttxt);
          trpercentresulttxt = newtrpercentresult;
	  resbox.value = working;
          var newtrphr = ((flamesStr!="") ? document.createTextNode('"' + flamesStr + '" this time!') : document.createTextNode(''));
          document.getElementById("trpflamesres").replaceChild(newtrphr,trpercentflamestxt);
          trpercentflamestxt = newtrphr;
          // Needed for IE5, and doesn't harm NS:
	  document.getElementById("tranim").src = "images/logos/tranim.gif";
        }
        else {
          if (trpntscpe4) {
            // ditch all that layers rubbish from trphotos = tough!
            resbox.value = working;
            if (lovesScore!="") {
              if (flamesStr!="")
                alert('LOVES = ' + lovesScore + '\nFLAMES = "' + flamesStr + '"');
              else
                alert('LOVES = ' + lovesScore);
            }
            document.tranim.src = "images/logos/tranim.gif";
          }
	  else {
	    if (trpie4) {
              document.all.trpercentresult.innerHTML = lovesScore;
              if (flamesStr!="")
                document.all.trpflamesres.innerHTML = '"' + flamesStr + '" this time!';
              else
                document.all.trpflamesres.innerHTML = '';
	      resbox.value = working;
	      document.all.tranim.src = "images/logos/tranim.gif";
            }
            else {
              // Not IE5, NS6, NS4 or IE4 
	      // Stamp feet and go off in a huff.
            }
          }
        }
      } else {
        alert('Please enter two names');
      }
      // trpercentrefocus();
    }

    function trpercentrefocus() {
      if (trpwcdom)   document.getElementById("trpercentname1").focus();
      if (trpntscpe4) document.trpercentform.trpercentname1.focus();
      if (trpie4)     document.all.trpercentname1.focus();
    }

    function trshowpercentage() {
      if (document.getElementById) trpwcdom=1; else trpwcdom=0;
      if (document.layers && !trpwcdom) trpntscpe4=1; else trpntscpe4=0;
      if (document.all && !trpwcdom) trpie4=1; else trpie4=0;
      if (trpwcdom) {
        trpercentresulttxt = document.createTextNode(" % ");
        document.getElementById("trpercentresult").appendChild(trpercentresulttxt);
        trpercentflamestxt = document.createTextNode("                ");
        document.getElementById("trpflamesres").appendChild(trpercentflamestxt);
      }
      else {
        if (trpie4) {
          document.all.trpercentresult.innerHTML = "%";
        }
      }
      // trpercentrefocus();
    } 

var trpercentresulttxt;
var trpercentflamestxt;
var trpwcdom;
var trpntscpe4;
var trpie4;
