    var ajax=new Request({		   
        url: path+"/lib/live_search.php",
        onSuccess: function(rs){
            rs=JSON.decode(rs);
            this.ob.data=eval(rs);
            this.ob.autoSug(this.abc);	
        },
        headers:header
    });
    
    function ini_livesearch(){
	$(window.document).getElements('.liveS').each(function(item,n){
            // get form
            item.form=item.getElement('form');
            //link form to parent
            item.form.pr=item;
            // var to hold data
            item.data;
            // define item type according to class
            item.typ=item.getProperty('class').split(' ')[1];
            // absolute poistioned result field
            item.rs=$(document.body).getElements('.rs')[n];
            // link result to parent
            item.rs.pr=item;
            // form onSumit actions
            item.form.addEvent('submit',function(e){
                var data=this.pr.rs.spans[this.pr.rs.sel].data;
		// kunstwerk link samenstellen
		// vanuit kunstwerken
                if(this.pr.typ=='works'){
                    this.action=String(this.action).split('_artwork_').join(data.pkKunstwerkID);
                }else if(this.pr.typ=='artists'){
		    // vanuit kunstenaars
                    var k=false;
                    var i=false;
                    var pr=this.pr;
                    if(String(this.action).indexOf('?')>-1){
                            var rs=[];
                            var values=this.action.split('?')[1].split('&');
                            values.each(function(val){
                                    val=val.split('=');
                                    if(val[0]=='kunstenaars'){
                                            rs.push(val[0]+'='+pr.inp.value.substr(0,1));
                                            k=true;
                                    }else if(val[0]=='kunstenaar'){
                                            rs.push(val[0]+'='+data.pkKunstenaarID);
                                            i=true;
                                    }else{
                                            rs.push(val.join('='));
                                    }
                            });
                            this.action=this.action.split('?')[0]+'?'+rs.join('&');
                    }
                    if(!k)this.action+=((String(this.action).indexOf('?')>-1)? '&': '?' )+'kunstenaars='+this.pr.inp.value.substr(0,1);
                    if(!i)this.action+=((String(this.action).indexOf('?')>-1)? '&': '?' )+ 'kunstenaar='+data.pkKunstenaarID;
		    this.action+='#kunstenaars';
                } 
            })
            // get item input field
            var inp=item.getElement('input');
            item.inp=inp;
            // link input to parent
            inp.pr=item;
            // link to parent's result field
            inp.rs=item.rs;
            // set flag   
            inp.ini=true;
     
            inp.addEvents({
                'focus': function() {
                    if(this.ini){
                            this.value = '';
                            this.ini=false;
                    }
                    this.act= true;
                },
                'blur': function() {//reset
                    this.act= false;
                    if(parseInt(this.rs.getStyle('opacity'))>0){
                        this.rs.fade.start('opacity',0);
                    }
                },
                'keydown': function(event) {
                    var e = new Event(event);
                    if(e.code==13 ||e.code==38||e.code==40 ||e.code==27){
                        this.rs.mvSel(e.code,e);
                        this.down=true;
                    }else if ((e.code == 9) || (e.code == 39) ||// tab,right
                            (e.code == 16) || (e.code == 17) || // shift, ctl
                            (e.code >= 18 && e.code <= 20) || // alt,pause/break,caps lock
                            (e.code >= 33 && e.code <= 35) || // page up,page down,end
                            (e.code >= 36 && e.code <= 37) || // home,left,up
                            (e.code >= 44 && e.code <= 45)) { // print screen,insert
                            this.down=true;
                    };
                },
                'keyup': function(event){
                    var e = new Event(event);
                    if(this.act && !this.down){
                            if(this.value!='')this.pr.autoSug(String(this.value).toLowerCase());
                    }
                    if(this.down)this.down=false;
                }
            });
            var rs=item.rs;
            rs.setStyle('opacity',0);
            rs.fade=new Fx.Tween(rs,{duration: 160, wait: false});
            rs.mvSel=function(code){
                var spans=this.getElements('span');
                var sel=this.sel;
                switch(code){
                    case 38:
                        if(sel)sel--;
                    break;
                    case 40:
                        if(sel<(spans.length-1))sel++;
                    break;
                    case 13:
                        if(this.getStyle('opacity')>0){
                            this.pr.inp.value=spans[this.sel].get('text');
                            this.pr.inp.focus();
                            this.fade.start('opacity',0);
                        }
                    break;
                }
                spans[sel]._over();
            }
            item.autoFill=function(arr){
                var rs=item.rs;
                rs.getElements('span').each(function(item){item.dispose()});
                arr.each(function(item,index){
                    var e=new Element('span',{'class':'l'});
                    e.set('text',item.tit);
                    e.data=item;
                    e.nr=index;
                    if(!index){
                        e.setStyle('background-color','#cfefff');
                    }else{
                        e.setStyle('background-color',((e.nr%2)? '#efefef':'#fff'));
                    }
                    e.addEvent('mouseover',function(){
                        this._over();
                    });	
                    e.addEvent('mouseout',function(){this._out()});
                    e.addEvent('click',function(){
                        rs.getParent().getElement('input').focus();
                        rs.mvSel(13);					
                        rs.getParent().getElement('input').value=this.get('text');
                    });
                    e._over=function(){
                            rs.spans[rs.sel].setStyle('background-color',((rs.sel%2)? '#efefef':'#fff'));
                            this.setStyle('background-color','#cfefff');
                            rs.sel=this.nr;
                    }
                    e._out=function(){this.setStyle('background-color','#fff')}
                    rs.adopt(e);
                });
                rs.sel=0;
                rs.spans=rs.getElements('span');
                rs.setStyle('top',rs.pr.getPosition().y+12+'px');
                rs.fade.start('opacity',1);
            }
            item.autoSug=function(abc){
                var c=abc.substr(0,1);
                if(c!=ajax.abc){
                    ajax.abc=abc;
                    ajax.ob=this;
                    ajax.send('cmd=liveS&typ='+this.typ+'&abc='+c);
                }else{
                    var rs = this.data.filter(function(item, index){
                            return item.tit.toLowerCase().substr(0,abc.length)==abc;
                    });
                    this.autoFill(rs);
                }
            }
	})
    }