﻿
function QuickSearch(companyid, data, resultobj)
{
    //CLASS DATA
    var _companyid = null;
    var _input  = $("<input type='text' class='homeTextBox' />");
    var _parameters = new Array();
    var _data = data;
    var _resultInput = resultobj;
    
    //INITIALIZATION
    _companyid = companyid;
    ParseParameters(arguments);
    if(_data==null || !(_data instanceof Array)){GetServerData();}
    else{Autocomplete();}
        
    //FUNCTIONS - PUBLIC
    this.GetCompanyID = function(){return _companyid;};
    this.GetInput = function(){return _input;};
    this.GetData = function(){return _data;};
    this.GetParameters = function(){return _parameters;};
    
    //FUNCTIONS - PRIVATE
    function Autocomplete()
    {
        _input.autocomplete(_data,
        {
            minChars:       1,
            max:            10,
            autoFill:       true,
            mustMatch:      false,
            matchContains:  true,
            scrollHeight:   200
        });
        _input.result(PopulateResultInput);
    };
    function GetServerData()
    {
        $.ajax(
        {
            type:       "POST",
            data:       JSON.stringify({companyid:_companyid, args:_parameters}),
            url:        "WSQuickSearchDataProvider.asmx/GetData",
            contentType:"application/json; charset=utf-8",
            dataType:   "html",
            success:    function(data)
                        {
                            _data = unescape(data)
                            _data = _data.substr(1,_data.length-2).replace(/\\u0027/g,"'");
                            _data = _data.match(/(\w+[\s\w,.'+]+\w)/g);
                            Autocomplete();
                        }
        });
    };
    function ParseParameters(obj)
    {
        if(obj==null || obj.length<=3){return;}
        for(var i=3;i<obj.length;i++){_parameters[i-3] = obj[i];}
    };
    function PopulateResultInput(a,b)
    {
        if(_resultInput==null){return;}
        
        _resultInput.val(b);
    };
}
