var LikeBtnCollection = Backbone.Collection.extend({
	model: LikeBtnModel
});

var LikeBtnView = Backbone.View.extend({
    el: 'li.like_btn_container',
    
    events: {
    	'click .like_btn': 'changeLikeStatus'
    },
    
    likeBtn:'',
    
    initialize: function(){
        _.bindAll(this, 'render', 'toggleLike', 'changeLikeStatus');
        var init_val = {
        	is_liker : $(this.el).data('isLiker')
        }
        
    	this.likeBtn = new LikeBtnModel();
        this.likeBtn.set(init_val);
//    	this.likeBtn.bind('change', this.changLikeStatus);
        
        this.render();
    },

    render: function(clickTarget){
    	console.log('Rendered');
    	var context = {item: this.likeBtn};
        var compiled = _.template($('#like_btn_template').html());
        console.log(clickTarget);
        if (clickTarget){
        	$(this.el).html(compiled(context));
        }else{
        	console.log($(clickTarget).parent(this.el));
        	$(clickTarget).parent(this.el).html(compiled(context));
        }
        return this;
    },
    
    changeLikeStatus: function(event){
    	console.log('Change like status triggered');  	
    	$this = $('.like_btn',this.el);
    	var this2 = this;
    	var attrs = $(this.el).attr('id').split('_');
        var d = new Date();
        var url = '/like/toggle/' + attrs[0] + '/' + attrs[1] + '/?_=' + d.getTime();
        $.ajax({
            url:url,
            type: 'POST',
            data: {'view_session_id':gViewSessionID},
            dataType: 'json',
            success: function(data){
            	this2.likeBtn.set(data);
            	this2.render(event.target);
//                $this.text(data.label);
//                $(selector).trigger('updateLikeInfo', {
//                    pk: attrs[1],
//                    html: data.html
//                });
                if(data.is_metoo && data.object_id){
                    methods.addTodo(data, data.is_liker, $('.ui_todo_group.'+data.object_id));
                }
            },
            error: function(jqXHR, textStatus, errorThrown){
                if(jqXHR.status == 200){
                    autoShowDialogAjax({
                        url: "/ajaxloginpopup/", 
                        nail: 140,
                        tpye: "GET",
                        data: "",
                        dataType: "html",
                        cache: false,
                        callback: function() {}, 
                        callback_close: function() {}
                    });
                    return false;
                }
            }
        });
    },
    
    toggleLike: function(){
//    	console.log('Toggle like triggered');
//    	$this = $('.like_btn',this.el);
//    	
//    	var attrs = $(this.el).attr('id').split('_');
//        var d = new Date();
//        var url = '/like/toggle/' + attrs[0] + '/' + attrs[1] + '/?_=' + d.getTime();
//        $.ajax({
//            url:url,
//            type: 'POST',
//            data: {'view_session_id':gViewSessionID},
//            dataType: 'json',
//            success: function(data){
//                $this.text(data.label);
////                $(selector).trigger('updateLikeInfo', {
////                    pk: attrs[1],
////                    html: data.html
////                });
//                if(data.is_metoo && data.object_id){
//                    methods.addTodo(data, data.is_liker, $('.ui_todo_group.'+data.object_id));
//                }
//            },
//            error: function(jqXHR, textStatus, errorThrown){
//                if(jqXHR.status == 200){
//                    autoShowDialogAjax({
//                        url: "/ajaxloginpopup/", 
//                        nail: 140,
//                        tpye: "GET",
//                        data: "",
//                        dataType: "html",
//                        cache: false,
//                        callback: function() {}, 
//                        callback_close: function() {}
//                    });
//                    return false;
//                }
//            }
//        });
    }
});
