/**
 * @author quickest
 */

Validation.addAllThese([
	['validate-login', TranslatorValidate.translate('login'), {
		maxLength : 30,
		notOneOf : ['administrator']
	}],
	['validate-password', TranslatorValidate.translate('password'), {
		minLength : 6,
		notEqualToField : 'user:login'
	}],
	['validate-password-confirmation', TranslatorValidate.translate('passwordConfirmation'), {
		equalToField : 'user:password'
	}],
	['validate-password-billing', TranslatorValidate.translate('password'), {
		minLength : 6,
		notEqualToField : 'billing:login'
	}],
	['validate-password-changepassword', TranslatorValidate.translate('passwordChange'), {
		minLength : 6
	}],
	['validate-password-confirmation-billing', TranslatorValidate.translate('passwordConfirmation'), {
		equalToField : 'billing:password'
	}],
	['validate-company', TranslatorValidate.translate('company'), {
		minLength : 0,
		maxLength : 150
	}],
	['validate-nip', TranslatorValidate.translate('nip'), function(v) {
		
		if(Validation.get('IsEmpty').test(v))
			return true;
		
		var aNip = [];
		
		for(var i = 0; i < v.length; i++) {
			
			if(v[i] != '-' && isNaN(v[i]))
				return false;
			
			if(v[i] != '-')
				aNip.push(parseInt(v[i]));
		}
		
		if (aNip.length != 10)
			return true;

		var aSteps = [6, 5, 7, 2, 3, 4, 5, 6, 7];
		var iSum = new Number(0);

		for (i = 0; i < 9; i++)
			iSum += aSteps[i] * aNip[i];

		var iResult = iSum % 11;

		var iControlNr = (iResult == 10) ? 0 : iResult;

		if (iControlNr == aNip[9])
			return true;

		return false;
	}],
	['validate-telephone', TranslatorValidate.translate('telephone'), function(v) {
		return Validation.get('IsEmpty').test(v) || /^[0-9( +]?[0-9() -]{6,}$/.test(v)
	}],
	['validate-fax', TranslatorValidate.translate('fax'), function(v) {
		return Validation.get('IsEmpty').test(v) || /^[0-9( +]?[0-9() -]{6,}$/.test(v)
	}],
	['validate-first-name', TranslatorValidate.translate('firstName'), {
		minLength : 1,
		maxLength : 40
	}],
	['validate-last-name', TranslatorValidate.translate('lastName'), {
		minLength : 1,
		maxLength : 50
	}],
	['validate-street-address', TranslatorValidate.translate('streetAddress'), {
		minLength : 5,
		maxLength : 50
	}],
	['validate-postcode', TranslatorValidate.translate('postCode'), function(v) {
		return Validation.get('IsEmpty').test(v) || /^\d{2}[-]{1}\d{3}$/.test(v)
	}],
	['validate-city', TranslatorValidate.translate('city'), {
		minLength : 2,
		maxLength : 50
	}]
]);
