/**
 * ClientValidator NO
 *
 * Extends CS_ClientValidator_Base
 * @extends CS_ClientValidator_Base
 */
function CS_ClientValidator_NO(){}

CS_ClientValidator_NO.prototype = 
{
	validPostcode : function(field_name)
	{
		var obj = this._data[field_name];
		return (obj.value.length == 4 && this._isNumeric(obj.value));
	},
	
	validPhone : function(field_name)
    {
    	var expr = /^[2-9][0-9]{7}$/;
		var ret = expr.exec(this._data[field_name].value);
		return !(ret == null);
    },
    
    validCPREnd : function(field_name)
    {
    	value = this.getFieldValue(field_name);
    	var expr = /^(\d{5})$/;
		var ret = expr.exec(value);
		return !(ret == null);
    },
    
    validBusinessId : function(field_name)
    {
    	var expr = /^[0-9]{3}( )?[0-9]{3}( )?[0-9]{3}$/;
		var ret = expr.exec(this._data[field_name].value);
		return !(ret == null);
    },
    
    validNotPostbox : function(field_name)
	{
    	var patterns =new Array("Boks", "Postboks", "Post boks", "Postbox", "Post box", "PB", 'PB.',  'P.b');
    	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_NO);