if(typeof jQuery != 'undefined') {
	jQuery(function($) {
		/**
		* Toggle to hide/show the Tables
		*/
		$.fn.extend({
			newService: function(options) {
				var setting = $.extend({}, $.fn.newService.defaults, options);
				
				return this.each(
					function() {
						var $t = $(this);
						var o = $.metadata ? $.extend({}, setting, $t.metadata()) : setting;
						
						if(typeof o.duplicate === 'undefined') {
							o.duplicate = $t;
						}
						if(typeof o.after === 'undefined') {
							o.after = $t;
						}
						
						$div = $('<div></div>');
						$a = $('<a></a>').attr('href',o.add.href).text(o.add.text);
						$p = $('<p></p>').addClass(o.add.classname).append($a);
						$div.append($p);
						
						var $container = $('#' + o.container.id);
						if($container.length===0) {
							$container = $('<div></div>').attr('id',o.container.id).addClass(o.container.classname).addClass('service');
							o.after.after($container);
							$container.after($div.addClass('first'));
						}
						else {
							$t.after($div);
						}
						
						$div.children('p:first-child').find('a').click(function(){
							$a = $(this); var $div = $a.parent().parent();
							$.fn.newService.service($a, $div, o);
							return false;
						});
					}
				);
			}
		});
		
		/**
		* Create Add Person Group
		*/
		$.fn.newService.service = function($a, $div, o) {
			var howmany = $('div.group.extra').length + 1;
			var howmany_services = $('div.group.services').length + 1;
			
			var $previous = $div.prev().find('[name^=person]:first');
			
			person_id = 0;
			if($previous.length==1) {
				prev_id = $previous.attr('name').match(/person\[([0-9]+)\]/);
				if(prev_id!==null && prev_id.length==2) {
					person_id = parseInt(prev_id[1], 10);
				}
			}
			
			if(typeof o.copy !== 'undefined' && o.copy.length!='0') {
				var $group = o.copy.clone();
				$group.css('height',0).css('opacity',0).attr('id','');
				
				$(':input[name], label[for]', $group).each(function(i){
					var name = $(this).attr('name');
					var new_name = name;
					new_name = new_name.replace(/person\[[0-9]+\]/, 'person[' + person_id + ']');
					new_name = new_name.replace(/\[course\]\[[0-9]+\]/, '[course][' + howmany_services + ']');
					/* + '_' + howmany_services; */
					if($(this).is(':input')) {
						$(this).attr('name', new_name);
						$(this).attr('id', new_name);
					}
					else if($(this).is('label')) {
						$(this).attr('for', new_name);
					}
				});
			}
			else {
				var $group = $('<div></div>').addClass('group').addClass('extra').css('height',0).css('opacity',0);
				
				var $course_f = $('<fieldset></fieldset>').addClass('col').addClass('one');
				var $date_f = $('<fieldset></fieldset>').addClass('col').addClass('two');
				
				var $course_s = $('<span></span>').text(o.service.course);			
				var course_name = o.service.form.course + o.service.form.delimiter + howmany;			
				var $course_i = $('<select></select>').attr('name',course_name).attr('id',course_name);
				if(typeof o.courses !== 'undefined' && o.courses !== '') {
					$course_i.addOption(o.courses, false);
				}
				$course_f.append($course_s).append($course_i).wrapInner('<label for="' + course_name + '"></label>');
				
				$date_f.selectDate({
					howmany : howmany
				});
				$group.append($course_f).append($date_f);
			}
			
			o2 = $.extend({}, o, {duplicate : o.duplicate, courses : o.courses});
			
			if($div.is('.first')) {
				if($div.parent().is('.person')) {
					$div.prev().after($group);
				}
				else {
					$div.prev().append($group);
				}
			}
			else {
				$div.parent().after($group);
			}
						
			$group.css('clear','left').css('margin-bottom',0).animate({opacity: 1, height: 57}, o.service.speed, function(){
				$a.blur();
				$(this).css('height','');
			});
		};
		
		/**
		* Defaults
		*/
		$.fn.newService.defaults = {
			add : {
				text : 'Choose another service',
				classname : 'action add-service',
				href : '#add'
			},
			container : {
				id : 'services',
				classname : 'event'
			},
			copy : $('div#copy'),
			service : {
				course : 'Service',
				speed : 1000,
				form : {
					course : 'std_course',
					delimiter: '-'
				}
			}
		};
		
	});
}
