//-----------------------------------------------------------------------------
// Globally used variables.
//-----------------------------------------------------------------------------
var maxLength;
var lineControl;
var questionConstraints = null;
//=============================================================================
// Question object holds all question constraints as well as "old" answers
//=============================================================================
function Question() {
	this.javascriptAnswer = document.getElementById("odinjavascriptanswer");
	this.questionid = document.getElementById("odinquestionid");
	this.interviewid = document.getElementById("odininterviewid");
	this.questionForm = document.getElementById("odinquestioninputform");
	var jsBasePathField = document.getElementById("odinscriptbasepath")
	if (jsBasePathField) {
		this.jsBasePath = jsBasePathField.value;
	}	else {
		this.jsBasePath = "odinservletscript";
	}
	this.useJavascriptAnswer = document.getElementById("odinusejavascriptanswer");
	var maxfield = document.getElementById("odinjavascriptmaximum");
	if (maxfield) {
		this.maximum = maxfield.value;
	} else {
		this.maximum = null;
	}
	var minfield = document.getElementById("odinjavascriptminimum");
	if (minfield) {
		this.minimum = minfield.value;
	} else {
		this.minimum = null;
	}
	var rangefield = document.getElementById("odinjavascriptrange");
	if (rangefield) {
		this.range = rangefield.value;
	} else {
		this.range = null;
	}
	var rangestringfield = document.getElementById("odinjavascriptrangestring");
	if (rangestringfield) {
		this.rangestring = rangestringfield.value;
	} else {
		this.rangestring = null;
	}
	var nonfield = document.getElementById("odinjavascriptnon");
	if (nonfield) {
		this.allowNon = (nonfield.value == "true");
	} else {
		this.allowNon = true;
	}
	var ordfield = document.getElementById("showcategoryorder");
	if (ordfield) {
		this.orderCategories = (ordfield.value == "true");
	} else {
		this.orderCategories = false;
	}
	var validationfield = document.getElementById("ValidationErrors");
		if (validationfield && validationfield.value.length > 0) {
			this.validationerrors = validationfield.value.split("\b");
		} else {
			this.validationerrors = new Array(0);
	}
}
//-----------------------------------------------------------------------------
// General initialisation of question
//-----------------------------------------------------------------------------
function initialiseQuestion() {
	if (!questionConstraints) {
		questionConstraints = new Question();
	}
}
//-----------------------------------------------------------------------------
// report a Validation Error
//-----------------------------------------------------------------------------
function reportValidationError(error, params) {
	var errorString = questionConstraints.validationerrors[error];
	if (params) {
		errorString = formattedString(errorString, params);
	}
	// TODO insert errorstring in correct place (i.e. above current form.
}
