Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10582 lgm 1
 
2
function spliturl(url)
3
{
4
 fullpath = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?"));
5
 params =fullpath.split('<?=base_url()?>');
6
 //console.log(params[1]);
7
 getparams = url.split('?');
8
 //console.log(getparams[1]);
9
 var output = new Array();
10
 output[0] = params[1]; //data controller to parameters
11
 output[1] = getparams[1];//get input
12
 output[2]=fullpath; //full url expcept get input
13
 console.log(output);
14
 return output;
15
}
16
 
17
function autoComplete(){    
18
  var outp = document.getElementById("search-result"); 
19
  var oldins;
20
  var posi = -1;
21
  var words = new Array();
22
  var input;
23
  var key;
24
  microAjaxAutoComplete();
25
  function microAjaxAutoComplete(){
26
    var qstr = document.getElementById("autocomplete").value;
27
    var autoCompleteItems = 10;
28
    var acItems;
29
    if(qstr.length > 2){
30
     microAjax(base_url+'home/autosuggest/'+encodeURIComponent(qstr),function(data){
31
      data = JSON.parse(data);
32
      var results = data;
33
          acItems = results;  
34
        init(acItems);
35
        if(acItems.length == 0){
36
           clearOutput();
37
         }
38
     });     
39
    }else if(qstr.length < 2){
40
      clearOutput(); 
41
    }
42
  }
43
 
44
function setVisible(visi)
45
{
46
  var x = document.getElementById("search");
47
  var t = document.getElementById("autocomplete");
48
}
49
function init(suggestions)
50
{ 
51
  lookAt(suggestions);
52
  setVisible("hidden");
53
  document.onkeydown = keygetter; //needed for Opera...
54
  document.onkeyup = keyHandler;
55
}
56
function lookAt(suggestions)
57
{
58
   var ins = document.getElementById("autocomplete").value;
59
    if (posi > -1);
60
   else if (ins.length > 1)
61
   {
62
    words = suggestions;
63
     if (words.length > 0)
64
     {
65
        clearOutput();
66
        for (var i=0;i < words.length; ++i){
67
          addWord(words[i], words[i]);
68
        }
69
 
70
        setVisible("visible");
71
        input = document.getElementById("autocomplete").value;
72
     }
73
     else
74
     {
75
        setVisible("hidden");
76
        posi = -1;
77
     }
78
   }
79
   else
80
   {
81
    setVisible("hidden");
82
    posi = -1;
83
   }
84
   oldins = ins;
85
}
86
/* This method is used to display the final result to the page in the form of dropdown.*/
87
function addWord(word,urlFragment)
88
{  
89
  var valu = document.getElementById("autocomplete").value;
90
   var sp = document.createElement("div");
91
   var anchor = document.createElement("a");
92
   var url = base_url+'search?q='+encodeURIComponent(urlFragment);
93
       anchor.setAttribute('href',url);
94
       anchor.setAttribute('class',"anchorHighlight");
95
       anchor.setAttribute('onclick',"setValue("+urlFragment+")");
96
   var regEx = new RegExp(valu, "ig");   
97
   var tempValu='<span class="highlight">'+ valu +'</span>'; /* In order to highlight the enterd text by user */
98
     word = word.replace(regEx, tempValu);
99
     anchor.innerHTML= word;
100
     sp.appendChild(anchor);
101
     sp.onmouseover = mouseHandler;
102
     sp.onmouseout = mouseHandlerOut;
103
     sp.onclick = mouseClick;
104
   outp.appendChild(sp);
105
}
106
function clearOutput()
107
{
108
  while (outp.hasChildNodes())
109
  {
110
    noten=outp.firstChild;
111
    outp.removeChild(noten);
112
  }
113
   posi = -1;
114
}
115
 
116
function setColor (_posi, _color, _forg)
117
{
118
   outp.childNodes[_posi].style.background = _color;
119
   outp.childNodes[_posi].style.color = _forg;
120
}
121
function keygetter(event)
122
{
123
  if (!event && window.event) 
124
      event = window.event;
125
  if (event)
126
      key = event.keyCode;
127
  else
128
      key = event.which;
129
}
130
function keyHandler(event)
131
{
132
  if (document.getElementById("search").style.visibility == "visible")
133
  {
134
     var textfield = document.getElementById("autocomplete");
135
     if (key == 40)//key down
136
     { 
137
        if (words.length > 0 && posi <= words.length-1)
138
        {
139
          if (posi >=0)
140
            setColor(posi, "#fff", "black");
141
          else 
142
             input = textfield.value;
143
             setColor(++posi, "blue", "white");
144
             textfield.value = outp.childNodes[posi].firstChild.nodeValue;
145
        }
146
      }
147
      else if (key == 38)
148
      { //Key up
149
        if (words.length > 0 && posi >= 0)
150
         {
151
           if (posi >=1)
152
           {
153
              setColor(posi, "#fff", "black");
154
              setColor(--posi, "blue", "white");
155
              textfield.value = outp.childNodes[posi].firstChild.nodeValue;
156
           }
157
           else
158
           {
159
              setColor(posi, "#fff", "black");
160
              textfield.value = input;
161
              textfield.focus();
162
              posi--;
163
           }
164
         }
165
        }
166
         else if (key == 27)
167
         { // Esc
168
            textfield.value = input;
169
            setVisible("hidden");
170
            posi = -1;
171
            oldins = input;
172
          }
173
          else if (key == 8) 
174
          { // Backspace
175
            posi = -1;
176
            oldins=-1;
177
          } 
178
              }
179
   }
180
    var mouseHandler=function()
181
    {
182
      for (var i=0; i < words.length; ++i){
183
        setColor (i, "white", "black");       
184
      }
185
      //this.style.background = "blue";
186
      this.style.color= "white";
187
     };
188
     var mouseHandlerOut=function()
189
     {
190
       this.style.background = "white";
191
       this.style.color= "black";
192
     };
193
     var mouseClick=function()
194
     {
195
        document.getElementById("autocomplete").value = this.firstChild.nodeValue;
196
        setVisible("hidden");
197
        posi = -1;
198
        oldins = this.firstChild.nodeValue;
199
     };
200
  }
201
 
202
 
203
function searchTrigger(){
204
    var val = document.getElementById('autocomplete').value;
205
    if(val.length >= 3){
206
     window.location = base_url+'search?q='+ val;
207
    }
208
 
209
  }
210
 
211
function setValue(value){
212
  document.getElementById('autocomplete').value = value;
213
}