function dyRegExp(options) {
	var _FILTERS = new Object();
	// // Tipos de datos basicos
	_FILTERS['alfa'] 		= new RegExp(/^[^\[\]{}¦ÿ#$%\*\+:;<=>¿\?@~æÆø£Ø®¬½¼!¡«»©¢¥¤ßµ±¾¶§÷¹³²0-9]+$/);
    _FILTERS['num'] 		= new RegExp(/^[0-9]+$/);
	_FILTERS['alfanum'] 	= new RegExp(/^[^\[\]{}¦ÿ#$%\*\+:;<=>¿\?@~æÆø£Ø®¬½¼!¡«»©¢¥¤ßµ±¾¶§÷¹³²]+$/);	
	_FILTERS['unsignedint'] = new RegExp(/^\d+$/); 
	_FILTERS['signedint'] 	= _FILTERS['int'] = new RegExp(/^(\+|-)?\d+$/);
	_FILTERS['float']   	= new RegExp(/^[-+]?[0-9]*\.?[0-9]+$/); 	
	_FILTERS['full'] 		= new RegExp(/[^\s]/);
	// Login y password
    _FILTERS['login'] 		    = new RegExp(/^.{2,25}$/);
	_FILTERS['password'] 		= new RegExp(/^.{4,25}$/);	
    _FILTERS['alfanumpassword']	= new RegExp(/^\w*(?=\w*\d)(?=\w*[a-zA-Z])\w*$/);    
    // Contacto
	_FILTERS['name'] 		= _FILTERS['nombre'] 	= new RegExp(/^.{2,25}$/);
	_FILTERS['surnames']	= _FILTERS['apellidos'] = new RegExp(/^.{3,25}$/);	
	_FILTERS['firstname']	= _FILTERS['apellido1'] = new RegExp(/^.{2,25}$/);	
	_FILTERS['lastname']	= _FILTERS['apellido2'] = new RegExp(/^.{2,25}$/);		
    _FILTERS['phone'] 		= _FILTERS['telefono'] 	= new RegExp(/[89]{1}[0-9]{8}/);	
    _FILTERS['mobilephone'] = _FILTERS['movil']		= new RegExp(/[6][0-9]{8}/);
	_FILTERS['cp'] 			= new RegExp(/[0-9]{5}/);
	
	_FILTERS['us_zip_5'] 			= new RegExp(/^\d{5}$/);
	_FILTERS['us_zip_4'] 			= new RegExp(/^\d{5}-\d{4}$/);
	_FILTERS['us_zip_4o5'] 			= new RegExp(/^\d{5}$|^\d{5}-\d{4}$/);
	
	_FILTERS['canadianzip'] 			= new RegExp(/^[a-zA-Z][0-9][a-zA-Z]\s?[0-9][a-zA-Z][0-9]$/);
	_FILTERS['argentinazip'] 			= new RegExp(/^([A-HJ-TP-Z]{1}\d{4}[A-Z]{3}|[a-z]{1}\d{4}[a-hj-tp-z]{3})$/);
	_FILTERS['brazilzip'] 			= new RegExp(/((^\d{5}$)|(^\d{8}$))|(^\d{5}-\d{3}$)/);
	_FILTERS['dutchzip'] 			= new RegExp(/[0-9]{4}\s*[a-zA-Z]{2}/);
    
	_FILTERS['email'] 		= new RegExp(/^([\w\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
	_FILTERS['us-zip+4'] 	= new RegExp(/^\d{5}-\d{4}$ /);	// Solo xxxxx-xxxx
	_FILTERS['us-zip-5_+4'] = new RegExp(/^(.*)\.(png)(.*)$/); // xxxxx o xxxxx-xxxx
    // Documentation
	_FILTERS['nif'] 		= new RegExp(/[0-9]{8}[-]?[a-zA-Z]{1}/);
	_FILTERS['cif'] 		= new RegExp(/[a-zA-Z]{1}[-]?[0-9]{8}/);
	_FILTERS['vatnumber'] 	= new RegExp(/^([GB])*(([1-9]\d{8})|([1-9]\d{11}))$/);
	_FILTERS['siret'] 		= new RegExp(/^([0-9a-zA-Z]{12})$/);
	_FILTERS['psiret'] 		= new RegExp(/^([a-zA-Z]{2})\s([0-9]{7})$/);
	
	// Tipos de fichero
	_FILTERS['rar'] 		= new RegExp(/^(.*)\.([Rr][Aa][Rr])$/);
	_FILTERS['zip'] 		= new RegExp(/^(.*)\.([Zz][Ii][Pp])$/);
	_FILTERS['mp3'] 		= new RegExp(/^(.*)\.([Mm][Pp][3])$/);
	_FILTERS['mp4'] 		= new RegExp(/^(.*)\.([Mm][Pp][4])$/);
	_FILTERS['mov'] 		= new RegExp(/^(.*)\.([Mm][Oo][Vv])$/);
	_FILTERS['avi'] 		= new RegExp(/^(.*)\.([Aa][Vv][Ii])$/);
	_FILTERS['wma'] 		= new RegExp(/^(.*)\.([Ww][Mm][Aa])$/);
	_FILTERS['mpg'] 		= new RegExp(/^(.*)\.([Mm][Pp][Gg])$/);
	_FILTERS['mpeg'] 		= new RegExp(/^(.*)\.([Mm][Pp][Ee][Gg])$/);
	_FILTERS['gif'] 		= new RegExp(/^(.*)\.([Gg][Ii][Ff])$/);
	_FILTERS['jpg'] 		= new RegExp(/^(.*)\.([Jj][Pp][Gg])$/);
	_FILTERS['jpeg'] 		= new RegExp(/^(.*)\.([Jj][Pp][Ee][Gg])$/);
	_FILTERS['png'] 		= new RegExp(/^(.*)\.([Pp][Nn][Gg])$/);
	_FILTERS['image'] 		= new RegExp(/^.*(\.[Jj][Pp][Gg]|\.[Gg][Ii][Ff]|\.[Jj][Pp][Ee][Gg]|\.[Pp][Nn][Gg])$/);
	_FILTERS['swf'] 		= new RegExp(/^(.*)\.([Ss][Ww][Ff])$/);
	// Tipos de fichero online
	_FILTERS['onlinegif'] 	= new RegExp(/^(.*)\.([Gg][Ii][Ff])[?](.*)$/);
	_FILTERS['onlinejpg'] 	= new RegExp(/^(.*)\.([Jj][Pp][Gg])[?](.*)$/);
	_FILTERS['onlinejpeg'] 	= new RegExp(/^(.*)\.([Jj][Pp][Ee][Gg])[?](.*)$/);
	_FILTERS['onlinepng'] 	= new RegExp(/^(.*)\.([Pp][Nn][Gg])[?](.*)$/);
	_FILTERS['onlineimage'] = new RegExp(/^(.*)\.(\.[Jj][Pp][Gg]|\.[Gg][Ii][Ff]|\.[Jj][Pp][Ee][Gg]|\.[Pp][Nn][Gg])[?](.*)$/);
	_FILTERS['onlineswf'] 	= new RegExp(/^(.*)\.([Ss][Ww][Ff])[?](.*)$/);
	// Miscelanea
	_FILTERS['colorhex'] 	= new RegExp(/^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$/);
	_FILTERS['creditcar'] 	= new RegExp(/^(\d{4}[- ]){3}\d{4}|\d{16}$/);	 // 1234-1234-1234-1234 or 1234 1234 1234 1234 or 1234123412341234
	_FILTERS['creditcar2'] 	= new RegExp(/^((4\d{3})|(5[1-5]\d{2})|(6011))-?\d{4}-?\d{4}-?\d{4}|3[4,7]\d{13}$/); // 6011-1111-1111-1111 or 5423-1111-1111-1111 or 341111111111111
	// Fechas y hora
	_FILTERS['mm/dd/yy'] 	= _FILTERS['mm/dd/yyyy'] = new RegExp(/^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[13-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/);
	_FILTERS['yy/mm/dd'] 	= _FILTERS['yyyy/mm/dd'] = new RegExp(/^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))))$/);	
	_FILTERS['dd/mm/yy'] 	= _FILTERS['dd/mm/yyyy'] = new RegExp(/^(((((0[1-9])|(1\d)|(2[0-8]))\/((0[1-9])|(1[0-2])))|((31\/((0[13578])|(1[02])))|((29|30)\/((0[1,3-9])|(1[0-2])))))\/((20[0-9][0-9])|(19[0-9][0-9])))|((29\/02\/(19|20)(([02468][048])|([13579][26]))))$/);
	_FILTERS['time12']		= new RegExp(/^((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))$|^([01]\d|2[0-3])(:[0-5]\d){0,2}$/);
	_FILTERS['time24']		= new RegExp(/^((0?[1-9]|1[024])(:[0-5]\d){0,2})$|^([01]\d|2[0-3])(:[0-5]\d){0,2}$/);
	
	
	/*
	 * url validator:
	 * 	^(http\:\/\/[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+\.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$ 
	 *  http://website.com | http://subdomain.web-site.com/cgi-bin/perl.cgi?key1=value1&key2=value2
	 * 
	 * image url
	 * 	^(http\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(?:\/\S*)?(?:[a-zA-Z0-9_])+\.(?:jpg|jpeg|gif|png))$
	 *  http://website.com/directory/image.gif
	 *  
	 * params url
	 * 	^((?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$  	
	 * 	?key=value | ?key1=value1&key2=value2
	 * 
	 * absolute path
	 * 	^((?:\/[a-zA-Z0-9]+(?:_[a-zA-Z0-9]+)*(?:\-[a-zA-Z0-9]+)*)+)$ 
	 * 	OK: /users/web/mysite/web/cgi-bin
	 * 	KO: /users/web/my site/web/cgi-bi users/web/mysite/web/cgi-bi
	 * 
	 * Class A IP
	 * 	^(10\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5]\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5]\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5])$ 
	 * 
	 * Class B IP
	 * 	^(172\.1[6-9]|2[0-9]|3[0-1|\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5]\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5])$ 
	 * 
	 * Class C IP
	 * 	^(192\.168\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5]\.[0-9]|[1-9][0-9]|[1-2][0-5][0-5])$ 
	 * 
	 * Embed youtube video
	 * 	(\"http:\/\/www\.youtube\.com\/v\/\w{11}\&rel\=1\") 
	 * 
	 * Embed google video
	 * 	(\"http:\/\/video\.google\.com\/googleplayer\.swf\?docId=\d{19}\&hl=[a-z]{2}\") 
	 * 
	 * Domain url
	 * 	^(http\:\/\/(?:www\.)?[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*(?:\.[a-zA-Z0-9]+(?:(?:\-|_)[a-zA-Z0-9]+)*)*\.[a-zA-Z]{2,4}(?:\/)?)$ 
	 * 
	 * Only Vocals
	 * 	/^[AaEeIiOoUuYy]+$/
	 */
	
	
	
	
	this.getFilter = function(i) {
		try {
			return _FILTERS[i];
		} catch(e) { return /[^\s]/; }
	};

	this.pushFilter = function(i,r) {
		_FILTERS[i] = (/[a-zA-Z]{1}[-][0-9]{8}/.constructor == RegExp) ? r : null;
	};
}

