/* =========================================================================

JavaScript Source File -- Created with SAPIEN Technologies PrimalSCRIPT (TM)

NAME: lib_region.js

AUTHOR: Pierre Labrie , telus
DATE  : 2008-07-15

COMMENT: librairie commune des scripts JS des guides régionaux
Modification:  2009-02-16 Jean-François Chabot, TELUS: ajout fonctions "pour nous joindre"
Modification:  2010-10-26 Pierre Labrie, TELUS: ajout du bandeau de sortie

============================================================================ */

// roll over du menu des guides
var browsertest = 0;
var urlSourceRegion = "http://www.gouv.qc.ca/portail/quebec/pgs/commun/nousjoindre/sq/bureauxgmap/?";
var nomRegion = "vide";




if ((navigator.appName == 'Netscape') && (navigator.appVersion.substring(0,1) >= 3)) { browsertest = 1; }
if ((navigator.appCodeName == 'MSIE') && (navigator.appVersion.substring(0,1) > 3)) { browsertest = 1; }
if ((navigator.appCodeName == 'Mozilla') && (navigator.appVersion.substring(0,1) >= 4)) { browsertest = 1; }
	
if (browsertest) {
	// Pour ajouter un lien, ajouter une ligne ici en incrémentant de 1 toutes les noms icone...
	icone00=new Image(); icone00.src="/partageguide/images/guideRegions/icone00.gif";//Fleur de lys bleue
	icone01=new Image(); icone01.src="/partageguide/images/guideRegions/icone01.gif";//Personnes Handicapées
	icone02=new Image(); icone02.src="/partageguide/images/guideRegions/icone02.gif";//Guide Santé
	icone03=new Image(); icone03.src="/partageguide/images/guideRegions/icone03.gif";//Québécois à l'étranger
	icone04=new Image(); icone04.src="/partageguide/images/guideRegions/icone04.gif";//Inutilisée
	icone05=new Image(); icone05.src="/partageguide/images/guideRegions/icone05.gif";//Comment changer d'adresse
	icone06=new Image(); icone06.src="/partageguide/images/guideRegions/icone06.gif";//Renseignements et plaintes pour les consommateurs
	icone07=new Image(); icone07.src="/partageguide/images/guideRegions/icone07.gif";//Cartes, permis et certificats
	icone08=new Image(); icone08.src="/partageguide/images/guideRegions/icone08.gif";//Devenir Parent
	icone09=new Image(); icone09.src="/partageguide/images/guideRegions/icone09.gif";//Que faire lors d'un décès
	icone10=new Image(); icone10.src="/partageguide/images/guideRegions/icone10.gif";//Programmes et services pour les aînés
	icone11=new Image(); icone11.src="/partageguide/images/guideRegions/icone11.gif";//Quand un couple se sépare
	icone12=new Image(); icone12.src="/partageguide/images/guideRegions/icone12.gif";//Inutilisée
	icone13=new Image(); icone13.src="/partageguide/images/guideRegions/icone13.gif";//Inutilisée
	icone14=new Image(); icone14.src="/partageguide/images/guideRegions/icone14.gif";//Inutilisée
	icone15=new Image(); icone15.src="/partageguide/images/guideRegions/icone15.gif";//Que faire avant, pendant et après un sinistre
	icone16=new Image(); icone16.src="/partageguide/images/guideRegions/icone16.gif";//Pour les travailleurs salariés
	icone17=new Image(); icone17.src="/partageguide/images/guideRegions/icone17.gif";//Acheter ou rénover sa maison
	icone18=new Image(); icone18.src="/partageguide/images/guideRegions/icone18.gif";//Vivre en logement
	icone19=new Image(); icone19.src="/partageguide/images/guideRegions/icone19.gif";//Dépôt direct : adhésion et changements
	icone20=new Image(); icone20.src="/partageguide/images/guideRegions/icone20.gif";//Protéger son identité sur Internet
	icone21=new Image(); icone21.src="/partageguide/images/guideRegions/icone21.gif";//Prendre sa retraite
	icone22=new Image(); icone22.src="/partageguide/images/guideRegions/icone22.gif";//Algues Bleu-vert
}


function hiLite2(imgName2){
	if(browsertest){
		document.images['icone'].src = eval(imgName2 + ".src");
	}
}


//affichage de la date de ce document sur la page d'accueil
//TODO touver un code plus universel avec IE, Firefox et Safari

var jsDate= new Date(document.lastModified);
var dateAn=new String(jsDate.getYear());
if(dateAn=="00") dateAn="2000"
if(dateAn=="100") dateAn="2000"
if(dateAn=="101") dateAn="2001"
if(dateAn=="1901") dateAn="2001"
if(dateAn=="102") dateAn="2002"
if(dateAn=="1902") dateAn="2002"
if(dateAn=="103") dateAn="2003"
if(dateAn=="1903") dateAn="2003"
if(dateAn=="104") dateAn="2004"
if(dateAn=="1904") dateAn="2004"
if(dateAn=="105") dateAn="2005"
if(dateAn=="1905") dateAn="2005"
if(dateAn=="106") dateAn="2006"
if(dateAn=="1906") dateAn="2006"
if(dateAn=="107") dateAn="2007"
if(dateAn=="1907") dateAn="2007"
if(dateAn=="108") dateAn="2008"
if(dateAn=="1908") dateAn="2008"
if(dateAn=="109") dateAn="2009"
if(dateAn=="1909") dateAn="2009"
if(dateAn=="110") dateAn="2010"
if(dateAn=="1910") dateAn="2010"

var dateMois = new String(jsDate.getMonth()+1);
if (dateMois<10)
	dateMois = "0" + dateMois;
var dateJour = new String(jsDate.getDate());
if (dateJour<10)
	dateJour = "0" + dateJour;		 
var dateHeures = new String(jsDate.getHours());
if (dateHeures<10)
	dateHeures = "0" + dateHeures;
var dateMinutes = new String(jsDate.getMinutes());
if (dateMinutes<10)
	dateMinutes = "0" + dateMinutes;
var strDateDerniereModif = dateAn + "-" + dateMois + "-" + dateJour + " " + dateHeures + ":" + dateMinutes;

//affichage de la date courante sur la page d'accueil
//TODO touver un code plus universel avec IE, Firefox et Safari
var currentDate=new Date();
var ThisDate=parseInt(currentDate.getDate());
var Jour=new String(currentDate.getDay());
var JourEn;
var ThisMonthEn;
var ThisMonth=parseInt(currentDate.getMonth());
var ThisYear=new String(currentDate.getYear());
var Day=new String(ThisDate);
if(Day=="1") Day="1<sup>er</sup>"

if(Jour=="1") {Jour="lundi";JourEn="Monday";}
if(Jour=="2") {Jour="mardi";JourEn="Tuesday";}
if(Jour=="3") {Jour="mercredi";JourEn="Wednesday";}
if(Jour=="4") {Jour="jeudi";JourEn="Thursday";}
if(Jour=="5") {Jour="vendredi";JourEn="Friday";}
if(Jour=="6") {Jour="samedi";JourEn="Saturday";}
if(Jour=="0") {Jour="dimanche";JourEn="Sunday";}
 
if(ThisMonth=="0") {ThisMonth="janvier";ThisMonthEn="January";}
if(ThisMonth=="1") {ThisMonth="février";ThisMonthEn="February";}
if(ThisMonth=="2") {ThisMonth="mars";ThisMonthEn="March";}
if(ThisMonth=="3") {ThisMonth="avril";ThisMonthEn="April";}
if(ThisMonth=="4") {ThisMonth="mai";ThisMonthEn="May";}
if(ThisMonth=="5") {ThisMonth="juin";ThisMonthEn="June";}
if(ThisMonth=="6") {ThisMonth="juillet";ThisMonthEn="July";}
if(ThisMonth=="7") {ThisMonth="août";ThisMonthEn="August";}
if(ThisMonth=="8") {ThisMonth="septembre";ThisMonthEn="September";}
if(ThisMonth=="9") {ThisMonth="octobre";ThisMonthEn="October";}
if(ThisMonth=="10"){ ThisMonth="novembre";ThisMonthEn="November";}
if(ThisMonth=="11"){ ThisMonth="décembre";ThisMonthEn="December";}
if(ThisYear=="108") ThisYear="2008"
if(ThisYear=="109") ThisYear="2009"
if(ThisYear=="110") ThisYear="2010"
if(ThisYear=="111") ThisYear="2011"
if(ThisYear=="112") ThisYear="2012"

function afficher(strOnglet)
    {
      if (document.getElementById("QuoiDeNeuf"))
       document.getElementById("QuoiDeNeuf").style.display= "none"
      if (document.getElementById("Nouvelles"))
       document.getElementById("Nouvelles").style.display = "none" 
      if (document.getElementById("Communiques")) 
       document.getElementById("Communiques").style.display = "none"
      if (document.getElementById("Consultations"))
       document.getElementById("Consultations").style.display = "none"
    
      if (document.getElementById("tabQuoiDeNeuf"))
       document.getElementById("tabQuoiDeNeuf").className = "tabInactif"
      if (document.getElementById("tabNouvelles"))
       document.getElementById("tabNouvelles").className = "tabInactif"           
      if (document.getElementById("tabCommuniques"))
       document.getElementById("tabCommuniques").className = "tabInactif"
      if (document.getElementById("tabConsultations"))
       document.getElementById("tabConsultations").className = "tabInactif"
    
      var tab = document.getElementById("tab" + strOnglet)
      var contenu = document.getElementById(strOnglet)
      
      if (tab)
        tab.className = "tabActif"
      
      if (contenu)
        contenu.style.display = "block"
      
      // On sauvegarde le nom de l'onglet actif dans un cookie
      // pour pouvoir l'activer si le visiteur revient à la page
      // d'accueil après avoir vu une autre page
      document.cookie = "ongletActif=" + strOnglet + ";"
    }

// événement onload de la balise body
// Rend actif le dernier onglet sélectionné par le visiteur
function init()
{

  var regex = /ongletActif=(\w*)/;
  var ongletActif = (document.cookie).match(regex);
  

  
  if (ongletActif != null)
    afficher(ongletActif[1]);

}

function getLangueCourante(){
	//Patch pour langue car l'entête HTML n'est pas la même partout.
	var langueCode = document.getElementById("divLang").innerHTML;
	if ( langueCode != null && langueCode == "en"){
		return "en";
	}
	else{
		return "fr";
	}
}
// Construction dynamique de l'URL "Pour nous joindre" de l'entête des pages HTML des Guides
function goUrlJoindreRegion()
{
	var urlLangueCourante = "lang=";
	urlLangueCourante = urlLangueCourante + getLangueCourante();
	var urlCodeRegion = "&s=";
	urlCodeRegion = urlCodeRegion + getRegionNumber(document.domain);
	urlSourceRegion = urlSourceRegion +  urlLangueCourante + urlCodeRegion;
	window.location.assign(urlSourceRegion);
}


// Détermine quelle région utilise la page courante
function getRegionNumber(domainUrl){
	var numRegion;
	
	//Permet la fonctionnalite peut importe l'environnement
	domainUrl = domainUrl.substring(domainUrl.indexOf(".")+1);
	//Permet de gérer les noms de domaines identique mais avec des traits d'union
	domainUrl = domainUrl.replace(/-/gi, "");
		
	switch(domainUrl)
	{
		case "bassaintlaurent.gouv.qc.ca":
			numRegion = 1;
			nomRegion = "du Bas-Saint-Laurent";
			break;    
		case "saguenaylacsaintjean.gouv.qc.ca":
			numRegion = 2;
			nomRegion = "du Saguenay–Lac–Saint–Jean";
			break;    
		case "capitalenationale.gouv.qc.ca":
			numRegion = 3;
			nomRegion = "de la Capitale-Nationale";
			break;    
		case "quebec.gouv.qc.ca":
			numRegion = 3;
			nomRegion = "de la Capitale-Nationale";
			break;    
		case "mauricie.gouv.qc.ca":
			numRegion = 4;
			nomRegion = "de la Mauricie";
			break;    
		case "estrie.gouv.qc.ca":
			numRegion = 5;
			nomRegion = "de l\'Estrie";
			break;    
		case "montreal.gouv.qc.ca":
			numRegion = 6;
			nomRegion = "de Montréal";
			break;    
		case "outaouais.gouv.qc.ca":
			numRegion = 7;
			nomRegion = "de l\'Outaouais";
			break;    
		case "abitibitemiscamingue.gouv.qc.ca":
			numRegion = 8;
			nomRegion = "de l\'Abitibi-Témiscamingue";
			break;    
		case "cotenord.gouv.qc.ca":
			numRegion = 9;
			nomRegion = "de la Côte-Nord";
			break;    
		case "nordduquebec.gouv.qc.ca":
			numRegion = 10;
			nomRegion = "du Nord-du-Québec";
			break;    
		case "gaspesieilesdelamadeleine.gouv.qc.ca":
			numRegion = 11;
			nomRegion = "de la Gaspésie–Îles–de–la–Madeleine";
			break;    
		case "chaudiereappalaches.gouv.qc.ca":
			numRegion = 12;
			nomRegion = "de Chaudière-Appalaches";
			break;    
		case "laval.gouv.qc.ca":
			numRegion = 13;
			nomRegion = "de Laval";
			break;    
		case "lanaudiere.gouv.qc.ca":
			numRegion = 14;
			nomRegion = "de Lanaudière";
			break;    
		case "laurentides.gouv.qc.ca":
			numRegion = 15;
			nomRegion = "des Laurentides";
			break;    
		case "monteregie.gouv.qc.ca":
			numRegion = 16;
			nomRegion = "de la Montérégie";
			break;    
		case "centreduquebec.gouv.qc.ca":
			numRegion = 17;
			nomRegion = "du Centre-du-Québec";
			break;    
		default:
		//	"www.gouv.qc.ca"
			numRegion = 0;
			nomRegion = "Portail Québec";
	}
	return numRegion;
}

function openFenetre(){
	var win=window.open("/js.htm", "" , "width=350, height=450, left=250, top=50");
}
		function popup(page,largeur,hauteur,gauche,haut)
		{
	var win=window.open(page, "popup", 'width=' + largeur + ', height=' + hauteur + ', left=' + gauche +', top=' + haut + ', menubar, scrollbars=1');  
		}

function focusRecherche()
{
var chercherfr="Chercher";
var chercheren="Search";
var a=document.getElementById("qt").value;
if(a!=null)
	{
	if((a.indexOf(chercherfr)==0)||(a.indexOf(chercheren)==0))
		{
		document.getElementById("qt").value="";
		}
	}
}

function validRecherche()
{
	focusRecherche()
}

//	Gestion de la taille du texte

var Taille;

function initToggleSize()
{
	Taille = getCookie('Taille');
	if (Taille==null) Taille=0;
	updateSize();
}

function updateSize()
{
if (Taille == 1) 
       {
	   document.getElementById("styleswitcherimg").src = "/partageguide/images/switch-large-fr.gif";
       //document.body.style.fontSize='140%';
       setActiveStyleSheet("Gros")
	   }
	else 
       {	
	   document.getElementById("styleswitcherimg").src = "/partageguide/images/switch-standard-fr.gif";
       //document.body.style.fontSize='100%';
       setActiveStyleSheet("Normal")
	   }
}

function toggleSize() 
{
	if  (Taille == 1) Taille = 0;   
	else Taille = 1;
	   
	setCookie('Taille', Taille,'/');
	updateSize();
}


function setCookie(nom, valeur, chemin, expire, domaine, securite)
{
	document.cookie = nom + ' = ' + escape(valeur) + '  ' +
	((expire == undefined) ? '' : ('; expires = ' + expire.toGMTString())) +
	((chemin == undefined) ? '' : ('; path = ' + chemin)) +
	((domaine == undefined) ? '' : ('; domain = ' + domaine)) +
	((securite == true) ? '; secure' : '');
}


function getCookie(name)
{
	if(document.cookie.length == 0) return null;
	
	var regSepCookie = new RegExp('(; )', 'g');
	var cookies = document.cookie.split(regSepCookie);
	
	for(var i = 0; i < cookies.length; i++)
		{
			var regInfo = new RegExp('=', 'g');
			var infos = cookies[i].split(regInfo);
			if(infos[0] == name)
				{
				return unescape(infos[1]);
				}
		}
	return null;
}
function setActiveStyleSheet(title) {
	//createCookie("style", title, 365);
	var i, a, main;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
			a.disabled = true;
			if(a.getAttribute("title") == title)
				a.disabled = false;
		}
	}
}

function getActiveStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled)
			return a.getAttribute("title");
	}
	return null;
}


function getPreferredStyleSheet() {
	var i, a;
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
	if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title"))
		return a.getAttribute("title");
	}
	return null;
}
function initLiensExternes()
{
	var liensPasOk = "Sortie/Sortie_fr.html";

	var anchors = $$('a');
	var adresseSplit;
	
	for (var i = 0; i < anchors.length; i++) 
	{
		var onclickQuestion = false;
		var anAnchor = anchors[i];
		
		var linkDest = anAnchor.getAttribute("href");
		var lienFinal;
		if (linkDest != null) {
			if (linkDest.indexOf(liensPasOk) == -1) {
				onclickQuestion = true;
			}
			
			adresseSplit = linkDest.split("|");
			lienFinal = adresseSplit[adresseSplit.length -1]
			
			anchors[i].setAttribute("href", lienFinal)
			//Pierre Labrie, 2010-06-03, traitement des nouveaux url sans suffixe "sortie/sortie.asp"
			if (!isUrlSansBandeauSortie(lienFinal)) 
			{
			onclickQuestion = false;
			}
			
			if (onclickQuestion == false && linkDest.indexOf("http") != -1) {
				anchors[i].addEvent('click', ouvrirBoiteExterne);
			}
		}
	}
}

function ouvrirBoiteExterne(event){
 
    var popUP = $('quitterLeSite');
    var btnAnnuler = $('annuler');
    var btnContinuer = $('continuer');
    var txtQuitter =   $('dialogTitle');
    new Event(event || window.event).preventDefault();
    
    btnContinuer.setAttribute("href", this.getAttribute("href"));
    btnAnnuler.addEvent('click', fermerBoiteExterne);
    getRegionNumber(document.domain)
	txtQuitter.innerHTML = 'Vous quittez le portail régional<br/> ' + nomRegion
	popUP.injectBefore(this);
		
	popUP.setStyle('display', 'block'); 
}

function fermerBoiteExterne(){
	
	var popUP = document.getElementById('quitterLeSite');
	
	popUP.setStyle('display', 'none');
}
//Pierre Labrie, 2010-06-03, traitement des nouveaux url sans suffixe "sortie/sortie.asp"
//fonctions provenant du PGS
function isUrlSansBandeauSortie(a_url) {
	if (isUrlException(a_url, listeUrlSansBandeauSortie) 
		|| isUrlInterne(a_url)) {
		return true;	
	}

	return false;
}

function isUrlException(a_url, a_listeException) {
	n = a_listeException.length;
	for (var i = 0; i < n; i++) {
		if (a_url.indexOf(a_listeException[i]) > -1) {
			return true;
		}
	}
	
	return false;
}
function isUrlInterne(a_url) {
	return a_url.toLowerCase().indexOf("http") != 0;
}
