var messageMode = 'single';	// 'single' for only one message at a time, 'all' for all messages.

var lValidationCollection = new Array();
var lIndex = -1;

function InputValidation(pField, pType, pMessage)
{
	this.Field = pField;
	this.FieldType = pType;
	this.Message = pMessage;
	this.Type = 'input';
	
	lValidationCollection[++lIndex] = this;
}

function LengthValidation(pField, pMinSize, pMaxSize, pMessage)
{
	this.Field = pField;
	this.FieldType = 'text';
	this.MinSize = pMinSize;
	this.MaxSize = pMaxSize;
	this.Message = pMessage;
	this.Type = 'length';
	
	lValidationCollection[++lIndex] = this;
}

function EqualityValidation(pField, pFieldCompare, pMessage)
{
	this.Field = pField;
	this.FieldType = 'text';
	this.FieldCompare = pFieldCompare;
	this.Message = pMessage;
	this.Type = 'equality';
	
	lValidationCollection[++lIndex] = this;
}

function SelectValidation(pField, pFieldCompare, pMessage)
{
	this.Field = pField;
	this.FieldType = 'text';
	this.FieldCompare = pFieldCompare;
	this.Message = pMessage;
	this.Type = 'select';
	
	lValidationCollection[++lIndex] = this;
}

function Validate()
{
	var lError = false;
	
	for(var i = 0; i < lValidationCollection.length; i++)
	{
		var lThisEntry = lValidationCollection[i];
		var lThisField = document.getElementById(lThisEntry.Field);
		
		switch(lThisEntry.FieldType)
		{			
			case 'text':
				switch(lThisEntry.Type)
				{
					case 'input':
						if(lThisField.value == '' || lThisField.value == ' ' || lThisField.value == '  ' || lThisField.value == '   ')
						{
							document.getElementById(lThisEntry.Field + "_err").innerHTML = lThisEntry.Message;
							lError = true;
						}
						else
						{
							document.getElementById(lThisEntry.Field + "_err").innerHTML = '';
						}
						break;
					case 'length':
						if(lThisField.value.length < lThisEntry.MinSize || lThisField.value.length > lThisEntry.MaxSize)
						{
							document.getElementById(lThisEntry.Field + "_err").innerHTML = lThisEntry.Message;
							lError = true;
						}
						else
						{
							document.getElementById(lThisEntry.Field + "_err").innerHTML = '';
						}
						break;
					case 'equality':
						if(lThisField.value != document.getElementById(lThisEntry.FieldCompare).value)
						{
							document.getElementById(lThisEntry.FieldCompare + "_err").innerHTML = lThisEntry.Message;
							lError = true;
						}
						else
						{
							document.getElementById(lThisEntry.FieldCompare + "_err").innerHTML = '';
						}
						break;
					case 'select':
						for(var j = 0; j < document.forms[0].elements.length; j++)
						{
							el = document.forms[0].elements[j];
							if(el.name == lThisEntry.Field)
							{
								if(el.selectedIndex != -1)
								{
									if(el.options[el.selectedIndex].value == 0)
									{
										document.getElementById(lThisEntry.Field + "_err").innerHTML = lThisEntry.Message;
										lError = true;
									}
									else
									{
										document.getElementById(lThisEntry.Field + "_err").innerHTML = '';
									}
								}
								else
								{
									document.getElementById(lThisEntry.Field + "_err").innerHTML = lThisEntry.Message;
									lError = true;
								}
							}
						}
						break;
				}
		}
		
		if(lError)
			document.getElementById("validate_message").innerHTML = 'Et eller flere felter er ikke blevet udfyldt korrekt. Ret venligst og prøv igen.';
		else
			document.getElementById("validate_message").innerHTML = '';
		
		if(messageMode == 'single' && lError == true)
			break;
	}
	
	return !lError;
}

function Reset()
{
	if(document.referrer.indexOf('hvr_tilmeld2.asp') > 0)
	{
		if(confirm('Er du sikker på du vil slette?'))
			document.location = 'hvr_tilmeld.asp';
		else
			return false;
	}
	else
	{
		return confirm('Er du sikker på du vil slette?');
	}
}
