jQuery.fn.extend({
/**
* Oleg Butuzov
*/ 
 serialize: function() {
  var obj = new Object();

	
	$(this).find("input[@type='text'],input[@type='password'],input[@type='hidden'],textarea").each(function(){
		
		if ($(this).attr('disabled') == false || typeof $(this).attr('disabled') == 'undefined'){
		var k = $(this).attr('name') || $(this).attr('id')  ;
		obj[k] = $(this).val();	
	
	}});
	
	$(this).find("input[@type='checkbox']").filter(":checked").each(function(){
	
		if ($(this).attr('disabled') == false || typeof $(this).attr('disabled') == 'undefined'){
		var k = $(this).attr('name') || $(this).attr('id')  ;
		obj[k] = $(this).val();	
		
	}});
	
	$(this).find("input[@type='radio']").filter(":checked").each(function(){
		
		if ($(this).attr('disabled') == false || typeof $(this).attr('disabled') == 'undefined'){
		var k = $(this).attr('name') || $(this).attr('id')  ;
		obj[k] = $(this).val();		
		
	}});	
	  
	$(this).find("select").each(function(){
		
		if ($(this).attr('disabled') == false || typeof $(this).attr('disabled') == 'undefined'){
		var k = $(this).attr('name') || $(this).attr('id')  ;
		obj[k] = $(this).val();	
		
	}});  
	  
	return obj;
 }
});