// JavaScript Document
var compteurActualisation = 0;
var url='modules/contact/send.php';

var active_nom = 1;
	var obligatoire_nom = 1;
	var controlNumber_nom = 0;
	var controlMail_nom = 0;
	var type_nom = 'text';

var active_prenom = 1;
	var obligatoire_prenom = 1;
	var controlNumber_prenom = 0;
	var controlMail_prenom = 0;
	var type_prenom = 'text';

var active_telephone = 1;
	var obligatoire_telephone = 1;
	var controlNumber_telephone = 1;
	var controlMail_telephone = 0;
	var type_telephone = 'text';

var active_telFixe = 0;
	var obligatoire_telFixe = 1;
	var controlNumber_telFixe = 1;
	var controlMail_telFixe = 0;
	var type_telFixe = 'text';

var active_telPortable = 0;
	var obligatoire_telPortable = 1;
	var controlNumber_telPortable = 1;
	var controlMail_telPortable = 0;
	var type_telPortable = 'text';

var active_fax = 0;
	var obligatoire_fax = 0;
	var controlNumber_fax = 1;
	var controlMail_fax = 0;
	var type_fax = 'text';

var active_email = 1;
	var obligatoire_email = 1;
	var controlNumber_email = 0;
	var controlMail_email = 1;
	var type_email = 'text';

var active_sujet = 1;
	var obligatoire_sujet = 1;
	var controlNumber_sujet = 0;
	var controlMail_sujet = 0;
	var type_sujet = 'text';
	
var active_adresse_cp_ville = 0;
	var obligatoire_adresse = 1;
	var controlNumber_adresse = 0;
	var controlMail_adresse = 0;
	var type_adresse = 'text';
	
	var obligatoire_cp = 1;
	var controlNumber_cp = 1;
	var controlMail_cp = 0;
	var type_cp = 'text';
	
	var obligatoire_ville = 1;
	var controlNumber_ville = 0;
	var controlMail_ville = 0;
	var type_ville = 'text';	

var tabChamp = new Array();
tabChamp[0] = new Array('nom', 'Nom', active_nom, obligatoire_nom, controlNumber_nom, controlMail_nom, type_nom);
tabChamp[1] = new Array('prenom', 'Prénom', active_prenom, obligatoire_prenom, controlNumber_prenom, controlMail_prenom, type_prenom);
tabChamp[2] = new Array('telephone', 'Téléphone', active_telephone, obligatoire_telephone, controlNumber_telephone, controlMail_telephone, type_telephone);
tabChamp[3] = new Array('telFixe', 'Tel. fixe', active_telFixe, obligatoire_telFixe, controlNumber_telFixe, controlMail_telFixe, type_telFixe);
tabChamp[4] = new Array('telPortable', 'Tel. portable', active_telPortable, obligatoire_telPortable, controlNumber_telPortable, controlMail_telPortable, type_telPortable);
tabChamp[5] = new Array('fax', 'Fax', active_fax, obligatoire_fax, controlNumber_fax, controlMail_fax, type_fax);
tabChamp[6] = new Array('email', 'E-mail', active_email, obligatoire_email, controlNumber_email, controlMail_email, type_email);
tabChamp[7] = new Array('sujet', 'Objet', active_sujet, obligatoire_sujet, controlNumber_sujet, controlMail_sujet, type_sujet);
tabChamp[8] = new Array('adresse', 'Adresse', active_adresse_cp_ville, obligatoire_adresse, controlNumber_adresse, controlMail_adresse, type_adresse);
tabChamp[9] = new Array('cp', 'CP', active_adresse_cp_ville, obligatoire_cp, controlNumber_cp, controlMail_cp, type_cp);
tabChamp[10] = new Array('ville', 'Ville', active_adresse_cp_ville, obligatoire_ville, controlNumber_ville, controlMail_ville, type_ville);


function createForm(dest) {
	var MyForm = document.createElement('form');
	MyForm.setAttribute('class','MyForm');
	MyForm.setAttribute('id','MyForm');
	MyForm.setAttribute('action',url);
	MyForm.setAttribute('method','POST');
	
	var MyDest = document.createElement('input');
	MyDest.setAttribute('id', 'MyInput_dest');
	MyDest.setAttribute('name', 'dest');
	MyDest.setAttribute('type', 'hidden');
	MyDest.setAttribute('value', dest);
	
	var MyContact = document.createElement('div');
	MyContact.setAttribute('class','MyContact');
	MyContact.setAttribute('id','MyContact');
	
	var MyMessage = document.createElement('div');
	MyMessage.setAttribute('class','MyMessage');
	MyMessage.setAttribute('id','MyMessage');
	var MyTextArea = document.createElement('textarea');
	MyTextArea.setAttribute('id','MyTextArea');
	MyTextArea.innerHTML = 'écrivez votre message ici ...';
	MyTextArea.setAttribute('onfocus','select();');
	MyMessage.appendChild(MyTextArea);
	
	var br = document.createElement('br');
	br.setAttribute('clear', 'all');
	
	var heightTextArea = 0;
	for(var i=0; i<tabChamp.length; i++) {
		if(tabChamp[i][2] == 1) {
			heightTextArea = heightTextArea+29;
			var div = document.createElement('div');
			div.setAttribute('class', 'MyChamp');
			div.setAttribute('id', 'MyChamp_'+tabChamp[i][0])
			
			var span = document.createElement('span');
			span.setAttribute('class', 'MyTag');
			span.setAttribute('id', 'MyTag_'+tabChamp[i][0]);
			span.innerHTML = tabChamp[i][1];
			
			var input = document.createElement('input');
			input.setAttribute('class', 'MyInput');
			input.setAttribute('id', 'MyInput_'+tabChamp[i][0]);
			input.setAttribute('name', 'MyInput_'+tabChamp[i][0]);
			input.setAttribute('type', tabChamp[i][6]);
			
			div.appendChild(span);
			div.appendChild(input);
			MyContact.appendChild(div);
			MyContact.appendChild(br);
		}
	}
	heightTextArea = heightTextArea-20;
	heightTextArea = heightTextArea+'px';
	MyTextArea.setAttribute('style','height: '+heightTextArea);
	MyForm.appendChild(MyDest);
	MyForm.appendChild(MyContact);
	MyForm.appendChild(MyMessage);
	MyForm.appendChild(br);
		
	var validButton = document.createElement('input');
	validButton.setAttribute('class','MyButton');
	validButton.setAttribute('type','button');
	validButton.setAttribute('onclick','validateForm();');
	validButton.setAttribute('value','Envoyer');
	MyForm.appendChild(validButton);
	MyForm.appendChild(br);
	document.getElementById('formulaire_de_contact').appendChild(MyForm);
}

function controlSaisie(saisieStr) {
	if(saisieStr != '') { return true; }
	else { return false; }
}

function controlNumber(number) {
	if(isNaN(number)) { return false; }
	else{ return true; }
}

function controlEmail(emailStr) {
	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|­pro|museum|fr)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) { return false; }
	var user = matchArray[1];
	var domain = matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i) > 127) { 
			return false; 
		}
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127) {
			return false;
		}
	}
	if (user.match(userPat) == null) {
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1; i<=4; i++) {
			if (IPArray[i] > 255) { 
				return false;
			}
		}
		return true;
	}
	var atomPat = new RegExp("^" + atom + "$");
	var domArr = domain.split(".");
	var len = domArr.length;
	for (i=0; i<len; i++) {
		if (domArr[i].search(atomPat) == -1) {
			return false;
		}
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
		return false;
	}
	if (len < 2) {
		return false;
	}
	return true;
}

function validateForm() {
	var MyForm = document.getElementById('MyForm');
	var MyTextArea = document.getElementById('MyTextArea');
	var messageErreur = 'UNE OU PLUSIEURS ERREUR(S) DÉCELÉE(S) !\n';
	var flagErreur = 0;
	
	for(var i=0; i<tabChamp.length; i++) {
		flagErreur = 0;
		if(tabChamp[i][2] == 1) {
			var champEnCour = document.getElementById('MyInput_'+tabChamp[i][0]);
			if(tabChamp[i][3] == 1) {
				if(!controlSaisie(champEnCour.value)) {
					flagErreur = 1;
					messageErreur += '\n\t - le champs '+tabChamp[i][1]+' est obligatoire';
				}
				if((tabChamp[i][4] == 1) && (flagErreur == 0) ) {
					if(!controlNumber(champEnCour.value)) {
						flagErreur = 1;
						messageErreur += '\n\t - le champs '+tabChamp[i][1]+' doit être un nombre';
					}
				}
				if(tabChamp[i][5] == 1 && (flagErreur == 0)) {
					if(!controlEmail(champEnCour.value)) {
						flagErreur = 1;
						messageErreur += '\n\t - le champs '+tabChamp[i][1]+' est invalide';
					}
				}
			}	
		}
	}
	
	if(MyTextArea.value == '') {
		messageErreur += '\n\t - le message est obligatoire';
	}
	else if(MyTextArea.value == 'écrivez votre message ici ...') {
		messageErreur += '\n\t - le message est invalide';
	}
	
	if(messageErreur != 'UNE OU PLUSIEURS ERREUR(S) DÉCELÉE(S) !\n') {
		alert(messageErreur);
	}
	else {
		//MyForm.submit();
		var tabChampUtilise = new Array();
		for(var i=0; i<tabChamp.length; i++) {
			if(tabChamp[i][2] == 1) {
				tabChampUtilise.push(new Array(tabChamp[i],document.getElementById('MyInput_'+tabChamp[i][0]).value));
			}
		}
		tabChampUtilise.push(new Array('MyTextArea','Message',1,1,0,0,'textArea',MyTextArea.value));
		data = { 'tab[]' : tabChampUtilise, 'dest' : document.getElementById('MyInput_dest').value};
		updateId('formulaire_de_contact',url,data,'images/loader/loader.gif');
	}
}

var idPrincipal = 'main';
function updateId(varId,varUrl,varData,ImgSrc) {
	var contentLoader = '<div id="GIFloader" style="width: 100%;  height: 45px; text-align: center;"><img src="'+ImgSrc+'" alt="chargement" /></div>';
	jQuery.ajax({
		url: varUrl,
		cache: false,
		data : varData,
		send: jQuery('#'+varId).html(contentLoader),
		error :function(msg){
			updateId(varId,'erreur.html',varData,ImgSrc)
			},
		success: function(html){
			var hauteurVarId = jQuery('#'+varId).height();
			//alert('hauteur de base: '+hauteurVarId);
			jQuery('#'+varId).html('');

			var newDiv = document.createElement('div');
			newDiv.setAttribute('id','newDiv'+compteurActualisation);
			newDiv.setAttribute('style','position: relative; opacity: 100; filter: alpha(opacity=1); display: block;');
			document.getElementById(varId).appendChild(newDiv);
			jQuery('#newDiv'+compteurActualisation).html(html);
			jQuery('#'+varId).height(hauteurVarId);
			var hauteurNewDiv = jQuery('#newDiv'+compteurActualisation).height();
			//alert('nouvelle hauteur: '+hauteurNewDiv);
			if(varId != idPrincipal) {
				jQuery('#'+idPrincipal).animate({
					opacity: "1",
					height: hauteurNewDiv
					}, 500 );
			}
			else {
				jQuery('#'+varId).animate({
					opacity: "1",
					height: hauteurNewDiv
					}, 500 );
			}
			compteurActualisation ++;
			}
		});
	}
