var req;
var words = new Array();

var checked = new Array();

function update(fm,id1)
 {
  //var fm = document.getElementById('fm');
  var id2="txt_"+id1;
  var text = fm.elements[id1].value;
  var text1 = fm.elements[id2].value;
  var len=parseInt(text.length)-parseInt(1);
  var len1=parseInt(text1.length)-parseInt(1);
  var lastchr=text.charAt(len);
  var str="";
  //alert(event.keyCode);
 if(!e)
   var e=window.event;
 if(e.keyCode)
   code=e.keyCode;
 else
  if(e.which)
    code=e.which;
  if(code==8)
   {
	str=text1.substr(0,len1);   
   }
  else
   if((code>=37 && code<=40) || code==46 || code==13 || code==16 || code==20 || code==9)
    str=text1;
   else
   {
    str=text1 + lastchr;
   }
  fm.elements[id2].value= str;
 }
 
function updateviewbox(fm,id1,guj,gname) {
//  var fm = document.getElementById('fm');
  if(fm.guj.checked || guj!="" || fm.elements[gname].checked)
   {
  if(fm) {
	var id2="txt_"+id1;
    var text = fm.elements[id2].value;
    var out = new Array();
    var ch = '';
    var ch2 = '';
    var ch3 = '';
    var i;
    var nextwordstart = 0;
    var nextword = '';
    var textleft = text;
    var lastch = '';
    for(i = 0; i < text.length;i++) {
      textleft = text.substring(i);
      ch = text.charAt(i);
      ch2 = '';
      ch3 = '';
      var ucode = '';
      var wordstart = nextwordstart;
      if(nextwordstart == i) {
        if(textleft.match(/^([a-zA-Z]+)/)) {
          nextword = RegExp.$1;
          if(words[nextword]) {
            ucode = words[nextword];
            nextwordstart = i + nextword.length;
            i += nextword.length - 1;
            lastch = '';
          } else {
            //if(!checked[nextword] && (nextword.length > 1)) {
            //  checkword(nextword);
            //}
            nextwordstart = i + nextword.length;
          }
        } else {
          var wordboundary = '';
          if(textleft.match(/^([^a-zA-Z]+)/)) {
            wordboundary = RegExp.$1;
          }
          nextwordstart += wordboundary.length ? wordboundary.length : 1;
        }
      }
      if(ucode == '') {
        if(i < text.length) {
          ch2 = ch + text.charAt(i+1);
          if(i < text.length-2) {
            ch3 = ch2 + text.charAt(i+2);
          }
        }
      
        var val = (((wordstart == i) || ivowels[lastch]) && ivowels[ch]) ? ivowels[ch] : (chars[ch] ? chars[ch] : chars[ch.toLowerCase()]);
        var val2 = (((wordstart == i) || ivowels[lastch]) && ivowels[ch2]) ? ivowels[ch2] : (specs[ch2] ? specs[ch2] : chars[ch2]);
        var val3 = chars[ch3] ? chars[ch3] : '';
        var thech = val3 ? ch3 : (val2 ? ch2 : ch);
        var thechlen = thech.length;
        var theval = val3 ? val3 : (val2 ? val2 : val);
        if(chars[lastch] && !ivowels[lastch] && chars[thech] && !ivowels[thech] && !lastch.match(/\d/) && !specs[lastch] && !specs[thech] && !thech.match(/\d|M|H/)) {
          theval = halfchar+theval; // half the letter.
        }
        lastch = thech;
        if(theval) {
          ucode = theval;
          i += thech.length - 1;
        } else {
          code  = text.charCodeAt(i);
        }
      }
      if(ucode == '') {
        ucode = '&#'+code+';';
      }
      if(ucode == 'null') {
        ucode = '';
      }

      if(0 && ch == 'i') {
        if(i > 0) {
          var tmp = out[out.length-1];
          out[out.length-1] = ucode;
          ucode = tmp;
        }
      }
      out[out.length] = ucode;
    }
    var ob = fm.elements[id1];
    if(ob) {
      var html = '';
      for(i = 0;i< out.length;i++) {
        html += out[i];
      }
	  ob.innerHTML = html;
    }
  }
 }
}

