d = new Date();

function nationaliteHasChanged() {
	var nationalite = $('#nationalite').val();
	if (nationalite == 'Suisse' || nationalite == 'Switzerland') {
		$('#origine, #avs').fadeIn();
		$('#permis').fadeOut();
	
	} else {
		$('#origine, #avs').fadeOut();
		$('#permis').fadeIn();	
			
	}
}

function residenceHasChanged() {
	var residence = $('#residence').val();
	if (residence == 'Suisse' || residence == 'Switzerland') {
		//$('#permis .required').remove();
	
	} else if (!$('#permis .required').size()) {
		//$('#permis h4').prepend('<span class="required">*</span>');
			
	}
}

function paysFormationHasChanged() {
	var pays_formation = $('#pays_formation').val();
	if (pays_formation == 'Suisse' || pays_formation == 'Switzerland') {
		$('#canton_formation').fadeIn();
	
	} else {
		$('#canton_formation').fadeOut();
			
	}
}

function openStep(step, stepHeader) {
	step.slideDown(function() {
		//initScroll();
		$(step).prev().removeClass('closed');
		nationaliteHasChanged();
		residenceHasChanged();
		paysFormationHasChanged();		
	});
}

function closeStep(step, stepHeader) {
	step.slideUp(function() { 
		//initScroll();
		$(step).prev().addClass('closed'); 				
	});	
}

$(function() {
	openStep($('.step:first'));
	
	$('#nationalite').change(nationaliteHasChanged);
	$('#residence').change(residenceHasChanged);
	$('#pays_formation').change(paysFormationHasChanged);
	
	$("input[name='pf_date_naissance']").datepicker({
		changeMonth: true,
		changeYear: true,
		firstDay: 1,
		minDate: new Date(d.getFullYear() - 36, 0, 1),
		maxDate: new Date(d.getFullYear() - 16, 11, 31),
		yearRange: '-36:+36',
		dateFormat: 'dd.mm.yy'
	});
	
	$('.stepHeader:not(.disabled)').click(function() {
		var step = $(this).next();
		if (step.css('display') == 'none') {
			closeStep($('.step:visible').not(step));
			openStep(step);	
		
		} else {
			closeStep(step);	
			
		}
	});

	$('#theForm').validate({
		errorPlacement: function(error, element) { },	
	  highlight: function(element, errorClass) {
			var e = $(element);
			if (e.attr('type') == 'radio' || e.attr('type') == 'file') {
				if (e.parents('.wrap')) {
					e = e.parents('.wrap');
				} else {
					e = e.parent('p');
				}
	  	}
			e.addClass('error');
			e.parents('.step').prev('.stepHeader').addClass('required');
	  },
	  unhighlight: function(element, errorClass) {
			var e = $(element);
			if (e.attr('type') == 'radio' || e.attr('type') == 'file') {
				if (e.parents('.wrap')) {
					e = e.parents('.wrap');
				} else {
					e = e.parent('p');
				}				
			}
			e.removeClass('error');
	  },
		invalidHandler: function(form, validator) {
			$('.stepHeader').removeClass('required');
		},
		focusInvalid: false,
		rules: {
			inscr_log: { required: true, email: true },
			inscr_pass: { required: true },			
			choix: { required: true },
			pf_tentative: { required: true },
			pf_nom: { required: true },
			pf_prenom: { required: true },
			pf_sexe: { required: true },
			pf_date_naissance: { required: true },
			pf_nationalite_principale: { required: true },
			pf_commune_origine_principale: { required: function() { return $('#nationalite').val() == 'Suisse' || $('#nationalite').val() == 'Switzerland' } },
			pf_canton_origine_principal: { required: function() { return $('#nationalite').val() == 'Suisse' || $('#nationalite').val() == 'Switzerland' } },
			pf_rue: { required: true },
			pf_npa: { required: true },
			pf_localite: { required: true },
			pf_pays: { required: true },
			pf_telephone: { required: true },
			pf_email: { required: true, email: true },
			pf_langue_maternelle: { required: true },
			pf_etat_civil: { required: true },
			//pf_permis_sejour: { required: function() { return $('#nationalite').val() != 'Suisse' && $('#nationalite').val() != 'Switzerland' && $('#residence').val() != 'Suisse' && $('#residence').val() != 'Switzerland' } },
			pf_no_avs: { required: function() { return $('#nationalite').val() == 'Suisse' || $('#nationalite').val() == 'Switzerland' } },
			pf_lieu_naissance: { required: true },
			pf_nom_pere: { required: true },
			pf_prenom_pere: { required: true },
			pf_etat_civil_pere: { required: true },
			pf_profession_pere: { required: true },
			pf_lieu_travail_pere: { required: true },
			pf_nom_mere: { required: true },
			pf_prenom_mere: { required: true },
			pf_etat_civil_mere: { required: true },
			pf_profession_mere: { required: true },
			pf_lieu_travail_mere: { required: true },
			pf_rue_pere: { required: true },
			pf_npa_pere: { required: true },
			pf_localite_pere: { required: true },
			pf_pays_pere: { required: true },
			pf_telephone_pere: { required: true },
			pf_fax_pere: { required: true },
			pf_rue_mere: { required: true },
			pf_npa_mere: { required: true },
			pf_localite_mere: { required: true },
			pf_pays_mere: { required: true },
			pf_telephone_mere: { required: true },
			pf_fax_mere: { required: true },
			pf_formation: { required: true },
			pf_degre: { required: true },
			pf_annee_propedeutique: { required: true },
			pf_degre_inferieur: { required: true },
			pf_titre_obtenu_determinant: { required: true },
			pf_etablissement_determinant: { required: true },
			pf_annee_determinant: { required: true },
			pf_localite_legal: { required: true },			
			pf_pays_legal: { required: true },
			pf_canton_legal: { required: function() { return $('#pays_formation').val() == 'Suisse' || $('#pays_formation').val() == 'Switzerland' } },
			pf_motivations: { required: function() { return $('input[name="choix"]:checked').val() == 'propedeutique' } },
			pf_interets: { required: function() { return $('input[name="choix"]:checked').val() == 'propedeutique' } },
			pf_interets_domaine: { required: function() { return $('input[name="choix"]:checked').val() == 'propedeutique' } },
			pf_ecal: { required: function() { return $('input[name="choix"]:checked').val() == 'propedeutique' } },
			photo: { required: function() { return $('#p_sent').val() == 0 }, accept: '[jJ][pP][eE]?[gG]|[gG][iI][fF]|[pP][nN][gG]' }
		}
	});
});
