function stanwebReplace(tekst,soeg,indsaet) {
	var string = tekst;
	var stringArray = string.split(soeg);	
	var a=stringArray[0];	
	for (var i=1; i < stringArray.length; i++) {
		a += indsaet + (stringArray[i]);
	}	
	return a;
}

function stanwebFormatDateStr(dateStr) {
	strDate=dateStr;	
	var strDay;	
	var strMonth;	
	var strYear;
	var temp;	
	temp=strDate;	
	strDate=stanwebReplace(strDate,'/','-'); 
	strDate=stanwebReplace(strDate,'.','-');	
	if (strDate.length > 0) {	
		var strDateArray = strDate.split('-'); 
		if (strDateArray.length!=3) {
			if(strDate.length>5){
				strDay = strDate.substr(0, 2);	
				strMonth = strDate.substr(2, 2); 
				strYear = strDate.substr(4);
			}
			else{
//				alert('Datoen er ugyldig. \n\nBrug datoformatet dd-mm-åååå'); 
				return false;
			} 
		}
		else {	
			strDay = strDateArray[0];	
			strMonth = strDateArray[1];	
			strYear = strDateArray[2];
		}	
		if (strYear.length==2) {
			if (strYear < 70) {
				strYear = '20' + strYear;
			} 
			else {
				strYear = '19' + strYear;
			}
		}	
		if (strDay.length < 2) {
			strDay='0' + strDay;
		}	
		if (strMonth.length < 2) {
			strMonth='0' + strMonth;
		}	
		if (strYear.length == 1) {
			strYear='0' + strYear;
		}	
		if (strYear.length < 4) {
			strYear='20' + strYear;
		}	
		temp = strDay + '-' + strMonth + '-' + strYear;	
	}	
	else {
	}	
	if (stanwebCheckDato(temp)) {
		dateStr = temp;
	}
	else {
//		alert('Datoen er ugyldig. \n\nBrug datoformatet dd-mm-åååå');	
		dateStr = strDate;
		return false;
	}
	return dateStr;
}

function stanwebBetweenSplit(obj, obj2) {
	if(obj.value==''){
		obj.value = obj2.value;
	}
	stanwebFormatDate(obj);
}

function stanwebFormatDate(obj) {
	strDate=obj.value;	
	var strDay;	
	var strMonth;	
	var strYear;
	var temp;	
	temp=strDate;	
	strDate=stanwebReplace(strDate,'/','-'); 
	strDate=stanwebReplace(strDate,'.','-');	
	if (strDate.length > 0) {	
		var strDateArray = strDate.split('-'); 
		if (strDateArray.length!=3) {
			if(strDate.length>5){
				strDay = strDate.substr(0, 2);	
				strMonth = strDate.substr(2, 2); 
				strYear = strDate.substr(4);
			}
			else{
				alert('Datoen er ugyldig. \n\nBrug datoformatet dd-mm-åååå'); 
				obj.select();
				obj.focus(); 
				return false;
			} 
		}
		else {	
			strDay = strDateArray[0];	
			strMonth = strDateArray[1];	
			strYear = strDateArray[2];
		}	
		if (strYear.length==2) {
			if (strYear < 70) {
				strYear = '20' + strYear;
			} 
			else {
				strYear = '19' + strYear;
			}
		}	
		strYear = parseInt(strYear);
		if (strDay.length < 2) {
			strDay='0' + strDay;
		}	
		if (strMonth.length < 2) {
			strMonth='0' + strMonth;
		}	
		if (strYear.length == 1) {
			strYear='0' + strYear;
		}	
		if (strYear.length < 4) {
			strYear='20' + strYear;
		}	
		temp = strDay + '-' + strMonth + '-' + strYear;	
	}	
	else {
	}	
	if (stanwebCheckDato(temp)) {
		obj.value = temp;
	}
	else {
		alert('Datoen er ugyldig. \n\nBrug datoformatet dd-mm-åååå');	
		obj.value = strDate;
		obj.focus();
		obj.select();
		return false;
	}
	return true;
}

function stanwebchkdate(objName) {
	var strDatestyle = "EU";
	var strDate;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	strDate = objName;
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if (strDateArray.length != 3) {
				err = 1;return false;
			}
			else {
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				strYear = strDateArray[2];
			}
			booFound = true;
		}
	}
	if (booFound == false) {
		if (strDate.length>5) {
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
	}
	if (strYear.length == 2) {
		if (strYear < 70) {
			strYear = '20' + strYear;
		} 
		else {
			strYear = '19' + strYear;
		}
	} 
	if (strDatestyle == "US") {
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}
	intday = parseInt(strDay, 10);
	if (strYear>=2100 || strYear < 1850) {
		err = 30;
		return false;
	}
	if (isNaN(intday)) {
		err = 2;
		return false;
	}
	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) {
		err = 3;
		return false;
	}
	intYear = parseInt(strYear, 10);
	if (isNaN(intYear)) {
		err = 4;
		return false;
	}
	if (intMonth>12 || intMonth<1) {
		err = 5;return false;
	}
	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
		err = 6;
		return false;
	}
	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
		err = 7;
		return false;
	}
	if (intMonth == 2) {
		if (intday < 1) {
			err = 8;
			return false;
		}
		if (stanwebLeapYear(intYear) == true) {
			if (intday > 29) {
				err = 9;
				return false;
			}
		}
		else {
			if (intday > 28) {
				err = 10;return false;
			}
		}
	}
	return true;
}

function stanwebLeapYear(intYear) {
	if (intYear % 100 == 0) {
		if (intYear % 400 == 0) { 
			return true; 
		}
	}
	else {
		if ((intYear % 4) == 0) {
			return true; 
		}
	}
	return false;
}

function stanwebCheckDato(cdato) {
	if (cdato != '') { 
		if (cdato.length > 5) {
			if (stanwebchkdate(cdato)) {
				return true;
			} 
			else {
				return false;
			}
		}
	}
	else {
		return true;
	}
}

function stanwebValidateCPR(obj) {	
	var strCPR = obj.value;	
	var RegEx = new RegExp("[\x20\-]","gi"); 
	strCPR = strCPR.replace(RegEx,'');	
	RegEx = new RegExp("[^0-9]","gi"); 
	if(RegEx.test(strCPR)) {
		alert('Ugyldigt CPR-nummer!!\n\nEt CPR-nummer må kun indeholde tal samt "-" (bindestreg)'); 
		obj.select(); 
		obj.focus(); 
		return false;
	} 
	var strSum = ''; 
	var arrayFactors = new Array(4,3,2,7,6,5,4,3,2,1);	
	var strOpr = '';
	if (!(stanwebCheckDato(strCPR.substr(0,6)))) {
		alert('Ugyldigt CPR-nummer!!\n\nDe først 6 cifre skal være en dato med format ddmmåå'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}	
	if (strCPR.length==10) {
		for (var i = 0; i < strCPR.length; i++){
			strSum+=strOpr+'('+strCPR.substr(i,1)+'*'+arrayFactors[i]+')';
			strOpr='+';
		}
		intSum = eval(strSum);
		if ((intSum % 11)!=0) {	
			alert('Ugyldigt CPR-nummer!!');
			obj.select(); 
			obj.focus(); 
			return false;
		}
		obj.value = strCPR.substr(0,6)+'-'+strCPR.substr(6);
		return true;
	}	
	else {
		alert('Ugyldigt CPR-nummer!!\n\nDer skal være 10 cifre i et CPR-nummer samt evt. seperatorer'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
}

function stanwebnumbervalidate(obj) {
	if (obj.value=='') {
		return true;
	}		
	RegEx = new RegExp("[^0-9\,\.]","gi"); 
	if(obj.value.match(RegEx)) {	
		alert('Det indtastede er ikke et tal\n\nDu må kun skrive tal (0-9) samt "," og "."'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	else {
		if((obj.value.indexOf('.')==0 || obj.value.indexOf(',')==0) && (obj.value.lastIndexOf(',')==0 || obj.value.lastIndexOf('.')==0)) {
			obj.value='0'+obj.value;
			if(obj.value.length==2){
				obj.value+='0';
			}
		}
		if(obj.value.substr(obj.value.length-1,1)==',') {
			obj.value=obj.value.substr(0,obj.value.length-1);
		}
	}	
	RegEx = new RegExp("^.*,{2,}.*$","gi");
	if (obj.value.match(RegEx)) {
		RegEx = new RegExp("\,{2,}","gi");
		obj.value = obj.value.replace(RegEx,',');
	} 
	RegEx = new RegExp(",(.)*,","gi"); 
	if(obj.value.match(RegEx)) {
		alert('Det indtastede er ikke et tal.\n\nDu må højst skrive eet ","'); 
		obj.select(); 
		obj.focus(); 
		return false;
	} 
	RegEx = new RegExp("^.*\\.{2,}.*$","gi");
	if (obj.value.match(RegEx)) {
		RegEx = new RegExp("\\.{2,}","gi"); 
		obj.value = obj.value.replace(RegEx,'.');
	} 
	RegEx = new RegExp("\\.(.)*\\.","gi");
	if (obj.value.match(RegEx)) {
		RegEx = new RegExp("\\.","gi"); 
		obj.value = obj.value.replace(RegEx,'');
	} 
	RegEx = new RegExp("^[0-9]*\\.[0-9]*$","gi");
	if (obj.value.match(RegEx)) {
		RegEx = new RegExp("\\.","gi"); 
		obj.value = obj.value.replace(RegEx,',');
	} 
	RegEx = new RegExp("^.*,.*$","gi");
	if (obj.value.match(RegEx)) {
		RegEx = new RegExp("\\.","gi"); 
		obj.value = obj.value.replace(RegEx,'');
	}
	if((obj.value.indexOf('.')==0 || obj.value.indexOf(',')==0) && (obj.value.lastIndexOf(',')==0 || obj.value.lastIndexOf('.')==0)) {
		obj.value='0'+obj.value;
		if(obj.value.length==2){
			obj.value+='0';
		}
	}
	if(obj.value.substr(obj.value.length-1,1)==',') {
		obj.value=obj.value.substr(0,obj.value.length-1);
	}
	return true;
}

function stanwebmultivalidate(obj, type, fixedSize, maxSize, alertTxt) {
	if (obj.value=='') {
		return true;
	}		
	if(alertTxt==null) {
		alertTxt = 'Der er en fejl i det indtastede';
	}
	if(fixedSize==null) {
		fixedSize = 0;
	}
	if(maxSize==null) {
		maxSize = 0;
	}
	switch (type) {
		case 1:
			RegType = '[0-9]';
			break;
		case 2:
			RegType = '(.)'; 
	}
	if (fixedSize==0){
		if (maxSize == 0) {
			RegPat = '^'+RegType+'*$';
		}
		else {
			RegPat = '^'+RegType+'{0,'+maxSize+'}$';
		}
	}
	else	{
		RegPat = '^'+RegType+'{'+fixedSize+'}$';
	}
	RegEx = new RegExp(RegPat,"gi"); 
	if (obj.value.match(RegEx)) {
		return true
	}
	else {
		alert(alertTxt);
		obj.select();
		obj.focus();
		return false;
	}
}

function stanwebEmailValidate(obj) {
	if (obj.value=='') {
		return true;
	}		
	var i_atPos = obj.value.indexOf('@');
	var i_dotPos = obj.value.indexOf('.');
	var i_lastdotPos = obj.value.lastIndexOf('.');
	var i_valLen = obj.value.length;
	if (i_atPos==-1) {
		alert('Email-adressen er ikke gyldig.\n\nDer skal være et "@"'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (i_dotPos==-1) {
		alert('Email-adressen er ikke gyldig.\n\nDer skal være et "."'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (i_atPos<1) {
		alert('Email-adressen er ikke gyldig.\n\n"@" må ikke være første tegn'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (i_atPos>i_lastdotPos) {
		alert('Email-adressen er ikke gyldig.\n\nDer skal komme et "." efter "@"'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (i_valLen==i_lastdotPos+1) {
		alert('Email-adressen er ikke gyldig.\n\n"." må ikke være sidste tegn'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (obj.value.substr(0,1)=='.' || obj.value.substr(0,1)=='-' || obj.value.substr(0,1)=='_') {
		alert('Email-adressen er ikke gyldig.\n\n"'+obj.value.substr(0,1)+'" må ikke være første tegn'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (obj.value.substr(i_atPos-1,1)=='.' || obj.value.substr(i_atPos-1,1)=='_' || obj.value.substr(i_atPos-1,1)=='-') {
		alert('Email-adressen er ikke gyldig.\n\nTegnet lige før "@" må ikke være et "'+obj.value.substr(i_atPos-1,1)+'"'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	if (obj.value.substr(i_atPos+1,1)=='.' || obj.value.substr(i_atPos+1,1)=='_' || obj.value.substr(i_atPos+1,1)=='-') {
		alert('Email-adressen er ikke gyldig.\n\nTegnet lige efter "@" må ikke være et "'+obj.value.substr(i_atPos+1,1)+'"'); 
		obj.select(); 
		obj.focus(); 
		return false;
	}
	RegEx = new RegExp("@.*[\\.]{2,}.*","gi"); 
	if(obj.value.match(RegEx)) {
		alert('Email-adressen er ikke gyldig.\n\nDer må ikke være mere end ét punktum i træk, efter @\'et');
		obj.select(); 
		obj.focus(); 
		return false;
	}
	RegEx = new RegExp("[^A-Za-z0-9\\_\\.\\@\\-]","gi");
	var s_out = '';
	result = obj.value.match(RegEx);
	if(result){
		for (var i = 0; i<result.length; i++) { 
			if(s_out.indexOf(result[i])==-1) {
				s_out+=result[i];
			}
		}
	}
	if(s_out!='') {
		alert('Email-adressen er ikke gyldig.\n\nFølgende tegn er ugyldige: '+ s_out); 
		obj.select(); 
		obj.focus(); 
		return false;
	}	
	return true;
}
