// JavaScript Document du module admin

/*************************************************************************************************
ajout de la fonction modifieValid qui permet d'appeler le script php de copix pour effectuer la modif
@params : adressmail, date enregistrement mail , validitÚ du mail (booleen)
**************************************************************************************************/
function modifieValid(uneAdress,uneDate,validite,id) {
    window.location.replace("index.php?module=admin&action=modifieAdressMail&adress="+uneAdress+"&date="+uneDate+"&valid="+validite+"&idmail="+id+"");
}
/***************************************************************************************************
ajout de la fonction modifieValidClient qui permet d'appeler l'action qui permet la mise Ó jour de la table prospect/client
@params:codeclmient, validite
**********************************************************************************************************/
function modifieValidClient(lecodeClient,lavalid) {
	window.location.replace("index.php?module=admin&action=modifieActivClient&codeClient="+lecodeClient+"&activ="+lavalid+"");
}
/***************************************************************************************************
ajout de la fonction modifieTypeClient qui permet d'appeler l'action qui permet la mise Ó jour de la table prospect/client lors d'une modification du type
@params:codeclient, type
**********************************************************************************************************/
function modifieTypeClient(lecodeClient,letype) {
	window.location.replace("index.php?module=admin&action=modifieTypeClient&codeClient="+lecodeClient+"&typeClient="+letype+"");
}
/***************************************************************************************************
ajout de la fonction supprimeClient qui permet d'appeler l'action qui permet la suppression d'un enregistrement de la table prospect/client
@params:codeclient
**********************************************************************************************************/
function supprimeClient(lecodeClient) {
    if (confirm("Vous allez supprimez un enregistrement; Voulez vous confirmez cette suppression?")){
    	window.location.replace("index.php?module=admin&action=supClient&codeClient="+lecodeClient+"");
	}
}
/***************************************************************************************************
ajout de la fonction ouvrirFicheClient qui permet d'appeler l'action qui permet l'affichage d'une fiche client(popup) pour code client passÚ en para
@params:codeclient
**********************************************************************************************************/
function ouvrirFicheClient(lecodeClient) {
    window.open("index.php?module=admin&action=voirFicheClient&codeClient="+lecodeClient+"","FicheClient","toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=488,height=600,top=0,left=0");
}
/***************************************************************************************************
ajout de la fonction ouvrirFicheItem qui permet d'appeler l'action qui permet l'affichage d'une fiche item(popup) pour code item et la table passÚs en para
@params:idItem,table
**********************************************************************************************************/
function ouvrirFicheItem(idItem,laTable) {
	window.open("index.php?module=admin&action=obtUnItem&IDitem="+idItem+"&item="+laTable+"","FicheItem","toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=400,height=300,top=0,left=0");
}
/***************************************************************************************************
ajout de la fonction voirMessages qui permet d'appeler l'action qui permet l'affichage des messages(popup) pour code client passÚ en para
@params:codeclient
**********************************************************************************************************/
function voirMessages(lecodeClient) {
    window.open("index.php?module=admin&action=voirMessages&codeClient="+lecodeClient+"","Messages","toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=488,height=600,top=0,left=0");
}
/***************************************************************************************************
ajout de la fonction adminCellule qui permet d'appeler l'action qui permet l'affichage du contenu d'une cellule(popup)
@params:latable,lazone,la cle primaire,la cle secondaire
**********************************************************************************************************/
function adminCellule(latable,lazone,lapk,lask) {
    window.open("index.php?module=admin&group=admincellules&action=getCellule&table="+latable+"&zone="+lazone+"&pk="+lapk+"&sk="+lask+"","AdminCellules","toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=750,height=450,top=0,left=0");
}
/***************************************************************************************************
ajout de la fonction supImg qui permet d'appeler l'action qui permet la suppression d'une image
@params:l'url de l'image
**********************************************************************************************************/
function supImg(lurl) {
	if (confirm("Vous allez supprimer une image; Voulez vous confirmez cette suppression?")){
	   window.location.replace("index.php?module=admin&action=supImg&urlImg="+lurl+"");
	}
}
/***************************************************************************************************
ajout de la fonction delItem qui permet d'appeler l'action qui permet la suppression d'un item avec un message de confirmation pour le delete
@params:tableItem et l'idItem
**********************************************************************************************************/
function delItem(laTable,idItem) {
	if (confirm("Vous allez supprimer un item du menu et tout le contenu rattachÚ Ó cet item. Confirmez vous cette suppression?")){
    	window.location.replace("index.php?module=admin&action=supItem&item="+laTable+"&idItem="+idItem+"");
	}
}
/****************************************************************************************************
ajout de l afonction delChapitre qui permet d'appeler l'action correspondante avec un message de confirmation qui prÚcÚde le delete
@params: l'ID du chapitre Ó supprimer
******************************************************************************************************/
function delChapitre(IDchapitre) {
	if (confirm("Vous allez supprimer un chapitre et tout les paragraphes rattachés à ce chapitre. Confirmez vous cette suppression?")){
		window.location.replace("index.php?module=admin&group=adminpages&action=DelChap&chapID="+IDchapitre+"");
	}
}
/****************************************************************************************************
ajout de la fonction delParagraphe qui permet d'appeler l'action correspondante avec un message de confirmation qui prÚcÚde le delete
@params:l'ID du paragraphe Ó supprimer
******************************************************************************************************/
function delParagraphe(IDparagraphe) {
	if (confirm("Vous allez supprimer un paragraphe. Confirmez vous cette suppression?")){
		window.location.replace("index.php?module=admin&group=adminpages&action=delPara&paraID="+IDparagraphe+"");
	}
}
/*****************************************************************************************************
ajout de la fonction majContenu(le nouveau contenu)pour la gestion de la modification de contenu de la newsletter
@param : le nouveau contenu de la newsletter
********************************************************************************************************/
function majContenu(newContenu,IDzoneModif){
	$(IDzoneModif).innerHTML=newContenu;
}
/*********************************************************************************************************************
 *
 *********************************NOUVELLE FONCTIONS POUR NOUVELLE ADMIN**********************************************
 *
 ********************************************************************************************************************/
/***permet la mise Ó jour de la visibilite d'un theme rub ou sujet icone oeil*********************************************************************/
function onOffItem(litem,idItem,IDimg,visi){
    var url = "index.php?module=admin&group=menus&action=onOffItem&item="+litem+"&idItem="+idItem+"&IDimg="+IDimg;
    new Ajax(url, {method: 'get'}).request();
    var lurl=location.hostname+location.pathname.replace(/index.php?/,'');

    if(visi==1){
        $(IDimg).src="http://"+lurl+"img/tools/disable.png";
        $(IDimg).setAttribute('onclick','javascript:onOffItem(litem,idItem,IDimg,"0"');
        $(IDimg).onclick=function(){onOffItem(litem,idItem,IDimg,'0')};
    }
    else {
        $(IDimg).src="http://"+lurl+"img/tools/enable.png";
        $(IDimg).setAttribute('onclick','javascript:onOffItem(litem,idItem,IDimg,"1"');
        $(IDimg).onclick=function(){onOffItem(litem,idItem,IDimg,'1')};
    }
}
//*******************************************************************************************************************
// permet la mise a jour du nom d'un item
//*******************************************************************************************************************
function modItem(valeurItem,leNomItem,idItem){
    if (leNomItem=="theme") { var idSpan=idItem; }
    else { var idSpan='nom'+leNomItem+'-'+idItem; }

	var url="index.php?module=admin&group=menus&action=modNomItem&nomItem="+leNomItem+"&idItem="+idItem+"&valeurItem="+valeurItem;
	new Ajax(url, {method: 'get',update: $(idSpan)}).request();
}
/*****************************************************************************************************************************
/**permet l'ajout d'un item
*****************************************************************************************************************************/
function ajoutItem(nomItem,idItemParent,valeurNveauItem,leCadre){
	var url="index.php?module=admin";
	var pars='group=menus&action=addItem&nomItem='+nomItem+'&idItemParent='+idItemParent+'&nveauItem='+valeurNveauItem+'&cadre='+leCadre;
	new Ajax(url, {method: 'get',data:pars,evalScripts:true}).request();
}
/*********************************************************************************************************************************
/** permet la suppression d'un item
*************************************************************************************************************************************/
function suppItem(idItem,leTypeMenu,leCadre){
	if (confirm("Vous allez supprimer un menu. Confirmez vous cette suppression?")){
		var url="index.php?module=admin";
		var pars='group=menus&action=delItem&idItem='+idItem+'&typeMenu='+leTypeMenu+'&cadre='+leCadre;
		new Ajax(url,{method:'get',data:pars,evalScripts:true}).request();
	}
}
/*********************************************************************************************************************************
/** permet d'ajouter une page au site
*************************************************************************************************************************************/
function ajoutPage(leNomPage,leCadre){
		var url="index.php?module=admin";
		var pars='group=adminpages&action=addPage&nomPage='+leNomPage+'&cadre='+leCadre;
		//alert(pars);
		new Ajax(url,{method:'get',data:pars,evalScripts:true}).request();
}
/*********************************************************************************************************************************
/** permet de suppripmer une page au site avec changt de style Ó display none aprÚs la suppression
*************************************************************************************************************************************/
function suppPage(leSujet,leDiv){
    if (confirm("Vous allez supprimez une page. Confirmez cette suppression ?")){
		var url="index.php?module=admin";
		var pars='group=adminpages&action=delPage&sujet='+leSujet;
		new Ajax(url,{method:'get',data:pars,onComplete:function(){$(leDiv).setOpacity(0)}}).request();
    }
}
/*****************************************************************************************************
ajout de la fonction createSort (conteneur,classHandle,type) qui gere le drag & drop entre item
********************************************************************************************************/
function createSort (conteneur, classHandle, type) {
    var sort = new Sortables((conteneur), {
        handles: classHandle
    });

    sort.addEvent('onComplete',function() {
        var sortArray = new Array();

        conteneur.getChildren().each(function(element,i){
            if (element.tagName=='DIV') {
                sortArray.push(element.id);
            }
        });

        var url_MAJpos = "index.php?module=admin&group=adminpages&action=SaveNewOrder&arrayNewOrder="+sortArray+"&type="+type;

        new Ajax(url_MAJpos, { // MAJ via Ajax
            method: 'get'
        }).request();

    });
}
/*****************************************************************************************************
ajout de la fonction createSlider (zoneSlider,slider,valeurLargeurGauche,valeurLargeurDroite,wCelGauche) qui crée les slider (modification de la largeur des cellules)
********************************************************************************************************/
function createSlider(zoneSlider,slider,valeurLargeurGauche,valeurLargeurDroite,wCelGauche) {
    var mySlide = new Slider(zoneSlider, slider, {
        steps: 100,
        onChange: function(step){
            valeurLargeurGauche.setHTML(step);
            valeurLargeurDroite.setHTML('100'-step);
        }
    }).set(wCelGauche);
}
/*****************************************************************************************************
ajout de la fonction majAffSlider (table,sujet,IDpara) qui gère la MAJ visuel des slider (modification de la largeur des cellules)
********************************************************************************************************/
function majAffSlider(table, sujet, IDpara) {
    var largeurCellGauche = $('valeurLargeurGauche-'+IDpara+'').innerHTML;
    var largeurCellDroite = $('valeurLargeurDroite-'+IDpara+'').innerHTML;
    var paraMAJ=$('div_contain_text-'+IDpara+'')
    var url = "index.php?module=admin&group=admincellules&action=updatewidthcell&table="+table+"&entreeBDD="+sujet+"&largeurCellGauche="+largeurCellGauche+"&largeurCellDroite="+largeurCellDroite;

    new Ajax(url, { // MAJ via Ajax
        method: 'get',
        update: paraMAJ
    }).request();
}
/*****************************************************************************************************
ajout de la fonction majEyeChap (IDchap,copixurl) qui gère la MAJ visuel de l'oeil renseignant si le chapitre et visible ou non côté client
********************************************************************************************************/
function majEyeChap(IDchap,copixurl) {
    var url = "index.php?module=admin&group=adminpages&action=hideChap&IDchap="+IDchap+"&copixurl="+copixurl;

    new Ajax(url, {
        method: 'get',
        update: $('eye_'+IDchap+'')
    }).request();
}
/*****************************************************************************************************
ajout de la fonction majEyePara(IDpara,copixurl) qui gère la MAJ visuel de l'oeil renseignant si le paragraphe et visible ou non côté client
********************************************************************************************************/
function majEyePara(IDpara,copixurl) {
    var url = "index.php?module=admin&group=adminpages&action=hidePara&IDpara="+IDpara+"&copixurl="+copixurl;

    new Ajax(url, {
        method: 'get',
        update: $('eye_'+IDpara+'')
    }).request();
}
/*****************************************************************************************************
ajout de la fonction majEyeIntro(sujet,copixurl) qui gère la MAJ visuel de l'oeil renseignant si l'intro et visible ou non côté client
********************************************************************************************************/
function majEyeIntro(sujet,copixurl) {
    var url = "index.php?module=admin&group=adminpages&action=hideIntro&sujet="+sujet+"&copixurl="+copixurl;

    new Ajax(url, {
        method: 'get',
        update: $('eye_intro')
    }).request();
}
/*****************************************************************************************************
ajout de la fonction createFxSlide(IDchap) qui gère l'apparition/disparition des paragraphes d'un chapitre
********************************************************************************************************/
function createFxSlide(IDchap) {
    var mySlide = new Fx.Slide('conteneur_paragraphes_'+IDchap+'');

    $('toggle_'+IDchap+'').addEvent('click', function(e){
    	e = new Event(e);
    	mySlide.toggle();
    	e.stop();
    });
}
/******************************************************************************************************
ajout de la fonction createDragDrop(idCible,classObjDeplaces,typeCible) qui gère la creation d'une liaison entre une page et un item (rubrique, sujet...)
@params : string idCible, string classObjDeplaces, string typeCible
********************************************************************************************************/
function createDragDrop(idCible,classObjDeplaces,typeCible) {
    var drop = idCible; // l'ID du div vers lequel je fais mon drag & drop
    var dropFx = drop.effect('color', {wait: false}); // pour modifier le background-color de mon receveur
                                                      // !! wait is needed so that to toggle the effect !

    classObjDeplaces.each(function(item){ // pour chacuns de mes items "receveur"
    	item.addEvent('mousedown', function(e) {
            e = new Event(e).stop();

    		var clone = this.clone() // ce qui gere la creation de mon clone (un objet semblable a celui que je deplace)
    			.setStyles(this.getCoordinates()) // this returns an object with left/top/bottom/right, so its perfect
    			.setStyles({'opacity': 0.5, 'position':'absolute', 'width':'20px', 'height':'20px'})
    			.addEvent('emptydrop', function() {
    				this.remove();
    				drop.removeEvents();
    			}).inject(document.body);

    		drop.addEvents({
    			'drop': function() { // quand je lache mon objet sur mon "receveur"
    				drop.removeEvents();
    				clone.remove(); // je supprime mon clone (celui qui suit ma souris)
                    //item.clone().inject(drop); // si j'ajoute un clone de mon objet sous mon receveur, pour marquer visuellement la liaison

                    // je recupere le nom de ma nouvelle page sous la forme imgDivNomDeMaPage (j'enleve donc les 3 premiers caracteres)
                    var nomPage=item.id.substr(6);

                    if (typeCible=="rubrique") {
                        // je recupere l'id de ma rubrique "cible"" sous la forme nomRub-id (j'enleve donc les 7 premiers caracteres)
                        var idCible=drop.id.substr(7);
                    }
                    else if(typeCible=="sujet") {
                        // je recupere l'id de ma rubrique "cible"" sous la forme nomRub-id (j'enleve donc les 7 premiers caracteres)
                        var idCible=drop.id.substr(9);
                    }

                    // je modifie le style du div conteneur de ma page
                    var nomDivConteneurPage=item.id.substr(3);
                    $(nomDivConteneurPage).style.opacity="1";

                    // je modifie la balise title du div conteneur de ma page pour affichage toolTip
                    var titleDivConteneurPage=$(nomDivConteneurPage).getProperty('title');
                    var nomCible=$(drop.id).innerHTML;
                    $(nomDivConteneurPage).setProperty('title',$(nomDivConteneurPage).getProperty('title')+nomCible+"/");

                    // je fais MAJ dans la base
                    var url = "index.php?module=admin&group=menus&action=changeURLitem&newURL="+nomPage+"&typeItem="+typeCible+"&idItem="+idCible;

                    new Ajax(url, {
                        method: 'get',
                    }).request();

    				dropFx.start('#ff0000').chain(dropFx.start.pass('000000', dropFx));
    			},
    			'over': function() { // quand je passe avec mon objet sur mon "receveur"
    				dropFx.start('#ff0000');
    			},
    			'leave': function() { // quand je passe avec mon objet sur mon "receveur" et que je repart
    				dropFx.start('000000');
    			}
    		});

    		var drag = clone.makeDraggable({
    			droppables: [drop]
    		}); // this returns the dragged element

    		drag.start(e); // start the event manual
    	});

    });
}
