// envoie formulaire Callback
function SendForm(){
    var formElem = $('contact').getElements();
	// on capitalize le nom de l'entité
	formElem[0].value = $F(formElem[0]).toUpperCase();

    var paramsFromForm = $('contact').serialize();

    $('entite').disabled='disabled';
	$('civilite').disabled='disabled';
	$('nom').disabled='disabled';
	$('prenom').disabled='disabled';
	$('tel').disabled='disabled';
	$('email').disabled='disabled';
	$('comm').disabled='disabled';
	
	var urlToContactCrm = contextPath+'/formcontactcrm.do';
	
	var ajax = new Ajax.Request(urlToContactCrm,{
		 		 	method: 'post',
					asynchronous: true,
					contentType:  'application/x-www-form-urlencoded',
					encoding:     'UTF-8',
                    parameters: paramsFromForm,
					onSuccess: function(){MailOK();}, 
					onFailure: function(){}
		 });
		 return false;
}

// envoie formulaire page de Contact

function SendFormContact(){
    var formElem = $('contactB').getElements();
	// on capitalize le nom de l'entité
	formElem[0].value= $F(formElem[0]).toUpperCase();
	// on recupère les différentes données de brochures en vérifiant que la demande brochure existe
	var services = $$('ul.brochure') ;
	if( services[0]){
		var donnees =''; 
		for (var i = 6; i<13; i++){
			if ($F(formElem[i])){
				donnees += '%20'+$F(formElem[i]);
			}
		}
		/*alert(donnees);*/
	}
    var paramsFromForm = $('contactB').serialize();
	paramsFromForm += "&checkbox="+ donnees;
	/*alert(paramsFromForm);*/
	var urlToContactCrm = contextPath+'/formcontactcrm.do';
	
	var ajax = new Ajax.Request(urlToContactCrm,{
		 		 	method: 'post',
					asynchronous: true,
					contentType:  'application/x-www-form-urlencoded',
					encoding:     'UTF-8',
                    parameters: paramsFromForm,
					onSuccess: function(){MailOkContact();}, 
					onFailure: function(){}
		 });
		 return false;
}	

function MailOK(){
	$('contactInputs').setStyle({'visibility':'hidden'});
	$('contactInputs').setStyle({'display':'none'});
	$('textOK').style.visibility = 'visible';
	$('textOK').style.display = 'block';
}
function MailOkContact(){
	var pageContact = $('contactB');
	var dimensionsDiv = $('gauche').getDimensions();
	$('gauche').setStyle({'position':'relative'});
	$('affichage').setStyle({'background':'none'});
	var lienHome = $$('ul#chemin a');
	
	var lienHomeComplet = lienHome[0].readAttribute('href');
	
	var expression = /^[A-Z]*\-([a-z]*)$/;
	var result = expression.exec(langue);
	var laLangue = result[1];

	$('gauche').insert({top: '<div id="contactOk"></div><div id="affichageContactOk"><p>'+getTextContact('demande',laLangue)+'</p><p>'+getTextContact('contact',laLangue)+'</p><a href="'+lienHomeComplet+'" class="mentions"><img src="/site_vitrine/images/croix.jpg" alt="'+getTextContact('revenir',laLangue)+'" /></a></div>'});
	$('contactOk').setStyle({'height':dimensionsDiv.height+'px'});	
}

function getTextContact(cle, langue){
	var cles = new Array('demande',
						 'contact',
						 'revenir');
	var fr = new Array('Vous avez demandé à être contacté par un de nos collaborateurs. Votre demande à bien été prise en compte et nous vous recontacterons au plus vite.',
					   'Nous vous remercions de l\'intérêt que vous portez à nos services.',
					   'Revenir sur la page');
	var es = new Array('Su demanda de contacto ha sido enviada con éxito, le agradecemos el interés que muestra por Finance active.',
					   'Un consultor le contactara para presentarle las soluciones y los servicios adaptados a sus necesidades.  El equipo Finance active.',
					   'Volver a la pagina');
	var it = new Array('Avete richiesto di essere contattati da uno dei nostri collaboratori.',
					   'La vostra domanda é stata registrata, sarete ricontattati al più presto.',
					   'Tornare alla pagina');
	var en = new Array('Your contact request has been sent. We thank you for your interest in Finance active. A consultant will contact you in order to acquaint you with the solutions and services adapted to your needs.',
					   'The team of Finance active.',
					   'Return to the page');
	var nl = new Array('Uw vraag werd goed verzonden, wij danken u voor het vertrouwen.',
					   'Een consulent zal binnenkort contact met u opnemen om onze verschillende diensten die het best beantwoorden aan uw behoeften voor te stellen.',
					   'Terug naar vorige pagina');
	var de = new Array('Ihre Kontaktanfrage wurde gespeichert. Wir danken Ihnen für Ihr Interesse an Finance active.',
					   'Wir melden uns kurzfristig bei Ihnen, um konkrete Ansatzpunke für eine Zusammenarbeit mit Finance mit Ihnen zu besprechen.',
					   'Zurück');
	
		var index = -1;
		for (var i = 0; i < cles.length; i++) {
			var cleCourante = cles[i];
			if (cleCourante == cle) {
				index = i;
			}
		}
		if (langue == "fr") {
			return fr[index];
		}
		if (langue == "es") {
			return es[index];
		}	
		if (langue == "it") {
			return it[index];
		}	
		if (langue == "en") {
			return en[index];
		}	
		if (langue == "nl") {
			return nl[index];
		}	
		if (langue == "de") {
			return de[index];
		}	
}

function isEmail(emailAddress){
	var emailAddressValue=emailAddress.value.toLowerCase();
	var countryTLDs=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$/;
	var gTLDs=/^(aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org)$/;
	var basicAddress=/^(.+)@(.+)$/;
	var specialChars='\\(\\)><@,;:\\\\\\\"\\.\\[\\]';
	var validChars='\[^\\s'+specialChars+'\]';
	var validCharset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\'-_.';
	var quotedUser='(\"[^\"]*\")';
	var atom=validChars+'+';
	var word='('+atom+'|'+quotedUser+')';
	var validUser=new RegExp('^'+word+'(\.'+word+')*$');
	var symDomain=new RegExp('^'+atom+'(\.'+atom+')*$');
	var matchArray=emailAddressValue.match(basicAddress);
	
	if(emailAddress.value==''||emailAddress==null){
		return true;
	}
	if(matchArray==null){
		alert(texteErreur('syntaxe', langue));
		emailAddress.focus();
		return false;
	}else{
		var user=matchArray[1];
		var domain=matchArray[2];
		for(i=0;i<user.length;i++){
		if(validCharset.indexOf(user.charAt(i))==-1){
		alert(texteErreur('caractereAvant', langue));
		emailAddress.focus();
		return false;
	}
}
	for(i=0;i<domain.length;i++){
		if(validCharset.indexOf(domain.charAt(i))==-1){
		alert(texteErreur('caractereApres', langue));
		emailAddress.focus();
		return false;
		}
	}
	if(user.match(validUser)==null){
		alert(texteErreur('emailAvant', langue));
		emailAddress.focus();
		return false;
	}
	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){
			alert(texteErreur('emailApres', langue));
			emailAddress.focus();
			return false;
		}
	}
		if((domArr[domArr.length-1].length==2)&&(domArr[domArr.length-1].search(countryTLDs)==-1)){
			alert(texteErreur('domaine', langue));
			emailAddress.focus();
			return false;
		}
		if((domArr[domArr.length-1].length>2)&&(domArr[domArr.length-1].search(gTLDs)==-1)){
			alert(texteErreur('domaine', langue));
			emailAddress.focus();
			return false;
		}
		if((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>6)){
			alert(texteErreur('domaine', langue));
			emailAddress.focus();
			return false;
		}
		if(len<2){
			alert(texteErreur('email', langue));
			emailAddress.focus();
			return false;
		}
	}
	return true;
}

function mandatoryDropDown(dropDown,fieldName){
	if(dropDown.options[0].selected){
		alert(texteErreur('selectionner', langue)+' '+fieldName+'.');
		dropDown.focus();
		return false;
	}
		return true;
}
String.prototype.trim = function() { return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");	}

function mandatoryText(input,fieldName){
	if(input.value.trim()==''||input==null){
	alert(texteErreur('selectionner', langue)+' '+fieldName+'.');
	input.focus();
	return false;
	} else {
	return true;
	}
}

function validFormContact(){
	if(!mandatoryText($('entite'), texteChamps('entite', langue))) return;
	if(!mandatoryDropDown(document.getElementById('civilite'), texteChamps('civilite', langue))) return;
	if(!mandatoryText(document.getElementById('nom'), texteChamps('nom', langue))) return;
	if(!mandatoryText(document.getElementById('prenom'), texteChamps('prenom', langue))) return;
	if(!mandatoryText(document.getElementById('email'), texteChamps('email', langue))) return;
	if(!isEmail(document.getElementById('email'))) return;
	SendForm();
}

function validFormContactGlobal(){
	if(!mandatoryText($('entiteB'), texteChamps('entite', langue))) return;
	if(!mandatoryDropDown($('civiliteB'), texteChamps('civilite', langue))) return;
	if(!mandatoryText($('nomB'), texteChamps('nom', langue))) return;
	if(!mandatoryText($('prenomB'), texteChamps('prenom', langue))) return;
	if(!mandatoryText($('emailB'), texteChamps('email', langue))) return;
	if(!isEmail($('emailB'))) return;
	SendFormContact();
}

function getCurrentDate() {
	var madate = new Date();
	var jour = madate.getDate();
	var mois = madate.getMonth()+1;
	var annee = madate.getFullYear();
	var heures = madate.getHours();
	var minutes = madate.getMinutes();
	var secondes = madate.getSeconds();
	return jour+"/"+mois+"/"+annee;
}

function texteErreur(cle, langue) {	
	var expression = /^[A-Z]*\-([a-z]*)$/;
	var result = expression.exec(langue);
	var langue = result[1];
	
	var cles = new Array('champs',
						 'selectionner',
						 'domaine',
						 'email',
						 'emailApres',
						 'emailAvant',
						 'caractereApres',
						 'caractereAvant',
						 'syntaxe');
	var fr = new Array('Veuillez renseigner le champs :',
						 'Veuillez sélectionner votre',
						 'L\'adresse Email semble incorrecte',
						 'L\'adresse Email semble incorrecte, veuillez vérifier le suffixe du domaine.',
						 'L\'adresse Email semble incorrecte, veuillez vérifier la partie après l\'arobase.',
						 'L\'adresse Email semble incorrecte,  veuillez vérifier la partie avant l\'arobase.',
						 'L\'adresse Email contient des caractères invalides, veuillez vérifier la partie après l\'arobase.',
						 'L\'adresse Email contient des caractères invalides, veuillez vérifier la partie avant l\'arobase.',
						 'L\'adresse Email semble incorrecte,  veuillez vérifier la syntaxe.');
	var nl = new Array('Gelieve volgende velden in te vullen :',
						 'Gelieve volgende elementen uit te kiezen',
						 'Het emailadres is ongeldig.',
						 'Het emailadres is ongeldig, gelieve de domeinnaam te controleren.',
						 'Het emailadres is ongeldig, gelieve het deel na het apestaartje te controleren.',
						 'Het emailadres is ongeldig, gelieve het deel voor het apestaartje te controleren.',
						 'Het emailadres bevat ongeldige tekens, gelieve het deel na het apestaartje te controleren.',
						 'Het emailadres bevat ongeldige tekens, gelieve het deel voor het apestaartje te controleren.',
						 'Het emailadres is ongeldig, controleer de spellingsfouten.');
	var de = new Array('Bitte füllen Sie das Feld aus :',
						 'Wählen Sie Bitte Ihre ',
						 'Die E-Mail Adresse ist ungültig.',
						 'Die E-Mail Adresse ist ungültig, prüfen Sie bitte den letzten Teil der Adresse.',
						 'Die E-Mail Adresse ist ungültig, prüfen Sie bitte den Teil nach dem „@“.',
						 'Die E-Mail Adresse ist ungültig, prüfen Sie bitte den Teil vor dem „@“.',
						 'Die E-Mail Adresse enthält ungültige Buchstaben, prüfen Sie bitte den Teil nach dem „@“.',
						 'Die E-Mail Adresse enthält ungültige Buchstaben, prüfen Sie bitte den Teil vor dem „@“.',
						 'Die E-Mail Adresse ist ungültig, prüfen Sie Bitte die Syntax.');
	var it = new Array('prega di riempire i campi seguenti :',
						 'Si prega di selezionare il vostro',
						 'L\'indirizzo email non corretto.',
						 'L\'indirizzo email non corretto, si prega di verifcare il dominio.',
						 'L\'indirizzo email non corretto, si prega di verifcare la parte dopo la chiocciola.',
						 'L\'indirizzo email non corretto, si prega di verifcare la parte antecedente la chiocciola.',
						 'L\'indirizzo email contiene dei caratteri non validi, si prega di verifcare la parte dopo la chiocciola.',
						 'L\'indirizzo email contiene dei caratteri non validi, si prega di verifcare la parte antecedente la chiocciola.',
						 'L\'indirizzo email non corretto, si prega di verifcare la sintassi.');
	var en = new Array('Please fill in the blanks :',
						 'Please select your',
						 'The e-mail address appears to be incorrect.',
						 'The e-mail address appears to be incorrect, please verify the domain name.',
						 'The e-mail address appears to be incorrect, please verify the entry after the @ sign.',
						 'The e-mail address appears to be incorrect, please verify the entry before the @ sign.',
						 'The e-mail address contains invalid characters, please verify the entry after the @ sign.',
						 'The e-mail address contains invalid characters, please verify the entry before the @ sign.',
						 'The e-mail address appears to be incorrect, please verify the spelling.');
	var es = new Array('Por favor, rellene el campo :',
						 'Por favor Selecciona su',
						 'La dirección Email parece incorrecta.',
						 'La dirección Email parece incorrecta. Por favor, verifica la validez del dominio (.es, .com, org...)',
						 'La dirección Email parece incorrecta. Por favor, verifica la parte después de la arroba.',
						 'La dirección Email parece incorrecta. Por favor, verifica la parte antes de la arroba.',
						 'La dirección Email contiene caracteres erróneos. Por favor, verifica la parte después de la arroba',
						 'La dirección Email contiene caracteres erróneos. Por favor, verifica la parte antes de la arroba',
						 'La dirección Email parece incorrecta. por favor, verifica la síntesis.');
		var index = -1;
		for (var i = 0; i < cles.length; i++) {
			var cleCourante = cles[i];
			if (cleCourante == cle) {
				index = i;
			}
		}
		if (langue == "fr") {
			return fr[index];
		}
		if (langue == "es") {
			return es[index];
		}	
		if (langue == "it") {
			return it[index];
		}	
		if (langue == "en") {
			return en[index];
		}	
		if (langue == "nl") {
			return nl[index];
		}	
		if (langue == "de") {
			return de[index];
		}
}

function texteChamps(cle, langue) {	
	var expression = /^[A-Z]*\-([a-z]*)$/;
	var result = expression.exec(langue);
	var langue = result[1];
	
	var cles = new Array('entite',
						 'civilite',
						 'nom',
						 'prenom',
						 'email',
						 'tel',
						 'commentaires');
	var fr = new Array('Entité',
						 'Civilité',
						 'Nom',
						 'Prénom',
						 'E-mail',
						 'Tel',
						 'Commentaires');
	var nl = new Array('Entiteit',
						 'Burgerschap',
						 'Naam',
						 'Voornaam',
						 'E-mail',
						 'Tel',
						 'Voornaam');
	var de = new Array('Person',
						 'Anrede',
						 'Vorname',
						 'Name',
						 'E-Mail',
						 'Tel',
						 'Kommentare');
	var it = new Array('Ente',
						 'Generalità',
						 'Cognome',
						 'Nome',
						 'E-mail',
						 'Tel',
						 'Commenti');
	var es = new Array('Entidad',
						 'Estado civil',
						 'Apellidos',
						 'Nombre',
						 'E-mail',
						 'Tel',
						 'Comentarios');
	var en = new Array('Entity',
						 'Title',
						 'Last name',
						 'First name',
						 'E-mail',
						 'Tel',
						 'Comments');
		var index = -1;
		for (var i = 0; i < cles.length; i++) {
			var cleCourante = cles[i];
			if (cleCourante == cle) {
				index = i;
			}
		}
		if (langue == "fr") {
			return fr[index];
		}
		if (langue == "es") {
			return es[index];
		}	
		if (langue == "it") {
			return it[index];
		}	
		if (langue == "en") {
			return en[index];
		}	
		if (langue == "nl") {
			return nl[index];
		}	
		if (langue == "de") {
			return de[index];
		}
}
