/**
 * ClientValidator FI
 *
 * Extends CS_ClientValidator_Base
 * @extends CS_ClientValidator_Base
 */
function CS_ClientValidator_FI(){}

CS_ClientValidator_FI.prototype = 
{
	validPostcode : function(field_name)
	{
		var obj = this._data[field_name];
		return (obj.value.length == 5 && this._isNumeric(obj.value));
	},
	
	validPhone : function(field_name)
    {
    	var expr = /^([0-9]{2,4}[- ]?)?[0-9]{6,8}$/;
		var ret = expr.exec(this._data[field_name].value);
		return !(ret == null);
    },
    
    validCPREnd : function(field_name)
    {
    	value = this.getFieldValue(field_name);
    	var expr = /^(\d{3})([A-Z0-9])$/;
		var ret = expr.exec(value);
		return !(ret == null);
    },
    
    validBusinessId : function(field_name)
    {
    	value = this.getFieldValue(field_name);
    	var expr = /^(\d{7})\-\d$/;
		var ret = expr.exec(value);
		return !(ret == null);
    },
    
    validNotPostbox : function(field_name)
	{
    	var patterns =new Array("pl", "poste restante");
    	for ( var i in patterns )
    	{
    		fixed_pattern = patterns[i].replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!<>\|\:])/g, "\\$1");
    		var expr = '^' + fixed_pattern + '(\\s|$|[0-9]|\\.)';
   		
    		input = this._data[field_name].value;
    		
    		var regex = new RegExp(expr, "i");
    		var match = regex.exec(input);
    		if (match != null) 
    		{
    			return false;
    		}
    	}
    	return true;
	}
}

CS_ClientValidator_Base.extend(CS_ClientValidator_FI);