var dynamicListContent = [{"fieldId":"fld_Country","type":"simple","formParentFieldId":"","data":[{"code":"472","name":"AFGHANISTAN"},{"code":"329","name":"SOUTH AFRICA"},{"code":"324","name":"ALBANIA"},{"code":"322","name":"ALGERIA"},{"code":"8","name":"GERMANY"},{"code":"321","name":"ANDORRA"},{"code":"327","name":"ANGOLA"},{"code":"323","name":"ANGUILLA"},{"code":"476","name":"ANTARCTIC"},{"code":"320","name":"ANTIGUA AND BARBUDA"},{"code":"326","name":"NETHERLANDS WEST INDIES"},{"code":"78","name":"KINGDOM OF SAUDI ARABIA"},{"code":"50","name":"ARGENTINA"},{"code":"325","name":"ARMENIA"},{"code":"330","name":"ARUBA"},{"code":"36","name":"AUSTRALIA"},{"code":"47","name":"AUSTRIA"},{"code":"53","name":"AZERBAIJAN"},{"code":"51","name":"BAHAMAS"},{"code":"98","name":"KINGDOM OF BAHRAIN"},{"code":"35","name":"BANGLADESH"},{"code":"331","name":"BARBADOS"},{"code":"3","name":"BELGIUM"},{"code":"339","name":"BELIZE"},{"code":"80","name":"BENIN"},{"code":"334","name":"BERMUDA"},{"code":"336","name":"BHUTAN"},{"code":"48","name":"BYELORUSSIA"},{"code":"401","name":"BURMA"},{"code":"335","name":"BOLIVIA"},{"code":"52","name":"BOSNIA & HERZEGOVINA"},{"code":"338","name":"BOTSWANA"},{"code":"49","name":"BRAZIL"},{"code":"147","name":"BRUNEI"},{"code":"54","name":"BULGARIA"},{"code":"332","name":"BURKINA FASO"},{"code":"333","name":"BURUNDI"},{"code":"55","name":"CAMBODIA"},{"code":"345","name":"CAMEROON"},{"code":"6","name":"CANADA"},{"code":"349","name":"CAPE VERDE"},{"code":"56","name":"CHILE"},{"code":"25","name":"CHINA"},{"code":"148","name":"CYPRUS"},{"code":"57","name":"COLOMBIA"},{"code":"343","name":"CONGO"},{"code":"387","name":"NORTH KOREA"},{"code":"84","name":"SOUTH KOREA"},{"code":"346","name":"COSTA RICA"},{"code":"30","name":"COTE D'IVOIRE"},{"code":"10","name":"CROATIA"},{"code":"348","name":"CUBA"},{"code":"491","name":"DENMARK"},{"code":"352","name":"DJIBOUTI"},{"code":"353","name":"DOMINICA"},{"code":"59","name":"EGYPT"},{"code":"89","name":"UNITED ARAB EMIRATES"},{"code":"355","name":"ECUADOR"},{"code":"357","name":"ERITREA"},{"code":"19","name":"SPAIN"},{"code":"60","name":"ESTONIA"},{"code":"5","name":"USA"},{"code":"358","name":"ETHIOPIA"},{"code":"359","name":"FIDJI"},{"code":"16","name":"FINLAND"},{"code":"2","name":"FRANCE"},{"code":"363","name":"GABON"},{"code":"367","name":"GAMBIA"},{"code":"364","name":"GEORGIA"},{"code":"371","name":"SOUTH GEORGIA /SOUTH SANDWICH ISLANDS"},{"code":"24","name":"GHANA"},{"code":"61","name":"GIBRALTAR"},{"code":"62","name":"GREECE"},{"code":"475","name":"GRENADA"},{"code":"366","name":"GREENLAND"},{"code":"369","name":"GUADELOUPE"},{"code":"373","name":"GUAM"},{"code":"372","name":"GUATEMALA"},{"code":"368","name":"GUINEA"},{"code":"370","name":"EQUATORIAL GUINEA"},{"code":"374","name":"GUINEA-BISSAU"},{"code":"375","name":"GUYANA"},{"code":"365","name":"FRENCH GUIANA"},{"code":"378","name":"HAITI"},{"code":"377","name":"HONDURAS"},{"code":"63","name":"HONG-KONG"},{"code":"64","name":"HUNGARY"},{"code":"337","name":"ILE BOUVET"},{"code":"350","name":"THE CHRISTMAS ISLANDS"},{"code":"429","name":"REUNION"},{"code":"408","name":"MAURITIUS ISLAND"},{"code":"379","name":"CHANNEL ISLANDS"},{"code":"388","name":"CAYMAN ISLANDS"},{"code":"340","name":"THE KEELING ISLANDS"},{"code":"344","name":"THE COOK ISLANDS"},{"code":"360","name":"FALKLAND ISLANDS"},{"code":"362","name":"THE FAROE ISLANDS"},{"code":"376","name":"HEARD AND MCDONALD ISLANDS"},{"code":"404","name":"NORTHERN MARIANA ISLANDS"},{"code":"398","name":"MARSHALL ISLANDS"},{"code":"460","name":"UNITED STATES MINOR OUTLYING ISLANDS"},{"code":"414","name":"NORFOLK ISLANDS"},{"code":"423","name":"PITCAIRN ISLANDS"},{"code":"431","name":"SOLOMON ISLANDS"},{"code":"448","name":"TURKS AND CAICOS ISLANDS"},{"code":"465","name":"VIRGIN ISLANDS (US)"},{"code":"464","name":"VIRGIN ISLANDS (UK)"},{"code":"32","name":"INDIA"},{"code":"66","name":"INDONESIA"},{"code":"381","name":"IRAK"},{"code":"94","name":"IRAN"},{"code":"67","name":"IRELAND"},{"code":"65","name":"ICELAND"},{"code":"26","name":"ISRAEL"},{"code":"11","name":"ITALY"},{"code":"382","name":"JAMAICA"},{"code":"68","name":"JAPAN"},{"code":"69","name":"JORDAN"},{"code":"389","name":"KAZAKHSTAN"},{"code":"70","name":"KENYA"},{"code":"383","name":"KIRGHIZISTAN"},{"code":"384","name":"KIRIBATI"},{"code":"71","name":"KUWAIT"},{"code":"390","name":"LAOS"},{"code":"385","name":"COMOROS"},{"code":"395","name":"LESOTHO"},{"code":"96","name":"LATVIA"},{"code":"391","name":"LEBANON"},{"code":"394","name":"LIBERIA"},{"code":"396","name":"LIBYA"},{"code":"393","name":"LIECHTENSTEIN"},{"code":"97","name":"LITHUANIA"},{"code":"18","name":"LUXEMBOURG"},{"code":"403","name":"MACAO"},{"code":"399","name":"MACEDONIA"},{"code":"72","name":"MADAGASCAR"},{"code":"410","name":"MALAWI"},{"code":"23","name":"MALAYSIA"},{"code":"409","name":"MALDIVE ISLANDS"},{"code":"400","name":"MALI"},{"code":"73","name":"MALTA"},{"code":"46","name":"MOROCCO"},{"code":"405","name":"MARTINIQUE"},{"code":"406","name":"MAURITANIA"},{"code":"469","name":"MAYOTTE"},{"code":"74","name":"MEXICO"},{"code":"361","name":"MICRONESIA"},{"code":"397","name":"MOLDAVIA"},{"code":"37","name":"MONACO"},{"code":"402","name":"MONGOLIA"},{"code":"93","name":"MONTENEGRO"},{"code":"407","name":"MONTSERRAT"},{"code":"411","name":"MOZAMBIQUE"},{"code":"473","name":"NAMIBIA"},{"code":"417","name":"NAURU"},{"code":"75","name":"NEW ZEALAND"},{"code":"416","name":"NEPAL"},{"code":"415","name":"NICARAGUA"},{"code":"413","name":"NIGER"},{"code":"29","name":"NIGERIA"},{"code":"418","name":"NIUE"},{"code":"9","name":"NORWAY"},{"code":"412","name":"NEW CALEDONIA"},{"code":"79","name":"OMAN"},{"code":"459","name":"OUGANDA"},{"code":"461","name":"OUZBEKISTAN"},{"code":"34","name":"PAKISTAN"},{"code":"426","name":"BELAU"},{"code":"419","name":"PANAMA"},{"code":"421","name":"PAPUA NEW GUINEA"},{"code":"427","name":"PARAGUAY"},{"code":"12","name":"THE NETHERLANDS"},{"code":"76","name":"PERU"},{"code":"81","name":"REPUBLIC OF THE PHILIPPINES"},{"code":"14","name":"POLAND"},{"code":"420","name":"FRENCH POLYNESIA"},{"code":"424","name":"PORTO RICO"},{"code":"15","name":"PORTUGAL"},{"code":"77","name":"QATAR"},{"code":"342","name":"CENTRAL AFRICAN REPUBLIC"},{"code":"428","name":"CENTRAL AFRICAN REPUBLIC"},{"code":"341","name":"THE REPUBLIC OF THE CONGO"},{"code":"354","name":"DOMINICAN REPUBLIC"},{"code":"95","name":"SERBIA"},{"code":"351","name":"CZECH REPUBLIC"},{"code":"13","name":"ROMANIA"},{"code":"7","name":"UNITED KINGDOM"},{"code":"489","name":"RUSSIA"},{"code":"430","name":"RWANDA"},{"code":"356","name":"WESTERN SAHARA"},{"code":"443","name":"SAINT BARTHELEMY"},{"code":"439","name":"SAINT MARTIN"},{"code":"463","name":"SAINT VINCENT & GRENADINES"},{"code":"434","name":"ST HELENA"},{"code":"392","name":"ST. LUCIA"},{"code":"386","name":"SAINT-KITTS-AND-NEVIS"},{"code":"444","name":"SALVADOR"},{"code":"468","name":"SAMOA"},{"code":"28","name":"SOUTH AFRICA"},{"code":"438","name":"SAN MARINO"},{"code":"442","name":"SAO TOME"},{"code":"83","name":"SENEGAL"},{"code":"347","name":"SERBIA AND MONTENEGRO"},{"code":"432","name":"SEYCHELLES"},{"code":"437","name":"SIERRA LEONE"},{"code":"31","name":"SINGAPORE"},{"code":"58","name":"CZECH REPUBLIC"},{"code":"435","name":"SLOVENIA"},{"code":"440","name":"SOMALIA"},{"code":"433","name":"SOUDAN"},{"code":"85","name":"SRI LANKA"},{"code":"422","name":"ST. PIERRE ET MIQUELON"},{"code":"86","name":"SWEDEN"},{"code":"17","name":"SWITZERLAND"},{"code":"441","name":"SURINAME"},{"code":"436","name":"SVALBARD AND JAN MAYEN"},{"code":"446","name":"SWAZILAND"},{"code":"445","name":"SYRIA"},{"code":"451","name":"TADJIKISTAN"},{"code":"447","name":"TAHITI"},{"code":"87","name":"TAIWAN"},{"code":"458","name":"TANZANIA"},{"code":"449","name":"TCHAD"},{"code":"380","name":"TERR. BRITANNIQUE OCEAN INDIEN"},{"code":"474","name":"FRENCH SOUTHERN & ANTARCTIC LANDS"},{"code":"425","name":"PALESTINE"},{"code":"88","name":"THAILAND"},{"code":"453","name":"EAST TIMOR"},{"code":"450","name":"TOGO"},{"code":"452","name":"TOKELAU"},{"code":"455","name":"TONGA"},{"code":"456","name":"TRINIDAD AND TOBAGO"},{"code":"149","name":"TUNISIA"},{"code":"454","name":"TURKMENISTAN"},{"code":"27","name":"TURKEY"},{"code":"457","name":"TUVALU"},{"code":"90","name":"UKRAINE"},{"code":"91","name":"URUGUAY"},{"code":"466","name":"VANUATU"},{"code":"462","name":"VATICAN"},{"code":"33","name":"VENEZUELA"},{"code":"92","name":"VIETNAM"},{"code":"467","name":"WALLIS AND FUTUNA"},{"code":"82","name":"REPUBLIC OF YEMEN"},{"code":"470","name":"ZAMBIA"},{"code":"471","name":"ZIMBABWE"}]},{"fieldId":"fld_Category","type":"simple","formParentFieldId":"","data":[{"code":"21","name":"Pre-sales"},{"code":"35","name":"Other"},{"code":"39","name":"Partner"},{"code":"23","name":"Post-sales"},{"code":"22","name":"Support"}]},{"fieldId":"fld_SubCategory","type":"simple","formParentFieldId":"fld_Category","data":[{"code":"32","parentValue":"23","name":"Billing"},{"code":"24","parentValue":"21","name":"Booking"},{"code":"48","parentValue":"35","name":"Call"},{"code":"29","parentValue":"22","name":"Cancellation"},{"code":"33","parentValue":"23","name":"Claims"},{"code":"26","parentValue":"35","name":"Communication Client"},{"code":"42","parentValue":"39","name":"Communication Partner"},{"code":"56","parentValue":"22","name":"Coronavirus"},{"code":"41","parentValue":"39","name":"External"},{"code":"34","parentValue":"23","name":"Feedback"},{"code":"27","parentValue":"21","name":"General information"},{"code":"54","parentValue":"21","name":"Groupon"},{"code":"53","parentValue":"21","name":"Idealista"},{"code":"40","parentValue":"39","name":"Internal"},{"code":"43","parentValue":"21","name":"Leboncoin"},{"code":"28","parentValue":"22","name":"Modification"},{"code":"57","parentValue":"21","name":"MonieurParking"},{"code":"30","parentValue":"22","name":"On Going Booking"},{"code":"37","parentValue":"35","name":"Other"},{"code":"36","parentValue":"35","name":"Partnerships"},{"code":"25","parentValue":"21","name":"Subscriptions"},{"code":"38","parentValue":"22","name":"Subscriptions"},{"code":"55","parentValue":"35","name":"Unsubscribe"}]},{"fieldId":"fld_WebFormProducts","type":"multiple","formParentFieldId":"","data":[]},{"fieldId":"fld_Origin","type":"simple","formParentFieldId":"","data":[]},{"fieldId":"fld_HeadCounts","type":"simple","formParentFieldId":"","data":[{"code":"","name":""},{"code":"","name":""},{"code":"","name":""},{"code":"","name":""},{"code":"","name":""}]},{"fieldId":"fld_Turnover","type":"simple","formParentFieldId":"","data":[{"code":"De 0 à 1 M€","name":"De 0 à 1 M€"},{"code":"De 1 à 5 M€","name":"De 1 à 5 M€"},{"code":"De 5 à 10 M€","name":"De 5 à 10 M€"},{"code":"De 10 à 50 M€","name":"De 10 à 50 M€"},{"code":"De 100 à 500 M€","name":"De 100 à 500 M€"},{"code":"De 500 à 1000 M€","name":"De 500 à 1000 M€"},{"code":"De 1000 à 10000 M€","name":"De 1000 à 10000 M€"}]},{"fieldId":"fld_Salutation","type":"simple","formParentFieldId":"","data":[{"code":"Mme.","name":"Madame"},{"code":"Mlle.","name":"Mademoiselle"},{"code":"Mr.","name":"Monsieur"}]}];var formbuilder_obj = (function() { // Instance stores a reference to the Singleton var instance; function init(config) { // Singleton, // cookies functions this._insertAfter = function(newNode, referenceNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); }; this._checkEmail = function(email){ var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,25})+$/; //var mailformat = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,15}$/; return email.match(mailformat) }; this._createCookie = function(name, value, days) { if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); var expires = "; expires=" + date.toGMTString(); } else var expires = ""; ////console.log('cr?ation du cookies : ' + name + "=" + value + expires + "; path=/"); document.cookie = name + "=" + value + expires + "; path=/"; }; this._readCookie = function(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; }; this._eraseCookie = function(name) { this._createCookie(name, "", -1); }; this._feedDynamicLists = function() { // cette m�thode remplira les champs de type liste d�roulante if(this._htmlcontent.length>0){ for (var index = 0; index < this._datas.length; ++index) { _prefillfieldsfromcookies(); switch (this._datas[index].type) { case "simple": var selectbox = document.getElementById(this._datas[index].fieldId); if (selectbox != null) { opt = document.createElement("option"); opt.value = ''; opt.text = ''; opt.label = ''; selectbox.appendChild(opt); var options = this._datas[index].data; for (i = 0; i < options.length; ++i) { var optdata = options[i]; var filteringField = document.getElementById(this._datas[index].formParentFieldId); if((optdata.parentValue !== null && optdata.parentValue !== undefined) && (filteringField !== null && filteringField !== undefined)){ if(filteringField !== null && filteringField !== undefined){ if(optdata.parentValue === filteringField.value){ ////console.log('optdata.parentValue === filteringField.value'); opt = document.createElement("option"); opt.value = optdata.code; opt.text = optdata.name; opt.label = optdata.name; selectbox.appendChild(opt); } } }else{ opt = document.createElement("option"); opt.value = optdata.code; opt.text = optdata.name; opt.label = optdata.name; selectbox.appendChild(opt); } } } break; case "multiple": ////console.log('_feedDynamicLists multiple : ' + this._datas[index].fieldId + 'area'); var multiplediv = document.getElementById(this._datas[index].fieldId + 'area'); if (multiplediv != null) { var options = this._datas[index].data; var multiplehtmlcontent = ''; for (i = 0; i < options.length; ++i) { var optdata = options[i]; var filteringField = document.getElementById(this._datas[index].formParentFieldId); if((optdata.parentValue !== null && optdata.parentValue !== undefined) && (filteringField !== null && filteringField !== undefined)){ if(filteringField !== null && filteringField !== undefined){ if(optdata.parentValue === filteringField.value){ multiplehtmlcontent += '' + optdata.name + '
'; } } }else multiplehtmlcontent += '' + optdata.name + '
'; } multiplediv.innerHTML = multiplehtmlcontent; } break; } } } }; this._feedDynamicList = function(fields,filteringValue){ for (var ind = 0; ind < this._datas.length; ++ind){ var field = fields[ind]; // //console.log('_feedDynamicList : field : ' + field + ' , filteringValue :' + filteringValue); var fieldDatas = {}; for (var index = 0; index < this._datas.length; ++index) { if(this._datas[index].fieldId === field) { fieldDatas = this._datas[index]; break; } } switch (fieldDatas.type) { case "simple": var selectbox = document.getElementById(this._datas[index].fieldId); if (selectbox != null) { //vider le champ var length = selectbox.options.length; for (i = 0; i < length+1; i++) { selectbox.remove(1); } // remplir la liste d�roulante opt = document.createElement("option"); opt.value = ''; opt.text = ''; opt.label = ''; //selectbox.appendChild(opt); var options = fieldDatas.data; for (i = 0; i < options.length; ++i) { var optdata = options[i]; if(filteringValue !== null){ if(optdata.parentValue === filteringValue){ opt = document.createElement("option"); opt.value = optdata.code; opt.text = optdata.name; opt.label = optdata.name; selectbox.appendChild(opt); } }else{ opt = document.createElement("option"); opt.value = optdata.code; opt.text = optdata.name; opt.label = optdata.name; selectbox.appendChild(opt); } } } break; case "multiple": // //console.log('_feedDynamicList multiple : ' + this._datas[index].fieldId + 'area'); var multiplediv = document.getElementById(this._datas[index].fieldId + 'area'); if (multiplediv != null) { var options = this._datas[index].data; var multiplehtmlcontent = ''; for (i = 0; i < options.length; ++i) { var optdata = options[i]; if(filteringValue !== null){ if(optdata.parentValue === filteringValue){ multiplehtmlcontent += '' + optdata.name + '
'; } }else multiplehtmlcontent += '' + optdata.name + '
'; } multiplediv.innerHTML = multiplehtmlcontent; } break; } } }; this._inject = function(src, type) { // fonction qui permet d'injecter un css ou un javascript dynamiquement dans la page type = type || 'js'; if (type == 'js') { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = src; } else if (type == 'css') { var s = document.createElement('link'); s.type = 'text/css'; s.rel = 'stylesheet'; s.href = src; } (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(s); }; this._serializeform = function(form, format) { switch (format) { case 'uri': if (!form || form.nodeName !== "FORM") { return; } var i, j, q = []; for (i = form.elements.length - 1; i >= 0; i = i - 1) { if (form.elements[i].name === "") { continue; } switch (form.elements[i].nodeName) { case 'INPUT': switch (form.elements[i].type) { case 'text': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; case 'textarea': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; case 'hidden': case 'password': case 'button': case 'reset': case 'date': q.push(form.elements[i].name + "=" + form.elements[i].value); break; case 'number': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; case 'submit': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; case 'checkbox': case 'radio': if (form.elements[i].checked) { q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); } else q.push(form.elements[i].name + "="); break; case 'file': break; } break; case 'TEXTAREA': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; case 'SELECT': switch (form.elements[i].type) { case 'select-one': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; case 'select-multiple': for (j = form.elements[i].options.length - 1; j >= 0; j = j - 1) { if (form.elements[i].options[j].selected) { q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].options[j].value)); } } break; } break; case 'BUTTON': switch (form.elements[i].type) { case 'reset': case 'submit': case 'button': q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value)); break; } break; } } return q.join("&"); break; case 'rest': if (!form || form.nodeName !== "FORM") { return; } //var i, j, q = []; var i, j = []; var q = {}; for (i = form.elements.length - 1; i >= 0; i = i - 1) { if (form.elements[i].name === "") { continue; } switch (form.elements[i].nodeName) { case 'INPUT': switch (form.elements[i].type) { case 'text': q[form.elements[i].name] = form.elements[i].value; break; case 'textarea': q[form.elements[i].name] = form.elements[i].value; break; case 'hidden': break; case 'password': break; case 'button': break; case 'reset': break; case 'date': q[form.elements[i].name] = form.elements[i].value; break; case 'number': q[form.elements[i].name] = form.elements[i].value; break; case 'submit': q[form.elements[i].name] = form.elements[i].value; break; case 'checkbox': break; case 'radio': if (form.elements[i].checked) { q[form.elements[i].name] = form.elements[i].value; } else { q[form.elements[i].name] = ""; } break; case 'file': break; } break; case 'TEXTAREA': q[form.elements[i].name] = form.elements[i].value; break; case 'SELECT': switch (form.elements[i].type) { case 'select-one': q[form.elements[i].name] = form.elements[i].value; break; case 'select-multiple': var selected = []; for (j = form.elements[i].options.length - 1; j >= 0; j = j - 1) { if (form.elements[i].options[j].selected) { selected.push(form.elements[i].options[j].value); } } q[form.elements[i].name] = selected; break; } break; case 'BUTTON': switch (form.elements[i].type) { case 'reset': break; case 'submit': break; case 'button': q[form.elements[i].name] = form.elements[i].value; break; } break; } } return q; break; } }; this._valideasiform = function() { // Ajouter des test pour les champs obligatoire var elements = document.forms['easiform'].elements; var errorfields = ''; var errorfieldsarray = []; var errorfieldsnamearray = []; var validationError = false; var errorMessage = ""; // Traitement des liens multiple avec des checbox : var inputgroups = jQuery('#easiform .multiplechoicearea'); for (i = 0; i < inputgroups.length; i++) { var inputgroup = inputgroups[i]; if (inputgroup.getAttribute('mandatory') == 'true') { // checboxes obligatoires var empty = true; var checkboxes = inputgroup.getElementsByTagName('input'); for (j = 0; j < checkboxes.length; j++) { var element = checkboxes[j]; var value = element.checked; if (element.checked) { empty = false; break; } } if (empty) { errorfieldsarray.push(element); errorfieldsnamearray.push(inputgroup.getAttribute('label')); validationError = true } } } //Champs obligatoires for (i = 0; i < elements.length; i++) { var element = elements[i]; var value = element.value; if ((element.value == null || element.value == '') && element.getAttribute('mandatory') == 'true') { errorfieldsarray.push(element); errorfieldsnamearray.push(element.getAttribute('label')); validationError = true } } //construction du message d'erreur : errorMessage = this._mandatoryFieldEmptyMessage.replace("%P1", errorfieldsnamearray.join()); // Test du champs email : //D?tection du champs email if(!validationError){ var emailfield = document.getElementById("fld_Email"); if(emailfield !== null && emailfield !== undefined ) { if(emailfield.value !== null && emailfield.value !== undefined && emailfield.value.length>0 ){ var checkEmailFormat = this._checkEmail(emailfield.value) if(!checkEmailFormat) { validationError = true; errorMessage = this._MailErrorMessage; } } } } //ajouter un test li� au recaptcha if(this._recaptchaResponseOK){ errorMessage = "captcha OFF"; validationError = true; } if (validationError) { alert(errorMessage); valid = false; return valid; } else {// si pas d'ereur on submit jQuery('#validatebutton').addClass('disabled-validatebutton'); jQuery("#easiformWaiting").show(); //Param�tres syst�me var systemParams = {}; systemParams["fld_formid"] = this._formid; systemParams["fld_lang"] = this._language; systemParams["recaptcha_token"] = _recaptchaResponseToken; ////console.log("System Params : ");console.dir(systemParams); //donn�es du formulaire (type "simple") var formSimpleData = this._serializeform(document.forms['easiform'], 'rest'); var filesNames = {}; var filesData = {}; //Appel ? la fonction JS en REST jQuery.support.cors = true; //n?cessaire pour IE10 et IE11 jQuery.ajax({ url: this._formurl, type:"POST", data: JSON.stringify({ "fct_name": "jsCreateWebRequest", "authentication" : { "userid" : this._restUserId, "password" : this._restPwd }, "params": { "odSystemParams": systemParams, "odSimpleData" : formSimpleData, "odInputFiles" : _fileFields } }), contentType:"application/json", dataType:"json", crossDomain : true, success: function(resultSuccess) { if (resultSuccess) { if(resultSuccess.status == "OK") { //console.log("Call OK !"); //console.dir(resultSuccess); var data = JSON.parse(resultSuccess.data); if (data.result == 'success') { jQuery("#easiformWaiting").hide(); //Affichage message de remerciement if (_thankmessage !== null && _thankmessage.length > 0) alert(_thankmessage); //Si redirection d�finie, redirection vers URL donn�e if (data.redirection_url != null && data.redirection_url.length > 0) { // window.open(data.redirecution_url,'_self'); if(config.redirectionMode=="_blank"){ window.open(data.redirection_url,config.redirectionMode); } else { window.location.href = data.redirection_url; } } else { //Sinon, affichage message de remerciement en lieu et place du formulaire if (data.thankmessage != null && data.thankmessage.length > 0) { jQuery('#easiformarea').html(data.thankmessage); } } } else { //Erreur easiware => consultant ou autre jQuery("#easiformWaiting").hide(); alert(data.message); if(_recaptchaEnabled) if (typeof $('#easi_recaptcha_div') != "undefined") { grecaptcha.reset(); } } } else { jQuery("#easiformWaiting").hide(); //console.log("Call OK with status = KO : " + resultSuccess.error); } } else { jQuery("#easiformWaiting").hide(); } }, error: function (resultError) { jQuery("#easiformWaiting").hide(); if(_recaptchaEnabled) if (typeof $('#easi_recaptcha_div') != "undefined") { grecaptcha.reset(); } ////console.log("Call KO !") //console.dir(resultError); } }); return true; } }; this._createform = function() { var formtosend =''; if(this._htmlcontent.length>0){ formtosend = '
'; formtosend += this._htmlcontent; formtosend += ""; formtosend += "
"; formtosend += "
" + this._mandatoryFieldsMention + "
"; formtosend += "
" + this._additionnalInformation + "
"; var validatebuttondisabledoption = ""; if(_recaptchaEnabled){ ////console.log('afficher la div du recaptcha'); formtosend += "
"; validatebuttondisabledoption = "disabled-validatebutton"; } if (_context != 'preview') formtosend += ""; if(this._waitingMsg.length > 0) { if(document.getElementById('easiformWaitingMsg') !== null) document.getElementById('easiformWaitingMsg').innerHTML = this._waitingMsg; } }else{ formtosend = '
' + this._formEmptyExpression + '
'; } document.getElementById('easiformarea').innerHTML = formtosend; var subCategoryfield = document.getElementById("fld_SubCategory");// pour g?rer le cas des //Int�grer le bloc pour la KB if(this._integrateKB && subCategoryfield !== null && subCategoryfield !== undefined ) { var subCategoryDiv = document.getElementById("fld_SubCategory").parentNode.parentNode; var el = document.createElement("div"); el.id = "easiformKBzone"; el.innerHTML = this._KBnoarticles; el.class = "easiformKBZone"; this._insertAfter(el, subCategoryDiv); } }; this._prefillfieldsfromcookies = function() { if(this._htmlcontent.length>0){ var cookieForm = this._readCookie("easiform"); if(this._fieldPrefilling){ if (cookieForm != null) { var fieldval = cookieForm.split('&'); for (i = 0; i < fieldval.length; i++) { var fieldvalelt = fieldval[i]; var sublements = fieldvalelt.split("="); var element = document.easiform[sublements[0]]; var value = decodeURIComponent(sublements[1]).replace("%40", "@").replace("%2F", "/"); if (element != null) { if (element.length > 0) { if(element.type == 'select-one') { element.value = value; if(element.id === 'fld_SubCategory' && this._integrateKB){ var params = {}; params.category = value; setTimeout(function(){_searchKB(params);},0); } } else{ for (j = 0; j < element.length; j++) { var elt = element[j]; if (elt.value === value) elt.checked = true; } } } else if (element != null) { switch (element.type) { case 'text': element.value = value; break; case 'checkbox': element.checked = true; break; case 'select-one': element.value = value; } } } } } } } }; this._bindfields = function() { if(this._htmlcontent.length>0){ var elements = document.forms['easiform'].elements; var _integrateKB = this._integrateKB var _searchKB = this._searchKB for (i = 0; i < elements.length; i++) { var element = elements[i]; if(element.type !== 'file'){ if (element.addEventListener) { element.addEventListener("change", function() { _createCookie("easiform", _serializeform(document.forms['easiform'], 'uri'), 100); // //console.log("attachEvent this.id this.id : " + this.id) if(_integrateKB && this.id === 'fld_SubCategory') { var params = {}; params.category = this.value; _searchKB(params); } }, false); } else { element.attachEvent("onchange", function() { _createCookie("easiform", _serializeform(document.forms['easiform'], 'uri'), 100); // //console.log("attachEvent this.id : " + this.id) if(_integrateKB && this.id === 'fld_SubCategory'){ var params = {} params.category = this.value; _searchKB(params); } }, false); } } } //Binding des champs de type file afin de r?cup?rer leur contenu //r�cup�rer le contenu des champs files _filesFieldsIdsArray = document.querySelectorAll("#easiform [type=file]"); var fileFieldsArray = []; var loadFiles = function(event) { var fileIndex = 0; var input = event.target; var files = input.files; var reader = new FileReader(); function readFile(index) { if(index >= files.length) return; var file = files[index]; reader.onload = function(e) { var arrayBuffer = reader.result; //var arrayBufferComma = arrayBuffer.indexOf(","); if(_fileFields[input.id].files === null || _fileFields[input.id].files === undefined) _fileFields[input.id].files = []; _fileFields[input.id].files[fileIndex] = {}; _fileFields[input.id].files[fileIndex].name = input.files[fileIndex].name; //_fileFields[input.id].files[fileIndex].buffer = arrayBuffer.substring(arrayBufferComma + 1, arrayBuffer.length); _fileFields[input.id].files[fileIndex].fileText = arrayBuffer; //console.log("Reading file '" + input.files[fileIndex].name + "' OK"); fileIndex++; readFile(fileIndex) } //reader.readAsDataURL(file); //reader.readAsArrayBuffer(file); reader.readAsText(file, 'ISO-8859-1'); }; readFile(0); reader.onerror = function() { //console.log("Error reading file '" + input.files[fileIndex].name + "'"); }; }; //Add Event Listener for Input Files for (var index = 0; index < _filesFieldsIdsArray.length; ++index) { var fileField = _filesFieldsIdsArray[index]; _fileFields[fileField.id] = {}; if (fileField.addEventListener) { ////console.log('File binding fileField addEventListener: ' + fileField.id); fileField.addEventListener("change", function(evt) { loadFiles(evt); }, false); } else { ////console.log('File binding fileField addEventListener: ' + fileField.id); fileField.attachEvent("onchange", function(evt) { loadFiles(evt); }, false); } } //Add Event Listener For Submit document.getElementById("validatebutton").addEventListener("click", function(event){ if(_recaptchaEnabled){ if ($(this).hasClass('disabled-validatebutton')) { alert(_recaptchaErrorMessage); } else { myformbuilder.valideasiform(); } } else{ myformbuilder.valideasiform(); } }); } }; this._bindFilteringField = function(){// Fire an action when a field change and must refresh another field values // //console.log('_bindFilteringField this._htmlcontent.length : ' + this._htmlcontent.length); if(this._htmlcontent.length>0){ var fieldIds = []; var parentFields ={}; var parentFieldsList = []; // Binding des listes d�roulantes pour le filtrage du contenu, for (var index = 0; index < this._datas.length; ++index) { var parentField = this._datas[index].formParentFieldId; if(parentField !== null && parentField !== undefined){ if(parentFields[parentField] !== null && parentFields[parentField] !== undefined){ parentFields[parentField].fields.push(this._datas[index].fieldId); }else { parentFieldsList.push(parentField); parentFields[parentField]= {}; parentFields[parentField].fields = []; parentFields[parentField].fields.push(this._datas[index].fieldId); } } } for (var i = 0; i < parentFieldsList.length; i++) { var parentField = document.getElementById(parentFieldsList[i]); if(parentField !== null && parentField !== undefined){ parentField.fieldIds = parentFields[parentFieldsList[i]].fields; if (parentField.addEventListener) { var listener = parentField.addEventListener("change", function(evt) { _feedDynamicList(evt.target.fieldIds,evt.target.value); }, false); } else { parentField.attachEvent("onchange", function(evt) { _feedDynamicList(evt.target.fieldIds,evt.target.value); }, false); } } } } }; this._searchKB = function(params){ var category = params.category; params.formId = this._formid params.language =this._language var _KBZoneTitle = this._KBZoneTitle var _KBnoarticles = this._KBnoarticles jQuery.support.cors = true; //n?cessaire pour IE10 et IE11 jQuery.ajax({ url: this._formurl, type:"POST", data: JSON.stringify({ "fct_name": "jsFormKBByCategory", "authentication" : { "userid" : this._restUserId, "password" : this._restPwd }, "params": { "params":params } }), contentType:"application/json", dataType:"json", crossDomain : true, success: function(resultSuccess) { if (resultSuccess) { if(resultSuccess.status == "OK") { var data = resultSuccess.data; var articles = data.data; var result = data.result; if(result === 'success'){ var html = ""; if(articles.length>0) { html = "
" + _KBZoneTitle + "
" articles.forEach(function(e){ html += "
" + e.title + "
" }) }else{ html = "
" + _KBnoarticles + "
" } jQuery("#easiformKBzone").html(html); }else { console.log("erreur lors de la r?cup?ration des message :" + data.data); } } else { console.log("Call OK with status = KO : " + resultSuccess.error); } } }, error: function (resultError) { jQuery("#easiformWaiting").hide(); //console.log("Call KO !") //console.dir(resultError); } }); }; this._bindKBFields = function(){//fire the action to search the right element in the KB jQuery("#fld_Category").change(function() { //Console.log( "Handler for .change() called. for category" ); }); jQuery("#fld_Description").change(function() { //Console.log( "Handler for .change() called. for Description" ); }); } //JSON FORM - OBSOLETE this._createjsonForm = function() { var jsonformschema = JSON.parse(this._jsonformschema); jQuery.getScript("//cdn.jsdelivr.net/underscorejs/1.6.0/underscore-min.js", function() { jQuery.getScript(_solutionUrl + "_CRM/FrmBldr/jsonform.js", function() { jQuery('#easiformarea').jsonForm({ params: { fieldHtmlClass: "form-control" }, schema: _jsonformschema, onSubmit: function(errors, values) { if (errors) { alert('bad!:(') } else { alert('good!'); } } }); }); }); }; this._solutionUrl = config.siteUrl; this._datas = config.data; this._formid = config.formId; this._htmlcontent = config.htmlcontent; this._formurl = config.formurl; this._thankmessage = config.thankmessage; this._jsonformschema = config.jsonformschema; this._context = config.context; this._language = config.language; this._validatebuttonlabel = config.validatebuttonlabel; this._fieldPrefilling = config.fieldPrefilling; this._mandatoryFieldsMention = config.mandatoryFieldsMention; this._formEmptyExpression = config.formEmptyExpression; this._restUserId = config.restUserId; this._restPwd = config.restPwd; this._waitingMsg = config.waitingMsg; this._mandatoryFieldEmptyMessage = config.mandatoryFieldEmptyMessage; this._additionnalInformation = config.additionnalInformation; this._redirectionMode = config.redirectionMode; this._integrateKB = config.integrateKB; this._KBnoarticles = config.KBNoarticles; this._KBZoneTitle = config.KBZoneTitle; this._MailErrorMessage = config.MailErrorMessage; //recaptchas var _recaptchaEnabled = config.recaptchaEnabled; this._recaptchaK = config.recaptchaK; var _recaptchaResponseOK = false; var _recaptchaResponseToken = ""; var _recaptchaErrorMessage = config.recaptchaErrorMessage; //gestion des fichiers init new variables this._fileFields = {}; this._filesFieldsIdsArray = []; return { // Public methods and variables recaptchaVerifyCallback : function(response) { _recaptchaResponseOK = true; _recaptchaResponseToken = response; jQuery('#validatebutton').removeClass('disabled-validatebutton'); }, go: function() { if (!window.jQuery) { //console.log('inject jquery'); _inject("https://code.jquery.com/jquery-1.11.0.min.js", "js"); }; if(this._integrateKB){ setTimeout(function(){ _createform(); _feedDynamicLists(); _bindfields(); _bindFilteringField(); _prefillfieldsfromcookies(); },200) }else { _createform(); _feedDynamicLists(); _bindfields(); _bindFilteringField(); _prefillfieldsfromcookies(); } }, valideasiform: function() { _valideasiform(); } }; }; return { // Get the Singleton instance if one exists // or create one if it doesn't getInstance: function(config) { if (!instance) { instance = init(config); } return instance; } }; })(); var myformbuilder = formbuilder_obj.getInstance({ "siteUrl": "https://www2.easiware.fr/onepark/", "formId": "7", "data": dynamicListContent, "htmlcontent": "