﻿function regExpLibrary(LCID) {
	this.version = '0.0';
	this.LCID = (page.LCID) ? page.LCID : 1030;
}

regExpLibrary.prototype.getRegExp = function(strName) {
	return eval('regExpPack_' + this.LCID + '(\'' + strName + '\')');
};

// LCID 1030 - DANISH regExp Library.
function regExpPack_1030(strName) {
	switch (strName.toLowerCase()) {
		case 'date':     return /^\d{2}(-|\.|\/)\d{2}(-|\.|\/)\d{4}$/;
		case 'username': return /^[æøåÆØÅa-zA-Z0-9\-\s]{4,}$/;
		case 'zipcode':  return /^\d{3,4}$/;
		case 'phone':    return /^\d{8}$/;
		default:         return regExpPack_DEFAULT(strName);
	}
}

// LCID 1044 - NORWEGIAN regExp Library.
function regExpPack_1044(strName) {
	switch (strName.toLowerCase()) {
		case 'date':     return /^\d{2}(-|\.|\/)\d{2}(-|\.|\/)\d{4}$/;
		case 'username': return /^[æøåÆØÅa-zA-Z0-9\-\s]{4,}$/;
		case 'zipcode':  return /^\d{3,4}$/;
		case 'phone':    return /^\d{8}$/;
		default:         return regExpPack_DEFAULT(strName);
	}
}

// LCID 1033 - ENGLISH US regExp Library.
function regExpPack_1033(strName) {
	switch (strName.toLowerCase()) {
		case 'date':     return /^\d{1,2}(-|\.|\/)\d{1,2}(-|\.|\/)\d{4}$/;
		case 'username': return /^[a-zA-Z0-9\-\s]{4,}$/;
		default:         return regExpPack_DEFAULT(strName);
	}
}

// LCID 1031 - GERMAN regExp Library.
function regExpPack_1031(strName) {
	switch (strName.toLowerCase()) {
		case 'date':     return /^\d{2}(-|\.|\/)\d{2}(-|\.|\/)\d{4}$/;
		case 'username': return /^[a-zA-Z0-9\-\s]{4,}$/;
		case 'zipcode':  return /^\d{5}$/;
		case 'phone':    return /^\d{3,5}(\s|\-)\d{3,9}$/;
		default:         return regExpPack_DEFAULT(strName);
	}
}

// LCID 1053 - SWEDISH regExp Library.
function regExpPack_1053(strName) {
	switch (strName.toLowerCase()) {
		case 'date': return /^\d{4}(-|\.|\/)\d{2}(-|\.|\/)\d{2}$/;
		default:     return regExpPack_DEFAULT(strName);
	}
}

// LCID 3081 - AUSTRLIAN regExp Library.
function regExpPack_3081(strName) {
	switch (strName.toLowerCase()) {
		case 'date': return /^\d{1,2}(-|\.|\/)\d{2}(-|\.|\/)\d{4}$/;
		default:     return regExpPack_DEFAULT(strName);
	}
}

// LCID 2052 - CHINESE regExp Library.
function regExpPack_2052(strName) {
	switch (strName.toLowerCase()) {
		case 'date': return /^\d{4}(-|\.|\/)\d{1,2}(-|\.|\/)\d{1,2}$/;
		default:     return regExpPack_DEFAULT(strName);
	}
}

// LCID 1035 - FINNISH regExp Library.
function regExpPack_1035(strName) {
	switch (strName.toLowerCase()) {
		case 'date': return /^\d{1,2}(-|\.|\/)\d{1,2}(-|\.|\/)\d{4}$/;
		default:     return regExpPack_DEFAULT(strName);
	}
}

// LCID 1061 - ESTONIAN regExp Library.
function regExpPack_1061(strName) {
	switch (strName.toLowerCase()) {
		case 'date': return /^\d{1,2}(-|\.|\/)\d{2}(-|\.|\/)\d{4}$/;
		default:     return regExpPack_DEFAULT(strName);
	}
}

// LCID 2057 - ENGLISH GB regExp Library.
function regExpPack_2057(strName) {
	switch (strName.toLowerCase()) {
		case 'date': return /^\d{1,2}(-|\.|\/)\d{1,2}(-|\.|\/)\d{4}$/;
		default:     return regExpPack_DEFAULT(strName);
	}
}

function regExpPack_DEFAULT(strName) {
	switch (strName.toLowerCase()) {
		case 'username': return /^[a-zA-Z0-9\-\s]{4,}$/;
		case 'date':     return /^\d{2}(-|\.|\/)\d{2}(-|\.|\/)\d{4}$/;
		default:         return /^[\s\w\d\.\+\-]*$/;
	}
}
