

var strUserAgent = navigator.userAgent.toLowerCase(); 
var isIE = strUserAgent.indexOf("msie") > -1; 
var isNS6 = strUserAgent.indexOf("netscape6") > -1; 
var isNS4 = !isIE && !isNS6  && parseFloat(navigator.appVersion) < 5; 

function validate() {

	// © Dansk Web Bureau A/S 2002
	// programmer: Ulrich Wagner Madsen

	// Syntax:
	// onkeypress="return validate(event,mode[,maxlength][,nobreak]);"
	// onblur="validate(event,mode[,maxlength]);"	
	// modes: text,textonly, email,numbers (more to come)

	// sample: onkeypress="return validate(event,'text',100);" onblur="validate(event,'text',100);"


	// 04-11-2005 - har tilføjet textwithspecial, så der kan indtastet alle specielle tegn også - ulrik larsen

	var obj = validate.arguments[0];
	var validataction = validate.arguments[1];
	
	if(validate.arguments[2] != null && validate.arguments[2] != ''){ // Optional
		var maxlength = validate.arguments[2];
	}
	else {
		var maxlength = 1000000000;
	}
	
	var errortext = 'Du har indtastet ugyldige tegn!';

	switch (validataction){
		case 'textwithspecial':
			reValidChars = /[0-9a-z\x20\ß\ö\Ö\ò\Ò\ô\Ô\û\Û\ü\Ü\é\É\ä\Ä\â\Â\á\Á\ñ\Ñ\§\´\`\¨\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]/i;
			reValidString = /^[0-9a-z\x20\ß\ö\Ö\ò\Ò\ô\Ô\û\Û\ü\Ü\é\É\ä\Ä\â\Â\á\Á\ñ\Ñ\§\´\`\¨\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]*$/i;
			break;
		case 'text':
			if (validate.arguments[3]){
				reValidChars = /[0-9a-z\x20\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]/i;
				reValidString = /^[0-9a-z\x20\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]*$/i;}
			else{
				reValidChars = /[0-9a-z\s\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]/i;
				reValidString = /^[0-9a-z\s\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]*$/i;}
			break;
		case 'textonly':
			reValidChars = /[a-z\s\.\-\_\æ\ø\å]/i;
			reValidString = /^[a-z\s\.\-\_\æ\ø\å]*$/i;
			break;
		case 'email':
			reValidChars = /[0-9a-z\@\#\.\-\_]/i;
			reValidString = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
			errortext = 'Du skal indtaste en gyldig email';
			break;
		case 'numbers':
			reValidChars = /[\d]/;
			reValidString = /^[\d]*$/;
			break;
		case 'allwithoutping':
			/*Laves SÅ den tager ALT uden ping*/
			reValidChars = /[0-9a-z\s\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]/i;
			reValidString = /^[0-9a-z\s\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]*$/i;
			break;

		case 'all':
			/*Laves SÅ den tager ALT*/
			reValidChars = /[0-9a-z\s\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]/i;
			reValidString = /^[0-9a-z\s\.\,\?\-\_\!\+\=\%\&\/\(\)\:\æ\ø\å\@]*$/i;
			break;
		default:
			alert('wrong mode - check your code!');
			return false;
	}

	if (isIE) {
		iKeyCode = obj.keyCode;
		objInput = obj.srcElement;
	}
	else {
		iKeyCode = obj.which;
		objInput = obj.target;
	}
	
	strKey = String.fromCharCode(iKeyCode);

	if(obj.type == 'keypress' && iKeyCode != 0) 
	{
		if(reValidChars.test(strKey)) 
		{
			if(!reValidChars.test(strKey) || objInput.value.length > maxlength-1) 
			{
				return false;
			}
		}
		else 
		{
			return false;
		}
	}
	else 
	{
		if(!isValid(objInput.value) || objInput.value.length > maxlength) 
		{
			alert(errortext);
			objInput.focus();
			objInput.select();
		}
	}

}	 

function isValid(strValue) {
	return reValidString.test(strValue) || strValue.length == 0;
}		

function currencyValidate(obj, errortxt) {
	alert(errortxt);	
	return false;
}