/** * TrimPath Template. Release 1.0.36. * Copyright (C) 2004, 2005 Metaha. * * TrimPath Template is licensed under the GNU General Public License * and the Apache License, Version 2.0, as follows: * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed WITHOUT ANY WARRANTY; without even the * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var TrimPath; // TODO: Debugging mode vs stop-on-error mode - runtime flag. // TODO: Handle || (or) characters and backslashes. // TODO: Add more modifiers. (function() { // Using a closure to keep global namespace clean. if (TrimPath == null) TrimPath = new Object(); if (TrimPath.evalEx == null) TrimPath.evalEx = function(src) { return eval(src); }; var UNDEFINED; if (Array.prototype.pop == null) // IE 5.x fix from Igor Poteryaev. Array.prototype.pop = function() { if (this.length === 0) {return UNDEFINED;} return this[--this.length]; }; if (Array.prototype.push == null) // IE 5.x fix from Igor Poteryaev. Array.prototype.push = function() { for (var i = 0; i < arguments.length; ++i) {this[this.length] = arguments[i];} return this.length; }; TrimPath.parseTemplate = function(tmplContent, optTmplName, optEtc) { if (optEtc == null) optEtc = TrimPath.parseTemplate_etc; var funcSrc = parse(tmplContent, optTmplName, optEtc); var func = TrimPath.evalEx(funcSrc, optTmplName, 1); if (func != null) return new optEtc.Template(optTmplName, tmplContent, funcSrc, func, optEtc); return null; } try { String.prototype.process = function(context, optFlags) { var template = TrimPath.parseTemplate(this, null); if (template != null) return template.process(context, optFlags); return this; } } catch (e) { // Swallow exception, such as when String.prototype is sealed. } TrimPath.parseTemplate_etc = {}; // Exposed for extensibility. TrimPath.parseTemplate_etc.statementTag = "forelse|for|if|elseif|else|var|macro"; TrimPath.parseTemplate_etc.statementDef = { // Lookup table for statement tags. "if" : { delta: 1, prefix: "if (", suffix: ") {", paramMin: 1 }, "else" : { delta: 0, prefix: "} else {" }, "elseif" : { delta: 0, prefix: "} else if (", suffix: ") {", paramDefault: "true" }, "/if" : { delta: -1, prefix: "}" }, "for" : { delta: 1, paramMin: 3, prefixFunc : function(stmtParts, state, tmplName, etc) { if (stmtParts[2] != "in") throw new etc.ParseError(tmplName, state.line, "bad for loop statement: " + stmtParts.join(' ')); var iterVar = stmtParts[1]; var listVar = "__LIST__" + iterVar; return [ "var ", listVar, " = ", stmtParts[3], ";", // Fix from Ross Shaull for hash looping, make sure that we have an array of loop lengths to treat like a stack. "var __LENGTH_STACK__;", "if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();", "__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;", // Push a new for-loop onto the stack of loop lengths. "if ((", listVar, ") != null) { ", "var ", iterVar, "_ct = 0;", // iterVar_ct variable, added by B. Bittman "for (var ", iterVar, "_index in ", listVar, ") { ", iterVar, "_ct++;", "if (typeof(", listVar, "[", iterVar, "_index]) == 'function') {continue;}", // IE 5.x fix from Igor Poteryaev. "__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;", "var ", iterVar, " = ", listVar, "[", iterVar, "_index];" ].join(""); } }, "forelse" : { delta: 0, prefix: "} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (", suffix: ") {", paramDefault: "true" }, "/for" : { delta: -1, prefix: "} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];" }, // Remove the just-finished for-loop from the stack of loop lengths. "var" : { delta: 0, prefix: "var ", suffix: ";" }, "macro" : { delta: 1, prefix: "function ", suffix: "{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; " }, "/macro" : { delta: -1, prefix: " return _OUT_arr.join(''); }" } } TrimPath.parseTemplate_etc.modifierDef = { "eat" : function(v) { return ""; }, "escape" : function(s) { return String(s).replace(/&/g, "&").replace(//g, ">"); }, "capitalize" : function(s) { return String(s).toUpperCase(); }, "default" : function(s, d) { return s != null ? s : d; } } TrimPath.parseTemplate_etc.modifierDef.h = TrimPath.parseTemplate_etc.modifierDef.escape; TrimPath.parseTemplate_etc.Template = function(tmplName, tmplContent, funcSrc, func, etc) { this.process = function(context, flags) { if (context == null) context = {}; if (context._MODIFIERS == null) context._MODIFIERS = {}; if (context.defined == null) context.defined = function(str) { return (context[str] != undefined); }; for (var k in etc.modifierDef) { if (context._MODIFIERS[k] == null) context._MODIFIERS[k] = etc.modifierDef[k]; } if (flags == null) flags = {}; var resultArr = []; var resultOut = { write: function(m) { resultArr.push(m); } }; try { func(resultOut, context, flags); } catch (e) { if (flags.throwExceptions == true) throw e; var result = new String(resultArr.join("") + "[ERROR: " + e.toString() + "]"); result["exception"] = e; return result; } return resultArr.join(""); } this.name = tmplName; this.source = tmplContent; this.sourceFunc = funcSrc; this.toString = function() { return "TrimPath.Template [" + tmplName + "]"; } } TrimPath.parseTemplate_etc.ParseError = function(name, line, message) { this.name = name; this.line = line; this.message = message; } TrimPath.parseTemplate_etc.ParseError.prototype.toString = function() { return ("TrimPath template ParseError in " + this.name + ": line " + this.line + ", " + this.message); } var parse = function(body, tmplName, etc) { body = cleanWhiteSpace(body); var funcText = [ "var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {" ]; var state = { stack: [], line: 1 }; // TODO: Fix line number counting. var endStmtPrev = -1; while (endStmtPrev + 1 < body.length) { var begStmt = endStmtPrev; // Scan until we find some statement markup. begStmt = body.indexOf("{", begStmt + 1); while (begStmt >= 0) { var endStmt = body.indexOf('}', begStmt + 1); var stmt = body.substring(begStmt, endStmt); var blockrx = stmt.match(/^\{(cdata|minify|eval)/); // From B. Bittman, minify/eval/cdata implementation. if (blockrx) { var blockType = blockrx[1]; var blockMarkerBeg = begStmt + blockType.length + 1; var blockMarkerEnd = body.indexOf('}', blockMarkerBeg); if (blockMarkerEnd >= 0) { var blockMarker; if( blockMarkerEnd - blockMarkerBeg <= 0 ) { blockMarker = "{/" + blockType + "}"; } else { blockMarker = body.substring(blockMarkerBeg + 1, blockMarkerEnd); } var blockEnd = body.indexOf(blockMarker, blockMarkerEnd + 1); if (blockEnd >= 0) { emitSectionText(body.substring(endStmtPrev + 1, begStmt), funcText); var blockText = body.substring(blockMarkerEnd + 1, blockEnd); if (blockType == 'cdata') { emitText(blockText, funcText); } else if (blockType == 'minify') { emitText(scrubWhiteSpace(blockText), funcText); } else if (blockType == 'eval') { if (blockText != null && blockText.length > 0) // From B. Bittman, eval should not execute until process(). funcText.push('_OUT.write( (function() { ' + blockText + ' })() );'); } begStmt = endStmtPrev = blockEnd + blockMarker.length - 1; } } } else if (body.charAt(begStmt - 1) != '$' && // Not an expression or backslashed, body.charAt(begStmt - 1) != '\\') { // so check if it is a statement tag. var offset = (body.charAt(begStmt + 1) == '/' ? 2 : 1); // Close tags offset of 2 skips '/'. // 10 is larger than maximum statement tag length. if (body.substring(begStmt + offset, begStmt + 10 + offset).search(TrimPath.parseTemplate_etc.statementTag) == 0) break; // Found a match. } begStmt = body.indexOf("{", begStmt + 1); } if (begStmt < 0) // In "a{for}c", begStmt will be 1. break; var endStmt = body.indexOf("}", begStmt + 1); // In "a{for}c", endStmt will be 5. if (endStmt < 0) break; emitSectionText(body.substring(endStmtPrev + 1, begStmt), funcText); emitStatement(body.substring(begStmt, endStmt + 1), state, funcText, tmplName, etc); endStmtPrev = endStmt; } emitSectionText(body.substring(endStmtPrev + 1), funcText); if (state.stack.length != 0) throw new etc.ParseError(tmplName, state.line, "unclosed, unmatched statement(s): " + state.stack.join(",")); funcText.push("}}; TrimPath_Template_TEMP"); return funcText.join(""); } var emitStatement = function(stmtStr, state, funcText, tmplName, etc) { var parts = stmtStr.slice(1, -1).split(' '); var stmt = etc.statementDef[parts[0]]; // Here, parts[0] == for/if/else/... if (stmt == null) { // Not a real statement. emitSectionText(stmtStr, funcText); return; } if (stmt.delta < 0) { if (state.stack.length <= 0) throw new etc.ParseError(tmplName, state.line, "close tag does not match any previous statement: " + stmtStr); state.stack.pop(); } if (stmt.delta > 0) state.stack.push(stmtStr); if (stmt.paramMin != null && stmt.paramMin >= parts.length) throw new etc.ParseError(tmplName, state.line, "statement needs more parameters: " + stmtStr); if (stmt.prefixFunc != null) funcText.push(stmt.prefixFunc(parts, state, tmplName, etc)); else funcText.push(stmt.prefix); if (stmt.suffix != null) { if (parts.length <= 1) { if (stmt.paramDefault != null) funcText.push(stmt.paramDefault); } else { for (var i = 1; i < parts.length; i++) { if (i > 1) funcText.push(' '); funcText.push(parts[i]); } } funcText.push(stmt.suffix); } } var emitSectionText = function(text, funcText) { if (text.length <= 0) return; var nlPrefix = 0; // Index to first non-newline in prefix. var nlSuffix = text.length - 1; // Index to first non-space/tab in suffix. while (nlPrefix < text.length && (text.charAt(nlPrefix) == '\n')) nlPrefix++; while (nlSuffix >= 0 && (text.charAt(nlSuffix) == ' ' || text.charAt(nlSuffix) == '\t')) nlSuffix--; if (nlSuffix < nlPrefix) nlSuffix = nlPrefix; if (nlPrefix > 0) { funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("'); var s = text.substring(0, nlPrefix).replace('\n', '\\n'); // A macro IE fix from BJessen. if (s.charAt(s.length - 1) == '\n') s = s.substring(0, s.length - 1); funcText.push(s); funcText.push('");'); } var lines = text.substring(nlPrefix, nlSuffix + 1).split('\n'); for (var i = 0; i < lines.length; i++) { emitSectionTextLine(lines[i], funcText); if (i < lines.length - 1) funcText.push('_OUT.write("\\n");\n'); } if (nlSuffix + 1 < text.length) { funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("'); var s = text.substring(nlSuffix + 1).replace('\n', '\\n'); if (s.charAt(s.length - 1) == '\n') s = s.substring(0, s.length - 1); funcText.push(s); funcText.push('");'); } } var emitSectionTextLine = function(line, funcText) { var endMarkPrev = '}'; var endExprPrev = -1; while (endExprPrev + endMarkPrev.length < line.length) { var begMark = "${", endMark = "}"; var begExpr = line.indexOf(begMark, endExprPrev + endMarkPrev.length); // In "a${b}c", begExpr == 1 if (begExpr < 0) break; if (line.charAt(begExpr + 2) == '%') { begMark = "${%"; endMark = "%}"; } var endExpr = line.indexOf(endMark, begExpr + begMark.length); // In "a${b}c", endExpr == 4; if (endExpr < 0) break; emitText(line.substring(endExprPrev + endMarkPrev.length, begExpr), funcText); // Example: exprs == 'firstName|default:"John Doe"|capitalize'.split('|') var exprArr = line.substring(begExpr + begMark.length, endExpr).replace(/\|\|/g, "#@@#").split('|'); for (var k in exprArr) { if (exprArr[k].replace) // IE 5.x fix from Igor Poteryaev. exprArr[k] = exprArr[k].replace(/#@@#/g, '||'); } funcText.push('_OUT.write('); emitExpression(exprArr, exprArr.length - 1, funcText); funcText.push(');'); endExprPrev = endExpr; endMarkPrev = endMark; } emitText(line.substring(endExprPrev + endMarkPrev.length), funcText); } var emitText = function(text, funcText) { if (text == null || text.length <= 0) return; text = text.replace(/\\/g, '\\\\'); text = text.replace(/\n/g, '\\n'); text = text.replace(/"/g, '\\"'); funcText.push('_OUT.write("'); funcText.push(text); funcText.push('");'); } var emitExpression = function(exprArr, index, funcText) { // Ex: foo|a:x|b:y1,y2|c:z1,z2 is emitted as c(b(a(foo,x),y1,y2),z1,z2) var expr = exprArr[index]; // Ex: exprArr == [firstName,capitalize,default:"John Doe"] if (index <= 0) { // Ex: expr == 'default:"John Doe"' funcText.push(expr); return; } var parts = expr.split(':'); funcText.push('_MODIFIERS["'); funcText.push(parts[0]); // The parts[0] is a modifier function name, like capitalize. funcText.push('"]('); emitExpression(exprArr, index - 1, funcText); if (parts.length > 1) { funcText.push(','); funcText.push(parts[1]); } funcText.push(')'); } var cleanWhiteSpace = function(result) { result = result.replace(/\t/g, " "); result = result.replace(/\r\n/g, "\n"); result = result.replace(/\r/g, "\n"); result = result.replace(/^(\s*\S*(\s+\S+)*)\s*$/, '$1'); // Right trim by Igor Poteryaev. return result; } var scrubWhiteSpace = function(result) { result = result.replace(/^\s+/g, ""); result = result.replace(/\s+$/g, ""); result = result.replace(/\s+/g, " "); result = result.replace(/^(\s*\S*(\s+\S+)*)\s*$/, '$1'); // Right trim by Igor Poteryaev. return result; } // The DOM helper functions depend on DOM/DHTML, so they only work in a browser. // However, these are not considered core to the engine. // TrimPath.parseDOMTemplate = function(elementId, optDocument, optEtc) { if (optDocument == null) optDocument = document; var element = optDocument.getElementById(elementId); var content = element.value; // Like textarea.value. if (content == null) content = element.innerHTML; // Like textarea.innerHTML. content = content.replace(/</g, "<").replace(/>/g, ">"); return TrimPath.parseTemplate(content, elementId, optEtc); } TrimPath.processDOMTemplate = function(elementId, context, optFlags, optDocument, optEtc) { return TrimPath.parseDOMTemplate(elementId, optDocument, optEtc).process(context, optFlags); } }) (); //generic functions. function et_ban_infos(object, indent) { var texte = indent + typeof(object) + " " + object.constructor.name + "\n"; for (var i in object) { if (object[i] != null && typeof object[i] == 'object') { texte += et_ban_infos(object[i], indent + " ") + "\n"; } else if (typeof object[i] != 'function') { texte += indent + "type = " + typeof object[i] + " ; " + i + " = " + object[i] + "\n"; } } return texte; }; function et_ban_escapeStringBeforeEval(str) { return str.replace(/\\/g, "\\\\").replace(/\'/g, "\\\'").replace(/\n/g, ""); }; function et_ban_cleanCrLfSpace(str) { return str.replace(/\t/g, " ").replace(/\r\n/g, "\n").replace(/\r/g, "\n"); }; function et_ban_trim(str) { return str.replace(/^\s*(\S*[\s+\S+]*)\s*$/, '$1'); }; //------------------------------- // all styles object function et_ban_Styles(aff_number, url_site_id) { this.aff_number = aff_number; this.url_site_id = url_site_id; this.encoding = "ISO8859-1"; this.statType; this.borderColor; this.productURLTemplate; this.compareURLTemplate; this.searchDay; this.searchMonth; this.searchYear; this.searchFork; this.searchFormula; this.searchDestCountry; this.searchDuration; this.searchDurationFork; this.preview = function() {}; this.styles = new Array(); this.products = new Array(); this.countries = new Array(); this.tos = new Array(); }; et_ban_Styles.prototype.evalTemplate = function(template, isContent) { var result = null; if (!isContent) { result = TrimPath.processDOMTemplate(template, this) } else { result = template.process(this); } return result; }; et_ban_Styles.prototype.addStyle = function(styleName) { this.styles[styleName] = new et_ban_StyleDef(styleName); }; et_ban_Styles.prototype.addProduct = function(name, image, country, price, formula, duration, depDate, productID) { this.products[this.products.length] = new et_ban_Product(this, name, image, country, price, formula, duration, depDate, productID); }; et_ban_Styles.prototype.addCountry = function(code, label) { this.countries[this.countries.length] = new et_ban_Country(code, label); }; et_ban_Styles.prototype.addTO = function(name, label) { this.tos[this.tos.length] = new et_ban_TO(name, label); }; et_ban_Styles.prototype.setProperty = function(prop, value) { eval('this.' + prop + '=\'' + et_ban_escapeStringBeforeEval(value) + '\''); this.preview(); }; et_ban_Styles.prototype.initialize = function(template, isContent) { var content = null; if (!isContent) { if (typeof template == 'string') { //search by id of element. content = document.getElementById(template).value; } else { //element is given. content = template.value; // Like textarea.value. } if (content == null) content = element.innerHTML; // Like textarea.innerHTML. content = content.replace(/</g, "<").replace(/>/g, ">"); } else { content = template; }; var lines = et_ban_cleanCrLfSpace(content).split(/\n/g); for (var i = 0; i < lines.length; i++) { var line = lines[i]; if (line.replace(/\s/g, "").length > 0) { var splitted = et_ban_trim(line).split('='); eval('this.' + splitted[0] + '=\'' + et_ban_escapeStringBeforeEval(splitted[1]) + '\''); } } }; et_ban_Styles.prototype.getCompareUrl = function() { return this.compareURLTemplate.process(this);; }; //------------------------------- //Style definition object function et_ban_StyleDef(name) { //name of this style this.name = name; //texte this.text = null; //APPLICABLE AU TEXTE this.fontFamily = null; //polices de caractᅵre this.fontSize = null; //taille de la police en px this.fontColor = null; //couleur de la police en hexa this.fontColorOver = null; //couleur de la police en hexa, for links only this.fontDecoration = null; //decoration = undeline or none this.fontDecorationOver = null; //decoration = undeline or none, for links only this.fontWeight = null; //huile = bold, normal this.fontStyle = null; //style de police = italic or normal //APPLICABLE A UNE CELLULE TABLE OU DIV OU UN BOUTON INPUT this.backgroundColor = null; //couleur de fond this.borderSize = null; //largeur de la bordure this.borderStyle = null; //style de la bordure = solid, dotted, inset, outset this.borderColor = null; //couleur de la bordure this.width = null; //largeur de la cellule en px this.height = null; //hauteur de la cellule en px }; //--------------------------- //et_ban_URL object function et_ban_URL(baseUrl) { this.finalUrl = baseUrl; this.oneParamAdded = false; }; et_ban_URL.prototype.appendParam = function(param, value) { this.finalUrl += (this.oneParamAdded ? '&' : '?') + param + '=' + value; this.oneParamAdded = true; }; et_ban_URL.prototype.getURL = function() { return this.finalUrl; }; //------------------------------ //et_ban_Product object function et_ban_Product(styles_conf, name, image, country, price, formula, duration, depDate, productID) { this.styles_conf = styles_conf; this.name = name; this.image = image; this.country = country; this.price = price; this.formula = formula; this.duration = duration; this.depDate = depDate; this.productID = productID; }; et_ban_Product.prototype.getUrl = function() { return this.styles_conf.productURLTemplate.process(this);; }; //----------------------------- //et_ban_Country function et_ban_Country(code, label) { this.code = code; this.label = label; }; //----------------------------- //et_ban_TO function et_ban_TO(name, label) { this.name = name; this.label = label; }; function checkPrices() { var formData = document.forms["et_ban_engineform"].budget.value; var reg = new RegExp("-", "g"); var splitted = formData.split(reg); document.forms["et_ban_engineform"].minPrice.value = splitted[0]; document.forms["et_ban_engineform"].maxPrice.value = splitted[1]; document.forms["et_ban_engineform"].mois.value = document.forms["et_ban_engineform"].moisMilieu.value+"/"+document.forms["et_ban_engineform"].anMilieu.value; return true; }; function checkFormatDate() { document.forms["et_ban_engineform"].mois.value = document.forms["et_ban_engineform"].moisMilieu.value+"/"+document.forms["et_ban_engineform"].anMilieu.value; return true; }; var et_ban_engineTemplate =''; et_ban_engineTemplate += '
'; var et_ban_conf = new et_ban_Styles('RKFXVVF4', 'NBJTOL49'); et_ban_conf.addStyle('link'); et_ban_conf.addStyle('bouton'); et_ban_conf.addStyle('boutonB'); et_ban_conf.addStyle('titre'); et_ban_conf.addStyle('select'); et_ban_conf.addStyle('selectB'); et_ban_conf.statType = '302'; et_ban_conf.addCountry('1', 'Andorre'); et_ban_conf.addCountry('2', 'Dubaï et les Emirats'); et_ban_conf.addCountry('4', 'Antigua et Barbuda'); et_ban_conf.addCountry('7', 'Arménie'); et_ban_conf.addCountry('8', 'Antilles néerlandaises'); et_ban_conf.addCountry('11', 'Argentine'); et_ban_conf.addCountry('13', 'Autriche'); et_ban_conf.addCountry('14', 'Australie'); et_ban_conf.addCountry('18', 'Bosnie-Herzégovine'); et_ban_conf.addCountry('19', 'Barbade'); et_ban_conf.addCountry('21', 'Belgique'); et_ban_conf.addCountry('22', 'Burkina Faso'); et_ban_conf.addCountry('23', 'Bulgarie'); et_ban_conf.addCountry('26', 'Bénin'); et_ban_conf.addCountry('29', 'Bolivie'); et_ban_conf.addCountry('30', 'Brésil'); et_ban_conf.addCountry('31', 'Bahamas'); et_ban_conf.addCountry('32', 'Bhoutan'); et_ban_conf.addCountry('34', 'Botswana'); et_ban_conf.addCountry('36', 'Belize'); et_ban_conf.addCountry('37', 'Canada'); et_ban_conf.addCountry('40', 'République centrafricaine'); et_ban_conf.addCountry('41', 'Congo'); et_ban_conf.addCountry('42', 'Suisse'); et_ban_conf.addCountry('45', 'Chili'); et_ban_conf.addCountry('46', 'Cameroun'); et_ban_conf.addCountry('47', 'Chine'); et_ban_conf.addCountry('49', 'Costa Rica'); et_ban_conf.addCountry('50', 'Cuba'); et_ban_conf.addCountry('51', 'Cap-Vert'); et_ban_conf.addCountry('53', 'Chypre'); et_ban_conf.addCountry('54', 'République tchèque'); et_ban_conf.addCountry('55', 'Allemagne'); et_ban_conf.addCountry('57', 'Danemark'); et_ban_conf.addCountry('59', 'République dominicaine'); et_ban_conf.addCountry('60', 'Algérie'); et_ban_conf.addCountry('61', 'Equateur et Galapagos'); et_ban_conf.addCountry('62', 'Estonie'); et_ban_conf.addCountry('63', 'Egypte'); et_ban_conf.addCountry('66', 'Espagne'); et_ban_conf.addCountry('67', 'Ethiopie'); et_ban_conf.addCountry('68', 'Finlande'); et_ban_conf.addCountry('73', 'France'); et_ban_conf.addCountry('74', 'Gabon'); et_ban_conf.addCountry('75', 'Royaume-Uni'); et_ban_conf.addCountry('78', 'Guyane'); et_ban_conf.addCountry('82', 'Groenland'); et_ban_conf.addCountry('84', 'Guinée'); et_ban_conf.addCountry('85', 'Guadeloupe'); et_ban_conf.addCountry('87', 'Grèce'); et_ban_conf.addCountry('89', 'Guatemala'); et_ban_conf.addCountry('92', 'Guyana'); et_ban_conf.addCountry('94', 'Hong Kong'); et_ban_conf.addCountry('96', 'Honduras'); et_ban_conf.addCountry('97', 'Croatie'); et_ban_conf.addCountry('99', 'Hongrie'); et_ban_conf.addCountry('100', 'Indonésie Bali'); et_ban_conf.addCountry('101', 'Irlande'); et_ban_conf.addCountry('102', 'Israël'); et_ban_conf.addCountry('104', 'Inde'); et_ban_conf.addCountry('107', 'Iran'); et_ban_conf.addCountry('108', 'Islande'); et_ban_conf.addCountry('109', 'Italie'); et_ban_conf.addCountry('112', 'Jordanie'); et_ban_conf.addCountry('113', 'Japon'); et_ban_conf.addCountry('114', 'Kenya'); et_ban_conf.addCountry('115', 'Kirghizstan'); et_ban_conf.addCountry('116', 'Cambodge'); et_ban_conf.addCountry('120', 'Corée du Nord'); et_ban_conf.addCountry('121', 'Corée du Sud'); et_ban_conf.addCountry('124', 'Kazakhstan'); et_ban_conf.addCountry('125', 'Laos'); et_ban_conf.addCountry('126', 'Liban'); et_ban_conf.addCountry('129', 'Sri Lanka'); et_ban_conf.addCountry('131', 'Lesotho'); et_ban_conf.addCountry('132', 'Lituanie'); et_ban_conf.addCountry('133', 'Luxembourg'); et_ban_conf.addCountry('135', 'Libye'); et_ban_conf.addCountry('136', 'Maroc'); et_ban_conf.addCountry('137', 'Monaco'); et_ban_conf.addCountry('139', 'Monténégro'); et_ban_conf.addCountry('140', 'Madagascar'); et_ban_conf.addCountry('143', 'Mali'); et_ban_conf.addCountry('144', 'Myanmar'); et_ban_conf.addCountry('145', 'Mongolie'); et_ban_conf.addCountry('148', 'Martinique'); et_ban_conf.addCountry('149', 'Mauritanie'); et_ban_conf.addCountry('151', 'Malte'); et_ban_conf.addCountry('152', 'Ile Maurice'); et_ban_conf.addCountry('153', 'Maldives'); et_ban_conf.addCountry('154', 'Malawi'); et_ban_conf.addCountry('155', 'Mexique'); et_ban_conf.addCountry('156', 'Malaisie'); et_ban_conf.addCountry('157', 'Mozambique'); et_ban_conf.addCountry('158', 'Namibie'); et_ban_conf.addCountry('159', 'Nouvelle-Calédonie'); et_ban_conf.addCountry('160', 'Niger'); et_ban_conf.addCountry('163', 'Nicaragua'); et_ban_conf.addCountry('164', 'Pays-Bas'); et_ban_conf.addCountry('165', 'Norvège'); et_ban_conf.addCountry('166', 'Népal'); et_ban_conf.addCountry('169', 'Nouvelle-Zélande'); et_ban_conf.addCountry('170', 'Sultanat d'Oman'); et_ban_conf.addCountry('171', 'Panama'); et_ban_conf.addCountry('172', 'Pérou'); et_ban_conf.addCountry('173', 'Polynésie Marquises'); et_ban_conf.addCountry('174', 'Papouasie-Nouvelle-Guinée'); et_ban_conf.addCountry('175', 'Philippines'); et_ban_conf.addCountry('182', 'Portugal'); et_ban_conf.addCountry('186', 'Réunion'); et_ban_conf.addCountry('187', 'Roumanie'); et_ban_conf.addCountry('189', 'Russie'); et_ban_conf.addCountry('190', 'Rwanda'); et_ban_conf.addCountry('193', 'Seychelles'); et_ban_conf.addCountry('195', 'Suède'); et_ban_conf.addCountry('196', 'Singapour'); et_ban_conf.addCountry('198', 'Slovénie'); et_ban_conf.addCountry('200', 'Slovaquie'); et_ban_conf.addCountry('203', 'Sénégal'); et_ban_conf.addCountry('206', 'São Tomé et Principe'); et_ban_conf.addCountry('207', 'Salvador'); et_ban_conf.addCountry('208', 'Syrie'); et_ban_conf.addCountry('209', 'Swaziland'); et_ban_conf.addCountry('213', 'Togo'); et_ban_conf.addCountry('214', 'Thaïlande'); et_ban_conf.addCountry('215', 'Tadjikistan'); et_ban_conf.addCountry('218', 'Tunisie'); et_ban_conf.addCountry('221', 'Turquie'); et_ban_conf.addCountry('225', 'Tanzanie'); et_ban_conf.addCountry('227', 'Ouganda'); et_ban_conf.addCountry('229', 'Etats Unis'); et_ban_conf.addCountry('231', 'Ouzbékistan'); et_ban_conf.addCountry('234', 'Venezuela'); et_ban_conf.addCountry('237', 'Vietnam'); et_ban_conf.addCountry('241', 'Yémen'); et_ban_conf.addCountry('242', 'Mayotte'); et_ban_conf.addCountry('244', 'Afrique du Sud'); et_ban_conf.addCountry('245', 'Zambie'); et_ban_conf.addCountry('247', 'Zimbabwe'); et_ban_conf.preview = function() { document.write(this.evalTemplate(et_ban_engineTemplate, true)); }; function et_ban_initPage() { et_ban_conf.initialize(document.getElementById('et_ban_initFront_371')); et_ban_conf.preview(); }; et_ban_initPage();