
var search_result = Class.create();
search_result.prototype = {

    parent: null, // ссылка на родительский объект

    el_list: null,
    el_item: null, item_tpl: null,
    el_paging: null,
    el_paging_cur: null,
    el_paging_delim: null,
    el_paging_other: null,
    el_count: null,

    result: null,

    initialize: function(params){
        this.el_list = $(params.list_id);
        this.el_item = $(params.item_id);
        this.el_paging = $(params.paging_id);
        this.el_count = $(params.count_id);

        this.item_tpl = new Template( unescape(this.el_item.wrap('div').innerHTML));


        var el1 = this.el_paging.getElementsBySelector('.current')[0];
        var el2 = this.el_paging.getElementsBySelector('.delim')[0];
        var el3 = this.el_paging.getElementsBySelector('.other')[0];

        this.el_paging_cur = el1.cloneNode(true);
        this.el_paging_delim = el2.cloneNode(true);
        this.el_paging_other = el3.cloneNode(true);
    },


    set_data: function(obj){
        this.result = obj;
        this.create_pages(obj.info);
        this.create_items(obj.items);
    },







    create_pages: function(obj){

        this.el_count.update( obj.total_items);
        this.el_paging.update('');

        for(var i = 1; i <= obj.total_pages; i++){
           var item;

            if( i == obj.current_page ){
                item = this.el_paging_cur.cloneNode(true);
            }else{
                item = this.el_paging_other.cloneNode(true);
                item.href += i;
                item.onclick = Delegate.create(this.parent, this.parent.send, i);
            }

            var to = ( i == obj.total_pages)? obj.total_items : obj.on_page * i;
            var from = obj.on_page * (i - 1) + 1;
            item.update( from + ' - ' + to);

            this.el_paging.appendChild(item);
            // разделитель в конце не ставим
            if( i < obj.total_pages) this.el_paging.appendChild( this.el_paging_delim.cloneNode(true) );
       }

    },






    create_items: function(arr){

        var delta = this.result.info.on_page * (this.result.info.current_page - 1) + 1;

        var str = '';
        for(var i = 0; i < arr.length; i++){
            var item = arr[i];
            var params = {
                num: delta + i,
                id: item.id,
                title: item.title,
                product_id: item.product_id
            };
            str += this.item_tpl.evaluate(params);

        }
        this.el_list.update(str);
    }

}// end class
