if(typeof jQuery != 'undefined') {
	jQuery(function($) {
		/**
		* Toggle to hide/show the Tables
		*/
		$.fn.extend({
			serviceHeadings: function(options) {
				var setting = $.extend({}, $.fn.serviceHeadings.defaults, options);
				
				return this.each(
					function() {
						var $t = $(this);
						var o = $.metadata ? $.extend({}, setting, $t.metadata()) : setting;
						
						var $a = $('<a></a>').attr('href',o.show.href).addClass(o.show.classname);
						var $span = $('<span></span>').text(o.show.text);
						
						$t.find('fieldset h3').wrapInner($a).next().hide().prev().children('a').click(function(){
							var $a = $(this); $table = $a.parent().next();
							
							if(!$table.is(':animated')) {
								$a.removeClass(o.hide.classname).removeClass(o.show.classname).addClass(o.movement.classname).children('span').text(o.movement.text);
								if($table.is(':hidden')) {
									$table.slideDown(o.show.speed, function(){
										$a.removeClass(o.show.classname).removeClass(o.movement.classname)
										  .addClass(o.hide.classname)
										  .children('span').text(o.hide.text);
									});
								}
								else {
									$table.slideUp(o.hide.speed, function(){
										$a.removeClass(o.hide.classname).removeClass(o.movement.classname)
										  .addClass(o.show.classname)
										  .children('span').text(o.show.text);
									});
								}
							}
							$a.blur();
							return false;
						}).append(' ').append($span);
					}
				);
			}
		});
		
		/**
		* Defaults
		*/
		$.fn.serviceHeadings.defaults = {
			hide : {
				text : '↑',
				classname : 'hide',
				href : '#hide',
				speed: 500
			},
			show : {
				text : '↓',
				classname : 'show',
				href : '#show',
				speed: 500
			},
			movement : {
				text : '←',
				classname : 'moving'
			}
		};
		
	});
}
