function validateStep1() {
	var prenume = new LiveValidation('prenume', { onValid: function() { this.addFieldClass(); }, onInvalid: function() { this.addFieldClass(); } });
		prenume.add( Validate.Presence, { failureMessage: "completati prenumele" } );
		prenume.add( Validate.Exclusion, { within: [ 'Prenume' ], caseSensitive: true, failureMessage: "completati prenumele" } );
		prenume.add( Validate.Format, { pattern: /(^[a-zA-Z-\.\, ]+$)/, failureMessage: "prenume invalid" } );


	var nume = new LiveValidation('nume', { onValid: function() { this.addFieldClass(); }, onInvalid: function() { this.addFieldClass(); } });
		nume.add( Validate.Presence, { failureMessage: "completati numele" } );
		nume.add( Validate.Exclusion, { within: [ 'Nume' ], caseSensitive: true, failureMessage: "completati numele" } );
		nume.add( Validate.Format, { pattern: /(^[a-zA-Z-\.\, ]+$)/, failureMessage: "nume invalid" } );

	var telefon = new LiveValidation('telefon', { onValid: function() { this.addFieldClass(); }, onInvalid: function() { this.addFieldClass(); } });
		telefon.add( Validate.Presence, { failureMessage: "completati telefonul" } );
		telefon.add( Validate.Numericality, { notANumberMessage: "telefon invalid" });
		telefon.add( Validate.Length, { is: 10, wrongLengthMessage: "telefonul necesita 10 caractere" } );

	var email = new LiveValidation('email', { onValid: function() { this.addFieldClass(); }, onInvalid: function() { this.addFieldClass(); } });
		email.add( Validate.Presence, { failureMessage: "completati emailul" } );
		email.add( Validate.Email, { failureMessage: "email invalid !" } );

	var cnp = new LiveValidation('cnp', { onValid: function() { this.addFieldClass(); }, onInvalid: function() { this.addFieldClass(); } });
		cnp.add( Validate.Presence, { failureMessage: "completati CNP" });
		cnp.add( Validate.Numericality, { notANumberMessage: "CNP invalid" });
		cnp.add( Validate.Length, { is: 13, wrongLengthMessage: "CNP-ul necesita 13 caractere" } );
		cnp.add( Validate.Custom, { against: function (value, args) {
			if (!DateFormat.parse(value.substring(5, 7) + '-' + value.substring(3, 5) + '-19' + value.substring(1, 3))) {
				return false;
				}
			return true;
			}, failureMessage: 'CNP invalid' } );
		
		
		cnp.add( Validate.Custom, { against: function (value) {
													   
													   
			constanta=new String("279146358279");
			suma=0;
			for(i=0; i<constanta.length; i++) {
			suma=suma+value.charAt(i)*constanta.charAt(i);
			}
			rest=suma%11;
			if((value != 0 && rest <10 && rest == value.charAt(12)) || (value != 0 && rest == 10 && value.charAt(12) == 1) )
			{
				return true;
				}

			return false;
			}, failureMessage: 'CNP invalid' } );
		
		cnp.add( Validate.Custom, { against: function (value, args) {
			var cnpdate	= DateFormat.parse(value.substring(5, 7) + '-' + value.substring(3, 5) + '-19' + value.substring(1, 3));
			var now		= new Date();
			var age		= now.getFullYear() - cnpdate.getFullYear();
			var months	= now.getMonth() - cnpdate.getMonth();
			var days	= now.getDate() - cnpdate.getDate();

			if (age < 18) {
				return false;
				} else if (age == 18) {
					if (months < 0) {
						return false;
						} else if (months == 0) {
							if (days < 0) {
								return false;
								}
							}
					}

			return true;
			}, failureMessage: 'trebuie sa ai peste 18 ani' } );

	var judet = new LiveValidation('judet', { onValid: function() { $('judet').next('input').removeClassName('LV_invalid_field'); }, onInvalid: function() { $('judet').next('input').addClassName('LV_invalid_field'); } });

		judet.add( Validate.Presence, { failureMessage: "alegeti orasul" } );
		judet.add( Validate.Exclusion, { within: [ '0', 'undefined' ], caseSensitive: true, failureMessage: "alegeti orasul" } );

	var oras = new LiveValidation('oras', { onValid: function() { $('oras').next('input').removeClassName('LV_invalid_field'); }, onInvalid: function() { $('oras').next('input').addClassName('LV_invalid_field'); } });
		oras.add( Validate.Presence, { failureMessage: "alegeti office-ul" } );
		oras.add( Validate.Exclusion, { within: [ '0', 'undefined' ], caseSensitive: true, failureMessage: "alegeti office-ul" } );

	return [prenume, nume, telefon, email, cnp, judet, oras];
}

function validationPassed(validation) {
	return validation.validationFailed == false;
}

document.observe('dom:loaded', function() {						
						

										

	var oras  = new SmartSelect('oras', {
        valueConstraint: false,
        defaultValue: {
            value: 0,
            text:  'Office'
        },
        onSelect: function (value, text) {
            if (value) {
                $('oras').next('input').removeClassName('gray').removeClassName('LV_invalid_field').addClassName('LV_valid_field');
                
            } else {
                $('oras').next('input').removeClassName('LV_valid_field').addClassName('gray');
                
            }
        },
        onMatch: function (match) {
            $('oras').next('input').removeClassName('gray').removeClassName('LV_invalid_field');
        },
        onNoMatch: function (match) {
            $('oras').next('input').removeClassName('gray').addClassName('LV_invalid_field');
        }
   });

	var judet = new SmartSelect('judet', {
		onSelect: function (value, text) {
          
			oras.setValue(0, "Alege Office-ul"); 
					
            if (value) {
                oras.setValues(orase.findAll(function (oras) {
                    return oras.id_judet == value;
                }).map(function (oras) {
                    return {value: oras.id, text: oras.nume}
                }));
                $('oras').next('input').addClassName('gray');
                $('judet').next('input').removeClassName('gray').removeClassName('LV_invalid_field').addClassName('LV_valid_field');
            } else {
                $('judet').next('input').removeClassName('LV_valid_field').addClassName('gray');
                $('oras').next('input').removeClassName('LV_valid_field').addClassName('gray');
                oras.setValues([{value: "", text: "Alegeti intai orasul"}]);
               
            }
		},
        onMatch: function (match) {
            $('judet').next('input').removeClassName('gray').removeClassName('LV_invalid_field');
        },
        onNoMatch: function (match) {
            $('judet').next('input').removeClassName('gray').addClassName('LV_invalid_field');
        },
		valueConstraint: false
	});



   

    $('oras').next('input').addClassName('gray');
    $('judet').next('input').addClassName('gray');

    $('judet').next('input').observe('blur', function (event) {
        if (this.value == 'Oras') {
            this.addClassName('gray');
        }
    });

    $('oras').next('input').observe('blur', function (event) {
        if (this.value == 'Office') {
            this.addClassName('gray');
        }
    });

    $('judet').up().setStyle({zIndex: 999});
    $('oras').up().setStyle({zIndex: 998});


	var validations = $A(validateStep1());

    $$('.smart-select input', '.smart-select a.smart-select-trigger', '.smart-select div').invoke('observe', 'mouseover', function (event) {
        event.element().up('.smart-select').addClassName('hover');
    }).invoke('observe', 'mouseout', function (event) {
        event.element().up('.smart-select').removeClassName('hover');
    });

});
