var ns6 = document.getElementById && !document.all;
var nameClass = "";

function restrictinput(maxlength, e, placeholder) {
	if (window.event && event.srcElement.value.length >= maxlength){
		return false
	} else if (e.target && e.target == eval(placeholder) && e.target.value.length >= maxlength) {
		var pressedkey = /[a-zA-Z0-9\.\,\/]/;
			if (pressedkey.test(String.fromCharCode(e.which)))
				e.stopPropagation();
	}
}

function countlimit(maxlength, e, placeholder) {
	var theform = eval(placeholder);
	var lengthleft = maxlength-theform.value.length;
	var placeholderobj = document.all ? document.all[placeholder] : document.getElementById(placeholder);
	if (window.event || e.target && e.target == eval(placeholder)) {
		if (lengthleft < 0)
			theform.value = theform.value.substring(0, maxlength);
		placeholderobj.innerHTML = lengthleft;
	}
}

function displaylimit(thename, theid, thelimit) {
	var theform = theid != "" ? document.getElementById(theid) : thename;
	var limit_text = '<b><span id="' + theform.toString() + '">' + thelimit + '</span></b> caractères maximum.';
	if (document.all||ns6)
		document.write(limit_text);
	if (document.all) {
		eval(theform).onkeypress = function(){ return restrictinput(thelimit, event, theform) };
		eval(theform).onkeyup = function(){ countlimit(thelimit, event, theform)};
	} else if (ns6) {
		document.body.addEventListener('keypress', function(event) { restrictinput(thelimit, event, theform) }, true); 
		document.body.addEventListener('keyup', function(event) { countlimit(thelimit, event, theform) }, true); 
	}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function setDisplay(classNam) {
	if(nameClass == "") {
		nameClass = classNam;
		var array_elem2 = new Array();
	} else {
		var array_elem2 = getElementsByClassName('contact_info_form ' + nameClass + '2');
	}
	switch(classNam) {
		case 'member':
			var array_elem1 = getElementsByClassName('contact_info_form member');
			for (var i = 0; i < array_elem1.length; i++) {
				array_elem1[i].className = 'contact_info_form member2';
				if(array_elem2.length != 0) {
					array_elem2[i].className = 'contact_info_form ' + nameClass;
				}
			}
			nameClass = classNam;
			break;
		case 'not_member':
			var array_elem1 = getElementsByClassName('contact_info_form not_member');
			for (var i = 0; i < array_elem1.length; i++) {
				array_elem1[i].className = 'contact_info_form not_member2';
				if(array_elem2.length != 0) {
					array_elem2[i].className = 'contact_info_form ' + nameClass;
				}
			}
			nameClass = classNam;
			break;
		case 'member_filia':
			var array_elem1 = getElementsByClassName('contact_info_form member_filia');
			for (var i = 0; i < array_elem1.length; i++) {
				array_elem1[i].className = 'contact_info_form member_filia2';
				if(array_elem2.length != 0) {
					array_elem2[i].className = 'contact_info_form ' + nameClass;
				}
			}
			nameClass = classNam;
			break;
		default:
			break;
	}
}

function funcOptionMsg(option) {
	var list = document.contact.objetDemande;
	list.options.length = 0;
	var opt = new Array();
	switch(option) {
		case 1:
			opt[0] = new Option("Choisissez l'objet du message...", "");
			opt[1] = new Option("Demande d'informations et d'explications", "Demande d'informations et d'explications");
			opt[2] = new Option("Demande de documents", "Demande de documents");
			opt[3] = new Option("Demande de modifications", "Demande de modifications");
			opt[4] = new Option("Réclamations", "Réclamations particuliers");
			break;
		case 2:
			opt[0] = new Option("Choisissez l'objet du message...", "");
			opt[1] = new Option("Vous renseigner sur les soins d'un établissement ", "Vous renseigner sur les soins d'un établissement");
			if (document.getElementById('etab').value != "csparis@mgen.fr") {
				opt[2] = new Option("Obtenir un rdv médical", "Obtenir un rdv médical");
			}
			break;
		case 3:
			opt[0] = new Option("Choisissez l'objet du message...", "");
			opt[1] = new Option("Signaler un problème technique","Signaler un problème technique");
			opt[2] = new Option("Savoir dans quelle rubrique se trouve une information","Savoir dans quelle rubrique se trouve une information");
			opt[3] = new Option("Proposer une évolution des services","Proposer une évolution des services");
			opt[4] = new Option("Réclamation d'ordre général","Réclamation d'ordre général");
			break;
		default:
			break;
	}
	for(var i = 0; i < opt.length; i++){
		list.options[i]= opt[i];
	}
	document.getElementById('warning').style.display = "none";
}

function checkFormContact() {
	var msgError = "";
	
	if(!document.getElementById("situationOFILIA").checked && !document.getElementById("situationO").checked && !document.getElementById("situationN").checked) {
		msgError += "Veuillez sélectionner votre situation actuelle.\n";
	} else {
		switch(nameClass) {
			case 'member':
				if(document.getElementById('numInsee').value == "") {
					msgError += "Le numéro de Sécurité sociale est obligatoire.\n";
				} else if (!isNumInsee(document.getElementById('numInsee').value)) {
					msgError += "Le numéro de Sécurité sociale est incorrect.\n";
				}
				if (document.getElementById('nummgenad').value != "") {
					if(!funcIsNumMgen(document.getElementById('nummgenad').value)) {
						msgError += "Le numéro MGEN est incorrect.\n";
					}
				}
				break;
			case 'member_filia':
				if(document.getElementById('numInseefilia').value == "") {
					msgError += "Le numéro de Sécurité sociale est obligatoire.\n";
				} else if (!isNumInsee(document.getElementById('numInseefilia').value)) {
					msgError += "Le numéro de Sécurité sociale est incorrect.\n";
				}
				if (document.getElementById('nummgenfilia').value != "") {
					if(!funcIsNumMgen(document.getElementById('nummgenfilia').value)) {
						msgError += "Le numéro MGEN Filia est incorrect.\n";
					}
				}
				break;
			case 'not_member':
				if(document.getElementById('codePostal').value == "") {
					msgError += "Le Code Postal est obligatoire.\n";
				} else if (!isFrZipCode(document.getElementById('codePostal').value)) {
					msgError += "Le Code Postal est incorrect.\n";
				}
				break;
			default:
				break;
		}
		if (!document.getElementById("section_dep").checked && !document.getElementById("etablissement").checked && !document.getElementById("webmestre").checked) {
			msgError += "Veuillez sélectionner un type de contact.\n";
		} else {
			if(document.getElementById("section_dep").checked) {
				if(document.getElementById("libSection").value == "") {
					if(document.getElementById("situationN").checked) {
						msgError += "Veuillez sélectionner une section.\n";
					} else {
						msgError += "Veuillez sélectionner votre section.\n";
					}
				}
			}
			if(document.getElementById("etablissement").checked) {
				if(document.getElementById("etab").value == "") {
					msgError += "Veuillez sélectionner un établissement de santé.\n";
				}
			}
		}
	}
	if(document.getElementById('civ').value == "") {
		msgError += "Votre civilité est obligatoire.\n";
	}
	if(document.getElementById('nom').value == "") {
		msgError += "Votre nom est obligatoire.\n";
	}
	if (document.getElementById("adresseMail").value == "") {
		msgError += "Votre courriel est obligatoire.\n";
	} else if (!isEmail(document.getElementById("adresseMail").value)) {
		msgError += "Le courriel est incorrect.\n";
	}
	if (document.getElementById("numTelFixe").value != "" && !isFrPhoneNumber(document.getElementById("numTelFixe").value)) {
		msgError += "Le numéro de téléphone est incorrect.\n";
	}
	if (document.getElementById("numTelPortable").value != "" && !isFrPhoneNumber(document.getElementById("numTelPortable").value)) {
		msgError += "Le numéro de portable est incorrect.\n";
	}
	if (document.getElementById("jour").value == "" || document.getElementById("moi").value == "" || document.getElementById("annee").value == ""){
		msgError += "Vous devez saisir votre date de naissance.\n";	
	} else if (!isDateNaiss(document.getElementById("jour").value + "/" + document.getElementById("moi").value + "/" + document.getElementById("annee").value)){
		msgError += "Votre date de naissance est incorrecte.\n";	
	}
	if (document.getElementById("objetDemande").value == "") {
		msgError += "Veuillez sélectionner l'objet du message.\n";
	}
	if (document.getElementById("messageDemande").value == "") {
		msgError += "Veuillez saisir un message.\n";
	}
/*	if (!document.getElementsByName("topDiffusion")[0].checked && !document.getElementsByName("topDiffusion")[1].checked) {
		msgError += "Veuillez sélectionner votre choix sur la conservation de votre courriel.\n";
	}*/
	
	if (msgError != "") {
		alert(msgError);
	} else {
		document.contact.action.value = 4;
		document.contact.submit();
	}
}

function funcInitialize(adherent) {
	if(!adherent) {
		document.getElementById('contact_info').style.display = "";
		document.getElementById('contact_info_detail').style.display = "";
		document.getElementById('submit').style.display = "none";
		document.getElementById('valider').style.display = "none";
		document.getElementById('suivant').style.display = "none";
		document.getElementById('button').style.display = "";
		document.getElementById('situationO').checked = "";
		document.getElementById('warning').style.display = "";
	} else {
		document.getElementById('contact_info_detail').style.display = "";
		document.getElementById('submit').style.display = "none";
		document.getElementById('valider').style.display = "none";
		document.getElementById('suivant').style.display = "none";
		document.getElementById('button').style.display = "";
		document.getElementById('warning').style.display = "";
	}
}

function funcIsNumMgen(value) {
	var reg = new RegExp("^(010||)[\\d]{7}$", "gi");
	
	if(reg.test(value)) {
		var res = true;
	} else {
		var res = false;
	}
	return res;
}

function checkFormContactAdherent() {
	var msgError = "";
			
	if (!document.getElementById("section_dep").checked && !document.getElementById("etablissement").checked && !document.getElementById("webmestre").checked) {
		msgError += "Veuillez sélectionner un type de contact.\n";
	} else {
		if(document.getElementById("section_dep").checked) {
			if(document.getElementById("libSection").value == "") {
				msgError += "Veuillez sélectionner votre section.\n";
			}
		}
		if(document.getElementById("etablissement").checked) {
			if(document.getElementById("etab").value == "") {
				msgError += "Veuillez sélectionner un établissement de santé.\n";
			}
		}
	}
	if(document.getElementById('civ').value == "") {
		msgError += "Votre civilité est obligatoire.\n";
	}
	if (document.getElementById("adresseMail").value == "") {
		msgError += "Votre courriel est obligatoire.\n";
	} else if (!isEmail(document.getElementById("adresseMail").value)) {
		msgError += "Le courriel est incorrect.\n";
	}
	if (document.getElementById("numTelFixe").value != "" && !isFrPhoneNumber(document.getElementById("numTelFixe").value)) {
		msgError += "Le numéro de téléphone est incorrect.\n";
	}
	if (document.getElementById("numTelPortable").value != "" && !isFrPhoneNumber(document.getElementById("numTelPortable").value)) {
		msgError += "Le numéro de portable est incorrect.\n";
	}
	if (document.getElementById("objetDemande").value == "") {
		msgError += "Veuillez sélectionner l'objet du message.\n";
	}
	if (document.getElementById("messageDemande").value == "") {
		msgError += "Veuillez saisir un message.\n";
	}
	
	if (msgError != "") {
		alert(msgError);
	} else {
		document.contact.action.value = 4;
		document.contact.submit();
	}
}
