var wasCalled = 0,
	codePostal,
	passwd = '';
$(function() {
	if (typeof isNew !== "boolean")
		isNew = true;
	
	if ($('#cp').val()!='') {
		loadVilles();
	}
	
	$('#cp').mask('99999', {completed: loadVilles});
	$('#cp').blur(loadVilles);
	
	$('#ville').change(function(){
		if ($('#ville option:selected').length>0)
			ville = $('#ville option:selected').val();
	});
	
	$('#passwd').blur(function() {
		passwd = $(this).val();
	});
	
	function loadVilles() {
		if ($('#cp').val() == '') return;
		if (wasCalled == 1 || codePostal!==undefined && codePostal==$('#cp').val()) return;
		codePostal = $('#cp').val();
		wasCalled = 1;
		var options = '<option value="">'+stringChooseCountry+'</option>';
		$dest = $('#ville');
		
		$.getJSON(postalValidateUrl, {list: 'villes', str: $('#cp').val()},	function (j) {
				if (j.length == 0) {
					alert(strWrongPostal);
					$dest.html('');
				} else {
					sel = '';
					for (var i = 0; i < j.length; i++) {
						if (typeof ville != 'undefined' && ville != '') {
							if (j[i].optionDisplay == ville) {
								sel = ' selected="selected"';
							} else sel = '';
						}
						options += '<option value="' + j[i].optionValue + '"' + sel + '>' + j[i].optionDisplay + '</option>';
					}					
					$dest.html(options);
					$dest.attr('disabled', false);
				}
				wasCalled = 0;
			}
		);
	}
	
	jQuery.validator.addMethod("identical", function(value, element) { 
		if (value != passwd) {
			return false;
		} else {
			return true;
		}
	}, "");
	jQuery.validator.addMethod("genderFilled", function(value, element) {
		return value != '-1';
	}, "");
	
	$('#user_register').validate({
		submitHandler: function(form) {
	 			form.submit();
		},
		rules: {
			login: {
				required: true,
				minlength: 6,
				remote: urlLoginValidate
			},
			passwd: {
				required: isNew,
				minlength: 6
			},
			passwd2: {
				required: isNew,
				minlength: 6,
				identical: true
			},
			societe: {
				required: true,
				minlength: 2
			},
			siret: {
				required: true,
				minlength: 2
			},
			description: {
				required: true,
				minlength: 2,
				maxlength: 400
			},
			femme: {
				required: true,
				genderFilled : true
			},
			lastname: {
				required: true,
				minlength: 2
			},
			firstname: {
				required: true,
				minlength: 2
			},
			fonction: {
				required: true,
				minlength: 2
			},
			phone: 'required',
			mail: {
				email: true,
				required: true,
				remote: emailValidateUrl
			},
			coor: {
				required: true,
				minlength: 2
			},
			adress: {
				required: true,
				minlength: 6
			},
			cp: {
				required: true,
				minlength: 5
			},
			ville: {
				required: true,
				minlength: 1
			},
			phone2: 'required',
			fax: 'required',
			mail2: {
				email: true,
				required: true
			}
		},
		errorPlacement: function(error, element) {
			if (element.attr('id')=='mail') {
				error.insertAfter(element.prev('label'));
			}
		},
		messages : {
			mail : {
				required : strRequiredEmail,
				email : strEmailFormat,
				remote : strEmailIsAlreadyInUse
			}
		},
		highlight: errorHighlight,
		unhighlight: errorUnhighlight
	});
	
	function errorHighlight(element, errorClass) {
		$(element).parent().addClass(errorClass);
	}

	function errorUnhighlight(element, errorClass) {
		$(element).parent().removeClass(errorClass);
	}
	
	function submitform(form) {
		$('#dealer_register').submit();
	}
	
	$('#phone').mask('99-99-99-99-99');
	$('#phone2').mask('99-99-99-99-99');
	$('#fax').mask('99-99-99-99-99');
});

