var cQNo = 0;
var cQID = 1;
var cQType = 2;
var cQQues = 3;
var cQAnsw = 4;
var cQNoCo = 5 ;
var cQChcs = 6;
var cQCh1 = 0;
var cQCh2 = 1;
var cQCh3 = 2;
var cQCh4 = 3; 
var cQCh5 = 4;
var cQExpl = 7;
var cQHint = 8;
var cQFun = 9;
var cQFEx = 10;
var cQMked = 11;
var cQSubAnsw = 12;

var cQTypeSA = 2;
var cQTypeSB = 3;
// -- Scenario
var cQTypeSC = 4;	
var cQTypeSM = 5;
var cQTypeSP = 6;
// -- Goals are choices
var cQTypeWG = 7;

// -- Quick question constants
var cQTypeQA = 8;
var cQTypeQB = 9;
var cQTypeQG = 10;

var cQHasExhibit = true;

// -- Constants to use for QMode.  Note, replicated in two places!
// -- Here, and in QRoutines.asp.
var cQModeUnknown = -1;
var cQModeTest = 1;
var cQModeDemoTest = 2;
var cQModeReviewQ = 3;
var cQModeScoreTest = 4;
var cQModeReviewTest = 5;
var cQModeReviewAnswers = 6;
var cQModeStartTest = 7;
var cQModeStartDemoTest = 8;
var cQModeAvailTests = 9;
var cQModeHome = 10;
var cQModeStartSection = 11;
var cQModeAfterScoreToHome = 12;
var cQModeAfterScoreToBuyProducts = 13;
var cQModeAfterScoreToSection = 14;

// -- Database errors
var iDBErrSuccess = -100;
var iDBErrConnection = -101;
var iDBErrCommandExecute = -102;
var iDBErrNoRecordsRetrieved = -103;
var iDBErrUnknownError = -104;
var iDBErrAttemptToAddDup = -105;

// -- App state constants (Start at 100)
var iAppStarted = 100;
var iAppRestarted = 101;
var iAppCouldntRestart = 102;
var iAppCouldntCheck = 103;
var iAppDidntFinishCheckApp = 104;

// -- Logon constants (Start at 110)
var iLogonSessionLockedOut = 110;
var iLogonMultipleSessions = 111;
var iLogonBadLogon = 112;
var iLogonOverwriteOtherSession = 113;
var iLogonAlreadyLoggedOn = 114;

// -- Constants used for Registration page mode
var iRegPageModeEdit = 1;
var iRegPageModeNew = 2;
var iRegPageModeErr = 3;
var iRegPageModeProcess = 4;

// -- Types of exam pages opened by openExamPage()var iExamPageSM = 1;
var iExamPageSP = 2;
var iExamPageEx = 3;

// -- Types of controls used in simulations, i.e. checkboxes and radiobuttonsvar iChkCtrl = 1;
var iRbCtrl = 2;

var sRERemoveTags = "(<.>)|(<\/.>)";
var sRERemoveNBSP = "(&nbsp;)|(&NBSP;)";

function imageNo(sImgName) {

	var iNoImgs = document.images.length;	for (var i=0; i<= iNoImgs - 1; i ++) {		if (document.images[i].name.toUpperCase() == sImgName.toUpperCase()) {			return i;		}
	}
	return -1;
}