COOL Auto Complete textbox using javascript

Create a user control(.ascx) for the cool auto complete textbox. This helps end user for save time when enter previously submitted things in the most of the time. So it has great advantage.

In FIAutoCompleteTextBox.ascx

<%@ Control Language="c#" AutoEventWireup="false" Codebehind="FIAutoCompleteTextBox.ascx.cs" Inherits="MEDNET.Controls.FIAutoCompleteTextBox" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>

<script language="javascript" src="../Library/actb.js" type="text/javascript"></script>

<script>

 

      var customarray=new Array();

      var custom2 = new Array('something','randomly','different');

      var strDataValue = '<%=strDataValues%>';

     

      if(strDataValue != '')

      {    

            var arrDataValue = strDataValue.split("|");

                       

            var arrID = arrDataValue[0].split(",");

           

            var arrDisplay = arrDataValue[1].split(",");

 

            for(i=0;i<arrID.length;i++)

            {    

                  customarray[i] = arrDisplay[i];                                                                      

            }    

      }    

</script>

 

<P>

<asp:TextBox id="txtAutoComplete" runat="server" autocomplete="off"  oncontextmenu="javascript: alert('Right click is not allowed for vendor name.'); return false;"></asp:TextBox>&nbsp;&nbsp;&nbsp;

<script>

var obj1;

var pnlids;

var pnls = document.getElementsByTagName("table");

for(var i=0;i<pnls.length;i++)

{

      var pnl = pnls.item(i);

      if(pnl.id.substring(0,3) == "pnl")

      {    

            pnlids = pnl.id;   //This is for when we use that cool auto complete textbox within a panel control. Getting pannel Name for getting ID of control              

                 

            pnlids = 'pnlDetails';             

            break;                 

                       

      }

      else

      {

           

            pnlids = 'WITHOUTPANEL';// This is for when we place this control anywhere that is without panel.

      }

}

//alert(pnlids)

if(pnlids != 'WITHOUTPANEL')

{

      //function actb is in .js file

      obj1 = actb(document.getElementById(pnlids+'_FIAutoCompleteTextBox1_txtAutoComplete'),customarray);     

}

else

{  

     

      obj1 = actb(document.getElementById('FIAutoCompleteTextBox1_txtAutoComplete'),customarray);

}

</script>

<INPUT id="hdnValues" type="hidden" runat="server">

</P>

 

In code behind

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

 

 

namespace MEDNET.Controls

{

     

      /// <summary>

      ///         Summary description for FIAutoCompleteTextBox.

      /// </summary>

      public class FIAutoCompleteTextBox : System.Web.UI.UserControl

      {

            protected System.Web.UI.WebControls.TextBox txtAutoComplete;

      //Note BLLInventory.BLLinvGeneralRoutines class is used for fetching data as a data access layer, so u can use either as OOPS or simply code on the same page.

            BLLInventory.BLLinvGeneralRoutines objBLLGeneralRoutines = new BLLInventory.BLLinvGeneralRoutines();

            private int intwidth;

            private int intheight;

            private string strcssclass;

            private bool blnenable;

            private string strconn;

            private string strtablename;

            private string strdisplayfield;

            private string strvaluefield;

            protected System.Web.UI.HtmlControls.HtmlInputHidden hdnValues;        

            protected string strDataValues;

       

            public int IntWidth

            {

                  get{return intwidth;}

                  set{intwidth = value;}

            }

            public int IntHeight

            {

                  get{return intheight;}

                  set{intheight = value;}

            }

            public string StrCssClass

            {

                  get{return strcssclass;}

                  set{strcssclass = value;}

            }

            public bool BlnEnable

            {

                  get{return blnenable;}

                  set{blnenable = value;}

            }

            public string StrConn

            {

                  get{return strconn;}

                  set{strconn = value;}

            }

            public string StrTableName

            {

                  get{return strtablename;}

                  set{strtablename = value;}

            }

            public string StrDisplayField

            {

                  get{return strdisplayfield;}

                  set{strdisplayfield = value;}

            }

            public string StrValueField

            {

                  get{return strvaluefield;}

                  set{strvaluefield = value;}

            }

 

 

            private void Page_Load(object sender, System.EventArgs e)

            {

                  if(intwidth != 0)

                  {

                        this.txtAutoComplete.Width = intwidth;

                  }

                  if(intheight != 0)

                  {

                        this.txtAutoComplete.Height = intheight;

                  }

                  if(StrCssClass != null)

                  {

                        this.txtAutoComplete.CssClass = strcssclass;

                  }                

                  if(blnenable == true || blnenable == false)

                  {

                        this.txtAutoComplete.Enabled = blnenable;

                  }

           

//                if(this.strdisplayfield == "VendorName")

//                {

//                      this.hdnValues.Value = "VENDOR";

//                }

//                else

//                {

//                      this.hdnValues.Value = "";

//                }

                 

                  objBLLGeneralRoutines.ConnectionString = this.strconn;                 

                  objBLLGeneralRoutines.StrTableNameAuto = this.strtablename;

                  objBLLGeneralRoutines.StrDisplayFieldAuto = this.strdisplayfield;

                  objBLLGeneralRoutines.StrValueFieldAuto = this.strvaluefield;

 

                 

                  if(Page.IsPostBack == false)

                  {

                        //here fetch actually data depends upon the passed parameter form .aspx page where set actul table and other things.

                        strDataValues = objBLLGeneralRoutines.ReturnAutoCompleteText();  

                        ViewState["DataValue"] = strDataValues;

                  }

                  if(Page.IsPostBack == true)

                  {

                        strDataValues = ViewState["DataValue"].ToString();

                  }

 

            }

            #region Web Form Designer generated code

            override protected void OnInit(EventArgs e)

            {

                  //

                  // CODEGEN: This call is required by the ASP.NET Web Form Designer.

                  //

                  InitializeComponent();

                  base.OnInit(e);

            }

           

            /// <summary>

            ///         Required method for Designer support - do not modify

            ///         the contents of this method with the code editor.

            /// </summary>

            private void InitializeComponent()

            {

                  this.Load += new System.EventHandler(this.Page_Load);

 

            }

            #endregion

      }

}

 

In .aspx page where we are use this cool auto complete textbox.

In .aspx page

<uc1:fiautocompletetextbox id="FIAutoCompleteTextBox1" runat="server"></uc1:fiautocompletetextbox>

In .aspx.cs page

#region : For Auto complete text boxes                     

                  //here is just set table and field name for fetching data for the cool auto complete textbox.      

                  objFIAutoCompletePhy = (FIAutoCompleteTextBox)this.FindControl("FIAutoCompleteTextBox1");

                  objFIAutoCompletePhy.BlnEnable = true;

                  objFIAutoCompletePhy.IntWidth = 120;                 

                  objFIAutoCompletePhy.StrCssClass = "formstyleMandatory";

                  objFIAutoCompletePhy.StrConn = ((SessionData)Session["UserSessionData"]).DatabaseCredentials;

                  objFIAutoCompletePhy.StrTableName = "FetchAutoComplete";

                  objFIAutoCompletePhy.StrDisplayField = "PhysicianName";

                  objFIAutoCompletePhy.StrValueField = "PhysicianID";

#endregion

 

 

Add one javascript page .js that handles every thing .

IN actb.js

var ContractNumber='';

 

function actb(obj,ca)

{

      //alert("hi");

      /* ---- Public Variables ---- */

      this.actb_timeOut = -1; // Autocomplete Timeout in ms (-1: autocomplete never time out)

      this.actb_lim = 10;    // Number of elements autocomplete can show (-1: no limit)      this.actb_firstText = false; // should the auto complete be limited to the beginning of keyword?

      this.actb_mouse = true; // Enable Mouse Support

      this.actb_delimiter = new Array(';',',');  // Delimiter for multiple autocomplete. Set it to empty array for single autocomplete

      this.actb_startcheck = 1; // Show widget only after this number of characters is typed in.  

      /* ---- Public Variables ---- */

     

      /* --- Styles --- */

     

      var colorVal = getCookie();

           

      switch(colorVal)       

      {

            case "blue":

            this.actb_bgColor = '#DEE9FF';

            this.actb_hColor = '#7C9DDF';

            this.actb_textColor = '#000000';

            break;

           

            case "gray":

            this.actb_bgColor = '#D3D3D3';

            this.actb_hColor = '#9A9A9A';

            this.actb_textColor = '#000000';

            break;

           

            case "green":

            this.actb_bgColor = '#99CC99';

            this.actb_hColor = '#64A062';

            this.actb_textColor = '#FFFFFF';

            break;

           

            default:

            this.actb_bgColor = '#DEE9FF';

            this.actb_hColor = '#7C9DDF';

            this.actb_textColor = '#000000';

            break;

     

      }

      //this.actb_bgColor = '#888888';

     

      //this.actb_hColor = '#000000';

      //this.actb_fFamily = 'Verdana';

      this.actb_fSize = '11px';

      this.actb_hStyle = 'text-decoration:underline;font-weight="bold"';

      /* --- Styles --- */

 

      /* ---- Private Variables ---- */

      var actb_delimwords = new Array();

      var actb_cdelimword = 0;

      var actb_delimchar = new Array();

      var actb_display = false;

      var actb_pos = 0;

      var actb_total = 0;

      var actb_curr = null;

      var actb_rangeu = 0;

      var actb_ranged = 0;

      var actb_bool = new Array();

      var actb_pre = 0;

      var actb_toid;

      var actb_tomake = false;

      var actb_getpre = "";

      var actb_mouse_on_list = 1;

      var actb_kwcount = 0;

      var actb_caretmove = false;

      this.actb_keywords = new Array();

      /* ---- Private Variables---- */

     

      this.actb_keywords = ca;     

      var actb_self = this;

 

      actb_curr = obj;

     

      addEvent(actb_curr,"focus",actb_setup);

      function actb_setup(){

            addEvent(document,"keydown",actb_checkkey);

            addEvent(actb_curr,"blur",actb_clear);

            addEvent(document,"keypress",actb_keypress);

      }

 

      function actb_clear(evt){

            if (!evt) evt = event;

            removeEvent(document,"keydown",actb_checkkey);

            removeEvent(actb_curr,"blur",actb_clear);

            removeEvent(document,"keypress",actb_keypress);

            actb_removedisp();

      }

      function actb_parse(n)

      {

            if (actb_self.actb_delimiter.length > 0){

                  var t = actb_delimwords[actb_cdelimword].trim().addslashes();

                  var plen = actb_delimwords[actb_cdelimword].trim().length;

            }else{

                  var t = actb_curr.value.addslashes();

                  var plen = actb_curr.value.length;

            }

            var tobuild = '';

            var i;

 

            if (actb_self.actb_firstText){

                  var re = new RegExp("^" + t, "i");

            }else{

                  var re = new RegExp(t, "i");

            }

           

            var p = n.search(re);

           

 

            for (i=0;i<p;i++){

                  tobuild += n.substr(i,1);

            }

            tobuild += "<font style='"+(actb_self.actb_hStyle)+"'>"

            for (i=p;i<plen+p;i++){

                  tobuild += n.substr(i,1);

            }

            tobuild += "</font>";

                  for (i=plen+p;i<n.length;i++){

                  tobuild += n.substr(i,1);

            }

 

            return tobuild;

      }

      function actb_generate()

      {

            if (document.getElementById('tat_table'))

            {

            actb_display = false;

            document.body.removeChild(document.getElementById('tat_table'));

            }

            if (actb_kwcount == 0)

            {          

                  actb_display = false;

                  return;

            }

            a = document.createElement('table');

            a.cellSpacing='1px';

            a.cellPadding='2px';

            a.style.position='absolute';

            a.style.top = eval(curTop(actb_curr) + actb_curr.offsetHeight) + "px";

            a.style.left = curLeft(actb_curr) + "px";

            a.style.backgroundColor=actb_self.actb_bgColor;

            a.id = 'tat_table';

            document.body.appendChild(a);

            var i;

            var first = true;

            var j = 1;

            if (actb_self.actb_mouse){

                  a.onmouseout = actb_table_unfocus;

                  a.onmouseover = actb_table_focus;

            }

            var counter = 0;

            for (i=0;i<actb_self.actb_keywords.length;i++)

            {                                        

                  if (actb_bool[i])

                  {

                        counter++;

                        r = a.insertRow(-1);

                        if (first && !actb_tomake){

                              r.style.backgroundColor = actb_self.actb_hColor;

                              first = false;

                              actb_pos = counter;

                        }else if(actb_pre == i){

                              r.style.backgroundColor = actb_self.actb_hColor;

                              first = false;

                              actb_pos = counter;

                        }else{

                              r.style.backgroundColor = actb_self.actb_bgColor;

                        }

                        r.id = 'tat_tr'+(j);

                        c = r.insertCell(-1);

                        c.style.color = actb_self.actb_textColor;

                        c.style.fontFamily = actb_self.actb_fFamily;

                        c.style.fontSize = actb_self.actb_fSize;

                       

                        //New added code begin -- Code added 
                        var   pageNameValueF = document.getElementById('FIAutoCompleteTextBox1_hdnValues');     

 

                        if(pageNameValueF != null)

                        {

                              if(Trim(pageNameValueF.value) == 'ISC') //ISC - Insurance Setup Contract

                              {

                                    var arr = actb_self.actb_keywords[i].split('^~');    

                                    ContractNumber = arr[1];                                                                 

                                    c.innerHTML = actb_parse(arr[0]);

                              }

                              else

                              {

                                    c.innerHTML = actb_parse(actb_self.actb_keywords[i]);

                              }

                        }

                        else

                        {

                              c.innerHTML = actb_parse(actb_self.actb_keywords[i]);

                        }

                        //end New added

                        //c.innerHTML = actb_parse(actb_self.actb_keywords[i]); -- Previous line

                        c.id = 'tat_td'+(j);

                        c.setAttribute('pos',j);

                        if (actb_self.actb_mouse){

                              c.style.cursor = 'pointer';

                              c.onclick=actb_mouseclick;

                              c.onmouseover = actb_table_highlight;

                        }

                        j++;

                  }

                  if (j - 1 == actb_self.actb_lim && j < actb_total){

                        r = a.insertRow(-1);

                        r.style.backgroundColor = actb_self.actb_bgColor;

                        c = r.insertCell(-1);

                        c.style.color = actb_self.actb_textColor;

                        c.style.fontFamily = 'arial narrow';

                        c.style.fontSize = actb_self.actb_fSize;

                        c.align='center';

                        replaceHTML(c,'NEXT'); 
                        if (actb_self.actb_mouse){

                              c.style.cursor = 'pointer';

                              c.onclick = actb_mouse_down;

                        }

                        break;

                  }

            }

            actb_rangeu = 1;

            actb_ranged = j-1;

            actb_display = true;

            if (actb_pos <= 0) actb_pos = 1;

      }

      function actb_remake(){

            document.body.removeChild(document.getElementById('tat_table'));

            a = document.createElement('table');

            a.cellSpacing='1px';

            a.cellPadding='2px';

            a.style.position='absolute';

            a.style.top = eval(curTop(actb_curr) + actb_curr.offsetHeight) + "px";

            a.style.left = curLeft(actb_curr) + "px";

            a.style.backgroundColor=actb_self.actb_bgColor;

            a.id = 'tat_table';

            if (actb_self.actb_mouse){

                  a.onmouseout= actb_table_unfocus;

                  a.onmouseover=actb_table_focus;

            }

            document.body.appendChild(a);

            var i;

            var first = true;

            var j = 1;

            if (actb_rangeu > 1){

                  r = a.insertRow(-1);

                  r.style.backgroundColor = actb_self.actb_bgColor;

                  c = r.insertCell(-1);

                  c.style.color = actb_self.actb_textColor;

                  c.style.fontFamily = 'arial narrow';

                  c.style.fontSize = actb_self.actb_fSize;

                  c.align='center';

                  replaceHTML(c,'PREV');

                  if (actb_self.actb_mouse){

                        c.style.cursor = 'pointer';

                        c.onclick = actb_mouse_up;

                  }

            }

            for (i=0;i<actb_self.actb_keywords.length;i++){

                  if (actb_bool[i]){

                        if (j >= actb_rangeu && j <= actb_ranged){

                              r = a.insertRow(-1);

                              r.style.backgroundColor = actb_self.actb_bgColor;

                              r.id = 'tat_tr'+(j);

                              c = r.insertCell(-1);

                              c.style.color = actb_self.actb_textColor;

                              c.style.fontFamily = actb_self.actb_fFamily;

                              c.style.fontSize = actb_self.actb_fSize;

                             

                              //New added code begin -- Code for insurance contract details

                              var   pageNameValueF = document.getElementById('FIAutoCompleteTextBox1_hdnValues');     

 

                              if(pageNameValueF != null)

                              {

                                    if(Trim(pageNameValueF.value) == 'ISC')

                                    {

                                          var arr = actb_self.actb_keywords[i].split('^~');     

                                          ContractNumber = arr[1];                                   

                                          c.innerHTML = actb_parse(arr[0]);

                                    }

                                    else

                                    {

                                          c.innerHTML = actb_parse(actb_self.actb_keywords[i]);

                                    }

                              }

                              else

                              {

                                    c.innerHTML = actb_parse(actb_self.actb_keywords[i]);

                              }

                              //end new added code

                              //c.innerHTML = actb_parse(actb_self.actb_keywords[i]);

                              c.id = 'tat_td'+(j);

                              c.setAttribute('pos',j);

                              if (actb_self.actb_mouse){

                                    c.style.cursor = 'pointer';

                                    c.onclick=actb_mouseclick;

                                    c.onmouseover = actb_table_highlight;

                              }

                              j++;

                        }else{

                              j++;

                        }

                  }

                  if (j > actb_ranged) break;

            }

            if (j-1 < actb_total){

                  r = a.insertRow(-1);

                  r.style.backgroundColor = actb_self.actb_bgColor;

                  c = r.insertCell(-1);

                  c.style.color = actb_self.actb_textColor;

                  c.style.fontFamily = 'arial narrow';

                  c.style.fontSize = actb_self.actb_fSize;

                  c.align='center';

                  replaceHTML(c,'\NEXT');

                  if (actb_self.actb_mouse){

                        c.style.cursor = 'pointer';

                        c.onclick = actb_mouse_down;

                  }

            }

      }

      function actb_goup(){

            if (!actb_display) return;

            if (actb_pos == 1) return;

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;

            actb_pos--;

            if (actb_pos < actb_rangeu) actb_moveup();

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);

      }

      function actb_godown(){

            if (!actb_display) return;

            if (actb_pos == actb_total) return;

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;

            actb_pos++;

            if (actb_pos > actb_ranged) actb_movedown();

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);

      }

      function actb_movedown(){

            actb_rangeu++;

            actb_ranged++;

            actb_remake();

      }

      function actb_moveup(){

            actb_rangeu--;

            actb_ranged--;

            actb_remake();

      }

 

      /* Mouse */

      function actb_mouse_down(){

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;

            actb_pos++;

            actb_movedown();

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;

            actb_curr.focus();

            actb_mouse_on_list = 0;

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);

      }

      function actb_mouse_up(evt){

            if (!evt) evt = event;

            if (evt.stopPropagation){

                  evt.stopPropagation();

            }else{

                  evt.cancelBubble = true;

            }

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;

            actb_pos--;

            actb_moveup();

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;

            actb_curr.focus();

            actb_mouse_on_list = 0;

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list=0;actb_removedisp();},actb_self.actb_timeOut);

      }

      function actb_mouseclick(evt)

      {          

            if (!evt) evt = event;

            if (!actb_display) return;

            actb_mouse_on_list = 0;

            actb_pos = this.getAttribute('pos');           

            actb_penter();

      }

      function actb_table_focus(){

            actb_mouse_on_list = 1;

      }

      function actb_table_unfocus(){

            actb_mouse_on_list = 0;

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);

      }

      function actb_table_highlight(){

            actb_mouse_on_list = 1;

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_bgColor;

            actb_pos = this.getAttribute('pos');

            while (actb_pos < actb_rangeu) actb_moveup();

            while (actb_pos > actb_ranged) actb_movedown();

            document.getElementById('tat_tr'+actb_pos).style.backgroundColor = actb_self.actb_hColor;

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);

      }

      /* ---- */

 

      function actb_insertword(a)

      {    

            if (actb_self.actb_delimiter.length > 0){

                  str = '';

                  l=0;

                  for (i=0;i<actb_delimwords.length;i++){

                        if (actb_cdelimword == i){

                              prespace = postspace = '';

                              gotbreak = false;

                              for (j=0;j<actb_delimwords[i].length;++j){

                                    if (actb_delimwords[i].charAt(j) != ' '){

                                          gotbreak = true;

                                          break;

                                    }

                                    prespace += ' ';

                              }

                              for (j=actb_delimwords[i].length-1;j>=0;--j){

                                    if (actb_delimwords[i].charAt(j) != ' ') break;

                                    postspace += ' ';

                              }

                              str += prespace;

                              str += a;

                              l = str.length;

                              if (gotbreak) str += postspace;

                        }else{

                              str += actb_delimwords[i];

                        }

                        if (i != actb_delimwords.length - 1){

                              str += actb_delimchar[i];

                        }

                  }

                  actb_curr.value = str;

                  setCaret(actb_curr,l);

            }else{

                  actb_curr.value = a;

            }

            actb_mouse_on_list = 0;

            actb_removedisp();

      }

      function actb_penter(){

            if (!actb_display) return;

            actb_display = false;

            var word = '';

            var c = 0;

            for (var i=0;i<=actb_self.actb_keywords.length;i++){

                  if (actb_bool[i]) c++;

                  if (c == actb_pos){

                        word = actb_self.actb_keywords[i];                   

                        break;

                  }

            }          

            var pageNameValue;

            if(pnlids != 'WITHOUTPANEL')

            {                      

                  pageNameValue = document.getElementById(pnlids+'_FIAutoCompleteTextBox1_hdnValues');   

            }

            else

            {                

                  pageNameValue = document.getElementById('FIAutoCompleteTextBox1_hdnValues');                 

            }          

            if(pageNameValue != null)    

            {

                  if(Trim(pageNameValue.value) == 'VENDOR')

                  {

                        VendorType(word);

                  }

                  if(Trim(pageNameValue.value) == 'VENDORORDERINFO')

                  {

                        fetchContract(word);

                  }    

                  if(Trim(pageNameValue.value) == 'ISC') //Setup Contract

                  {    

                        var arr1 = word.split('^~');

                        word = ''

                        word = arr1[0]

                        fetchInsContractNo(arr1[1]);

                  }

            }

            actb_insertword(word);

            l = getCaretStart(actb_curr);

      }

      function actb_removedisp(){

            if (actb_mouse_on_list==0){

                  actb_display = 0;

                  if (document.getElementById('tat_table')){ document.body.removeChild(document.getElementById('tat_table')); }

                  if (actb_toid) clearTimeout(actb_toid);

            }

      }

      function actb_keypress(e){

            if (actb_caretmove) stopEvent(e);

            return !actb_caretmove;

      }

      function actb_checkkey(evt){

            if (!evt) evt = event;

            a = evt.keyCode;

            caret_pos_start = getCaretStart(actb_curr);

            actb_caretmove = 0;

            switch (a){

                  case 38:

                        actb_goup();

                        actb_caretmove = 1;

                        return false;

                        break;

                  case 40:

                        actb_godown();

                        actb_caretmove = 1;

                        return false;

                        break;

                  case 13: case 9:

                        if (actb_display){

                              actb_caretmove = 1;

                              actb_penter();

                              return false;

                        }else{

                              return true;

                        }

                        break;

                  default:

                        setTimeout(function(){actb_tocomplete(a)},50);

                        break;

            }

      }

 

      function actb_tocomplete(kc){

            if (kc == 38 || kc == 40 || kc == 13) return;

            var i;

            if (actb_display){

                  var word = 0;

                  var c = 0;

                  for (var i=0;i<=actb_self.actb_keywords.length;i++){

                        if (actb_bool[i]) c++;

                        if (c == actb_pos){

                              word = i;

                              break;

                        }

                  }

                  actb_pre = word;

            }else{ actb_pre = -1};

           

            if (actb_curr.value == ''){

                  actb_mouse_on_list = 0;

                  actb_removedisp();

                  return;

            }

            if (actb_self.actb_delimiter.length > 0){

                  caret_pos_start = getCaretStart(actb_curr);

                  caret_pos_end = getCaretEnd(actb_curr);

                 

                  delim_split = '';

                  for (i=0;i<actb_self.actb_delimiter.length;i++){

                        delim_split += actb_self.actb_delimiter[i];

                  }

                  delim_split = delim_split.addslashes();

                  delim_split_rx = new RegExp("(["+delim_split+"])");

                  c = 0;

                  actb_delimwords = new Array();

                  actb_delimwords[0] = '';

                  for (i=0,j=actb_curr.value.length;i<actb_curr.value.length;i++,j--){

                        if (actb_curr.value.substr(i,j).search(delim_split_rx) == 0){

                              ma = actb_curr.value.substr(i,j).match(delim_split_rx);

                              actb_delimchar[c] = ma[1];

                              c++;

                              actb_delimwords[c] = '';

                        }else{

                              actb_delimwords[c] += actb_curr.value.charAt(i);

                        }

                  }

 

                  var l = 0;

                  actb_cdelimword = -1;

                  for (i=0;i<actb_delimwords.length;i++){

                        if (caret_pos_end >= l && caret_pos_end <= l + actb_delimwords[i].length){

                              actb_cdelimword = i;

                        }

                        l+=actb_delimwords[i].length + 1;

                  }

                  var ot = actb_delimwords[actb_cdelimword].trim();

                  var t = actb_delimwords[actb_cdelimword].addslashes().trim();

            }else{

                  var ot = actb_curr.value;

                  var t = actb_curr.value.addslashes();

            }

            if (ot.length == 0){

                  actb_mouse_on_list = 0;

                  actb_removedisp();

            }

            if (ot.length < actb_self.actb_startcheck) return this;

            if (actb_self.actb_firstText){

                  var re = new RegExp("^" + t, "i");

            }else{

                  var re = new RegExp(t, "i");

            }

 

            actb_total = 0;

            actb_tomake = false;

            actb_kwcount = 0;

            for (i=0;i<actb_self.actb_keywords.length;i++){

                  actb_bool[i] = false;

                 

                  //if (re.test(actb_self.actb_keywords[i])){

                  if(actb_self.actb_keywords[i].search(re) == 0){

                        actb_total++;

                        actb_bool[i] = true;

                        actb_kwcount++;

                        if (actb_pre == i) actb_tomake = true;

                  }

            }

 

            if (actb_toid) clearTimeout(actb_toid);

            if (actb_self.actb_timeOut > 0) actb_toid = setTimeout(function(){actb_mouse_on_list = 0;actb_removedisp();},actb_self.actb_timeOut);

            actb_generate();

      }

      return this;

}

By Web Star   Popularity  (7230 Views)
Biography - Web Star
Visit my Blog Web developer using Asp.net,C#.net,Sql Server, Silverlight, Javascript, CSS, AJAX etc.