// jQuery extentions
jQuery.fn.extend({
   check: function() {
     return this.each(function() { this.checked = true; });
   },
   uncheck: function() {
     return this.each(function() { this.checked = false; });
   }
});


jQuery.fn.extend( {

	  outerHtml: function( replacement )
	  {
	    // We just want to replace the entire node and contents with
	    // some new html value
	    if (replacement)
	    {
	      return this.each(function (){ $(this).replaceWith(replacement); });
	    }

	    /*
	     * Now, clone the node, we want a duplicate so we don't remove
	     * the contents from the DOM. Then append the cloned node to
	     * an anonymous div.
	     * Once you have the anonymous div, you can get the innerHtml,
	     * which includes the original tag.
	     */
	    var tmp_node = $("<div></div>").append( $(this).clone() );
	    var markup = tmp_node.html();

	    // Don't forget to clean up or we will leak memory.
	    tmp_node.remove();
	    return markup;
	  }
	});