/*
      copyright Bizlink 2005
      fichier   :    tools.js
      version   :  	 1.0
      auteur    :    JLT
      date      :    26/02/2005
      description       :   scripts javascript utilitaires
      modification      : 	auteur 	date 		modification
      JLT     24/03/2005  - reprise de la fonction ToMajuscule() pour la fenetre
                            de login
*/

// *******************************************************************************************************************
// ************************************* Un texte seulement constitué de chiffres ************************************
function checkNumbers(_value)
{
 var regex = new RegExp(/^\d+$/);
 if (!regex.test(_value))
 {return false;}
 else
 {return true;}
}
// ********************************** Fin de un texte seulement constitué de chiffres ********************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ********************************** Shortcut to access an html object by its "id" **********************************
function $()
{var _elements = new Array();

 for (var i = 0; i < arguments.length; i++)
 {var _element = arguments[i];
  if (typeof _element == 'string')  _element = document.getElementById(_element);
  if (arguments.length == 1)  return _element;
  _elements.push(element);}
 return _elements;
}
// ******************************* End of shortcut to access an html object by its "id" ******************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ********************************** Fonctions Trim -- Surcharges de l'objet String *********************************
String.prototype.LTrim = new Function("return this.replace(/^\\s+/,'')")
String.prototype.RTrim = new Function("return this.replace(/\\s+$/,'')")
String.prototype.Trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')")
// ******************************* Fin de fonctions Trim -- Surcharges de l'objet String *****************************
// *******************************************************************************************************************
	

// *******************************************************************************************************************
// ************************************** Convertit un champ html en majuscules **************************************
function ToMajuscule(champ)
{sValue = champ.value;
 //Passage des infos saisies en majuscule
 sValue = sValue.toUpperCase();
 champ.value = sValue;}
// *********************************** Fin de convertit un champ html en majuscules **********************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// **************************************** Raccourcis pour ouverture de popup ***************************************
function popupwindow(UrlForPopUp, height, width, option)
{sOptions = "height=" + height + ",width=" + width;
 if (option != "")  sOptions = sOptions + "," + option;
 datewindow = window.open(UrlForPopUp, 'popupwindow', sOptions);
 datewindow.focus();}
// ************************************* Fin de raccourcis pour ouverture de popup ***********************************
// *******************************************************************************************************************


/*
function popup(url)
{
	window.open(url,'dc_popup',
	'alwaysRaised=yes,toolbar=no,height=420,width=500,menubar=no,resizable=yes,scrollbars=yes,status=no');
}
*/

// *******************************************************************************************************************
// ************************************** Assume 3 champs html en date standard **************************************
function checkDate(spec)
{if (typeof(spec) != "undefined")  spec = '_' + spec;
 else  spec = '';
 
 DDAY = parseInt(document.getElementsByName('DDAY' + spec)[0].value, 10);
 DMONTH = parseInt(document.getElementsByName('DMONTH' + spec)[0].value, 10);
 DYEAR = parseInt(document.getElementsByName('DYEAR' + spec)[0].value, 10);
 if (isNaN(DDAY) || (DDAY < 1) || (DDAY > 31))  DDAY = new Date().getDate();
 if (isNaN(DMONTH) || (DMONTH < 1) || (DMONTH > 12))  DMONTH = new Date().getMonth() + 1;
 if (isNaN(DYEAR) || (DYEAR < 1950) || (DYEAR > 2020))  DYEAR = new Date().getFullYear();

 document.getElementsByName('DDAY' + spec)[0].value = DDAY;
 document.getElementsByName('DMONTH' + spec)[0].value = DMONTH;
 document.getElementsByName('DYEAR' + spec)[0].value = DYEAR;
}
// *********************************** Fin de assume 3 champs html en date standard **********************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ************************************** Confirmation de fermeture de campagne **************************************
function confirmCMP()
{if (document.getElementsByName('LOV_P_STAT_CAMPAGNE')[0].value == 3)
   return confirm("Attention: Le passage au statut [Campagne Fermée] est irréversible. \nVeuillez confirmer la fermeture de la campagne en cours ?");
 return true;
}
// *********************************** Fin de confirmation de fermeture de campagne **********************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ******************************************** Mise en place de tooltips ********************************************
function setTooltip(elt, tooltips)
{for (i = 0; i < document.getElementsByName(elt).length; i++)
   document.getElementsByName(elt)[i].title = tooltips;}
// ***************************************** Fin de mise en place de tooltips ****************************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ******************************************** Activation des consignes *********************************************
function activateConsigne(consigne)
{
	if(document.getElementsByName('INFO_' + consigne)[0] == null)
		return;
	
	document.getElementsByName('INFO_' + consigne)[0].onclick =
   function()
   {popupwindow('index.php?MOD=P_CONSIG&C_CONSIG=' + consigne, 400, 500, 'alwaysRaised=yes,toolbar=no,menubar=no,resizable=yes,scrollbars=yes,status=no');};

 document.getElementsByName('INFO_' + consigne)[0].onmouseover =
   function()
   {urlIco = document.getElementsByName('INFO_' + consigne)[0].src;
    document.getElementsByName('INFO_' + consigne)[0].src =
      urlIco.substring(0, urlIco.indexOf("help-blue.png")) + 'help-red.png';};

 document.getElementsByName('INFO_' + consigne)[0].onmouseout =
   function()
   {document.getElementsByName('INFO_' + consigne)[0].src = urlIco;};
  
}
// ***************************************** Fin de activation des consignes *****************************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ******************************* Bascule des modes lecture / écriture des champs html ******************************
function initMode(mode)
{tbInput = document.getElementsByTagName("input");
 for (var i = 0; i < tbInput.length; i++)
 {
	 if ((tbInput[i].type == 'checkbox') || (tbInput[i].type == 'radio'))  
		 tbInput[i].disabled = (mode=="ro");
	 else  tbInput[i].readOnly = ((mode == "ro")||(mode== "print"));}
  
 if ((mode == "ro") || (mode == "print"))
 {tbSelect = document.getElementsByTagName("select");
  for (var i = 0; i < tbSelect.length; i++)
    tbSelect[i].disabled = true;}
} 
// **************************** Fin de bascule des modes lecture / écriture des champs html **************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ************************************************* Fonction replace ************************************************
function replace (inchar, outchar, instr)
{var outstr = "";
 var i = 0, j = 0;
 
 while ((i != -1) && (j < instr.length))
  if ((i = instr.indexOf(inchar,j)) != -1)
  {outstr += instr.substring(j, i) + outchar;
   j = i + 1;}
  return outstr + instr.substring(j, instr.length);
} 
// ********************************************** Fin de fonction replace ********************************************
// *******************************************************************************************************************


// *******************************************************************************************************************
// ************************************* Remplacement des virgules par des points ************************************
function parseNum(num)
{str = replace(',', '.', num);
 return parseFloat(str);}
// ********************************** Fin de remplacement des virgules par des points ********************************
// *******************************************************************************************************************

// *******************************************************************************************************************
// ************************** Définition du texte affichée dans la popup de rappel d email ***************************
var popup_email_check_text = "Attention, l'email de contact n'est pas renseigné.\nIl est nécessaire pour la transmission d'un accusé " + 
         "de réception de la déclaration\nSouhaitez-vous le renseigner ?\n\nCliquez sur Annuler pour le renseigner " +
         "ou sur OK pour envoyer votre déclaration";
//  \n\nSi vous ne le renseignez pas, un bouton d'impression " +
//         "de la déclaration est disponible lors de la visualisation ou modification de la déclaration.
         
// *********************** Fin de définition du texte affichée dans la popup de rappel d email ***********************
// *******************************************************************************************************************

//*******************************************************************************************************************
//************************** Définition du texte affichée dans la popup de rappel d email ***************************
var popup_agrement_check_text = "Il y a un problème de chevauchement avec les dates d'agréments.\n " +
								"La mise à jour de l'agrément n'a pa pu être effectuée.\n";
//*********************** Fin de définition du texte affichée dans la popup de rappel d email ***********************
//*******************************************************************************************************************
