﻿/*Kodlama:Ahmet AKÇAY*/
function autoComplete(_obj){
    this.myTextBox = _obj.textBox;
    this.insertBeforeMe = _obj.insertBeforeMe;
    if(siteLang=="tr"){
        this.ajaxFile = myApplicationName + "/tr/autoComplete.aspx"
    }
    else{
        this.ajaxFile = myApplicationName + "/en/autoComplete.aspx"
    }
    this.div1 = "ajaxSearchResult";
    this.div2 = "ajaxSearchResultContainer";
    this.div1Cont =null;
    this.div2Cont =null;
    this.showStatu =false;
    this.init();   
}

autoComplete.prototype = {
    init : function(){
        var myContDiv =document.createElement("div");
        myContDiv.id = this.div1;
        var myContDiv1 =document.createElement("div");
        myContDiv1.id = this.div2;
        
        this.insertBeforeMe.insertBefore(myContDiv, this.insertBeforeMe.firstChild);
        this.insertBeforeMe.insertBefore(myContDiv1, this.insertBeforeMe.firstChild);
                
        
        this.div1Cont = mE("#"+this.div1)
        this.div2Cont = mE("#"+this.div2)
        
        this.div1Cont.style.display="none";
        this.div2Cont.style.display="none";  
     
        
        this.myTextBox.onkeyup =  function(_this){
            return function(e){            
                var keyCode = (BrowserDetect.browser =="Internet Explorer") ? event.keyCode : e.which;
                if(_this.myTextBox.value.length>1){
                    if(keyCode!=40 && keyCode!=38 && keyCode!=13){
                        //_this.div1Cont.style.display="block";
                        //_this.div2Cont.style.display="block";  
                        
                        if(BrowserDetect.browser =="Internet Explorer" && BrowserDetect.version<7){
                            _this.div2Cont.style.width= mE("body")[0].offsetWidth+"px";
                            _this.div2Cont.style.height= mE("body")[0].offsetHeight+"px";
                        }
                        //alert(escape(_this.myTextBox.value))
                        var myAjx = new Acaks(
		                    {
			                    url: _this.ajaxFile,
			                    parameters: Math.random(1000) + "&word=" + escape(_this.myTextBox.value).replace("%3C").replace("%3c").replace("%3E").replace("%3e"),
			                    successRun : function(_html){
			                        _this.div1Cont.innerHTML =_html;
			                        if(_html.length>15){
			                            _this.showStatu =true; 
			                            _this.div1Cont.style.display="block"; /*_this.div2Cont.style.display="block";*/
			                            document.onclick = function(_this){
                                            return function(){
                                                _this.closeAutoComplete();
                                            }
                                        }(_this);
			                        }
			                        else{ _this.div1Cont.innerHTML="";} 
			                        var myHref = mE("a",_this.div1Cont);
			                        for(var i=0,k=myHref.length;i<k;i++){
			                            myHref[i].onclick=function(_this){
			                                return function(){
			                                    _this.setTextBoxValue(this.innerHTML);
			                                    return false;
			                                }
			                            }(_this)
			                        } 			                    
			                    }
			                }
			            );  
			            
                    }
                }
                else{
                    if(_this.showStatu == true){
                        _this.closeAutoComplete();
                    }
                }
                            
            }
        }(this);
        // keyup event end

         this.myTextBox.onkeydown = function(_this){         
            return function(e){
            //mE("#deneme").innerHTML= _this.showStatu;
                if(_this.showStatu==true){                            
                    var keyCode = (BrowserDetect.browser =="Internet Explorer") ? event.keyCode : e.which;
                    exSelectedObj = parseInt(_this.getSelObj("sel"));
                    listItemCount =  mE("li", _this.div1Cont).length;
                    
                    if(keyCode==40){  
                                                       
                        newObjNum = exSelectedObj + 1;
                        if(newObjNum == listItemCount) newObjNum = 0;
                        newObj = mE("a",_this.div1Cont)[newObjNum];
                        newObj.className="sel";
                        if(exSelectedObj>-1){
                            exObj = mE("a",_this.div1Cont)[exSelectedObj];
                            exObj.className = exObj.className.replace("sel","");
                        }                        
                    }
                    if(keyCode==38){ 
                        newObjNum = exSelectedObj - 1;
                        if(newObjNum<0) newObjNum = listItemCount-1;
                        newObj = mE("a",_this.div1Cont)[newObjNum];
                        newObj.className="sel";
                        if(exSelectedObj<listItemCount && exSelectedObj>-1){
                            exObj = mE("a",_this.div1Cont)[exSelectedObj];
                            exObj.className = exObj.className.replace("sel","");
                        }   
                    }
                    if(keyCode==13){
                        if(exSelectedObj>-1){
                            newObj = mE("a",_this.div1Cont)[newObjNum];
                            _this.setTextBoxValue(mE("a",_this.div1Cont)[exSelectedObj].innerHTML);
                            //this.value = mE("a",_this.div1Cont)[exSelectedObj].innerHTML;
                            _this.closeAutoComplete(_this);
                                    //return false;
                        }
                    }
                }
            }
         }(this);
         
         // keyup down end
        
        
        /*this.div2Cont.onclick = function(_this){
            return function(){
                _this.closeAutoComplete();
            }
        }(this);*/
        
   },

   closeAutoComplete: function(){
        this.showStatu=false;
        this.div1Cont.style.display="none";
        this.div2Cont.style.display="none";  
        //this.myTextBox.onkeydown = null;
        exSelectedObj = parseInt(this.getSelObj("sel"));
        if(exSelectedObj>-1) this.myTextBox.value = mE("a",this.div1Cont)[exSelectedObj].innerHTML;
        
        document.onclick = null;
        myListItems =mE("li",this.div1Cont);
        for (var i=0;i<myListItems.length;i++){
            exObj =  mE("a",mE("li",this.div1Cont)[i])[0]
            exObj.className = exObj.className.replace("sel","");
        }
   },
   
   getSelObj: function (_className){
        myListItems =mE("li",this.div1Cont);            
        for (var i=0;i<myListItems.length;i++){
            if(mE("a",mE("li",this.div1Cont)[i])[0].className==_className){
                return i;
            }
        }
        return -1;            
   },
   
  setTextBoxValue:  function (_val){
       this.myTextBox.value = _val;
       this.myTextBox.focus();
       this.closeAutoComplete(this);
            //return false;
  }
   
}
