/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Ilanio | http://www.webdeveloper.com/forum/showthread.php?t=119753 */
var aMail = new Array("albert@mail.com","steve@mail.com","beth@mail.com","harry@mail.com","barry@mail.com", "allen@mail.com", "susan@mail.com", "hal@mail.com");
W.sort();

function Complete(obj, evt) {
 // cursor position
 var CaretPos = 0;
function doGetCaretPosition (ctrl) {

   // IE Support
   if (document.selection) {

      ctrl.focus ();
      var Sel = document.selection.createRange ();

      Sel.moveStart ('character', -ctrl.value.length);

      CaretPos = Sel.text.length;
   }
   // Firefox support
   else if (ctrl.selectionStart || ctrl.selectionStart == '0')
      CaretPos = ctrl.selectionStart;

   return (CaretPos);
}

doGetCaretPosition (document.getElementById('edited'));
//document.form4.define.value = 0 + CaretPos;
//document.wysiwyg1.value = 0 + CaretPos;
//document.getElementById('wysiwyg1').value ="DONE";
//oW.document.body.innerHTML ="test";
    if ((!obj) || (!evt) || (W.length == 0)) {
      return;
  }
  
   if (CaretPos < obj.value.length -1) {
      return;
  }

  if (obj.value.length == 0) {
      return;
  }

  var elm = (obj.setSelectionRange) ? evt.which : evt.keyCode;

  if ((elm < 32) || (elm >= 33 && elm <= 46) || (elm >= 112 && elm <= 123)) {
      return;
  }
   if ( myauto == 1) {
      return;
   }
 


//CaretPos = 5;

//if (CaretPos <obj.value.length -2){
//return;
//}

  //var txt = obj.value.replace(/;/gi, ",");
  //elm = txt.split(" ");
  //txt = elm.pop();
  //txt = txt.replace(/^\s*/, "");
  var txt = obj.value;
  elm = txt.split(" ");
  txt = elm.pop();

  if (txt.length == 0) {
      return;
  }

  if (obj.createTextRange) {
      var rng = document.selection.createRange();
      if (rng.parentElement() == obj) {
            elm = rng.text;
         var ini = obj.value.lastIndexOf(elm);
      }
  } else if (obj.setSelectionRange) {
      var ini = obj.selectionStart;
  }

  for (var i = 0; i < W.length; i++) {
      elm = W[i].toString();
      if (elm.toLowerCase().indexOf(txt.toLowerCase()) == 0) {
            obj.value += elm.substring(txt.length, elm.length);
            obj.value = obj.value + " ";
         break;
      }
  }
  //fix for number of carriage returns
    var mylines = 0;
  if (obj.createTextRange) {
      var mytext = obj.value;
      mylvart = mytext.split('\n');
      mylines = mylvart.length -1 ;
   }

  if (obj.createTextRange) {
      rng = obj.createTextRange();
      rng.moveStart("character", ini - mylines);
      rng.moveEnd("character", obj.value.length);
      rng.select();
  } else if (obj.setSelectionRange) {
      obj.setSelectionRange(ini, obj.value.length);
  }
}


