// **************************************************************************************
// 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;
}


