/*
 * FONCTIONS DE GESTION DE LA PLATEFORME
 * -------------------------------------
 * © mediaffiliation.com
 */

var defaut  = "#FFFFFF"; // Couleur de fond par defaut
var exclam  = "#FFFDCB"; // Couleur de fond si erreur

// 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 += "- your 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 += "- your e-mail is incorrect<br>";
		}
		
	}

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

	if (objet.elements['prenom'].value == ""){
		objet.elements['prenom'].style.backgroundColor = exclam;
		msg += "- your first name<br>";
	}
	
	if (objet.elements['mdp'].value == ""){
		objet.elements['mdp'].style.backgroundColor = exclam;
		msg += "- password <br>";
	}	

	// Si message, une erreur; on ne valide pas
	if (msg != "")
	{
		var msg2 = "Please complete the following fields :<br>";
            msg2 += msg;

		lightbox(0, msg2); return false;

	}
	// Sinon pas de message --> pas d'erreur; on peut valider
	else{
	
		for (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() {
	
	// Mozilla firefox
	if (window.XMLHttpRequest) { 
		var xhr = new XMLHttpRequest();
		return xhr;
	
	// Internet Explorer	
	}else if (window.ActiveXObject) {
		var xhr = new ActiveXObject("Microsoft.XMLHTTP");
		return xhr;
	
	// Erreur;	
	}else{ 
		lightbox(0, 'Your browser does not support AJAX.');		
		
	}
		
}

// Creation Ajax pour récuperer disponibilite login (qui est l'email)
function File(fichier) {

	// Creation d'un objet xhr par appel de fonction
	var xhr = new init_xhr;
  
	xhr.open("GET", fichier, false);
	xhr.send(null);

	// Le serveur nous indique qu'il est prêt
	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, 'The email is required !');
                objet.elements['email'].style.backgroundColor = exclam;
                objet.elements['email'].focus();
        }else{
            lightbox(0, 'This email is already registered in our database,<br>multiple accounts is strictly prohibited.');

        }

        return false;

     }

}


// ------------------------------------------------ //

// Vérification simple d'un formulaire
function verif_champ(form) {
	
	// Déclaration de variable
	var X = 0;
	
	// Compte le nombre de champ dans le formulaire
	for (var i = 0; i < form.length; i++) {
		
		// Récupère le champ dans une variable objet
		var objet = form.elements[i];
		
		// Si la variable objet possède un nom mais pas de contenu
		if (objet.name != ""){ if (objet.value == "") { X++; }	}
		
	}
	
	// Si des champs ne sont pas complété ne fait rien
	if (X != 0) { 
		lightbox(0, 'One or more fields are not completed.');			
		return false;	
	}
	
}
	
	
// ------------------------------------------------ //

// Pour afficher des fenêtre 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, type) {
	
	var objet = document.getElementById(id);

	switch (type) {
		
		case 'on':
		objet.style.display = 'block';
		break;
		
		case 'off':
		objet.style.display = 'none';
		break;
		
	}
	
}


// ------------------------------------------------ //

// Gestion des onglets dynamiques 
// (voir /admin/ et /annonceur/ ...campagnes_visuels.php)
function onglet(id){
	
	// Récupère la propriété name de l'id
    var name = document.getElementById(id).name;
	
    // Récupère le nombre total d'id portant le même nom		
    var total = document.getElementsByName(name).length;
			
	// On désactive tout par défaut
    for (var i = 1; i <= total; i++) {

		// Si l'objet "onglet" existe on le désélectionne
        if (document.getElementById(name + i)) {
			document.getElementById(name + i).className = 'onglet-inactif';
		}
					
		// Si l'objet "contenu de onglet" existe on le masque
        if (document.getElementById(name + '_' + i)) {
			document.getElementById(name + '_' + i).className = 'contenu-inactif';
		}		
		
	}
	
	// On affiche l'onglet de notre id
    if (document.getElementById(id)) {
		document.getElementById(id).className = 'onglet-actif';
	}
				
	// On affiche le contenu de l'onglet de notre id
    if (document.getElementById(name + '_' + id)) {
		document.getElementById(name + '_' + id).className = 'contenu-actif';
	}
	    
}


// ------------------------------------------------ //

var timer = "5000";			
var time_out; 

// Affiche le sous menu de la barre de navigation 
// (Dans header.php pour chaque compte)
function affiche_menu(id) {
	
	var objet = document.getElementById(id);
	
		for (var i = 1; i<=10; i++) {
			
			if (document.getElementById('M'+i)) { 
				document.getElementById('M'+i).style.display = 'none'; 
				clearTimeout(time_out);
			}
			
		}
		
	if (objet) { 
		
		objet.style.display = 'block'; 
		time_out = setTimeout("auto_close('"+objet.id+"')", timer);
		
	}	
	
}

function auto_close(id) {

	document.getElementById(id).style.display = 'none';		
	clearTimeout(time_out);
	
}
	
			
// ------------------------------------------------ //

// Affiche le tableau du visuel à ajouter à la campagne
// (voir  /admin/ et /annonceur/ ...campagnes_visuels.php)
function onglet_visuel(id, nom, url, lng) {
	
	// Creation d'un objet xhr par appel de fonction
	var xhr = new init_xhr;

	// Appel de la fonction pour activer l'onglet
	onglet("menu"+id);
	
	// Redirection du visuel par défaut
	if (url == '') url = 'http://';
	
	// Traitement de la requete http initialiser par xhr et son état (statut)
	xhr.onreadystatechange = function() {
		
		if (xhr.readyState == 4 && xhr.status == 200) {
			
			// On récupère le contenu de la page appelé
			document.getElementById("visuel_installe").innerHTML = xhr.responseText;
			document.getElementById("url").value = url;
						
		}
		
	}			
	
	// Envoi la commande au serveur
	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) {
	
	// Creation d'un objet xhr par appel de fonction
	var xhr = new init_xhr;

	// Appel de la fonction pour activer l'onglet
	onglet("type"+type);
	
	// Traitement de la requete http initialiser par xhr et son état (statut)
	xhr.onreadystatechange = function() {
		
		if (xhr.readyState == 4 && xhr.status == 200) {
			
			// On récupère le contenu de la page appelé
			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 == 13) {
				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;		
				
			}
			
			// Active l'onglet sous condition
			if (click == true) { ancre("#type"); }

		}else{
			
			// On appel une image pour patienter
			load_img = '<img src="../images/load.gif" border="0" width="48" height="48">';
			
			// On affiche un message d'attente
			document.getElementById("visuel_load").innerHTML = load_img;		
			
		}
		
	}			
	
	// Envoi la commande au serveur
	xhr.open("GET", "../inc/visuels.load.php?idadv="+idadv+"&idc="+idc+"&type="+type, true);
	xhr.send(null);

}


// ------------------------------------------------ //

// Permuter le contenu d'un select dans un autre select
// (voir dans /inc/mailing.inc.php)
function permuter(source, cible) {

	var source = document.getElementById(source);			
	var cible  = document.getElementById(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;
		
    }

}

// Permet de verifier tous les champs et de selectionner la liste2 (onsubmit)
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 site.');	
		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;
	
}


// ------------------------------------------------ //

// Postuler à une campagne de deux façons
function postuler(idc, idsup) {

	var objet = document.getElementById(idc);	// Objet à traité (idc = n° de campagne)
	var index = objet.selectedIndex;			// Index de l'objet sélectionné	
	var ids	  = objet.value;					// Valeur de l'index sélectionné (n° de site)
	var total = objet.options.length - 2		// Nombre d'éléments dans le select
	
	if (index != 0 && total != 0) {
		
		// Creation d'un objet xhr
		var xhr = new init_xhr;

		// Détermine la requete
		if (ids == 'parlot') {
			var requete = "idsup="+idsup+"&idc="+idc+"&action=parlot";
								
		}else{
			var requete = "ids="+ids+"&idc="+idc+"&action=parsite";

		}

		// Traitement de la requete http
		xhr.onreadystatechange = function() {
			
			if (xhr.readyState == 4 && xhr.status == 200) {
								 
				if (ids == 'parlot') {

					objet.options[1].text = xhr.responseText;
					objet.disabled = true;

					lightbox(1, xhr.responseText+'.');

				}else{
					
					objet.options[1].text = "Add all my sites ("+(total-1)+")";
					objet.options[index] = null;
					
					if ((objet.options.length - 2) == 0) {
						objet.options[0].text = 'All your sites are listed';
						objet.disabled = true;
					}

					lightbox(1, xhr.responseText+'.');
					
				}
					
			}
			
		}			
		
		// Envoi la commande au serveur
		xhr.open("GET", "../editeur/catalogue.inc.php?" + requete, true);		
		xhr.send(null);		
		
	}

}

// Gestion de la désinscription d'un site à une campagne
// (voir dans /editeur/campagne.php)
function campagne(idc, ids, nom) {
	
	var objet = document.getElementById(idc);	// Objet à masquer
	var msg	  = "Unsubscribe campaign ''"+nom+"'' ?";
			
	if (confirm(msg)) {

		// Creation d'un objet xhr par appel de fonction
		var xhr = new init_xhr;
		
		// Traitement de la requete http initialiser par xhr et son état (statut)
		xhr.onreadystatechange = function() {
			
			if (xhr.readyState == 4 && xhr.status == 200) {
				
				// Recharge la page
				location.reload(); 
				
			}
			
		}			
		
		// Envoi la commande au serveur
		xhr.open("GET", "../editeur/catalogue.inc.php?ids="+ids+"&idc="+idc+"&action=supprimer", true);
		xhr.send(null);
					
	}
				
}

// Affiche les visuels de la campagne pour le site affilié
// (voir dans /editeur/visuels.php)
function tag_visuel(idc, ids, type, click) {
	
	// Creation d'un objet xhr par appel de fonction
	var xhr = new init_xhr;

	// Appel de la fonction pour activer l'onglet
	onglet("type"+type);
	
	// Traitement de la requete http initialiser par xhr et son état (statut)
	xhr.onreadystatechange = function() {
		
		if (xhr.readyState == 4 && xhr.status == 200) {
			
			// On récupère le contenu de la page appelé
			document.getElementById("tag_visuel").innerHTML = xhr.responseText;
											
			// Active l'onglet si on a effectué un clic
			if (click == true) { ancre("#type"); }

		}else{
			
			// On appel une image pour patienter
			load_img = '<img src="../images/load.gif" border="0" width="48" height="48">';
			
			// On affiche un message d'attente
			document.getElementById("tag_visuel").innerHTML = load_img;		
			
		}
		
	}			

	// Envoi la commande au serveur
	xhr.open("GET", "../editeur/visuels.tag.inc.php?idc="+idc+"&ids="+ids+"&type="+type, true);
	xhr.send(null);

}


// ------------------------------------------------ //

// Affiche les formats de mediatag pour le site affilié
// (voir dans /editeur/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 url   = objet.options[index].text;		// Texte contenu dans l'index sélectionné			
	var ids	  = objet.value;					// Valeur de l'index sélectionné (n° de site)

	// Mise à jour par defaut du container
	document.getElementById("textarea").innerHTML = '<textarea cols="65" rows="2" class="champ"></textarea>';		

	if (index != 0) {

		// Creation d'un objet xhr par appel de fonction
		var xhr = new init_xhr;
		
		// Traitement de la requete http initialiser par xhr et son état (statut)
		xhr.onreadystatechange = function() {
			
			if (xhr.readyState == 4 && xhr.status == 200) {
							
				// On récupère le contenu de la page appelé
				document.getElementById("select").innerHTML = xhr.responseText;
				document.getElementById("select").style.display = "inline";
	
			}
			
		}			
					
		// Envoi la commande au serveur
		xhr.open("GET", "../editeur/index.inc.php?action=format&ids="+ids, true);
		xhr.send(null);
	
	}else{

		// Remet à jour le container
		document.getElementById("select").innerHTML = '<select id="format" class="champ"><option>Select mediatag</option></select>';		
					
	}
		
}

// Affiche le tag de mediatag pour le site affilié
// (voir dans /editeur/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) {

		// Creation d'un objet xhr par appel de fonction
		var xhr = new init_xhr;
				
		// Traitement de la requete http initialiser par xhr et son état (statut)
		xhr.onreadystatechange = function() {
			
			if (xhr.readyState == 4 && xhr.status == 200) {
							
				// On récupère le contenu de la page appelé
				document.getElementById("textarea").innerHTML = xhr.responseText;
	
			}
			
		}			
					
		// Envoi la commande au serveur
		xhr.open("GET", "../editeur/index.inc.php?action=tag&id="+format, true);
		xhr.send(null);
				
	}else{
		
		// Remet à jour le container
		document.getElementById("textarea").innerHTML = '<textarea cols="65" rows="2" class="champ"></textarea>';
		
	}
		
}


// ------------------------------------------------ //

// Affiche les visuels, ou pas, suivant le mode choisit
// (voir dans /editeur/mediatag.inc.php)
function mediatag_gestion(mode, id_tag) {
	
	// Creation d'un objet xhr par appel de fonction
	var xhr = new init_xhr;
	
	// Traitement de la requete http initialiser par xhr et son état (statut)
	xhr.onreadystatechange = function() {
		
		if (xhr.readyState == 4 && xhr.status == 200) {
						
			// On récupère le contenu de la page appelé
			document.getElementById('mediatag_visuel_'+id_tag).innerHTML = xhr.responseText;

		}else{
			
			switch (mode) {
				
				case 0:

					// On affiche l'objet
					document.getElementById('mediatag_'+id_tag).style.display = '';
					
					// On appel une image pour patienter
					load_img = '<img src="../images/load.gif" border="0" width="48" height="48">';
					
					// On affiche un message d'attente
					document.getElementById('mediatag_visuel_'+id_tag).innerHTML = load_img;
					
					// Affiche un message
					lightbox(2, 'The mediatag is now manual.');
					
				break;
				
				case 1:

					// On masque l'objet (gestion automatique)
					document.getElementById('mediatag_'+id_tag).style.display = 'none';

					// Affiche un message
					lightbox(2, 'The mediatag is now automatic.');
					
				break;
				
			}
			
		}			

	}
			
	// Envoi la commande au serveur
	xhr.open("GET", "../editeur/mediatag.inc.php?mode="+mode+"&id_tag="+id_tag, true);
	xhr.send(null);
	
}

// Script de vérification des case à cocher du mediatag
// (voir dans /editeur/mediatag.inc.php)
function verif_check(form){
	
    var nbrCasesCochees = 0;
	
    selection = form.elements["selection[]"];
	
	for (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 la valeur de l'id du checkbox
// (voir dans /editeur/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; }

	}
	
}
	

// ------------------------------------------------ //

// 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 les campagnes disponibles du compte annonceur
// (voir dans /annonceur/header.inc.php)		
function campagne_dispo(id_adv) {

	// Creation d'un objet xhr par appel de fonction
	var xhr = new init_xhr;
	
	// Traitement de la requete http initialiser par xhr et son état (statut)
	xhr.onreadystatechange = function() {
		
		if (xhr.readyState == 4 && xhr.status == 200) {
						
			// On récupère le contenu de la page appelé
			document.getElementById("M2").innerHTML = xhr.responseText;

		}
		
	}			
				
	// Envoi la commande au serveur
	xhr.open("GET", "../annonceur/header.inc.php?id_adv="+id_adv, true);
	xhr.send(null);	
		
}


// ------------------------------------------------ //

// 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;
    
}