/*
* FONCTIONS GENERALES DE LA PLATEFORME
* © fxtracking.fr
*/
var load_img = '
';
var defaut = "#FFFFFF";
var exclam = "#FFFDCB";
var global = this;
// Couleur du champ d'un formulaire
function couleur(obj) {
obj.style.backgroundColor = defaut;
}
// Appel d'une ancre nommée
function ancre(objet) {
document.location.href = objet;
}
// Active/désactive n° de TVA
function changeoption(doubledate) {
var objet = document.getElementById('form1');
if (objet) { objet['num_intra'].disabled = !doubledate; }
}
// Formulaire d'insctription Editeur/Annonceur
function verif_form(compte) {
var objet = document.getElementById('form1');
var msg = '';
if (objet.elements['email'].value == '') {
objet.elements['email'].style.backgroundColor = exclam;
msg += '- your email
';
}else{
indexAroba = objet.elements['email'].value.indexOf('@');
indexPoint = objet.elements['email'].value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0)) {
objet.elements['email'].style.backgroundColor = exclam;
msg += '- your e-mail is incorrect
';
}
}
if (objet.elements['login'].value == "") {
objet.elements['login'].style.backgroundColor = exclam;
msg += '- your login
';
}
if (objet.elements['mdp'].value == "") {
objet.elements['mdp'].style.backgroundColor = exclam;
msg += '- password
';
}
if (objet.elements['securite'].value == "") {
objet.elements['securite'].style.backgroundColor = exclam;
msg += '- The security code
';
}
if (objet.elements['nom'].value == "") {
objet.elements['nom'].style.backgroundColor = exclam;
msg += '- your name
';
}
if (objet.elements['prenom'].value == "") {
objet.elements['prenom'].style.backgroundColor = exclam;
msg += '- your first name
';
}
// Si c'est un compte webmaster
if (compte == 'w') {
if (objet.elements['url_titre'].value == '') {
objet.elements['url_titre'].style.backgroundColor = exclam;
msg += '- The website title
';
}
if (objet.elements['url_redirect'].value == '' ||
objet.elements['url_redirect'].value == 'http://') {
objet.elements['url_redirect'].style.backgroundColor = exclam;
msg += "- URL of the website
";
}
if (objet.elements['url_description'].value == '') {
objet.elements['url_description'].style.backgroundColor = exclam;
msg += '- The website description
';
}
}
if (objet.elements['reglement'].checked == false) {
msg += '- You must agree to the terms and conditions
';
}
// Si message, une erreur; on ne valide pas
if (msg != '') {
var msg2 = 'Please complete the following fields :
';
msg2 += msg;
lightbox(0, msg2); return false;
}
}
// Initialisation d'un objet XHR
function init_xhr() {
var xhr
// Mozilla firefox
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
return xhr;
// Internet Explorer
}else if (window.ActiveXObject) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
return xhr;
// Erreur
}else{
lightbox(0, 'Your browser does not support AJAX.');
return false;
}
}
// Creation Ajax pour récuperer disponibilite login (qui est l'email)
function File(fichier) {
var xhr = new init_xhr;
xhr.open('GET', fichier, false);
xhr.send(null);
if(xhr.readyState == 4) {
return(xhr.responseText);
}else{
return(false);
}
}
// Permet de verifier en javax si le login est déja utilisé
function CheckDispoLogin(compte) {
var objet = document.getElementById('form1');
var login = objet.elements['login'].value;
// On contrôle que le login demandé est disponible
var result = File('../javaxlogin.php?login='+escape(login)+'&k='+compte);
// Vérifie le formulaire
if (result == 1) {
return verif_form(compte);
}else if(result == 0) {
if (login == '') {
lightbox(0, 'Login is required !');
objet.elements['login'].style.backgroundColor = exclam;
objet.elements['login'].focus();
}else{
lightbox(0, 'This login is already taken.');
}
return false;
}
}
// Vérification simple d'un formulaire
function verif_champ(form) {
var X = 0;
for (var i = 0; i < form.length; i++) {
var objet = form.elements[i];
if (objet.name != ''){ if (objet.value == '') { X++; } }
}
if (X != 0) {
lightbox(0, 'One or more fields are not completed.');
return false;
}
}
// Pour afficher des fenêtres en popup
function popup(fichier, largeur, hauteur) {
var top = (screen.height - hauteur) / 2;
var left = (screen.width - largeur) / 2;
var position = 'top='+top+', left='+left+', width='+largeur+', height='+hauteur;
win = window.open(fichier, 'popup', position+', scrollbars=yes, location=no, resizable=no');
win.document.close();
win.focus();
}
// Afficher/masquer plusieurs div dans la page
function visible(id, num, total) {
var objet = document.getElementById(id + '-' + num);
for (var i = 1; i <= total; i++) {
var div = document.getElementById('tag' + i + '-' + num);
div.style.display = 'none';
}
objet.style.display = 'block';
}
// Affiche/masque un div à partir d'un select onchange()
function select(value, id) {
var div = document.getElementById(id);
if (div) {
if (value == 1) {
div.style.display = 'none';
}else{
div.style.display = 'block';
}
}
}
/*
* -------------------------------------
* FONCTIONS AJAX COMPTE ADMIN/ANNONCEUR
* -------------------------------------
*/
// Gestion des onglets (voir campagnes_visuels.php)
function onglet(id){
var name = document.getElementById(id).name;
var total = document.getElementsByName(name).length;
for (var i = 1; i <= total; i++) {
if (document.getElementById(name + i)) {
document.getElementById(name + i).className = '';
}
}
if (document.getElementById(id)) {
document.getElementById(id).className = 'actif';
}
}
// Affiche le tableau du visuel à ajouter (campagnes_visuels.php)
function onglet_visuel(id, nom, url, lng) {
var xhr = new init_xhr;
onglet('menu'+id);
if (url == '') url = 'http://';
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
document.getElementById('visuel_installe').innerHTML = xhr.responseText;
document.getElementById('url').value = url;
}
}
xhr.open('GET', '../inc/visuels.installe.php?onglet='+id+'&nom='+nom+'&lng='+lng, true);
xhr.send(null);
}
// Affiche le type de visuel suivant la campagne
function affiche_visuel(idadv, idc, type, click, lng) {
var xhr = new init_xhr;
onglet('type'+type);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
document.getElementById('visuel_load').innerHTML = xhr.responseText;
document.getElementById('type_lot').value = type;
// Si visuel == à Script / Iframe / Flux XML
if (type == 7 || type == 8 || type == 11) {
document.getElementById('txt_lot').disabled = true;
document.getElementById('btn_lot').disabled = true;
}else{
document.getElementById('txt_lot').disabled = false;
document.getElementById('btn_lot').disabled = false;
}
if (click) ancre('#type');
}else{
document.getElementById('visuel_load').innerHTML = load_img;
}
}
xhr.open('GET', '../inc/visuels.load.php?idadv='+idadv+'&idc='+idc+'&type='+type+'&lng='+lng, true);
xhr.setRequestHeader('Cache-Control', 'no-cache');
xhr.send(null);
}
// Affiche les campagnes pour l'annonceur (header.inc.php)
function campagne_dispo(id_adv) {
var xhr = new init_xhr;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
document.getElementById('M2').innerHTML = xhr.responseText;
}
}
xhr.open('GET', '../annonceur/header.inc.php?id_adv='+id_adv, true);
xhr.send(null);
}
// Permuter un select dans un select (mailing.inc.php)
function permuter(id_source, id_cible) {
var source = document.getElementById(id_source);
var cible = document.getElementById(id_cible);
while (source.selectedIndex > -1) {
// On cherche la place de notre champ
for (var I = 0; I < cible.length; I++) {
if (cible.options[I].text > source.options[source.selectedIndex].text) { break; }
}
// On décale tous les champs dans la cible
for (var X = cible.length; X > I; X--) {
cible.options[X] = new Option(cible.options[(X-1)].text, cible.options[(X-1)].value);
}
// On insère le champ sélectionné dans la cible
cible.options[I] = new Option(source.options[source.selectedIndex].text, source.options[source.selectedIndex].value);
// On supprime le champ dans la source
source.options[source.selectedIndex] = null;
}
}
// Verifier tous les champs (mailing.inc.php)
function tout() {
var titre = document.form['titre'].value;
var corps = document.form['corps'].value;
var nbmail = document.form['liste2[]'].length;
if(!nbmail) {
lightbox(0, 'Please select at least one affiliate.');
return false;
}
if(!titre) {
lightbox(0, 'Please enter a title for your message.');
return false;
}
if(!corps) {
lightbox(0, 'Please write the body of your message.');
return false;
}
for (var n = 0; n < nbmail; n++) {
document.form['liste2[]'].options[n].selected = 'selected';
}
return true;
}
/*
* -------------------------------
* FONCTIONS AJAX COMPTE EDITEUR
* -------------------------------
*/
// Affiche les formats de mediatag (index.php)
function mediatag_format(id) {
var objet = document.getElementById(id); // Objet à traité (ids = n° de site)
var index = objet.selectedIndex; // Index de l'objet sélectionné
var ids = objet.value; // Valeur de l'index sélectionné (n° de site)
// Met à jour le container
document.getElementById('textarea').innerHTML = '';
if (index != 0) {
var xhr = new init_xhr;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
document.getElementById('select').innerHTML = xhr.responseText;
document.getElementById('select').style.display = 'inline';
}
}
xhr.open('GET', '../editeur/index.inc.php?action=format&ids='+ids, true);
xhr.send(null);
}else{
// Met à jour le container
document.getElementById('select').innerHTML = '';
}
}
// Affiche le tag du mediatag (index.php)
function mediatag_tag(id) {
var objet = document.getElementById(id); // Objet à traité (format = n° du format)
var index = objet.selectedIndex; // Index de l'objet sélectionné
var format = objet.value; // Valeur de l'index sélectionné (n° du format)
if (index != 0) {
var xhr = new init_xhr;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
document.getElementById('textarea').innerHTML = xhr.responseText;
}
}
xhr.open('GET', '../editeur/index.inc.php?action=tag&id='+format, true);
xhr.send(null);
}else{
// Met à jour le container
document.getElementById('textarea').innerHTML = '';
}
}
// Gestion des listes du catalogue (catalogue.php)
function catalogue(idsup, idc, div, action) {
var xhr = new init_xhr;
var requete = 'idsup='+idsup+'&idc='+idc+'&action='+action;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
if (xhr.responseText != '') {
document.getElementById(div).innerHTML = xhr.responseText;
}else{
document.getElementById(div).innerHTML = '';
}
}
}
xhr.open('GET', '../editeur/catalogue.inc.php?' + requete, true);
xhr.send(null);
}
// Postuler à une campagne (catalogue.inc.php)
function postuler(idsup, idc, ids, url) {
if (ids != '') {
var xhr = new init_xhr;
var requete = '';
switch (ids) {
case 'parlot':
requete = 'idsup='+idsup+'&idc='+idc+'&action=parlot';
break;
default:
requete = 'ids='+ids+'&idc='+idc+'&action=parsite';
break;
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
catalogue(idsup, idc, 'post'+idc, 'listing');
catalogue(idsup, idc, 'code'+idc, 'visuel');
switch (ids) {
case 'parlot':
lightbox(1, 'All your sites have been registered.');
break;
default:
url = url[0].toUpperCase() + url.substring(1);
lightbox(1, url + ' ' + 'was subscribe in the campaign.');
break;
}
}
}
xhr.open('GET', '../editeur/catalogue.inc.php?' + requete, true);
xhr.send(null);
}
}
// Récupère le tag des visuels (catalogue.inc.php)
function tag_visuel(idsup, ids, idc) {
if (ids != '') popup('../editeur/visuels.php?idsup='+idsup+'&ids='+ids+'&idc='+idc, 1000, 700);
}
// Affiche les visuels suivant le mode (mediatag.inc.php)
function mediatag_gestion(mode, id_tag) {
var xhr = new init_xhr;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 &&
xhr.status == 200) {
document.getElementById('mediatag_visuel_'+id_tag).innerHTML = xhr.responseText;
}else{
switch (mode) {
case 0:
document.getElementById('mediatag_'+id_tag).style.display = '';
document.getElementById('mediatag_visuel_'+id_tag).innerHTML = load_img;
lightbox(2, 'The mediatag is now manual.');
break;
case 1:
document.getElementById('mediatag_'+id_tag).style.display = 'none';
lightbox(2, 'The mediatag is now automatic.');
break;
}
}
}
xhr.open('GET', '../editeur/mediatag.inc.php?mode='+mode+'&id_tag='+id_tag, true);
xhr.setRequestHeader('Cache-Control', 'no-cache');
xhr.send(null);
}
// Vérification des cases à cocher du mediatag (mediatag.inc.php)
function verif_check(form) {
var nbrCasesCochees = 0;
var selection = form.elements['selection[]'];
for (var i = 0; i < selection.length; i++) {
if (selection[i].checked) { nbrCasesCochees++; }
}
if (nbrCasesCochees == 0) {
lightbox(0, 'You must select at least 1 banner.');
return false;
}
}
// Coche/decoche suivant l'id du checkbox (mediatag.inc.php)
function checkbox(visuels) {
// On récupère dans un tableau tous les id
var id = visuels.split('-');
// On traite chaque id séparement
for (X = 0; X < id.length; X++) {
var objet = document.getElementById(id[X]);
if (!objet.checked) { objet.checked = true; }else{ objet.checked = false; }
}
}
/*
* -------------------------------
* FONCTIONS DIVERSES
* -------------------------------
*/
// Gestion des balises html dans un textarea
// (voir dans /admin/newsletter.php)
function addTexte(id, debut, fin){
var input = document.getElementById(id);
input.focus();
/* pour Internet Explorer */
if (typeof document.selection != 'undefined') {
/* Insertion du code de formatage */
var range = document.selection.createRange();
var insText = range.text;
range.text = debut + insText + fin;
/* Ajustement de la position du curseur */
range = document.selection.createRange();
if (insText.length == 0) {
range.move('character', -fin.length);
}else{
range.moveStart('character', debut.length + insText.length + fin.length);
}
range.select();
}else{
/* Insertion du code de formatage */
var start = input.selectionStart;
var end = input.selectionEnd;
var insText = input.value.substring(start, end);
input.value = input.value.substr(0, start) + debut + insText + fin + input.value.substr(end);
/* Ajustement de la position du curseur */
var pos;
if (insText.length == 0) {
pos = start + debut.length;
}else{
pos = start + debut.length + insText.length + fin.length;
}
input.selectionStart = pos;
input.selectionEnd = pos;
}
}
// Affiche/masque les div de la FAQ du site vitrine
function affCache(id, total) {
var div = document.getElementById(id);
for (var i = 1; i <= total; i++) {
document.getElementById('faq'+i).style.display = 'none';
}
div.style.display = 'block';
}
// Force un div à prendre une hauteur fixe
function divHeight(id, height) {
var div = document.getElementById(id);
div.style.height = height;
}
// Sélectionne des cases à cocher pour email catcheur
function select_profil() {
var objet = document.getElementById('form1');
for (var i = 0; i <= 13; i++) {
objet.elements['options['+i+']'].checked = false;
}
objet.elements['options[2]'].checked = true;
objet.elements['options[4]'].checked = true;
objet.elements['options[9]'].checked = true;
objet.elements['options[10]'].checked = true;
objet.submit();
}
// Convertit les caractères spéciaux en entités HTML et inversement
function taghtmlchars(id_champ, id_bouton, option) {
var champ = document.getElementById(id_champ);
var bouton = document.getElementById(id_bouton);
var tag = champ.value;
if (tag != '') {
switch (option) {
// Encode les caractères HTML
case 1:
tag = tag.replace(/&/g, '&');
tag = tag.replace(/\"/g, '"');
tag = tag.replace(/\'/g, ''');
tag = tag.replace(//g, '>');
bouton.title = 'Adapts to install the tag on a website';
bouton.value = 'Tag for Web Site';
bouton.onclick = function() { taghtmlchars(id_champ, id_bouton, 2); }
break;
// Décode les caractères HTML
case 2:
tag = tag.replace(/&/g, '&');
tag = tag.replace(/"/g, '"');
tag = tag.replace(/'/g, '\'');
tag = tag.replace(/</g, '<');
tag = tag.replace(/>/g, '>');
bouton.title = 'Adapts to install the tag on a blog or a forum';
bouton.value = 'Tag for Blog / Forum';
bouton.onclick = function() { taghtmlchars(id_champ, id_bouton, 1); }
break;
}
// Récupère le nouveau tag
champ.value = tag; champ.select();
}
}