// **************************************************************************************
// Le code javascript present dans ce fichier concerne le module de Recherche du portail.
// **************************************************************************************


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//La variable suivante d�termine quel Form est actif lorsque l'usager clique sur Enter: 
//le Form du module de "Recherche" ou celui de "Mon Dossier".
//Voir fonction bnq_return() et Set_Form_Actif_col_mondossier()

// Attention: outre le present fichier, la valeur de 'vForm_actif_Mon_dossier' peut 
// egalement etre modifi� dans \defaut\modules\col_mondossier.jsp 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var vForm_actif_Mon_dossier = false;  


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/* La variable bool�enne suivante sert � savoir si le texte par defaut "Entrez votre mot cl�" (ou son 
 �quivalent en anglais et en espagnol) est pr�sent ou non dans le 'textbox' du module de recherche. 
 Sa valeur est utilisee dans la fonction "bnq_return(e)". La raison: quand on arrive dans une page du portail
 et qu'on fait ENTER, la fonction bnq_return(e) est lanc�e (peu importe qu'on soit ou non dans un des deux 
 Forms presents dans toutes les pages du portail). On utilise donc cette variable comme condition d'execution 
 du POST du form (du module de Recherche) et on fait en sorte qu'il ne se passe rien si notre variable est TRUE 
 (i.e que "Entrez votre mot cl�" est pr�sent). Voir: bnq_return(e).

 Important: lorsque l'usager clique dans le textbox du module de Recherche (ce qui efface le texte par defaut), 
 la fonction "Set_textbox_recherche_texte_defaut()" assigne FALSE � notre variable. Voir: "defaut/modules/col_recherche.jsp"

 Voir fonctions: bnq_return() et Set_textbox_recherche_texte_defaut()
*/
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var vTextbox_recherche_texte_defaut = true; 


// La variable suivante est globale et contient la valeur "fr", "en" ou  "es" soit la langue s�lectionn� par l'usager
// dans le portail. Cette valeur est rapatri�e via un cookie (cr�� en JSP).

var vSessionLangue = get_cookie("bnq_langue") 


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// --+ Historique:
// --+ Fonction cr��e pour l'ancien portail pour activer la recherche dans ASK ONCE (colgauche.htm)
// --+ (Fournie par CGI et F.Robinette)
// --+
// --+ Modifi�e par VB (03/2006) pour le portail 2006. Cette fonction est maintenant appel�e par
// --+  "\defaut\modules\col_recherche.jsp"
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function processRequest() {

	var url = '';
	var texte = document.formsubmit.expression.value; //Le ou les mots-cl�s

//......................................................................................................
// Avant de lancer processRequest(), on s'assure que l'usager a inscrit quelque chose dans le 'textbox'.
//......................................................................................................

if((vTextbox_recherche_texte_defaut==true) || (trim(document.formsubmit.expression.value) =='')) 
	{
		PopMessage()
	}

//...............................
// Lancement de processRequest()
//...............................

else {  
	
	/*if(vSessionLangue=="en")
	{
	alert("Searching in the Web pages of the BAnQ site is temporarily out of service due to maintenance work. \rWe hope to re-establish service as soon as possible. Thank you for your understanding.");
	} else {
	alert("La recherche dans les pages web du site de BAnQ est temporairement hors service en raison de travaux d\'entretien. \rNous esp\351rons \352tre en mesure de r\351tablir le service le plus t\364t possible. Merci de votre compr\351hension.");
	}*/
	//url ="http://recherche.banq.qc.ca/aoportail/ecis.jsp?action=search&stringDomains=Portail_Gen,Portail_SQLA,Portail_Jeunes&expression="+texte+"&locale=fr"
	
	url ="http://recherche.banq.qc.ca/aoportail/ecis.jsp?action=search&stringDomains=Portail_Gen&expression="+texte+"&locale=fr"
	window.location.href = url;
	return false;
	 }

}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//  Fonction �quivalente � processRequest(). 
//  La diff�rence r�side de le fait qu'il faut d�tecter si l'usager a tapp� ENTER +
//  lorsque la fonction "bnq_nv_fenetre_adr()" est appel�e par un ENTER, certains browsers 'kill' 
//  cette fenetre la consid�rant comme un "popup". Il faut pour eux afficher le r�sultat 
//  de la recherche dans la meme fenetre plutot que dans un popup.. 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function bnq_return(e) 
{
ns = (navigator.appName == 'Netscape' );
ie = (navigator.appName == 'Microsoft Internet Explorer');
var texte;


if ((vForm_actif_Mon_dossier == false) && (vTextbox_recherche_texte_defaut == false))
{
	texte = document.formsubmit.expression.value;

	if (ns || ie)
	{
		if (ns) keypressed = e.which; else if(ie) keypressed = window.event.keyCode;
		
			if(keypressed==13)
			{
				if ( document.formsubmit.expression.value ) // La valeur du champ "expression" n'est pas vide
				{	
					
					/*if(vSessionLangue=="en")
					{
					alert("Searching in the Web pages of the BAnQ site is temporarily out of service due to maintenance work.  \rWe hope to re-establish service as soon as possible. Thank you for your understanding.");
					} else {
					alert("La recherche dans les pages web du site de BAnQ est temporairement hors service en raison de travaux d\'entretien. \rNous esp\351rons \352tre en mesure de r\351tablir le service le plus t\364t possible. Merci de votre compr\351hension.");
					}*/

					
					//url = "http://recherche.banq.qc.ca/aoportail/ecis.jsp?action=search&stringDomains=Portail_Gen,Portail_SQLA,Portail_Jeunes&expression="+texte+"&locale=fr"
					url = "http://recherche.banq.qc.ca/aoportail/ecis.jsp?action=search&stringDomains=Portail_Gen&expression="+texte+"&locale=fr"
					window.location.href = url;
					return false;

				}
			}
	}

}

} //FIN function bnq_return(e)



document.onkeydown = bnq_return; // Agit sur module "Recherche" sauf si la 
								 //	variable globale vForm_actif_Mon_dossier = TRUE;"


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Date cr�ation: 31 mars 2006
----------------------------
Fonction qui set la variable globale "vForm_actif_Mon_dossier" � TRUE ou FALSE.
Param�tres accept�s: 1 ou 0. 
La variable "vForm_actif_Mon_dossier" d�termine le comportement de la fonction bnq_return() laquelle
est appel�e lorsque l'usager tappe ENTER (via "document.onkeydown = bnq_return")
Le probleme � la base qui amen� cette m�canique est la cohabitation probl�matique
de deux FORMS dans le portail soit le module "Recherche" et celui de "Mon Dossier".
En cliquant sur ENTER lorsque le module "Mon dossier" avait le focus lancait la 
fonction "bnq_return()" laquelle lancait une recherche... La m�canique ici permet d'�viter cela.

Cette fonction est appel� par:
"col_mondossier.jsp", "col_mondossier_en.jsp", "col_recherche.jsp", "col_recherche_en.jsp".

Attention: outre le present fichier, la valeur de 'vForm_actif_Mon_dossier' peut 
egalement etre modifi� dans \defaut\modules\col_mondossier.jsp 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

function Set_Form_Actif_col_mondossier(valeur) {

if (valeur == 1)
{
	vForm_actif_Mon_dossier = true;
	
}	
else if (valeur == 0)	
{
	vForm_actif_Mon_dossier = false;
	
}

}


/* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Date cr�ation: 16 mars 2007
----------------------------
 Fonction qui assigne la valeur TRUE ou FALSE � la variable globale "vTextbox_recherche_texte_defaut".
 Param�tres accept�s: 1 ou 0. 
 La variable "vTextbox_recherche_texte_defaut" d�termine le comportement de la fonction bnq_return() laquelle
 est appel�e lorsque l'usager tappe ENTER (via "document.onkeydown = bnq_return"). Pour plus d'info, voir le 
 commentaire acompagnant l'initialisation de cette variable au d�but du pr�sent fichier. 

 Cette fonction est appel�e par:
 "col_recherche.jsp", "col_recherche_en.jsp" et "col_recherche_es.jsp".

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */

function Set_textbox_recherche_texte_defaut(valeur) {

if (valeur == 1)
{
	vTextbox_recherche_texte_defaut = true;
	
}	
else if (valeur == 0)	
{
	vTextbox_recherche_texte_defaut = false;
}

}


// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//La fonction suivante permets par exemple de v�rifier sur un FORM existe.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function testIsValidObject(objToTest) {
		if (null == objToTest) {
			return false;
		}
		if ("undefined" == typeof(objToTest) ) {
			return false;
		}
		return true;

	}




//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Fonction: getRandom()
// Description: G�n�re un nombre a�latoirement se situant entre 'min' et 'max'
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function getRandom(min,max)
{
   return (Math.round(Math.random()*(max-min)))+min;
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Fonction: PopMessage()
// Description: utilis� par le module de recherche.
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


function PopMessage()
{
	switch (vSessionLangue) 
	{ 
   case "fr" : 
      alert ("Veuillez entrer un terme \340 rechercher."); 
      break; 
   case "en" : 
      alert ("Please enter a search term."); 
      break; 
   case "es" : 
      alert ("Ingrese el t\351rmino de b\372squeda."); 
      break; 
	} 
}


function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Fonction: get_cookie(Name)()
//
//  Cette fonction permet de lire une valeur specifique dans un cookie.
//  ex: get_cookie(password)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    // if cookie exists
    if (offset != -1) { 
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}



