// #include "DrawGeneratorObjects.js";

var Disciplines = [];
var DisciplineFunctions = {};

DisciplineFunctions.Initialize = function() {
	Disciplines.push(DisciplineFunctions.InitializeFS4Way());
	Disciplines.push(DisciplineFunctions.InitializeFS4WayNHMeet());
	//Disciplines.push(DisciplineFunctions.InitializeFS8Way());
	Disciplines.push(DisciplineFunctions.InitializeVFS2Way());
	Disciplines.push(DisciplineFunctions.InitializeVFS4Way());
};

DisciplineFunctions.InitializeVFS2Way = function() {
	var arsBB = ['BB-01','BB-02','BB-03','BB-04','BB-05','BB-06','BB-07','BB-08','BB-09','BB-10','BB-11','BB-12','BB-13'];
	var arsVertical = ['HU-01','HU-02','HU-03','HU-04','HU-05','HU-06','HU-07','HU-08','HU-09','HU-10','HU-11','HU-12','HU-13','HD-01','HD-02','HD-03','HD-04','HD-05','HD-06','HD-07','HD-08','HD-09','HD-10','HD-11','HD-12','HD-13','HD-14','HD-15','HD-16'];
	var aroDrawRoundRules = [];
	aroDrawRoundRules.push(new DrawRoundRules(1, arsBB));
	aroDrawRoundRules.push(new DrawRoundRules(2, arsBB));
	aroDrawRoundRules.push(new DrawRoundRules(3, arsVertical));
	aroDrawRoundRules.push(new DrawRoundRules(4, arsVertical));
	aroDrawRoundRules.push(new DrawRoundRules(5, arsVertical));
	aroDrawRoundRules.push(new DrawRoundRules(6, arsVertical));
	
	var aroDrawRules = [];
	aroDrawRules.push(new DrawRules(1, 3, 6, aroDrawRoundRules));
	aroDrawRules.push(new DrawRules(2, 4, 6, aroDrawRoundRules));
	aroDrawRules.push(new DrawRules(3, 5, 7, aroDrawRoundRules));
	
	var aroClassLevelNames = [];
	aroClassLevelNames.push(new ClassLevelName('Rookie', 1));
	aroClassLevelNames.push(new ClassLevelName('Advanced', 2));
	aroClassLevelNames.push(new ClassLevelName('Pro', 3));
	
	var aroFormations = [];
	// belly/back
	aroFormations.push(new DivePoolFormation("BB-01", "Belly Star", 1, 1, "Both performers are on their bellies. The performers each take a double-handed grip on the other's opposite lower arm (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("BB-02", "Back Star", 1, 1, "Both performers are on their backs. The performers each take a double-handed grip on the other's opposite lower arm (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("BB-03", "Belly Closed Accordion", 1, 1, "Both performers are on their bellies. Each performer takes a single-handed grip on the other's same lower leg (right-to-right or left-to-left)."));
	aroFormations.push(new DivePoolFormation("BB-04", "Mixed Closed Accordion", 1, 1, "One performer is on their belly, the other on their back. Each performer takes a single-handed grip on the other's opposite lower leg (right-to-left or left-to-right)."));
	aroFormations.push(new DivePoolFormation("BB-05", "Back Open Accordion", 1, 1, "Both performers are on their backs. Each performer takes a single-handed grip on the other's same lower arm (right-to-right or left-to-left)."));
	aroFormations.push(new DivePoolFormation("BB-06", "Mixed Open Accordion", 1, 1, "One performer is on their belly, the other on their back. Each performer takes a single-handed grip on the other's opposite lower arm (right-to-left or left-to-right)."));
	aroFormations.push(new DivePoolFormation("BB-07", "Back Side Body", 1, 1, "Both performers are on their backs. One performer takes a double-handed grip on the other's arm and leg (arm and leg must be on the same side of the body)."));
	aroFormations.push(new DivePoolFormation("BB-08", "Mixed Side Body", 1, 1, "One performer is on their belly, the other on their back. One performer takes a double-handed grip on the other's arm and leg (arm and leg must be on the same side of the body)."));
	aroFormations.push(new DivePoolFormation("BB-09", "Back Cat", 1, 1, "Both performers are on their backs. One performer takes a double-handed grip on the other's same leg (right-to-right and left-to-left)."));
	aroFormations.push(new DivePoolFormation("BB-10", "Mixed Cat", 1, 1, "One performer is on their belly, the other on their back. One performer takes a double-handed grip on the other's opposite leg (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("BB-11", "Back Stair Step", 1, 1, "Both performers are on their backs. One performer takes a single-handed grip on the other's opposite leg (right-to-left or left-to-right)."));
	aroFormations.push(new DivePoolFormation("BB-12", "Back Grip 360 Grip", 2, 1, "Both performers are on their backs. Each performer docks on the other's same lower arm (right-to-right or left-to-left). Each performer then performs a 360 degree turn followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("BB-13", "Back Grip Over/Under Grip", 2, 1, "Both performers are on their backs. Each performer docks on the other's same lower arm (right-to-right or left-to-left). An over/under is performed followed by a repeat of the original grip."));
	
	// head-up
	aroFormations.push(new DivePoolFormation("HU-01", "Hand-to-Hand", 1, 1, "Each performer takes a single-handed grip on the other's opposite hand (right-to-left or left-to-right)."));
	aroFormations.push(new DivePoolFormation("HU-02", "In-Facing Double Grip", 1, 1, "While facing each other, the performers take a double-handed grip on the other's opposite hand (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("HU-03", "Out-Facing Double Grip", 1, 1, "While facing away from each other, the performers take a double-handed grip on the other's opposite hand (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("HU-04", "Hand-to-Foot", 1, 1, "One performer takes a single-handed grip on the other's opposite foot (right-to-left or left-to-right)."));
	aroFormations.push(new DivePoolFormation("HU-05", "Hands-to-Feet", 1, 1, "One performer takes a double-handed grip on each of the other's opposite feet (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("HU-06", "Feet-to-Knees", 1, 1, "One performer takes a double-footed dock on each of the other's opposite upper legs (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("HU-07", "Totem", 1, 1, "Both performers face the same direction. One performer takes a double-footed dock on each of the other's same shoulders (right-to-right and left-to-left)."));
	aroFormations.push(new DivePoolFormation("HU-08", "Sole-to-Sole", 1, 1, "Each performer takes a single-footed dock with a sole on the other's same sole (right-to-right or left-to-left)."));
	aroFormations.push(new DivePoolFormation("HU-09", "Double Spock", 1, 1, "Each performer takes a single-handed grip on the top of the other's head."));
	aroFormations.push(new DivePoolFormation("HU-10", "Grip 360 Grip", 2, 1, "Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). Each performer then performs a 360 degree turn followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HU-11", "Grip Carve Grip", 2, 1, "Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). One performer maintains heading, while the other performer does a 360 degree carve around the static performer, followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HU-12", "Grip Front Flip Grip", 2, 2, "Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). Each performer does a front flip, followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HU-13", "Grip Over/Under Grip", 2, 1, "Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). An over/under is performed while both performers maintain the same heading, followed by a repeat of the original grip."));
	
	//head-up/head-down
	aroFormations.push(new DivePoolFormation("HD-01", "Joker", 1, 2, "One performer is head-up, the other head-down. Each performer takes a single-handed grip on the other's opposite hand (right-to-left or left-to-right)"));
	aroFormations.push(new DivePoolFormation("HD-02", "In-Facing Double Grip", 1, 3, "Both performers are head-down. While facing each other, the performers each take a double-handed grip on the other's opposite lower arm (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("HD-03", "Mixed In-Facing Double Grip", 1, 2, "One performer is head-up, the other head-down. While facing each other, the performers each take a double-handed grip on the other's same lower arm (right-to-right and left-to-left)."));
	aroFormations.push(new DivePoolFormation("HD-04", "Out-Facing Double Grip", 1, 3, "Both performers are head-down. While facing away from each other, the performers each take a doublehanded grip on the other's opposite lower arm (right-to-left and left-to-right)."));
	aroFormations.push(new DivePoolFormation("HD-05", "Mind Warp", 1, 2, "One performer is head-up, the other head-down. The head-up performer takes a double-handed grip on the sides of the head-down performer's head."));
	aroFormations.push(new DivePoolFormation("HD-06", "Double Spock", 1, 2, "One performer is head-up, the other is head-down. Each performer takes a single-handed grip on the top of the other's head."));
	aroFormations.push(new DivePoolFormation("HD-07", "Sole-to-Sole", 1, 2, "One performer is head-up, the other head-down. Each performer takes a single-footed dock with a sole on the other's same sole (right-to-right or left-to-left)."));
	aroFormations.push(new DivePoolFormation("HD-08", "Stair Step", 1, 3, "Both performers are head-down and facing the same direction. One performer performs a single-handed grip on the other's opposite leg (right-to-left or left-to-right)."));
	aroFormations.push(new DivePoolFormation("HD-09", "Vertical Closed Accordion", 1, 2, "One performer is head-up, the other head-down. Each performer take a single-handed grip on the other's same leg (right-to-right or left-to-left)."));
	aroFormations.push(new DivePoolFormation("HD-10", "Sixty-Nine", 1, 2, "One performer is head-up, the other head-down. The head-down performer takes a double-handed grip on each of the other's same feet (right-to-right and left-to-left)."));
	aroFormations.push(new DivePoolFormation("HD-11", "Double Sixty-Nine", 2, 3, "One performer is head-up, the other head-down. The head-down performer takes a double-handed grip on each of the other's same feet (right-to-right and left-to-left). The performers then switch orientation and the move is repeated one time."));
	aroFormations.push(new DivePoolFormation("HD-12", "Grip 360 Grip", 2, 3, "Both performers are head-down. Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). Each performer then performs a 360 degree turn followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HD-13", "Grip Carve Grip", 2, 3, "Both performers are head-down. Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). One performer maintains heading, while the other performer does a 360 degree carve around the static performer, followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HD-14", "Grip Flip Grip", 2, 2, "One performer is head-up, the other head-down. Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). Each performer does a front flip or back flip, followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HD-15", "Grip Half-Eagle Grip", 2, 3, "One performer is head-up, the other head-down. Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). Each performer then does half an over/under, with the head-down performer flying under, both performers doing half a front loop and switching orientations in the process, followed by a repeat of the original grip."));
	aroFormations.push(new DivePoolFormation("HD-16", "Grip Half-Cradle Grip", 2, 3, "One performer is head-up, the other head-down. Each performer takes a single-handed grip on the other's same hand (right-to-right or left-to-left). Each performer then does half an over/under, with the head-up performer flying under, both performers doing half a back loop and switching orientations in the process, followed by a repeat of the original grip."));
	
	return new Discipline(aroFormations, aroDrawRules, aroClassLevelNames, "2-Way VFS");
};

DisciplineFunctions.InitializeVFS4Way = function() {
	var aroDrawRules = [];
	aroDrawRules.push(new DrawRules(1, 3, 8, null));
	aroDrawRules.push(new DrawRules(2, 4, 8, null));
	
	var aroClassLevelNames = [];
	aroClassLevelNames.push(new ClassLevelName('Advanced', 1));
	aroClassLevelNames.push(new ClassLevelName('Open', 2));
	
	var aroFormations = [];
	aroFormations.push(new DivePoolFormation("A", "Cross", 1, 1));
	aroFormations.push(new DivePoolFormation("B", "Gulley", 1, 1));
	aroFormations.push(new DivePoolFormation("C", "Showshine/Foot Fetish", 1, 1));
	aroFormations.push(new DivePoolFormation("D", "Sitline", 1, 2));
	aroFormations.push(new DivePoolFormation("E", "Wave", 1, 1));
	aroFormations.push(new DivePoolFormation("F", "Double Joker", 1, 2));
	aroFormations.push(new DivePoolFormation("G", "Mixed Star", 1, 2));
	aroFormations.push(new DivePoolFormation("H", "T-Bird", 1, 2));
	aroFormations.push(new DivePoolFormation("I", "Trident", 1, 2));
	aroFormations.push(new DivePoolFormation("J", "Flock", 1, 1));
	aroFormations.push(new DivePoolFormation("K", "Anchor", 1, 1));
	aroFormations.push(new DivePoolFormation("L", "Rebel", 1, 1));
	aroFormations.push(new DivePoolFormation('1', ['Arrowhead','Inter','Arrowhead'], 2, 1));
	aroFormations.push(new DivePoolFormation('2', ['Claw','Inter','Claw'], 2, 1));
	aroFormations.push(new DivePoolFormation('3', ['HD Accordion','Inter','HD Accordion'], 2, 1));
	aroFormations.push(new DivePoolFormation('4', ['Chain Gang','Inter','Ghain Gang'], 2, 2));
	aroFormations.push(new DivePoolFormation('5', ['Mixed Accordion','Inter','Mixed Accordion'], 2, 2));
	aroFormations.push(new DivePoolFormation('6', ['Snowflake','Inter','End of Snowflake'], 2, 2));
	aroFormations.push(new DivePoolFormation('7', ['Flower','Inter','Flower'], 2, 1));
	aroFormations.push(new DivePoolFormation('8', ['Buddy','Inter','Buddy'], 2, 1));
	aroFormations.push(new DivePoolFormation('9', ['Shorty','Inter','Shorty'], 2, 1));
	aroFormations.push(new DivePoolFormation('10', ['Jigger','Inter','Jigger'], 2, 2));
	aroFormations.push(new DivePoolFormation('11', ['Fun Buddies','Inter','Fun Buddies'], 2, 1));
	aroFormations.push(new DivePoolFormation('12', ['Pinwheel','Inter','Pinwheel'], 2, 1));
	aroFormations.push(new DivePoolFormation('13', ['HD Star','Inter','HD Star'], 2, 1));
	aroFormations.push(new DivePoolFormation('14', ['Satellite','Inter','Satellite'], 2, 1));
	
	DisciplineFunctions.AddImagesToFormations(aroFormations, 'VFS4Way');
	DisciplineFunctions.SetFormationsClassName(aroFormations, 'VFS4Way');
	
	return new Discipline(aroFormations, aroDrawRules, aroClassLevelNames, "4-Way VFS");
};

DisciplineFunctions.SetFormationsClassName = function(aroFormations, sClassName) {
	for (var ix = 0; ix < aroFormations.length; ix++) {
		aroFormations[ix].sImageClass = sClassName;
	}
}

DisciplineFunctions.aroBuild4WayFSFormations = function() {
	var aroFormations = [];
	aroFormations.push(new DivePoolFormation('1', ['Snowflake','Inter','Offset'], 2, 3));
	aroFormations.push(new DivePoolFormation('2', ['Sidebody Donut','Inter','Side Flake Donut'], 2, 2));
	aroFormations.push(new DivePoolFormation('3', ['Side Flake Opal','Inter','Turf'], 2, 4));
	aroFormations.push(new DivePoolFormation('4', ['Monopod','Inter','Monopod'], 2, 2));
	aroFormations.push(new DivePoolFormation('5', ['Opal','Inter','Opal'], 2, 4));
	aroFormations.push(new DivePoolFormation('6', ['Stardian','Inter','Stardian'], 2, 2));
	aroFormations.push(new DivePoolFormation('7', ['Sidebuddies','Inter','Sidebuddies'], 2, 2));
	aroFormations.push(new DivePoolFormation('8', ['Canadian Tee','Inter','Canadian Tee'], 2, 2));
	aroFormations.push(new DivePoolFormation('9', ['Cat + Accordian','Inter','Cat + Accordian'], 2, 2));
	aroFormations.push(new DivePoolFormation('10', ['Diamond','Inter','Bunyip'], 2, 4));
	aroFormations.push(new DivePoolFormation('11', ['Photon','Inter','Photon'], 2, 3));
	aroFormations.push(new DivePoolFormation('12', ['Bundy','Inter','Bundy'], 2, 4));
	aroFormations.push(new DivePoolFormation('13', ['Hammer','Inter','Hammer'], 2, 3));
	aroFormations.push(new DivePoolFormation('14', ['Bipole','Inter','Bipole'], 2, 3));
	aroFormations.push(new DivePoolFormation('15', ['Caterpillar','Inter','Caterpillar'], 2, 3));
	aroFormations.push(new DivePoolFormation('16', ['Compressed Accordian','Inter','Box'], 2, 4));
	aroFormations.push(new DivePoolFormation('17', ['Danish Tee','Inter','Murphy'], 2, 4));
	aroFormations.push(new DivePoolFormation('18', ['Zircon','Inter','Zircon'], 2, 3));
	aroFormations.push(new DivePoolFormation('19', ['Ritz','Inter','Icepick'], 2, 2));
	aroFormations.push(new DivePoolFormation('20', ['Piver','Inter','Viper'], 2, 3));
	aroFormations.push(new DivePoolFormation('21', ['Zig Zag','Inter','Marquis'], 2, 2));
	aroFormations.push(new DivePoolFormation('22', ['Tee','Inter','Chinese Tee'], 2, 3));
	aroFormations.push(new DivePoolFormation('A', 'Unipod', 1, 1));
	aroFormations.push(new DivePoolFormation('B', 'Stairstep Diamond', 1, 1));
	aroFormations.push(new DivePoolFormation('C', 'Murphy Flake', 1, 1));
	aroFormations.push(new DivePoolFormation('D', 'Yuan', 1, 1));
	aroFormations.push(new DivePoolFormation('E', 'Meeker', 1, 1));
	aroFormations.push(new DivePoolFormation('F', 'Open Accordian', 1, 1));
	aroFormations.push(new DivePoolFormation('G', 'Cataccord', 1, 1));
	aroFormations.push(new DivePoolFormation('H', 'Bow', 1, 1));
	aroFormations.push(new DivePoolFormation('J', 'Donut', 1, 1));
	aroFormations.push(new DivePoolFormation('K', 'Hook', 1, 1));
	aroFormations.push(new DivePoolFormation('L', 'Adder', 1, 1));
	aroFormations.push(new DivePoolFormation('M', 'Star', 1, 1));
	aroFormations.push(new DivePoolFormation('N', 'Crank', 1, 1));
	aroFormations.push(new DivePoolFormation('O', 'Satellite', 1, 1));
	aroFormations.push(new DivePoolFormation('P', 'Sidebody', 1, 1));
	aroFormations.push(new DivePoolFormation('Q', 'Phalanx', 1, 1));
	
	DisciplineFunctions.AddImagesToFormations(aroFormations, 'FS4WayFastrax');
	DisciplineFunctions.SetFormationsClassName(aroFormations, 'FS4WayFastrax');
	
	return aroFormations;
};

DisciplineFunctions.AddImagesToFormations = function(aroFormations, sImagePath) {
	for (var ix = 0; ix < aroFormations.length; ix++) {
		aroFormations[ix].sExtraInformation = '';
		var sShortName = aroFormations[ix].sShortName;
		if (aroFormations[ix].iPointValue == 2 && sShortName.length == 1) {
			sShortName = '0' + sShortName;
		}
		var s = 'images/' + sImagePath + '/' + sShortName;
		if (aroFormations[ix].arsLongName.length == 3) {
			aroFormations[ix].arsImage = [s + 'a.jpg', s + 'b.jpg', s + 'c.jpg'];
		}
		else {
			aroFormations[ix].arsImage = [s + '.jpg'];
		}
	}
}

DisciplineFunctions.InitializeFS4WayNHMeet = function() {
	var aroDrawRules = [];
	aroDrawRules.push(new DrawRules(1, 3, 10, null));
	aroDrawRules.push(new DrawRules(3, 4, 10, null));
	aroDrawRules.push(new DrawRules(4, 5, 11, null));
	
	var aroClassLevelNames = [];
	aroClassLevelNames.push(new ClassLevelName('Rookie', 1));
	aroClassLevelNames.push(new ClassLevelName('Intermediate', 3));
	aroClassLevelNames.push(new ClassLevelName('Open', 4));
	
	var aroFormations = [];
	//aroFormations.push(new DivePoolFormation('1', ['Snowflake','Inter','Offset'], 2, 3));
	//aroFormations.push(new DivePoolFormation('2', ['Sidebody Donut','Inter','Side Flake Donut'], 2, 2));
	aroFormations.push(new DivePoolFormation('3', ['Side Flake Opal','Inter','Turf'], 2, 4));
	//aroFormations.push(new DivePoolFormation('4', ['Monopod','Inter','Monopod'], 2, 2));
	aroFormations.push(new DivePoolFormation('5', ['Opal','Inter','Opal'], 2, 4));
	aroFormations.push(new DivePoolFormation('6', ['Stardian','Inter','Stardian'], 2, 4));
	aroFormations.push(new DivePoolFormation('7', ['Sidebuddies','Inter','Sidebuddies'], 2, 2));
	//aroFormations.push(new DivePoolFormation('8', ['Canadian Tee','Inter','Canadian Tee'], 2, 2));
	aroFormations.push(new DivePoolFormation('9', ['Cat + Accordian','Inter','Cat + Accordian'], 2, 2));
	//aroFormations.push(new DivePoolFormation('10', ['Diamond','Inter','Bunyip'], 2, 4));
	aroFormations.push(new DivePoolFormation('11', ['Photon','Inter','Photon'], 2, 4));
	//aroFormations.push(new DivePoolFormation('12', ['Bundy','Inter','Bundy'], 2, 4));
	//aroFormations.push(new DivePoolFormation('13', ['Hammer','Inter','Hammer'], 2, 3));
	aroFormations.push(new DivePoolFormation('14', ['Bipole','Inter','Bipole'], 2, 3));
	aroFormations.push(new DivePoolFormation('15', ['Caterpillar','Inter','Caterpillar'], 2, 4));
	aroFormations.push(new DivePoolFormation('16', ['Compressed Accordian','Inter','Box'], 2, 4));
	aroFormations.push(new DivePoolFormation('17', ['Danish Tee','Inter','Murphy'], 2, 4));
	//aroFormations.push(new DivePoolFormation('18', ['Zircon','Inter','Zircon'], 2, 3));
	//aroFormations.push(new DivePoolFormation('19', ['Ritz','Inter','Icepick'], 2, 2));
	//aroFormations.push(new DivePoolFormation('20', ['Piver','Inter','Viper'], 2, 3));
	aroFormations.push(new DivePoolFormation('21', ['Zig Zag','Inter','Marquis'], 2, 4));
	aroFormations.push(new DivePoolFormation('22', ['Tee','Inter','Chinese Tee'], 2, 4));
	aroFormations.push(new DivePoolFormation('A', 'Unipod', 1, 1));
	aroFormations.push(new DivePoolFormation('B', 'Stairstep Diamond', 1, 1));
	aroFormations.push(new DivePoolFormation('C', 'Murphy Flake', 1, 1));
	aroFormations.push(new DivePoolFormation('D', 'Yuan', 1, 1));
	aroFormations.push(new DivePoolFormation('E', 'Meeker', 1, 1));
	aroFormations.push(new DivePoolFormation('F', 'Open Accordian', 1, 1));
	aroFormations.push(new DivePoolFormation('G', 'Cataccord', 1, 3));
	aroFormations.push(new DivePoolFormation('H', 'Bow', 1, 1));
	aroFormations.push(new DivePoolFormation('J', 'Donut', 1, 1));
	aroFormations.push(new DivePoolFormation('K', 'Hook', 1, 1));
	aroFormations.push(new DivePoolFormation('L', 'Adder', 1, 1));
	aroFormations.push(new DivePoolFormation('M', 'Star', 1, 1));
	aroFormations.push(new DivePoolFormation('N', 'Crank', 1, 1));
	aroFormations.push(new DivePoolFormation('O', 'Satellite', 1, 1));
	aroFormations.push(new DivePoolFormation('P', 'Sidebody', 1, 1));
	aroFormations.push(new DivePoolFormation('Q', 'Phalanx', 1, 1));
	
	DisciplineFunctions.AddImagesToFormations(aroFormations, 'FS4WayFastrax');
	DisciplineFunctions.SetFormationsClassName(aroFormations, 'FS4WayFastrax');
	
	return new Discipline(aroFormations, aroDrawRules, aroClassLevelNames, "4-Way FS NH Meet");
};

DisciplineFunctions.InitializeFS4Way = function() {
	var aroDrawRules = [];
	aroDrawRules.push(new DrawRules(1, 3, 10, null));
	aroDrawRules.push(new DrawRules(2, 3, 10, null));
	aroDrawRules.push(new DrawRules(3, 4, 10, null));
	aroDrawRules.push(new DrawRules(4, 5, 11, null));
	
	var aroClassLevelNames = [];
	aroClassLevelNames.push(new ClassLevelName('Rookie', 1));
	aroClassLevelNames.push(new ClassLevelName('A', 2));
	aroClassLevelNames.push(new ClassLevelName('AA', 3));
	aroClassLevelNames.push(new ClassLevelName('AAA', 4));
	
	return new Discipline(DisciplineFunctions.aroBuild4WayFSFormations(), aroDrawRules, aroClassLevelNames, "4-Way FS");
};

DisciplineFunctions.InitializeFS8Way = function() {
};

DisciplineFunctions.Initialize();