var AddAnother = {

	field_set: function(classname, options) {
	        var original = document.getElementsByClassName(classname).pop();
		var clone = original.cloneNode(true); //deep!

		//increment indices on all input names and ids
		var inputs = clone.getElementsByTagName('input')
		for(var i=0; i< inputs.length; i++) {
			var input = inputs.item(i);
			//if there's an index on the name, increment it
			if(matches = input.name.match(/^(.+\[)(\d+)(\].*?)$/)) {
				var prefix = matches[1];
				var index = parseInt(matches[2], 10);
				var postfix = matches[3];
				input.name = prefix + (index + 1) + postfix;
			}
			//if there's an index on the id, increment it
			if(matches = input.id.match( /^(.+)(\d+)$/ )) {
				var prefix = matches[1];
				var index = parseInt(matches[2], 10);
				input.id = prefix + (index + 1);
			}
			input.value = '';
		}

		var next_sibling = original.nextSibling;
		if(next_sibling) {
			original.parentNode.insertBefore(clone, next_sibling);
		}
		else {
			original.parentNode.appendChild(clone);
		}

		if(options) {
			if(options.hide) {
				var el_to_hide = options.hide;
				el_to_hide.style.visibility = 'hidden';
			}
		}
	}

};

