﻿/*
hello
*/

function PerformGenericInputValidation(dataArray)
{
	/*
		Example of a dataArray
		var courseValidation = new Array();
		courseValidation[0] = new Array('Følgende felter er ikke korrekt udfyldt');
		courseValidation[1] = new Array('courseName', 'NotEmpty', '"Navn", feltet skal være udfyldt');
		courseValidation[2] = new Array('courseEmail', 'Email', '"Din email-adresse", feltet er ikke udfyldt korrekt (skal indeholde en valid email)');
		courseValidation[3] = new Array('courseManagermail', 'Email', '"Din leders email-adresse", feltet er ikke udfyldt korrekt (skal indeholde en valid email)');
		courseValidation[4] = new Array('courseDirektorat', 'NotEmpty', '"Direktorat", du skal have valgt et direktorat');
		courseValidation[5] = new Array('courseDepartment', 'NotEmpty', '"Afdeling", du skal have valgt en afdeling');
		courseValidation[6] = new Array('courseJobprofile', 'NotEmpty', '"Stilling", du skal have valgt en stillingsbetegnelse');
	*/
	try
	{
		var i = 0;	
		var debugOutput = '';
		// First entry contains setup parameters
		var errorMsgPrefix = dataArray[0][0];
		var fieldErrorsMsg = '';
		var errorOccured = false;
		for(i = 1;i<dataArray.length;i++)
		{
			var fieldId = dataArray[i][0];
			var fieldValidationType = dataArray[i][1];
			var validationErrorMsg = dataArray[i][2];
			if(!PerformFieldValidation(fieldId, fieldValidationType))
			{
				errorOccured = true;
				if(validationErrorMsg != '')
					fieldErrorsMsg += validationErrorMsg + '\n';
			}
		}
	
		if(errorOccured)
			alert(errorMsgPrefix + '\n\n' + fieldErrorsMsg);
		return !errorOccured;
	}
	catch(e){alert(e.message);}
	return false;
}


// Currently supported validationTypes {'NotEmpty', 'Email', 'Number', 'Date'}
function PerformFieldValidation(fieldId, validationType)
{
	if(validationType == '' || validationType == 'None')
		return true;	
	var fieldValue = null;
	switch(validationType)
	{
		case 'NotEmpty':
			fieldValue = document.getElementById(fieldId).value;
			if(fieldValue == '')				
				return false;
			break;
		case 'NotEmpty_RadioBtnSet':			
			for(i=1;i<100;i++)
			{
				radioField = document.getElementById(fieldId+'_'+i);				
				if(radioField == null)
					return false;
				if(radioField.checked)
					return true;
			}
			break;
		case 'Email':
			fieldValue = document.getElementById(fieldId).value;
			var emailChk = new RegExp('^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$', 'i');
			if(!emailChk.test(fieldValue))
				return false;
			break;
		case 'Number':
			fieldValue = document.getElementById(fieldId).value;
			var numberChk = new RegExp('^[0-9]+$', 'i');
			if(!numberChk.test(fieldValue))
				return false;
			break;
		case 'Date':
			fieldValue = document.getElementById(fieldId).value;
			if(!checkValidDate(fieldValue))
				return false;
			break;
	}
	
	return true;
}





