/*
 * FONCTIONS GENERALES DE LA PLATEFORME
 * © mediaffiliation.com
 */

var load_img    = '<img src="../images/load.gif" border="0" width="48" height="48" alt="load">';
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 une case à cocher
function accept_cgv(form) {
    form.compte.disabled = !form.reglement.checked;
}

// 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 etape(num, nbr) {

	var objet 	= document.getElementById('form1');
	var msg 	= '';

	if (objet.elements['email'].value == ""){
		objet.elements['email'].style.backgroundColor = exclam;
		msg += '- votre email<br>';

	}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 += '- votre e-mail est incorrect<br />';
		}

	}

	if (objet.elements['nom'].value == ""){
		objet.elements['nom'].style.backgroundColor = exclam;
		msg += '- votre nom<br />';
	}

	if (objet.elements['prenom'].value == ""){
		objet.elements['prenom'].style.backgroundColor = exclam;
		msg += '- votre prenom<br />';
	}

	if (objet.elements['mdp'].value == ""){
		objet.elements['mdp'].style.backgroundColor = exclam;
		msg += '- votre mot de passe<br />';
	}

	// Si message, une erreur; on ne valide pas
	if (msg != '') {

        var msg2 = 'Veuillez remplir les champs suivants :<br />';
            msg2 += msg;

        lightbox(0, msg2); return false;

    // Sinon pas de message --> pas d'erreur; on peut valider
	}else{

		for (var i = 1; i <= nbr; i++) {

			if (i == num) {
				document.getElementById('menu-'+i).className = 'actif';
				document.getElementById('tab-'+i).className = 'on tab-contenu';

			}else{
				document.getElementById('menu-'+i).className = 'inactif';
				document.getElementById('tab-'+i).className = 'off';

			}

		}

	}

}


// 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, 'Votre navigateur n\'est pas compatible 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 deja utilise
function CheckDispoLogin(obj, k) {

     var objet = document.getElementById('form1');
     var login = objet.elements['email'].value;

     //On contrôle que le login demandé est disponible
     var result = File('../javaxlogin.php?login='+escape(login)+'&k='+k);

     if (result == 1 && k == 'w') {

        return etape(2, 4);

     }else if (result == 1 && k == 'a') {

        return etape(2, 3);

     }else if(result == 0) {

        if (login == '') {
            lightbox(0, 'L\'adresse e-mail est obligatoire !');
            objet.elements['email'].style.backgroundColor = exclam;
            objet.elements['email'].focus();
        }else{
            lightbox(0, 'Cette adresse e-mail est déjà inscrite dans notre base.<br>Attention les comptes multiples sont strictement interdits.');

        }

        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, 'Un ou plusieurs champs ne sont pas complétés.');
		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 un objet 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';

}


/*
 * -------------------------------------
 * 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, 'Veuillez sélectionner au moins un site.');
		return false;
	}

	if(!titre) {
		lightbox(0, 'Veuillez indiquer un titre à votre message.');
		return false;
	}

	if(!corps) {
		lightbox(0, 'Veuillez écrire le corps de votre 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 = '<textarea cols="65" rows="2" class="champ"></textarea>';

    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 = '<select id="format" class="champ"><option>Sélection du mediatag</option></select>';

    }

}


// 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 = '<textarea cols="65" rows="2" class="champ"></textarea>';

    }

}


// 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, 'Tous vos sites ont été inscrits à la campagne.');
                    break;

                    default:
                        url = url[0].toUpperCase() + url.substring(1);
                        lightbox(1, url + ' ' + 'a été inscrit à la campagne.');
                    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(idc, ids) {

    if (ids != '') popup('../editeur/visuels.php?&idc='+idc+'&ids='+ids, 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, 'Le mediatag est maintenant en gestion manuelle.');
                break;

                case 1:
                    document.getElementById('mediatag_'+id_tag).style.display = 'none';
                    lightbox(2, 'Le mediatag est maintenant en gestion automatique.');
                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, 'Vous devez sélectionner au moins 1 visuel !');
        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, '&amp;');
                tag = tag.replace(/\"/g, '&quot;');
                tag = tag.replace(/\'/g, '&#039;');
                tag = tag.replace(/</g, '&lt;');
                tag = tag.replace(/>/g, '&gt;');

                bouton.title = 'Adapte le tag pour l\'installer sur un site web';
                bouton.value = 'Tag pour Site Web';

                bouton.onclick = function() { taghtmlchars(id_champ, id_bouton, 2); }

            break;

            // Décode les caractères HTML
            case 2:

                tag = tag.replace(/&amp;/g, '&');
                tag = tag.replace(/&quot;/g, '"');
                tag = tag.replace(/&#039;/g, '\'');
                tag = tag.replace(/&lt;/g, '<');
                tag = tag.replace(/&gt;/g, '>');

                bouton.title = 'Adapte le tag pour l\'installer sur un blog ou un forum';
                bouton.value = 'Tag pour Blog/Forum';

                bouton.onclick = function() { taghtmlchars(id_champ, id_bouton, 1); }

            break;

        }

        // Récupère le nouveau tag
        champ.value = tag; champ.select();

    }

}