function ButtonGroup(obj) {this.create(obj);}

//constructor===================================================================

ButtonGroup.prototype.create = function(obj){
  var params = obj;
  var instance = this;
  
  //vars==============================================
  this.name = 'ButtonGroup_instance';
  
  //show params========================================
  function showParams() {
    var params_str = '';
    for(var p in params){
      params_str += p+'=>'+params[p]+', ';
    }
    alert(params_str);
  }
  //showParams();
  
  //get params========================================
  this._target = params.target;
  this._trigger = params.trigger;
  this._active = params.active;
  this._onActivate = params.onActivate;
  this._onMouseDown = params.onMouseDown;
  
  //set default params========================================
  if (this._trigger==undefined) {this._trigger='click';}
  if (this._active==undefined) {this._active=0;}
  if (this._onActivate==undefined) {this._onActivate=function(){}}
  if (this._onMouseDown==undefined) {this._onMouseDown=function(){}}
  
  //auto activate========================================
  this.activate(this._active);
  
  //set events========================================
  $(this._target).find('a.btn').bind(this._trigger,function(e){
    var index = $(this).index();
    instance.activate(index);
    return false;
  })
  $(this._target).find('a.btn').bind('mousedown',function(){instance._onMouseDown();})
  $(this._target).find('a.btn').bind('mousedown',function(){return false;}) //prevent browser drag
}

//methods & properties===================================================================
ButtonGroup.prototype.activate = function(index){
  this.update(index);
  
  //callback
  if ( !isNaN(index) ) {
    this._onActivate();
  }
}
ButtonGroup.prototype.update = function(index){
  this.curIndex = index;
  $(this._target).find('a.btn').removeClass('active').addClass('inactive');
  $(this._target).find('a.btn').eq(index).removeClass('inactive').addClass('active');
}
