/*licence/ 

Module écrit, supporté par la société Alkante SAS <alkante@alkante.com>

Nom du module : Alkanet::Library
Librairie js et php globale à Alkanet.
Ce module appartient au framework Alkanet.

Ce logiciel est régi par la licence CeCILL-C soumise au droit français et
respectant les principes de diffusion des logiciels libres. Vous pouvez
utiliser, modifier et/ou redistribuer ce programme sous les conditions
de la licence CeCILL-C telle que diffusée par le CEA, le CNRS et l'INRIA
sur le site http://www.cecill.info.

En contrepartie de l'accessibilité au code source et des droits de copie,
de modification et de redistribution accordés par cette licence, il n'est
offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
seule une responsabilité restreinte pèse sur l'auteur du programme, le
titulaire des droits patrimoniaux et les concédants successifs.

A cet égard l'attention de l'utilisateur est attirée sur les risques
associés au chargement, à l'utilisation, à la modification et/ou au
développement et à la reproduction du logiciel par l'utilisateur étant
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
manipuler et qui le réserve donc à des développeurs et des professionnels
avertis possédant des connaissances informatiques approfondies. Les
utilisateurs sont donc invités à charger et tester l'adéquation du
logiciel à leurs besoins dans des conditions permettant d'assurer la
sécurité de leurs systèmes et ou de leurs données et, plus généralement,
à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.

Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
pris connaissance de la licence CeCILL-C, et que vous en avez accepté les
termes.

/licence*/

/**
 * Ouvre la popup de contact
 */
function OpenContactAdmin(strToken)
{ 
  OpenWindow("/scripts/alkanet/alkanet.php?token="+strToken, "450", "550", "windContact");
}

function getLogin(strToken)
{
  OpenWindow("/scripts/alkanet/alkanet.php?token="+strToken, '350', '450', 'WindCode');
}
var nbClickValid = 0;
function validIdent(strTokenUrlTo)
{
  if( nbClickValid == 0 ) {
    nbClickValid++;
    var f = document.formLogin;
    f.strPwd.value = hex_md5(f.strPwd2.value);
    f.strPwd2.value = "";
    f.action = "/scripts/alkanet/alkanet_verif.php?url="+strTokenUrlTo;
  }
}

var widthMenu  = ( lire_cookie("etat_menu") == null || lire_cookie("etat_menu") == "open" ? 225 : 0 );
var iDeltaMenu = (widthMenu == 0 ? 25 : -25 );;
var iWindWidth = 977;
function openCloseMenu()
{
  var oMenu = document.getElementById("idMenu");
  if( oMenu ) {
    setTimeout("animeOpenCloseMenu()", 0);
    
    var oImg = document.getElementById("imgOpenCloseMenu");
    if( oImg ) {
      oImg.alt = ( oImg.src.indexOf("close")>=0 ? "Montrer" : "Cacher" ) + " le menu";
      oImg.src = "/media/site/bt_menu" + ( oImg.src.indexOf("close")>=0 ? "open" : "close" ) + ".gif";
      var oA = document.getElementById("aOpenCloseMenu");
      if( oA ) {
        oA.title = oImg.alt;
      }
    }
  }
}
function animeOpenCloseMenu()
{
  var oMenu = document.getElementById("idMenu");
  var bAgain = true;
  if( oMenu ) {
    var oStyle = ( oMenu.style ? oMenu.style : oMenu );
    widthMenu += iDeltaMenu;
    if( widthMenu<0 ) {
      widthMenu = 0;
      iDeltaMenu = iDeltaMenu*(-1);
      bAgain = false;
    } else if( widthMenu>225 ) {
      widthMenu = 225;
      iDeltaMenu = iDeltaMenu*(-1); 
      bAgain = false;
    }
    oStyle.width = widthMenu+"px";
    oStyle.overflow = ( oStyle.width == "225px" ? "" : "hidden" );
  }
  
  if ( widthMenu == 0 ) {
  	ecrire_cookie("etat_menu", "close");
  }
  if ( widthMenu == 225 ) {
  	ecrire_cookie("etat_menu", "open");
  }

  var oStyleDiv;
  var oDiv = document.getElementById("idOpenCloseMenu");
  if( oDiv ) {
    oStyleDiv = ( oDiv.style ? oDiv.style : oDiv );
    oStyleDiv.width = Math.max(25, widthMenu-25) + "px";  
  }
  oDiv = document.getElementById("contentMenu");
  if( oDiv ) {
    oStyleDiv = ( oDiv.style ? oDiv.style : oDiv );
    oStyleDiv.width = Math.max(25, widthMenu) + "px";  
  }
  
  oDiv = document.getElementById("contentData");
  if( oDiv ) {
    oStyleDiv = ( oDiv.style ? oDiv.style : oDiv );
    oStyleDiv.width = (iWindWidth-Math.max(25, widthMenu))+20 + "px";
    oStyleDiv.left = Math.max(25, widthMenu)  + "px";
  }    
  oIframe = document.getElementById("geosource");
  if( oIframe ) {
    oIframe = ( oIframe.style ? oIframe.style : oIframe );
    oIframe.width = (iWindWidth-Math.max(25, widthMenu)) + "px";  
    setIFrameHeight("geosource");
  }   
  
  if( bAgain ) { 
    setTimeout("animeOpenCloseMenu()", 20);
  }
}
function onResizeWindow()
{
  setIntialSizeContentData();
} 
function setIntialSizeContentData()
{
  
  // initialise la taille de la div contentMenu en fonction de l'état du menu
  if ( widthMenu == 0 ) {
  	var oContentMenu = document.getElementById("contentMenu");
		if( oContentMenu ) {
		  var oStyle = ( oContentMenu.style ? oContentMenu.style : oContentMenu );
		 	oStyle.width = "25px";
		}
  }
  
  // initialise la taille et l'emplacement du contenu
  var iWindowWidth = ( top.window.document.body.clientWidth
                       ? top.window.document.body.clientWidth  
                       : ( top.window.innerWidth 
                           ? top.window.innerWidth 
                           : 977 ));
  iWindWidth = Math.max(977, iWindowWidth - 22 /* scrollbar*/ - 28 /*padding+margin divers*/);
  oDiv = document.getElementById("contentData");
  if( oDiv ) {
    oStyleDiv = ( oDiv.style ? oDiv.style : oDiv );
    oStyleDiv.width = (iWindWidth-Math.max(25, widthMenu))+20 + "px";  
    oStyleDiv.visibility = "visible";
    oStyleDiv.left = Math.max(25, widthMenu)  + "px";
  }
  oIframe = document.getElementById("geosource");
  if( oIframe ) {
    oIframeStyle = ( oIframe.style ? oIframe.style : oIframe );
    oIframeStyle.width = (iWindWidth-Math.max(25, widthMenu)) + "px";
    setIFrameHeight("geosource");
  }
  
  // affiche le panier au cas où celui-ci est masqué
  var oPanierInfo = document.getElementById("panier_info");
  if ( oPanierInfo ) {
  	var oStylePanierInfo = ( oPanierInfo.style ? oPanierInfo.style : oPanierInfo );
  	oStylePanierInfo.display = "";
  }
  
  top.window.onresize = onResizeWindow;
}
function showHideMenu(page_id)
{
  var oMenu = document.getElementById("menuUL"+page_id);
  if( oMenu ) {
    var oStyle = ( oMenu.style ? oMenu.style : oMenu );
    oStyle.display = ( oStyle.display == "none" ? "block" : "none" );

    var oImg = document.getElementById("menuIMG"+page_id);
    if( oImg ) { 
      oImg.alt = ( oStyle.display == "none" ? "Ouvrir" : "Fermer" );
      oImg.src = "/media/site/picto_" + ( oStyle.display == "none" ? "plus" : "moins" ) + ".gif";
      var oA = document.getElementById("menuA"+page_id);
      if( oA ) {
        oA.title = oImg.alt;
      }
    }     
  }
}

function onMouseOverOutMenu(idUL)
{
  var oUL = document.getElementById(idUL);
  if( oUL ) {
    var oStyle = ( oUL.style ? oUL.style : oUL );
    oStyle.display = ( oStyle.display == "none" ? "" : "none" );
  }
}

var strInnerHtmlBeforeShowUser = "";
function showUser(agent_id)
{
  var oDiv = document.getElementById("contentUserData");
  if( !oDiv ) return;
  
  var strUrl = "/libconf/lib/lib_exectmpl.php?tmpl=alkgedit_1_2_s_annuaire_fiche&agent_id="+agent_id;
  var oAjax = new AlkAjax("", "", "GET", strUrl, null, false);
  // affiche le nouveau contenu contenant la fiche utilisateur
  oDiv.innerHTML = oAjax.getReturnValue();

  var oDivContentData = document.getElementById("contentData");
  if( oDivContentData ) {
    oStyle = ( oDivContentData.style ? oDivContentData.style : oDivContentData );
    oStyle.display = "none";
  }

  oStyle = ( oDiv.style ? oDiv.style : oDiv );
  oStyle.display = "block";
}
function onCloseShowUser()
{
  var oDivUserData    = document.getElementById("contentUserData");
  var oDivContentData = document.getElementById("contentData");
  var oStyle;
  
  if( oDivUserData ) {
    oStyle = ( oDivUserData.style ? oDivUserData.style : oDivUserData );
    oStyle.display = "none";
  }
  if( oDivContentData ) {
    oStyle = ( oDivContentData.style ? oDivContentData.style : oDivContentData );
    oStyle.display = "block";
  }
}
/**
 * Ouvre la popup de calcul de performance
 */
function OpenWindPerf(strToken)
{
  OpenWindow("/scripts/alkanet/alkanet.php?token="+strToken, "230", "400", "windPerf");
}
var tabMenuUrl = new Array();
function addMenuUrl(page_id, page_target, page_url)
{
  if( !tabMenuUrl["_"+page_id] ) {  
    tabMenuUrl["_"+page_id] = new Array(page_target, page_url);
    //alert(page_id+" - "+tabMenuUrl["_"+page_id][0]+" - "+tabMenuUrl["_"+page_id][1]);
  } 
}
function goFirst(page_id)
{
  if( tabMenuUrl["_"+page_id] ) {
    var strUrl    = tabMenuUrl["_"+page_id][1];
    var strTarget = tabMenuUrl["_"+page_id][0];
  
    document.location.href = strUrl;
  } 
}
/**
 * change la couleur de la flèche associé au lien
 * @page_id		identifiant du lien
 * @str_color	nom de la couleur (chaine vide pour couleur par défaut)
 */
function setBulletMenuColor(page_id, str_color)
{
	var oLi = document.getElementById("li_"+page_id);
	if ( oLi ) {
		var oStyleLi = ( oLi.style ? oLi.style : oLi );
		if ( str_color != null && str_color != "" ) {
			var strBackgroundImage = "url(/media/site/bullet_menu_"+str_color+".gif)";
		} else {
			var strBackgroundImage = "url(/media/site/bullet_menu.gif)";
		}
		oStyleLi.backgroundImage = strBackgroundImage;
	}
}

/**
 * redimensionne la hauteur d'une iframe en fonction de son contenu
 * @param iFrameName		nom de l'iframe
 */
function setIFrameHeight(iFrameName){
	var height;
	var oIFrame = document.getElementById(iFrameName);
	if ( oIFrame ) {
		if ( !oIFrame.contentWindow.document.body ) return;
		if( document.all ) {
      height = oIFrame.contentWindow.document.body.scrollHeight + 20;
	  } else {
      height = oIFrame.contentWindow.document.body.offsetHeight + 20;
	  }
    oIFrame.setAttribute( "height", height );  
	}
	
	// redimensionne le contentData au cas où le scrolling droit apparaît
	var iWindowWidth = ( top.window.document.body.clientWidth
                       ? top.window.document.body.clientWidth  
                       : ( top.window.innerWidth 
                           ? top.window.innerWidth 
                           : 977 ));
  iWindWidth = Math.max(977, iWindowWidth - 22 /* scrollbar*/ - 28 /*padding+margin divers*/);
  oDiv = document.getElementById("contentData");
  if( oDiv ) {
    oStyleDiv = ( oDiv.style ? oDiv.style : oDiv );
    oStyleDiv.width = (iWindWidth-Math.max(25, widthMenu))+20 + "px";  
    oStyleDiv.visibility = "visible";
    oStyleDiv.left = Math.max(25, widthMenu)  + "px";
  }
}
/**
 * charge le contenu des combobox de Géosource
 * @return
 */
function loadCombos(idCombo, dependentComboValue){
  if ( !window.geosource.document.advsearch ) return;
  var strToken = tokenLoadCombos;
  var strUrl = "/scripts/alkanet/"+ALK_ALKANET_SITE_SQL+"?token="+strToken+"&idCombo="+idCombo+"&dependentComboValue="+dependentComboValue;
  AlkAjax("loadCombos", "ajaxLoadCombos", "GET", strUrl, null);
}

function ajaxLoadCombos(hxrResponse) {
  eval(hxrResponse);
}

/**
 * met à jour les stats sur la métadonnée
 * @return
 */
function updateStats(metadataId){
  var strToken = tokenLoadCombos;
  var strUrl = "/scripts/alkanet/"+ALK_ALKANET_SITE_SQL+"?token="+strToken+"&metadataId="+metadataId;
  AlkAjax("loadCombos", "ajaxLoadCombos", "GET", strUrl, null);
}

/**
 * écrit dans un cookie
 */
function ecrire_cookie(nom, valeur, path, expires) {
  document.cookie=nom+"="+escape(valeur)+
  ((path==null) ? "; path=/" : "; path="+path)+
  ((expires==null) ? "" : ("; expires="+expires.toGMTString()));
}

function arguments_cookie(offset){
  var endstr=document.cookie.indexOf (";", offset);
  if (endstr==-1) endstr=document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr)); 
}

/**
 * lit la valeur d'un cookie
 */
function lire_cookie(nom) {
  var arg=nom+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while (i<clen){
    var j=i+alen;
    if (document.cookie.substring(i, j)==arg)
       return arguments_cookie(j);
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
  }
  return null;
}

/**
 * sauvegarde les paramètres de la recherche géosource en session via un appel Ajax
 * @param pars		chaîne des paramètres
 */
function setPars(pars){
	var strToken = tokenLoadCombos;
	var strUrl = "/scripts/alkanet/"+ALK_ALKANET_SITE_SQL+"?token="+strToken;
	new AlkAjax("setPars", "ajaxSetPars", "POST", strUrl, "formRechercheList");
}
function ajaxSetPars(xhrResponse) {
	eval(xhrResponse);
}

/**
 * appel Ajax qui permet de modifier la valeur du champ "schemaid" en base d'une métadonnée
 * @param metadata_id		identifiant de la métadonnée
 */
function updateSchemaId(metadata_id){
	var strToken = tokenUpdateSchemaId;
	var strUrl = "/scripts/alkanet/"+ALK_ALKANET_SITE_SQL+"?token="+strToken+"&m=6&metadata_id="+metadata_id;
	new AlkAjax("updateSchemaId", "ajaxUpdateSchemaId", "GET", strUrl, null);
}
function ajaxUpdateSchemaId(xhrResponse){
	eval(xhrResponse);
}

//var openHelpAppli = false;
function OpenHelpSI17(strTokenGeneral)
{
  if( typeof(openHelpAppli) != 'undefined' ) {
    openHelpAppli();
    return;
  }else{
    
  var ht = 400;
  var lg = 950;
  var t = (screen.height-ht)/2;
  var l = (screen.width-lg)/2;
	
	var strUrlHelpGeneral = ALK_ALKANET_ROOT_URL+"libconf/alk_help_consult.php?token="+strTokenGeneral;
	window.open(strUrlHelpGeneral, 'WindowHelp',
              'status=yes,scrollbars=yes,resizable=yes,height='+ht+',width='+lg+',top='+t+',left='+l);
  }
}
