
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

Register = function(form) {
	this.errorList = [];
	this.form = form;
	this.check = function() {
		this.clearErrors();
		// alert('fooo');
		if (parseInt($('#cena_celkem').text()) == 0) {
			this.addError('', 'Nejprve si vyberte nějaké služby z nabídky.');
			$('#error-services').text('Nejprve si vyberte nějaké služby z nabídky.');
		};
		fields = ['jmeno', 'obec', 'ulice'/*, 'cislo_popisne'*/]
		for(i in fields) {
			name = fields[i];
			value = this.getValue(name).trim();
			// alert(name + ' = ' + value); 
			if (value == '') {
				// alert(this.getFieldTitle(name));
				this.addError(name, 'Zadejte údaj.');
			};
		};
		if (!(this.getValue('email').trim().match(/^[a-zA-Z0-9-.]+@[a-zA-Z0-9\-.]+\.[a-zA-Z0-9\-]+$/))) {
			this.addError('email', 'Zadejte platnou e-mailovou adresu.');
		};
		value = this.getValue('telefon').trim().replace(/[ \-\/\\]/, '').replace(/\+/, '00');
		// alert(value)
		if (!(value.match(/^(([1-9][0-9]{8})|00[0-9]{8,20})$/))) {
			this.addError('telefon', 'Zadejte platé telefonní číslo.');
		};
		/* $('<div><strong>Doplňte (opravte) následující údaje:</strong><br /><br />' + this.errorList.join('<br />') + '</div>')
			.dialog({ 
				modal: true,
				buttons: {
					'Ok': function() {
						$( this ).dialog( "close" );
					}
				}				
			}); */
			//.html('');
		
		// alert(this.errorList.length + this.errorList);
		return this.errorList.length == 0;
	}
	this.getValue = function(name) {
		if (this.form[name] == undefined) {
			alert('Nenalezen input s name=' + name);
			return undefined;
		};
		return this.form[name].value;
	}
	this.addError = function(name, message) {
		if (name) {
			var td = $(this.form[name]).parent();
			var errorElement;
			if (td.filter('.error-message').length == 0) {
				errorElement = $('<div class="error-message"></div>');
				td.append(errorElement);
			} else {
				errorElement = td.filter('.error-message');
			};
			errorElement.text(message);
			this.errorList.push(this.getFieldTitle(name) + ': ' + message);
		} else {
			this.errorList.push(message);
		};
	}
	this.getFieldTitle = function(name) {
		return $(this.form[name]).parent().prev().text();
	}
	this.clearErrors = function() {
		$(this.form).find('.error-message').text('');
	}
}

