

/*******************************************************************************************************

		GESTION DES POPUPS

********************************************************************************************************/
/*
 * Affiche la popup de message
 */
function showPopup( ) {
	if($('company_activites')) $('company_activites').hide();
	$('popup').show();
}

/*
 * Masque la popup
 */
function closePopup() {
	if($('company_activites')) $('company_activites').show();
	$('popup').hide();
}

/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param string
 */
function showMessage( texte ) {
	$('popupContent').replace('<div id="popupContent" class="popupContent"><p><strong>Avertissement:</strong></p><p class="message">'+texte+'</p><div class="outils"><a href="#" onClick="closePopup();" class="btLeft">Fermer</a></div></div>');
	showPopup();
}

function showValidMessage( text1, link1, text2, link2, text3  ) {
	$('popupContent').replace('<div id="popupContent" class="popupContent"><div class="message"><a style="float:right;margin-top: -10px;" href='+link1+' ><img style="vertical-align:middle;" onload="pngfiximage(this)" src="public/images/bt_oui.png" border=0></a>'+text1+'</div><br/><div class="message"><a style="float:right; margin-top: -10px;" href='+link2+'><img style="vertical-align:middle;" onload="pngfiximage(this)" src="public/images/bt_suivant.png" border=0></a>'+text2+'</div><div class="message" style="margin-top: 25px;">'+text3+'</div></div>'	);
	showPopup();
}

function showLoginMessage( text1, text2, text3, link) {
	$('popupContent').replace('<form id="formLogin" method="post" action="index.php'+link+'"><input type="hidden" name="module" id="module" value="Compte"><input type="hidden" name="action" id="action" value="DoLogin"><div id="popupContent" class="popupContent"><div class="message" style="margin-top:-10px">'+text1+' <br><br><div align="right">identifiant :<input readonly type="text" name="login" value="'+text2+'"><br><br>'+text3+'<input type="password" name="password"><br><div align="right"><a style="float:right; margin-top: 5px;" href="javascript:$(\'formLogin\').submit()"><img style="vertical-align:middle;" onload="pngfiximage(this)" src="public/images/bt_valider.png" border=0></a><input type="submit" value="Valider" style="display:none"></div></div></div></form>');
	showPopup();
}

function showYesNoMessage( texte, action) {
	$('popupContent').replace('<div class="popupContent" id="popupContent"><p style="margin: 10px;">'+texte+'</p><br/><p style="text-align: center;"><a style="margin-top: -10px;" href="#" onclick="'+action+'"><img border="0" style="vertical-align: middle;" onload="pngfiximage(this)" src="public/images/bt_oui.png"/></a> <a style="margin-top: -10px;" href="#" onclick="closePopup();"><img border="0" style="vertical-align: middle;" onload="pngfiximage(this)" src="public/images/bt_non.png"/></a></p></div>');
	showPopup();
}
/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param string
 */
function showMessageTemplate( texte ) {
	$('popupContent').replace('<div id="popupContent" class="popupContent">'+texte+'</div>');
	showPopup();

	if(typeof(pngfix) == 'function'){
		pngfix();
	}
}




/*******************************************************************************************************

		GESTION DES EXPORTS

********************************************************************************************************/


/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param string
 */
function exportContacts() {

	// Vide le contenu de la popup
	$('popupContent').replace('<div id="popupContent" class="popupContent"></div>');

	new Ajax.Updater('popupContent', 'index.php?module=Recherche&action=ExportContactsConfirm', {
		method: 'get',
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});

	// Affiche la popup
	$('popup').show();
}

function exportContactsPartenaire() {

	// Vide le contenu de la popup
	$('popupContent').replace('<div id="popupContent" class="popupContent"></div>');

	new Ajax.Updater('popupContent', 'index.php?module=Partenaire&action=ExportContactsConfirm', {
		method: 'get',
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});

	// Affiche la popup
	$('popup').show();
}

/*
 * Exécute l'action d'exportation des contacts
 */
function doExportContacts() {
	$('popup').hide();
	window.location.href="?module=Recherche&action=ExportContacts";
}

function doExportContactsPartenaire() {
	$('popup').hide();
	window.location.href="?module=Partenaire&action=ExportContacts";
}

function clickCaseExportAll(ctl) {
	if (ctl.checked) {
		val = 1;
		$('btExporter').setStyle({backgroundImage: 'url(public/images/bg_bouton_right_select.gif)'});		
	} else {
		val = 0;
		$('btExporter').setStyle({backgroundImage: 'url(public/images/bg_bouton_right.gif)'});		
	}
	new Ajax.Request('index.php?module=Recherche&action=ClickExport&socId=all&value='+val+'&contId=all',
        { method: 'get', asynchronous: false });
	$$('.caseExport').each(function(element) { element.checked=ctl.checked;});
	$$('.caseExportContact').each(function(element) { element.checked=ctl.checked;});
}

function clickCaseExportOne(ctl,idSoc) {
	var val;
	if (ctl.checked) {
		val = 1;
		$('btExporter').setStyle({backgroundImage: 'url(public/images/bg_bouton_right_select.gif)'});
	} else
		val = 0;
	new Ajax.Request('index.php?module=Recherche&action=ClickExport&socId='+idSoc+'&value='+val+'&contId=all',
        { method: 'get', asynchronous: false });
	//var maClass;
	//maClass = '.caseExportContact'+idSoc
	//alert(maClass);
	$$('.caseExportContact'+idSoc).each(function(element) { element.checked=ctl.checked;});

}

function clickCaseExportOneContact(ctl,idSoc,idCont) {
	var val;
	if (ctl.checked) {
		val = 1;
		$('btExporter').setStyle({backgroundImage: 'url(public/images/bg_bouton_right_select.gif)'});
	} else
		val = 0;
	new Ajax.Request('index.php?module=Recherche&action=ClickExport&socId='+idSoc+'&value='+val+'&contId='+idCont,
        { method: 'get', asynchronous: true });
	if (ctl.checked) {
		//alert($$('.caseExport'+idSoc).checked);
		$$('.caseExport'+idSoc).each(function(element) { element.checked = ctl.checked;});
	}
}

/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param string
 */
function exportLiens(societe_id) {

	// Vide le contenu de la popup
	$('popupContent').replace('<div id="popupContent" class="popupContent"></div>');

	new Ajax.Updater('popupContent', 'index.php?module=Societe&action=ExportLiensConfirm&societe_id='+societe_id, {
		method: 'get',
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});

	// Affiche la popup
	$('popup').show();
}

/*
 * Exécute l'action d'exportation des liens capitalistiques
 */
function doExportLiens(societe_id) {

	// désactivation des boutons -> la génération du csv peut durer
	$('btConfirmer').stopObserving('click');
	$('btClose').stopObserving('click');

	// génération du csv
	new Ajax.Request('index.php?module=Societe&action=GetLiens&societe_id='+societe_id,
        { method: 'get', asynchronous: false });
	$('popup').hide();

//	document.open("?module=Societe&action=ExportLiens","","height=1");
	window.location.href="?module=Societe&action=ExportLiens&societe_id="+societe_id;
	if (document.getElementById('resultat_liens').checked) {
		setTimeout(function(){window.location.href="?module=Recherche&action=DoQueryAvancee&afficheLiens=1"}, 1000);
	}
}

/*******************************************************************************************************

		GESTION DES IMPRESSIONS

********************************************************************************************************/


/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param integer l'index de la pagination
 */
function printSocietes(pagin_index, order) {
	$('popupContent').replace('<div id="popupContent" class="popupContent"><p><strong>Impression PDF:</strong></p><input type="radio" name="display" id="display_current" checked/><span>Page en cours</span><br/><input type="radio" name="display" id="display_all"/><span>Toutes les pages</span><div class="outils"><a href="#" onClick="doPrintSocietes('+pagin_index+',\''+order+'\');" class="btLeft">Imprimer</a><a href="#" onClick="closePopup();" class="btRight">Annuler</a></div></div>');
	$('popup').show();
}

/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param integer l'index de la pagination
 * @param boolean indique s'il faut tout afficher ou non
 */
function doPrintSocietes(pagin_index, order) {
	$('popup').hide();
	if( $('display_all').checked ) {
		window.location.href = 'index.php?module=Recherche&action=PrintSocietes&display=all&pagin_index=0'+order;
	} else {
		window.location.href = 'index.php?module=Recherche&action=PrintSocietes&pagin_index='+pagin_index+order;
	}

}

/*
 * Affiche la boite de dialogue contenant le texte passé en paramètre
 * @param integer l'index de la pagination
 */
function printContacts(pagin_index, order) {
	$('popupContent').replace('<div id="popupContent" class="popupContent"><p><strong>Impression PDF:</strong></p><div class="message"><input type="radio" name="display" id="display_current" checked/><span>Page en cours</span><br/><input type="radio" name="display" id="display_all"/><span>Toutes les pages</span></div><div class="outils"><a href="#" onClick="doPrintContacts('+pagin_index+',\''+order+'\');" class="btLeft">Imprimer</a><a href="#" onClick="closePopup();" class="btRight">Annuler</a></div></div>');
	$('popup').show();
}

/*
 * Lance l'impression en pdf
 * @param integer l'index de la pagination
 * @param boolean indique s'il faut tout afficher ou non
 */
function doPrintContacts(pagin_index, order) {
	$('popup').hide();
	if( $('display_all').checked ) {
		window.location.href = 'index.php?module=Recherche&action=PrintContacts&display=all&pagin_index=0'+order;
	} else {
		window.location.href = 'index.php?module=Recherche&action=PrintContacts&pagin_index='+pagin_index+order;
	}

}



/*******************************************************************************************************

		FONCTIONS UTILES LISTES DEROULANTES

********************************************************************************************************/
/*
 * Repositionne la liste déroulante si celle-ci est trop large pour tenir dans l'écran
 * @param object La liste déroulante
 * @param object Le champ qui permet de dérouler la combo
 * @return integer
 */
function positionneCombo( liste, select ) {
	var largeurMax = parseInt(document.body.clientWidth)-5;

	// on teste si la div ne tient pas en largeur
	// position left + largeur < largeurMax
	liste.style.left = 0+"px";
	if (Position.cumulativeOffset(liste).left + parseInt(liste.style.width) > largeurMax) {
		// deplacement de la div, on aligne à droite avec le champ de sélection
		var decalage = parseInt(select.style.width) - parseInt(liste.style.width);
		liste.style.left = decalage + "px";
	}

}

/*
 * Compte le nombre de checkbox cochés dans le container
 * @param object L'élément qui contient les checkbox
 * @return integer
 */
function countCheckbox( container ) {
	var inputs = container.getElementsByTagName('input');
	var counter=0;
	for(var i=0; i < inputs.length; i++) {
		if( inputs[i].type == 'checkbox' && inputs[i].checked ) {
			counter++;
		}
	}
	return counter;
}

/*
 * Mets à jour le champ
 * @param object L'élément qui va contenir le texte
 * @param object L'élément qui contient les checkboxes
 */
function updateTextSelectList( texte, container ) {

	var count = countCheckbox( container );
	if( count == 0 ) {
		texte.innerHTML = "Sélectionner...";
		texte.style.backgroundImage = "url(public/images/bt_select_vide.gif)";
	} else {
		texte.innerHTML = count + " éléments sélectionnés...";
		texte.style.backgroundImage = "url(public/images/bt_select_color.gif)";
	}
}

/*
 * Colorie le champ s'il n'est pas vide
 * @param object Le champ à colorier
 */

function inputColor( input ) {
	if( input.value.length > 0 ) {
		input.className = 'searchnotempty';
	} else {
		input.className = 'searchempty';
	}
}


/*
 * Mets à jour un libellé de groupe  (gras + img + collapse ou non de la liste de coches)
 * @param object L'élément qui contient le titre du groupe (ET l'image)
 * @param object L'élément qui contient les checkboxes du groupe
 * @param object L'élément qui contient la liste en elle-même
 */
function toggleDisplay( texte, container, combo ) {
	if( container.visible() ) {
		texte.firstDescendant().src="public/images/expand.gif";
		container.setStyle( {'display':'none'} );
	} else {
		texte.firstDescendant().src="public/images/collapse.gif";
		container.setStyle( {'display':''} );
		combo.scrollTop = texte.offsetTop;
	}
}


/*
 * Mets à jour un libellé de groupe  (gras + img + collapse ou non de la liste de coches)
 * @param object L'élément qui contient le titre du groupe (ET l'image)
 * @param object L'élément qui contient les checkboxes du groupe
 */
function updateGroupMultiSelectList( texte, container, texteNivSup, containerNivSup ) {
	var count = countCheckbox( container );

	if( count == 0 ) {
		texte.setStyle({ 'fontWeight':'normal' });
		texte.firstDescendant().src="public/images/expand.gif";
//		container.setStyle( {'display':'none'} );
	} else {
		texte.setStyle({ 'fontWeight':'bold' });
		texte.firstDescendant().src="public/images/collapse.gif";
		container.setStyle( {'display':''} );
	}
	if (texteNivSup && containerNivSup) {
		count = countCheckbox( containerNivSup );
		if( count == 0 ) {
			texteNivSup.setStyle({ 'fontWeight':'normal' });
		} else {
			texteNivSup.setStyle({ 'fontWeight':'bold' });
		}
	}
}


/*
 * Coche ou décoche les checkbox contenues dans container
 * @param object L'élément qui contient les checkbox
 * @param boolean Indique si les cases doivent être cochées ou pas
 */
function checkAllIn(container, check) {
	var inputs = container.select('input');
	for(var i=0; i < inputs.length; i++) {
		if( inputs[i].type == 'checkbox' ) {
			inputs[i].checked = check;
		}
	}
}

/*
 * Active ou désactive une tranche de CA
 * @param object link L'objet qui représente la tranche graphiquement
 * @param object data L'objet qui va contenir la donnée
 * @param string value La valeur que doit prendre data si la tranche est sélectionnée
 */
function updateToggleRange(link, data, value) {
	if( link.hasClassName('inactif') ) {
		link.addClassName('actif');
		link.removeClassName('inactif');
		data.value = value;
	} else {
		link.addClassName('inactif');
		link.removeClassName('actif');
		data.value = '';
	}
	return false;
}


/*******************************************************************************************************

		CALCUL DU POTENTIEL

********************************************************************************************************/
var idTimeOut;

/**
 * Fonction qui demande le calcul des potentiels dans un délai
 */
function calculatePotentielDelay(delay) {
	window.clearTimeout(idTimeOut);
	idTimeOut = window.setTimeout(calculatePotentiel, delay);
}

/**
 * Fonction qui demande le calcul des potentiels
 */
function calculatePotentiel() {
	var oldModule = $('module').value;
	var oldAction = $('action').value;
	$('module').value='Recherche';
	$('action').value='CalculatePotentiel';
	var test = $('formRecherche').serialize(true);

	new Ajax.Updater('potentiel', 'index.php', {
		parameters: test,
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});

	$('module').value=oldModule;
	$('action').value=oldAction;
}

/**
 * Fonction qui demande le calcul des potentiels dans un délai
 */
function calculatePotentielPartenaireDelay(delay) {
	window.clearTimeout(idTimeOut);
	idTimeOut = window.setTimeout(calculatePotentielPartenaire, delay);
}

/**
 * Fonction qui demande le calcul des potentiels
 */
function calculatePotentielPartenaire() {
	var oldModule = $('module').value;
	var oldAction = $('action').value;
	$('module').value='Partenaire';
	$('action').value='CalculatePotentielPartenaire';
	var test = $('formRecherche').serialize(true);

	new Ajax.Updater('potentiel', 'index.php', {
		parameters: test,
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});

	$('module').value=oldModule;
	$('action').value=oldAction;
}

/*******************************************************************************************************

		AFFICHAGE DE LA FICHE SOCIETE

********************************************************************************************************/


/**
 * Affiche la fiche de la societe
 */
function showFiche(societe_id) {
	$('ficheSocieteContent').replace('<div id="ficheSocieteContent" class="popupContent"></div>');
	new Ajax.Updater('ficheSocieteContent', 'index.php?module=Societe&action=Fiche&societe_id='+societe_id, {
		method: 'get',
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});
	// ********* scriptaculous ***********
	//var myFicheDetail = new Draggable('ficheSociete', {handle: 'popupTopbar'});   
	// ********* dojo ***********
	var myFicheDetail = new dojo.dnd.Moveable('ficheSociete', {handle: 'popupTopbar'});
	$('ficheSociete').show();
}

/*
 * Masque la popup
 */
function closeFiche() {
	$('ficheSociete').hide();
	myFicheDetail.destroy();
}

/*
 * Exécute l'action d'exportation des contacts
 */
function printFiche(societe_id) {
	$('ficheSociete').hide();
	window.location.href="?module=Societe&action=Print&societe_id="+societe_id;
}


/*******************************************************************************************************

		AFFICHAGE DES CONTACTS DANS LES LISTES

********************************************************************************************************/



/**
 * Affiche ou non la zone de détail des contacts
 * @param string id
 */
function showContacts( id ) {

	// Affiche/Masque la ligne
	$('line_detail_'+id).toggle();

	// On ne va pas récupérer les données si ça a déjà été fait une fois
	//if( $('line_detail_'+id).visible() && $('detail_'+id).innerHTML == '' ) {
		new Ajax.Updater('detail_'+id, 'index.php?module=Recherche&action=ShowContacts&societe_id='+id, {
			method: 'get',
			onFailure: function(transport) {
				if( 403 == transport.status ) {
					window.location = 'index.php?module=Login&action=DisconnectedByPeer';
				}
			}
		});
	//}

	//
	// Modification de l'image
	//
	if( $('line_detail_'+id).visible() ) {
		$('img_detail_'+id).writeAttribute('src', "public/images/bt_detail_on.gif");
	} else {
		$('img_detail_'+id).writeAttribute('src', "public/images/bt_detail.gif");
	}
}

/**
 * Affiche les contacts de rang 2
 * @param string id
 */
function showContactsRang2( id ) {
	new Ajax.Updater('detail_'+id, 'index.php?module=Recherche&action=ShowContacts&societe_id='+id+'&show_rang_2=1', {
		method: 'get',
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});
}


/**
 * Masque les contacts de rang 2
 * @param string id
 */
function hideContactsRang2( id ) {
	new Ajax.Updater('detail_'+id, 'index.php?module=Recherche&action=ShowContacts&societe_id='+id+'&show_rang_2=0', {
		method: 'get',
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});
}



/*******************************************************************************************************

		REQUETES ENREGISTREES

********************************************************************************************************/

/**
 * Affiche/Masque la zone des requêtes enregistrées
 */
function toggleRequetes() {
	$('requetes-list-content').replace('<div id="requetes-list-content"></div>');
	if( !$('requetes_list_container').visible() ) {
		new Ajax.Updater('requetes-list-content', 'index.php?module=Recherche&action=ListRequetes', {
			method: 'get',
			onFailure: function(transport) {
				if( 403 == transport.status ) {
					window.location = 'index.php?module=Login&action=DisconnectedByPeer';
				}
			}
		});
		close_requetes_list_container=false;
	}
	$('requetes_list_container').toggle();
}

/**
 * Affiche/Masque la zone des requêtes enregistrées en mode partenaire
 */
function toggleRequetesPartenaire() {
	$('requetes-list-content').replace('<div id="requetes-list-content"></div>');
	if( !$('requetes_list_container').visible() ) {
		new Ajax.Updater('requetes-list-content', 'index.php?module=Partenaire&action=ListRequetes', {
			method: 'get',
			onFailure: function(transport) {
				if( 403 == transport.status ) {
					window.location = 'index.php?module=Login&action=DisconnectedByPeer';
				}
			}
		});
		close_requetes_list_container=false;
	}
	$('requetes_list_container').toggle();
}

/**
 * Charge une requête
 */
function loadRequete(requete_id) {
	window.location.href='index.php?module=Recherche&action=LoadRequete&requete_id='+requete_id;
	$('popup').hide();
}

/**
 * Charge une requête en mode partenaire
 */
function loadRequetePartenaire(requete_id) {
	window.location.href='index.php?module=Partenaire&action=LoadRequete&requete_id='+requete_id;
	$('popup').hide();
}
/**
 * Affiche la popup permettant de sauvegarder une requête
 */
function showSaveRequete() {
	// Vide le contenu de la popup
	$('popupContent').replace('<div id="popupContent" class="popupContent"></div>');

/*	new Ajax.Updater('popupContent', 'index.php?module=Recherche&action=SaveRequete', {
		method: 'get'
	});
*/
	var oldModule = $('module').value;
	var oldAction = $('action').value;
	$('module').value='Recherche';
	$('action').value='SaveRequete';

	new Ajax.Updater('popupContent', 'index.php', {
		parameters: $('formRecherche').serialize(true),
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});
	$('module').value=oldModule;
	$('action').value=oldAction;

	// Affiche la popup
	//var myPopup1 = new dojo.dnd.Moveable('popup', {handle: 'popupTopbar2'});
	$('popup').show();
}

/**
 * Sauvegarde la requête
 */
function doSaveRequete() {

	var oldModule = $('module').value;
	var oldAction = $('action').value;
	$('module').value='Recherche';
	$('action').value='DoSaveRequete';

	new Ajax.Updater('popupContent', 'index.php?requete_label='+$('requete_label').value, {
		parameters: $('formRecherche').serialize(true),
		onFailure: function(transport) {
			if( 403 == transport.status ) {
				window.location = 'index.php?module=Login&action=DisconnectedByPeer';
			}
		}
	});

	$('module').value=oldModule;
	$('action').value=oldAction;

}

/**
 * Supprime une requête
 */
function deleteRequete(requete_id) {
	if( confirm("Voulez-vous vraiment supprimer cette recherche ?") ) {
		new Ajax.Request('index.php?module=Recherche&action=DoDeleteRequete&requete_id='+requete_id, {
			method: 'get',
			onSuccess: function(transport) {
				// Masque la liste
				toggleRequetes();
			},
			onFailure: function(transport) {
				if( 403 == transport.status ) {
					window.location = 'index.php?module=Login&action=DisconnectedByPeer';
				}
			}
		});
	}
}


/*****
* ouvre ou ferme une div
*/
function expCollDiv(obj) {
	var el = document.getElementById(obj);

	if ( el.style.display != "none" ) {
		el.style.display = 'none';
	} else {
		el.style.display = '';
	}
}
