/**
 *	Fonction permettant de swuitcher les details des DA
 */


function developItemSign(id) {
    jQuery(document.getElementById('DET_' + id)).toggle(200);
    jQuery(document.getElementById('IMG_' + id)).toggleClass('img_develop_16x16').toggleClass('img_reduire_16x16');

}

/**
 *	Fonction permettant de traiter le cas : Selection d'une ligne a signer
 */
function itemSelectedByUser(num_item) {
    document.getElementById('ligneInProgress').value = num_item;
    if (document.getElementById('num_item_transfert'))
        document.getElementById('num_item_transfert').innerHTML = num_item;

    if (document.getElementById('num_item_transfert'))
        document.getElementById('num_item_transfert').innerHTML = num_item;

    document.getElementById('LIGNE_' + num_item).className = 'SignLigneClick';
    jQuery('.openTooltipCntOff').hide(200);
    jQuery('#LIGNE_' + num_item + ' .openTooltipCntOff').show(200);
    jQuery('#LIGNE_' + num_item + ' .openTooltip').off('mouseleave').mouseleave(function() {
        
        var elm = this;
        var to = setTimeout(function() {
                jQuery('#LIGNE_' + num_item + ' .openTooltipCntOff').hide(200);
            }, 1000);
            
            jQuery(elm).off('mouseover').mouseover(function() { clearTimeout(to); } );
    });

    jQuery('#LIGNE_' + num_item + ' .openTooltipCntOff').children().each(function(idx, elm) {

        if (jQuery(elm).data().action && jQuery(elm).data().action == 'uncheck')
        {
            jQuery(elm).on('click', function() {
                backToMultiSelection();
                jQuery('.openTooltipCntOff').hide(200);
                jQuery('#LIGNE_' + num_item + ' input[type=checkbox]').prop('checked', true);
            });
        }
    });
}// fin de daSelectedByUser

function SignItemSelection(num_item) {
	document.getElementById('ligneInProgress').value = num_item;
	jQuery('#' + num_item).prop('checked', true);	
}


/**
 *	Fonction permettant de traiter le cas retour a la selection groupee
 */


function backToMultiSelection() {

// on cache le bloc "Signer" par groupe
jQuery('#actionsDeSignatureGroup').hide(200);
// On recupere l'id de la ligne en cours
    var num_item = document.getElementById('ligneInProgress').value;
    // On reinitialise l'id de "ligne en cours"
    document.getElementById('ligneInProgress').value = '';
    // On change le style de la ligne precedemment selectionnee
    if (num_item != '') {
        // document.getElementById('LIGNE_' + num_item).className = 'enteteDocSuivi';
        jQuery('#LIGNE_' + num_item + ' .openTooltip').off('mouseleave');
    }

// Toutes les checkbox sont mises a false
    for (var i = 0; i < document.forms['form_sign'].length; i++) {

        var e = document.forms['form_sign'].elements[i];
        if (e.type == 'checkbox' || e.type == 'radio') {
            e.disabled = '';
            e.checked = false;
        }
    }

}// fin de daSelectedByUser

function sign(item, action, mode, message, message_attente, delegation) {
    var total     = 0;
    var listItem  = '';
	var signat    = '';
	var nbElement = 0;
	var form_sign;

    if ((item === 'DA' || item === 'CDE' || item === 'BAP' || item === 'ITEM') && (action === 'S' || action === 'R')) {        
		// on peut avoir deux formulaires de signature, un souci pour IE
	var form = 'form_sign';
        if (null == document.forms[form].elements) {
	   nbElement = document.forms[form][0].elements.length;
	   form_sign = document.forms[form][0];
	} else {
	   nbElement = document.forms[form].elements.length;
	   form_sign = document.forms[form];
	}	
		
		
	var nb = form_sign.elements.length;
        // Dans le formulaire 'form_sign', on compte le nombre checkbox et on place leurs ids dans une liste
        for (var i = 0; i < nb; i++) {
            var e = form_sign.elements[i];
            if ((e.type === 'checkbox' || e.type === 'radio') && e.checked === true && e.id !== 'checkAllSign') {
                if (e.id !== '') {
                    listItem += e.id + '|';
                    if (item === 'ITEM' && e.value !== "" && e.value !== "on") {
                        item = e.value;
                    }
                    total++;
                }
            }
        }
        // On place toutes les valeurs du formulaire dans la variable texte data
        var data = HttpSubmit(form_sign);
        // Suppression du dernier caractère |
        if (listItem !== '') {
            listItem = listItem.substring(0, listItem.length - 1);
        }
        // Si l'utilisateur n'a rien selectionne
        if (total === 0) {
			if (document.getElementById('ligneInProgress')) {
				listItem = document.getElementById('ligneInProgress').value;
				if (listItem !== '')
					total++;
			}
		}

        if (total === 0) {
			window.alert(message);				
        }
        else {
			if (document.getElementById('SIGNAT')) {
				signat = document.getElementById('SIGNAT').value;
			}
            switch (item) {
                case 'DA':
                    CallUrlAsync('SIGN_manage.php', 'sign=on&action=' + action + '&mode=' + mode + '&item=' + item + '&delegation=' + delegation + '&total=' + total + '&listItem=' + listItem + '&signat=' + signat, message_attente);
                    break;
                case 'CDE':
                    CallUrlAsync('SIGN_manage.php', 'sign=on&action=' + action + '&mode=' + mode + '&item=' + item + '&delegation=' + delegation + '&total=' + total + '&listItem=' + listItem + data, message_attente);
                    break;
                case 'BAP':
                    CallUrlAsync('SIGN_manage.php', 'sign=on&action=' + action + '&mode=' + mode + '&item=' + item + '&delegation=' + delegation + '&total=' + total + '&listItem=' + listItem, message_attente);
                    break;
            }
        }
    } else if (action === 'transfert' || action === 'modification' || action === 'ajoutSignataire' || action === 'transfererSignature') {
        var num = document.getElementById('ligneInProgress').value;
        var item = document.getElementById('TYPE_ITEM_' + num).value;
        switch (action) {
            case 'modification':
                CallUrlAsync('SIGN_manage.php', 'action=' + action + '&type_item=' + item + '&num=' + num, message_attente);
                break;
            case 'transfert':
                // En cas de transfert on appel la liste des signataires pour le transfert
                TraiteAsync('SIGN_manage.php?action=transfert&type_item=' + item + '&num=' + num, document.forms.transfert.user_transfert, '', message_attente);
                break;
            case 'ajoutSignataire':
                CallUrl('SIGN_manage.php', 'action=' + action + '&type_item=' + item + '&num=' + num);
                break;
            case 'transfererSignature':
                OpenPopup('SIGN_manage.php?action=' + action + '&type_item=' + item + '&num=' + num, 'Transfert de signature', 600, 440, true);
                break;
        }
    }
}

//Fonction appelée dans le cas de la modification chiffrage <=> execution  
function modifItem(item, action, mode, message, message_attente, num) {
    CallUrlAsync('SIGN_manage.php', 'action=' + action + '&type_item=' + item + '&num=' + num, message_attente);
}

function signEnreg(message, object_form, mode) {
//mode est renseigne si on arrive de la DELEGATION 

// Neutralisation des caracteres speciaux tel que le & commercial
    var comment = encodeURIComponent(document.getElementById('commentForSign').value);
    var password = encodeURIComponent(document.getElementById('password').value);
    var data = "";
    var iForm = null;
    if (object_form && object_form.name)
    {
        for (var icpt = 0; icpt < document.forms.length; icpt++)
            if (object_form.name == document.forms[icpt].name)
            {
                iForm = icpt;
                break;
            }

        if (iForm != null)
        {
            data += HttpSubmit(iForm);
        }
    }

    if (document.getElementById('SignataireAjoute') && document.getElementById('SignataireAjoute').options.length != 0)
    {

// si on a ajoute des signataires supplementaires
        var LstSignSup = "";
        var LstTmp = document.getElementById('SignataireAjoute');
        for (var i = 0; i < LstTmp.options.length; i++)
        {
            if (i != LstTmp.options.length - 1)
            {
                LstSignSup += LstTmp.options[i].value + '|';
            }
            else // pour le dernier enregistrement on ne rajoute pas de | a la fin de la chaine
            {
                LstSignSup += LstTmp.options[i].value;
            }
        }

        CallUrlAsync('SIGN_manage.php', 'sign=processing&LstSignSup=' + LstSignSup + '&commentForSign=' + comment + '&delegation=' + mode + '&password=' + password + data, message);
    }
    else
    {
// si on a pas ajoute de signataires supplementaires
        CallUrlAsync('SIGN_manage.php', 'sign=processing&commentForSign=' + comment + '&delegation=' + mode + '&password=' + password + data, message);
    }

}

function IsIdExisteForm(forms, name) {
    var icpt = 0;
    for (icpt = 0; icpt < forms.elements.length; icpt++) {
        if (forms.elements[icpt].id == name)
            return icpt;
    }

    return -1;
}


function checkAllItemToSign(form, controller) {
	var formCourant = null;
	var nbElement = 0;
	if (null == document.forms[form].elements) {
		nbElement = document.forms[form][0].elements.length;
		formCourant = document.forms[form][0];
	} else {
		nbElement = document.forms[form].elements.length;
		formCourant = document.forms[form];
	}
	for (var i = 0 ; i < nbElement ; i++ ) {
		var e = formCourant.elements[i];
		if (e.type == 'checkbox' && e.id != controller && document.getElementById(controller).checked == true && e.id != '' && e.disabled == false) {
			// On ne peut signer que les cases pour lesquels le champ cache
			// Uniquement les DA sans signatures
			namehidd = "TYPE_ITEM_" + e.id;
			if (IsIdExisteForm(formCourant, namehidd) != -1) {
				if (formCourant.elements[namehidd].value == 'DA') {
					namehidd = "Mode_" + e.id;
					if (IsIdExisteForm(formCourant, namehidd) != -1) {
						if (formCourant.elements[namehidd].value == 0 || nb == 1) {
							e.checked = true;
						}
						else {
							e.checked = false;
						}
					}
					else {
						e.checked = true;
					}
				}
				else {
					e.checked = true;
				}
			}
			else {
				e.checked = true;
			}
		}
		else {
			if (e.type == 'checkbox' && e.id != '' && e.id != controller && ! e.disabled) {
				e.checked = document.getElementById(controller).checked;
			}
		}
	} // Fin du for
}

/**
 *Fonction utilisee sur le module gestion des collaborateurs
 */

function demCreatCollab(F, mode, message, etape, profil) {

    var code = null;
    for (var i = 0; i < F.elements.length; i++) {
        if (F.elements[i].type == 'radio' && F.elements[i].checked) {
            code = F.elements[i].value;
        }
    }

// Si l'utilisateur n'a rien selectionne
    if (mode != '' && etape == 'init' && code == null) {
        window.alert(message);
    } else
    // S'il s'agit d'une initialisation de refus ou de validation
    if (mode != '' && code != null && etape == 'init') {

// On cache le menu initial
        document.getElementById('menuInitial').style.display = 'none';
        // On enregistre le mode R ou S afin de le reutiliser lors de la confirmation
        document.getElementById('mode').value = mode;
        switch (mode) {

            case 'R': // Pour les refus affichage de la zone commentaire + zone password
                document.getElementById('zone_comment').style.display = '';
                document.getElementById('zone_password').style.display = '';
                break;
            case 'S': // Pour les validation on affiche uniquement la zone password
                document.getElementById('zone_password').style.display = '';
                break;
        }
    } else
    // S'il s'agit d'une confirmation de refus ou de validation
    if (etape == 'confirm') {

        var login = '';
        var nom = encodeURIComponent(document.getElementById('NOM_' + code).value);
        var mode = document.getElementById('mode').value;
        var password = encodeURIComponent(document.getElementById('password').value);
        var comment = encodeURIComponent(document.getElementById('commentForSign').value);
        if (profil == 'locale' || profil == 'centrale') {
            var login = '&login=' + document.getElementById('login').value;
        }

        CallUrl('COLLAB_manage.php', 'valider=dem&profil=' + profil + '&mode=' + mode + '&code=' + code + '&comment=' + comment + '&password=' + password + '&nom=' + nom + login);
    }
}

/**
 *Fonction permettant d'initialiser la selection d'une demande
 */

function initDemCollab(profil) {
    document.getElementById('mode').value = '';
    document.getElementById('password').value = '';
    document.getElementById('commentForSign').value = '';
    document.getElementById('zone_comment').style.display = 'none';
    document.getElementById('zone_password').style.display = 'none';
    document.getElementById('menuInitial').style.display = '';
    if (profil == 'locale' || profil == 'centrale' || profil == 'resphier') {
        document.getElementById('zone_login').style.display = '';
    }

}


/**
 *Fonction recuperant les criteres de recherche de delegataire et les transmettant
 */
function rechercheDeleg() {

    var code = document.getElementById('code').value;
    var nom = document.getElementById('nom').value;
    CallUrl('IU_signature_manage.php', 'recherche=delegataire&code=' + code + '&nom=' + nom);
}



/**
 *Fonction permettant lorsqu'un delegataire est selectionne d'affiche le champ saisi de mot de passe
 */
function selectDelegataire(F, action, message) {

    var code = null;
    for (var i = 0; i < F.elements.length; i++) {
        if (F.elements[i].type == 'radio' && F.elements[i].checked) {
            code = F.elements[i].value;
        }
    }

    switch (action) {

        case 'select':

            var nom = document.getElementById('NOM_' + code).value;
            document.getElementById('delegataireChoisi').innerHTML = code + " (" + nom + ")";
            document.getElementById('ACTION').style.display = '';
            break;
        case 'annuler':

            for (var i = 0; i < F.elements.length; i++) {
                if (F.elements[i].type == 'radio') {
                    F.elements[i].checked = false;
                }
            }

            document.getElementById('ACTION').style.display = 'none';
            break;
        case 'enregistrer':
            var password = document.getElementById('password').value;
            CallUrlAsync("IU_signature_manage.php", "reg=delegation&password=" + password + "&code=" + code, message);
            break;
        case 'reprise':
            var password = document.getElementById('password').value;
            CallUrlAsync("IU_signature_manage.php", "reprise=signature&password=" + password, message);
            break;
        case 'transfert':
            var password = document.getElementById('password').value;
            var num = document.getElementById('num').value;
            CallUrlAsync("IU_signature_manage.php", "action=transfert&password=" + password + "&code=" + code + "&num=" + num, message);
            break;
    }
}


// a supprimer
function prepareLignesDocument() {	
    jQuery('.openligne').click(function() {
        var parent = jQuery(this).parents('.blocDocument').first();

        if (jQuery(this).find('span').first().css('display') != 'none')
        {
            jQuery(this).find('span').first().css('display', 'none');
            jQuery(this).find('span').last().css('display', '');
        }
        else
        {
            jQuery(this).find('span').first().css('display', '');
            jQuery(this).find('span').last().css('display', 'none');
        }

        parent.children('.liste_cs_entete, .cl_browse').toggle();
        parent.find('.opencs').toggle();
    });

    boutonOpenCS();

    jQuery('.blocDocument input[type=checkbox]').click(function() {

        if (jQuery('#men_gene').height() > jQuery(window).height()) {
            jQuery('#actionsDeSignatureGroup').addClass('fixed');
        }

        if (jQuery('.blocDocument :checked').length > 0) {
            jQuery('#actionsDeSignatureGroup').show(200);
			jQuery('#actionsDeSignatureGroup').css('z-index', 1000);
        } else if (jQuery('.blocDocument :checked').length == 0)
            jQuery('#actionsDeSignatureGroup').hide(200);
    });
}
function prepareBoxSignerRefuser() {	
    jQuery('.blocDocument input[type=checkbox]').click(function() {
        if (jQuery('#men_gene').height() > jQuery(window).height()) {
            jQuery('#actionsDeSignatureGroup').addClass('fixed');
        }

        if (jQuery('.blocDocument :checked').length > 0) {
            jQuery('#actionsDeSignatureGroup').show(200);
			jQuery('#actionsDeSignatureGroup').css('z-index', 1000);
        } else if (jQuery('.blocDocument :checked').length == 0) {
            jQuery('#actionsDeSignatureGroup').hide(200);
		}
    });
}

function developCritereRecherche(id_item, id_critere) {    
    jQuery(document.getElementById(id_item)).toggleClass('dib img16 img_develop_16x16').toggleClass('dib img16 img_reduire_16x16');
	document.getElementById(id_critere).toggle();
}
