
function Class() { }
       Class.prototype.construct = function() {};
        Class.__asMethod__ = function(func, superClass) {
            return function() {
                var currentSuperClass = this.$;
                this.$ = superClass;
                var ret = func.apply(this, arguments);
                this.$ = currentSuperClass;
                return ret;
            };
        };

        Class.extend = function(def) {
            var classDef = function() {
                if (arguments[0] !== Class) { this.construct.apply(this, arguments); }
            };

            var proto = new this(Class);
            var superClass = this.prototype;

            for (var n in def) {
                var item = def[n];

                if (item instanceof Function) {
                    item = Class.__asMethod__(item, superClass);
                }

                proto[n] = item;
            }

            proto.$ = superClass;
            classDef.prototype = proto;
            classDef.extend = this.extend;
            return classDef;
};

var aladinAiaxAutocom = Class.extend({
		scriptaculus:null,
		
		construct:function(textBoxName,autocomplete_choices,baseUrl,itemSelectedCB,completeCB,notFoundCB,goBackCB){
			this.itemSelected=itemSelectedCB;
			this.scriptaculus = new Ajax.Autocompleter(textBoxName, autocomplete_choices, baseUrl, {afterUpdateElement : itemSelectedCB},{choices : 200},{partialChars : 0});
			this.scriptaculus.registerCompleteCB(completeCB);
			this.scriptaculus.registerNotFoundCB(notFoundCB);
			this.scriptaculus.registerGoBackCB(goBackCB);
			this.scriptaculus.hasFocus=true;
			this.scriptaculus.autoSelect = true;
			this.scriptaculus.options.minChars = 0;
			this.options.choiches=200;
			this.scriptaculus.getUpdatedChoices();


  		}



});


var aladinLocalAutocom = Class.extend({
		scriptaculus:null,
		construct:function(textBoxName,autocomplete_choices,arrayData,itemSelectedCB,completeCB,notFoundCB,goBackCB,onActivityCB,carriageReturnPressedCB,textChangedCB,numChoiches,startSuggestionImmidiatly){
			this.itemSelected=itemSelectedCB;
			this.scriptaculus = new Autocompleter.Local(textBoxName, autocomplete_choices, arrayData, {afterUpdateElement : itemSelectedCB, choices : numChoiches,partialChars : 0});
			this.scriptaculus.registerTextChangedCB(textChangedCB);
			this.scriptaculus.registerCompleteCB(completeCB);
			this.scriptaculus.registerNotFoundCB(notFoundCB);
			this.scriptaculus.registerGoBackCB(goBackCB);
			this.scriptaculus.registerOnActivityCB(onActivityCB);
			this.scriptaculus.registerCarriageReturnPressedCB(carriageReturnPressedCB);
			this.scriptaculus.hasFocus=true;
			this.scriptaculus.autoSelect = false;
			this.scriptaculus.options.minChars = 0;
			if(startSuggestionImmidiatly)
				this.scriptaculus.getUpdatedChoices();


  		},
  		setObj:function(obj){
  			this.scriptaculus.obj = obj;
  		},

  		hide:function(){
  			this.scriptaculus.hide();
  		},
  		
  		show:function(){
  			this.scriptaculus.show();
  		},

  		setMinChars:function(minChars){
  			this.scriptaculus.options.minChars= minChars;
  		},

  		setAutoSelect:function(autoSelect){
  			this.scriptaculus.autoSelect= autoSelect;
  		},


		setArray:function(array){
			this.scriptaculus.options.array = array; 
			this.charsCounter--;
//			this.scriptaculus.preventHiding = true;
			this.scriptaculus.getUpdatedChoices();
		}	 

});


