//////////////////////////////////////////////////////////////////////////////////////////////////////
// TIGER FIELD ELEMENT
//////////////////////////////////////////////////////////////////////////////////////////////////////

// TigerFieldElement object - defines a store for information about an field element, so that its usual
// classes can be defined
function TigerFieldElement(cID, nType) {
	this.ElementID = cID;
	this.ElementType = nType;
	// this.MainClass = "..."
	// this.SelectedClass = "..."
	// this.ErrorClass = "..."
	// this.DisabledClass = "..."
}

// FormElement - link to the actual HTML form element
TigerFieldElement.prototype.FormElement = function () {
	return document.getElementById(this.ElementID);
}

// SetClass - sets the relevant classes for this element, based on the fields error, selected & disabled status
TigerFieldElement.prototype.SetClass = function () {
//console.log(this.ElementType, this.ElementID);
	var ClassString;
	ClassString = (this.MainClass == undefined) ? aDefaultClasses[this.ElementType].Main : this.MainClass;
	if (this.parent.IsSelected && !this.parent.IsDisabled) {
		ClassString += " "
		ClassString += (this.SelectedClass == undefined) ? aDefaultClasses[this.ElementType].Selected : this.SelectedClass;
	}
	if (this.parent.IssueLevel > eIssueLevel.None && !this.parent.IsDisabled) {
		ClassString += " "
		ClassString += (this.ErrorClass == undefined) ? aDefaultClasses[this.ElementType].Error : this.ErrorClass;
	}
	if (this.parent.IsDisabled) {
		ClassString += " "
		ClassString += (this.DisabledClass == undefined) ? aDefaultClasses[this.ElementType].Disabled : this.DisabledClass;
	}
	this.FormElement().className = ClassString;

	// Show or hide validation elements
	if (this.ElementType == eElementType.ValidSign || this.ElementType == eElementType.Message || this.ElementType == eElementType.IssueImage  ) {
		if (this.parent.IssueLevel >= this.parent.parent.MinIssueLevelToAlert) {
			this.FormElement().style.display = "inline";
		} else {
			this.FormElement().style.display = "none";
		}
	}

	// Set tooltip error message across the control
	if (this.ElementType == eElementType.WholeField) {
		this.FormElement().title = this.parent.CurrentErrorMsg;
	}

	// Set the appropriate Issue Image
	if (this.ElementType == eElementType.ValidSign) {
		switch(this.parent.IssueLevel) {
			case eIssueLevel.Query:
				this.FormElement().src = this.parent.parent.ValidationImageQuery
				break;
			case eIssueLevel.Warning:
				this.FormElement().src = this.parent.parent.ValidationImageWarning
				break;
			case eIssueLevel.Error:
				this.FormElement().src = this.parent.parent.ValidationImageError
				break;
		}
	}

}


