﻿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(document.getElementById(fieldId) == null)
		return true;
		
	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;
}

(function($){
	jQuery.fn.randomCampaign = function(settings){
		settings = jQuery.extend({
			delay		: 4000,
			fadeDelay: 1000,
			startRandom: false
		}, settings);

		FadeOut = function(){
			if (active != null)
			{
				active.fadeOut(settings.fadeDelay, function(){
					FadeIn();
				});
			}
			else
			{
				FadeIn();
			}
		},
		FadeIn = function() {
			active = null;
			currentIndex++;
			if (currentIndex == campaigns.size())
			{
				currentIndex = 0;
			}
			active = campaigns.eq(currentIndex);
			active.fadeIn(settings.fadeDelay, function(){
				var t = setTimeout("FadeOut();", settings.delay)

			});
		};
		var campaigns = $("div.campaign");
		if (campaigns.size() == 0) {
			return;
		}
		var active = null;
		var currentIndex = (settings.startRandom) ? Math.floor(Math.random()*campaigns.size()) - 1 : -1 ;

		if (campaigns.size() == 1)
		{
			campaigns.eq(0).fadeIn(settings.fadeDelay);
		}
		else
		{
			FadeOut();
		}
		return;
	};
})(jQuery);




