//master is global.  Contains EVERYTHING.
var master = new Array();
var MASTER_LENGTH = 0;		//Master length keeps track of current number of sets

//keys to the master array
var SET				= "Entered Set"
var FORTE	 		= "Forte Name String"
var ORDERED			= "Ordered Form"
var MINSPAN			= "Form with Minimum Span"
var PRIME			= "Prime Form"
var INT_VEC			= "Interval Vector"
var CARDINALITY		= "Cardinality"
var FT_NUM			= "Forte Name Number"
var COMP_FORTE		= "Complement Forte Information"
var COMP_CARD		= "Complement Cardinality"
var COMP_INT_VEC	= "Complement Interval Vector"
var ABS_EQUIV		= "Abstract Equivalence"
var ABS_NEAR_EQUIV	= "Near Equivalence"
var ABS_USR_EQUIV	= "Near User-Defined Set Equivalence"
var ABS_Z_EQUIV		= "Z Equivalence"
var REAL_TRANS		= "Transposition level"
var REAL_INV		= "Inversion level"
var REAL_RETRO		= "Retrograde level"
var REAL_RETRO_INV	= "Retrograde Inversion Level"
var REAL_NEAR_EQUIV = "Real Near Equivalence"

/**********************************************************************
*Master array layout:
*Key of the master array are the set labels (numbers 1 through whatever)
* master[i] contain an array of info on that set
* Each set contains the following info, keyed by above globals
* SET				string
* FORTE		 		string
* ORDERED			string
* MINSPAN			string
* PRIME				string
* INT_VEC			string
* CARDINALITY		int
* FT_NUM			int
* COMP_FORTE		string
* COMP_CARD			int
* COMP_INT_VEC		string
* ABS_EQUIV			array of bools
*   entries are transformation levels keyed by ascending integers
* ABS_NEAR_EQUIV	array of bools
* 	entrie are transformation levels keyed by ascending integers
* REAL_NEAR_QUIV	array
* ABS_USR_EQUIV		boolean
*   Yes or No for being NE to a user-defined set
* ABS_Z_EQUIV		array
*   entries are transformation levels keyed by ascending integers
* REAL_TRANS		array
*   entries are transformation levels keyed by ascending integers
* REAL_INV			array
*   entries are transformation levels keyed by ascending integers
* REAL_RETRO		array
*   entries are transformation levels keyed by ascending integers
* REAL_RETRO		array
*   entries are transformation levels keyed by ascending integers
************************************************************************/


function initAnalysis() {
	master = new Array();
	MASTER_LENGTH = 0;
}

//display options:
var SHOW_VERBOSE;
var SHOW_PRIME;
var SHOW_FORTE;
var SHOW_TRANS;
var SHOW_RETRO;
var SHOW_EQUIV;

/*********************************************************************
********************** Hard Coded Data *******************************
*********************************************************************/

var FORTE = new Array();
//Cardinality 3
	FORTE["012"] = "3-1";
	FORTE["013"] = "3-2";
	FORTE["014"] = "3-3";
	FORTE["015"] = "3-4";
	FORTE["016"] = "3-5";
	FORTE["024"] = "3-6";
	FORTE["025"] = "3-7";
	FORTE["026"] = "3-8";
	FORTE["027"] = "3-9";
	FORTE["036"] = "3-10";
	FORTE["037"] = "3-11";
	FORTE["048"] = "3-12";
//cardinality 4
	FORTE["0123"] = "4-1";
	FORTE["0124"] = "4-2";
	FORTE["0134"] = "4-3";
	FORTE["0125"] = "4-4";
	FORTE["0126"] = "4-5";
	FORTE["0127"] = "4-6";
	FORTE["0145"] = "4-7";
	FORTE["0156"] = "4-8";
	FORTE["0167"] = "4-9";
	FORTE["0235"] = "4-10";
	FORTE["0135"] = "4-11";
	FORTE["0236"] = "4-12";
	FORTE["0136"] = "4-13";
	FORTE["0237"] = "4-14";
	FORTE["0146"] = "4-Z15";
	FORTE["0157"] = "4-16";
	FORTE["0347"] = "4-17";
	FORTE["0147"] = "4-18";
	FORTE["0148"] = "4-19";
	FORTE["0158"] = "4-20";
	FORTE["0246"] = "4-21";
	FORTE["0247"] = "4-22";
	FORTE["0257"] = "4-23";
	FORTE["0248"] = "4-24";
	FORTE["0268"] = "4-25";
	FORTE["0358"] = "4-26";
	FORTE["0258"] = "4-27";
	FORTE["0369"] = "4-28";
	FORTE["0137"] = "4-Z29";
//cardinality 	
	FORTE["01234"] = "5-1";
	FORTE["01235"] = "5-2";
	FORTE["01245"] = "5-3";
	FORTE["01236"] = "5-4";
	FORTE["01237"] = "5-5";
	FORTE["01256"] = "5-6";
	FORTE["01267"] = "5-7";
	FORTE["02346"] = "5-8";
	FORTE["01246"] = "5-9";
	FORTE["01346"] = "5-10";
	FORTE["02347"] = "5-11";
	FORTE["01356"] = "5-Z12";
	FORTE["01248"] = "5-13";
	FORTE["01257"] = "5-14";
	FORTE["01268"] = "5-15";
	FORTE["01347"] = "5-16";
	FORTE["01348"] = "5-Z17";
	FORTE["01457"] = "5-Z18";
	FORTE["01367"] = "5-19";
	FORTE["01378"] = "5-20";
	FORTE["01458"] = "5-21";
	FORTE["01478"] = "5-22";
	FORTE["02357"] = "5-23";
	FORTE["01357"] = "5-24";
	FORTE["02358"] = "5-25";
	FORTE["02458"] = "5-26";
	FORTE["01358"] = "5-27";
	FORTE["02368"] = "5-28";
	FORTE["01368"] = "5-29";
	FORTE["01468"] = "5-30";
	FORTE["01369"] = "5-31";
	FORTE["01469"] = "5-32";
	FORTE["02468"] = "5-33";
	FORTE["02469"] = "5-34";
	FORTE["02479"] = "5-35";
	FORTE["01247"] = "5-Z36";
	FORTE["03458"] = "5-Z37";
	FORTE["01258"] = "5-Z38";
//cardinality 6
	FORTE["012345"] = "6-1";
	FORTE["012346"] = "6-2";
	FORTE["012356"] = "6-Z3";
	FORTE["012456"] = "6-Z4";
	FORTE["012367"] = "6-5";
	FORTE["012567"] = "6-Z6";
	FORTE["012678"] = "6-7";
	FORTE["023457"] = "6-8";
	FORTE["012357"] = "6-9";
	FORTE["013457"] = "6-Z10";
	FORTE["012457"] = "6-Z11";
	FORTE["012467"] = "6-Z12";
	FORTE["013467"] = "6-Z13";
	FORTE["013458"] = "6-14";
	FORTE["012458"] = "6-15";
	FORTE["014568"] = "6-16";
	FORTE["012478"] = "6-Z17";
	FORTE["012578"] = "6-18";
	FORTE["013478"] = "6-Z19";
	FORTE["014589"] = "6-20";
	FORTE["023468"] = "6-21";
	FORTE["012468"] = "6-22";
	FORTE["023568"] = "6-Z23";
	FORTE["013468"] = "6-Z24";
	FORTE["013568"] = "6-Z25";
	FORTE["013578"] = "6-Z26";
	FORTE["013469"] = "6-27";
	FORTE["013569"] = "6-Z28";
	FORTE["013689"] = "6-Z29";
	FORTE["013679"] = "6-30";
	FORTE["013589"] = "6-31";
	FORTE["024579"] = "6-32";
	FORTE["023579"] = "6-33";
	FORTE["013579"] = "6-34";
	FORTE["02468t"] = "6-35";
	FORTE["012347"] = "6-Z36";
	FORTE["012348"] = "6-Z37";
	FORTE["012378"] = "6-Z38";
	FORTE["023458"] = "6-Z39";
	FORTE["012358"] = "6-Z40";
	FORTE["012368"] = "6-Z41";
	FORTE["012369"] = "6-Z42";
	FORTE["012568"] = "6-Z43";
	FORTE["012569"] = "6-Z44";
	FORTE["023469"] = "6-Z45";
	FORTE["012469"] = "6-Z46";
	FORTE["012479"] = "6-Z47";
	FORTE["012579"] = "6-Z48";
	FORTE["013479"] = "6-Z49";
	FORTE["014679"] = "6-Z50";//cardinality 7 