// method
Element.implement({convert:function(tag,properties){var props=this.getProperties.apply(this,properties);var newElement=new Element(tag,props).inject(this,'after');this.destroy();return newElement;}});

// Usage

$('to_p').addEvent('click',function(){
  $('text').convert('p',['name','id','class','text']);
});

$('to_h2').addEvent('click',function(){
  $('text').convert('h2',['name','id','class','text']);
});

$('to_input').addEvent('click',function(){
  $('input').convert('input',['name','id','class','value']);
});

$('to_textarea').addEvent('click',function(){
  $('input').convert('textarea',['name','id','class','value']);
});

<p>
    <button id="to_p">Convert to paragraph</button>
    <button id="to_h2">Convert to header 2</button>
</p>
<h2 id="text" class="lame sauce d00d">Header to paragraph</h2>

<p>
    <button id="to_input">Convert to input</button>
    <button id="to_textarea">Convert to textarea</button>
</p>
<p>
    <input type="text" name="myInput" id="input" class="lame sauce d00d" value="I am the value" />
</p>