/**
 * subscription-main.js
 *
 * gestion du type de membre, du code de bienvenue et du num SIREN
 * @author collomb
 * @version 1.0
 */
var TYPE_COMPANY_MANAGER = '0';
var TYPE_COMPANY_EMPLOYEE = '2';
var TYPE_COMPANY_STAFF = '1';
var TYPE_STRUCTURE_MEMBER = '5';

$(document).ready(onSubscriptionMainDocumentReady)

function onSubscriptionMainDocumentReady() {
	$(".ulRadioList li").click(onRadioButtonClick);
	$(".ulRadioList input:checked:first").parent().trigger('click');
	$("#welcomeCode").change(onEditChange);
	$("#siren").keyup(onSirenChange).blur(onSirenChange);
	$.fn.formValidation.addCustomValidation(validateMemberType);
}

function onEditChange() {
	$(this).removeClass("validationError");
}

function onRadioButtonClick(event) {
	event.preventDefault();
	$(this).siblings(".selected").removeClass("selected");
	$(this).addClass("selected");
	var memType = $(this).find(":radio").attr("checked","checked").val();
	if (memType == TYPE_COMPANY_MANAGER || memType == TYPE_COMPANY_EMPLOYEE || memType == TYPE_COMPANY_STAFF || memType == TYPE_STRUCTURE_MEMBER) {
		$("#fieldsetWelcomeCode").slideDown("fast");
	} else {
		$("#fieldsetWelcomeCode").slideUp("fast");
	}
	if (memType == TYPE_COMPANY_MANAGER || memType == TYPE_COMPANY_EMPLOYEE || memType == TYPE_COMPANY_STAFF) {
		$("#fieldsetSiren").slideDown("fast");
	} else {
		$("#fieldsetSiren").slideUp("fast");
	}
	$("#pMemberType").removeClass("validationError");
}

/**
 * Effectue la validation du type de membre
 * Execution lors de la soumission du formulaire
 * @param <object> $form                le formulaire en cours de validation
 * @param <string> validationErrorClass la class à ajouter à un champ en cas d'erreur de validation
 * @param <object> $output              le container ou afficher les messages d'erreur
 */
function validateMemberType($form, validationErrorClass, $output) {
	var bError = $(".ulRadioList input:radio:checked", $form).length == 0;
	$("#pMemberType").toggleClass(validationErrorClass, bError);
	if (bError) {
		$output.append('<p>Situation : Veuillez sélectionner votre situation dans la liste ci-dessous.</p>')
		return;
	}
	var memType = $(".ulRadioList :radio:checked:first").val();
	if (memType == TYPE_COMPANY_MANAGER || memType == TYPE_COMPANY_EMPLOYEE || memType == TYPE_COMPANY_STAFF) {
		var $siren = $("#siren");
		bError = $siren.val() == '';
		$siren.toggleClass(validationErrorClass, bError);
		if (bError) {
			$output.append('<p>* SIREN : Veuillez renseigner le numéro SIREN de votre entreprise.</p>')
			return;
		}
	}
}

var siren = '';

function onSirenChange() {
	$(this).removeClass("validationError");
	if($(this).val() != siren) {
		siren = $(this).val();
		if ($(this).val().length == 9) {
			$.getJSON('scripts/ajax/siren-companies.php', {siren:$(this).val()}, function(data){
				if (data.count) {
					$("#divCompanyChoice").hide().html(data.html).slideDown("fast");
				}
			});
		} else {
			$("#divCompanyChoice").slideUp('fast', function(){$(this).html('')});
		}
	}
}

