
(function($){
	
var opts;

//-----------------------------------------------
$.fn.makeselect = function(options, callback)
{
// build main options
opts = $.extend({}, $.fn.makeselect.defaults, options);

var pset=this;

return this.each(function()
  {      
  //$(this).data('opts', opts);
  
  var name=$(this).attr('name');
  var rel=$(this).attr('rel');
  
  var type=opts.type;    
  var defaultvalue=opts.defaultvalue;
  var allowradiouncheck=opts.allowradiouncheck;
  var maxcheck=opts.maxcheck;
  
  if(name && rel)
    {
    var namecnt=$(this).parents('form').find('input[name='+name+']').length;
    var isactive= ($(this).hasClass('active')?1:0);
    var initval=(isactive?rel:defaultvalue);    
        
    if( (type=='radio')  )
      {
      if(namecnt==0)
        { 
        $(this).after('<input type="hidden" name="'+name+'" value="'+initval+'" />');
        }
      else if( isactive )
        $(this).parents('form').find('input[name='+name+']').val(rel);
      }
    if (type=='check')
      {      
      var checkbox=$('<input type="checkbox" name="'+name+'" value="'+rel+'" style="display: none;" />');
      if(isactive) $(checkbox).attr('checked', 'checked');      
      $(this).after(checkbox);
      }
      
      
      
    //Bind------
    $(this).bind('click', function(event) 
  		{
  		event.preventDefault();
  		
  		if(type=='radio')
  		  {
        $(this).parents('form').find('a[name='+name+']').removeClass('active');
        
        initval2=rel;
                        
        if(allowradiouncheck)
          {
          var currentval=$(this).parents('form').find('input[name='+name+']').val();                    
          var initval2=(currentval==rel?defaultvalue:rel);
          }
                        
        $(this).parents('form').find('input[name='+name+']').val(initval2);
        
        var isactive2=(initval2==rel);
                
        if(isactive2)
          $(this).addClass('active');
        else
          $(this).removeClass('active');
        }
      else if(type=='check')
        {        
        if(maxcheck>0)
          {     
          var selectedcnt=$(pset).filter('a.active').length;
                              
          if(selectedcnt>=maxcheck && !$(this).hasClass('active') ) return;          
          }
        
        $(this).toggleClass('active');
                
        var isactive2= ($(this).hasClass('active')?1:0);
        
        if( isactive2 )        
        $(this).parents('form').find('input[name='+name+']').attr('checked', 'checked');
        else
        $(this).parents('form').find('input[name='+name+']').removeAttr('checked');
        }
  		
  		if(callback) callback(this, isactive2);
  		
  		});
      
      
    }
    
  
  
  });
  

};
//-----------------------------------------------
$.fn.makeselect.defaults = 
{
type          : 'radio',
allowradiouncheck : false,
maxcheck      : 0,
defaultvalue  : 0
};
	
	
})(jQuery);