// JavaScript Document

/**** SET UP ALL THE PAGES ****/

var arPages = new Array()
// regular Pages
arPages['home'] = new pageObj(0,'Rapport annuel 2008 - Accueil','index.html','','');
arPages['chair'] = new pageObj(0,'Message du président du conseil','chair_message.html','bmo_ar08_chairmessage.pdf','');
arPages['ceo'] = new pageObj(0,'Message du président et chef de la direction','ceo_message.html','bmo_ar08_ceomessage.pdf','');
arPages['snapshot'] = new pageObj(1,'Faits saillants de 2008','hl_highlights.html','bmo_ar08_highlights.pdf','');
arPages['divrec'] = new pageObj(1,'Évolution de notre dividende','hl_dividendrecord.html','bmo_ar08_dividendrecord.pdf','');
arPages['num_matter'] = new pageObj(1,'Les chiffres qui comptent','hl_numbersthatmatter.html','bmo_ar08_numbersthatmatter.pdf','');
arPages['bus_prof'] = new pageObj(2,'Profil de l’organisation','bus_profile.html','bmo_ar08_profile.pdf','');
arPages['bus_strat_glance'] = new pageObj(2,'Notre stratgie en bref','bus_strategy_glance.html','bmo_ar08_strategy.pdf','');
arPages['bus_strat_vision'] = new pageObj(2,'La vision qui oriente notre stratgie','bus_strategy_vision.html','bmo_ar08_strategy.pdf','');
arPages['customer'] = new pageObj(2,'Rapport de progrès : Expérience client','bus_customer.html','bmo_ar08_customer.pdf','');
arPages['momentum'] = new pageObj(2,'Rapport de progrès : Dynamisme','bus_momentum.html','bmo_ar08_momentum.pdf','');
arPages['risk'] = new pageObj(2,'Rapport de progrès : Gestion des risques','bus_risk.html','bmo_ar08_risk.pdf','');
//arPages['fin_glance'] = new pageObj(3,'Résultats financiers et situation financière en bref','fin_glance.html','bmo_ar08_mda_glance.pdf','');
arPages['cfs_balance'] = new pageObj(3,'Bilan consolidé','fin_cfs_balance.html','bmo_ar08_cfs_balance.pdf','bmo_ar08_cfs_balance.xls');
arPages['cfs_income'] = new pageObj(3,'État consolidé des résultats','fin_cfs_income.html','bmo_ar08_cfs_income.pdf','bmo_ar08_cfs_income.xls');
arPages['cfs_equity'] = new pageObj(3,'État consolidé du résultat étendu et État consolidé de la variation des capitaux propres','fin_cfs_equity.html','bmo_ar08_cfs_equity.pdf','bmo_ar08_cfs_equity.xls');
arPages['cfs_cashflows'] = new pageObj(3,'État consolidé des flux de trésorerie','fin_cfs_cashflows.html','bmo_ar08_cfs_cashflows.pdf','bmo_ar08_cfs_cashflows.xls');
arPages['corpgov'] = new pageObj(4,'Gouvernance','cg_corpgov.html','bmo_ar08_corpgov.pdf','');
arPages['process'] = new pageObj(4,'Processus de gestion','cg_process.html','bmo_ar08_mgmt.pdf','');
arPages['directors'] = new pageObj(4,'Conseil d’administration','cg_directors.html','bmo_ar08_directors.pdf','');
arPages['honorary'] = new pageObj(4,'Membres honoraires du Conseil d’administration','cg_honorary.html','bmo_ar08_directors.pdf','');
arPages['mgmt'] = new pageObj(4,'Comité directeur','cg_management.html','bmo_ar08_mgmt.pdf','');
arPages['perfcomm'] = new pageObj(4,'Membres du Comité de performance','cg_performance.html','bmo_ar08_performance.pdf','');
arPages['corpresp'] = new pageObj(5,'Responsabilité sociétale','cr_corpresp.html','bmo_ar08_corpresp.pdf','');
arPages['employees'] = new pageObj(5,'Employés','cr_employees.html','bmo_ar08_corpresp.pdf','');
arPages['community'] = new pageObj(5,'Collectivité','cr_community.html','bmo_ar08_corpresp.pdf','');
arPages['environment'] = new pageObj(5,'Environnement','cr_environment.html','bmo_ar08_corpresp.pdf','');
arPages['shareinfo'] = new pageObj(6,'Sommaire à l’intention des actionnaires','share_info.html','bmo_ar08_shareinfo.pdf','');
arPages['sharedata'] = new pageObj(6,'Données relatives aux actions','share_data.html','bmo_ar08_shareinfo.pdf','');
arPages['gloss1'] = new pageObj(7,'Glossaire A-E','glossary1.html','bmo_ar08_glossary.pdf','');
arPages['gloss2'] = new pageObj(7,'Glossaire F-P','glossary2.html','bmo_ar08_glossary.pdf','');
arPages['gloss3'] = new pageObj(7,'Glossaire Q-R','glossary3.html','bmo_ar08_glossary.pdf','');
arPages['gloss4'] = new pageObj(7,'Glossaire S-Z','glossary4.html','bmo_ar08_glossary.pdf','');
/*arPages['index1'] = new pageObj(8,'Index A-E','alphabetic_index1.html','bmo_ar08_index.pdf','');
arPages['index2'] = new pageObj(8,'Index F-N','alphabetic_index2.html','bmo_ar08_index.pdf','');
arPages['index3'] = new pageObj(8,'Index O-S','alphabetic_index3.html','bmo_ar08_index.pdf','');
arPages['index4'] = new pageObj(8,'Index T-Z','alphabetic_index4.html','bmo_ar08_index.pdf','');*/
arPages['downloads'] = new pageObj(9,'Téléchargement','downloads.html','','');
arPages['printed'] = new pageObj(9,'Commander un exemplaire','request_printed.html','','');
arPages['tech'] = new pageObj(9,'Logiciels recommandés','technical.html','','');
arPages['sitemap'] = new pageObj(9,'Plan du site','sitemap.html','','');

// MD&A
// HTML-coded pages
arPages['mda_index'] = new pageObj(10,'Rapport de gestion – Table des matières','fin_mda_index.html','bmo_ar08_mda_index.pdf','');
arPages['mda_pc_can'] = new pageObj(10,'PE Canada – Vue d’ensemble','fin_mda_pc_can.html','bmo_ar08_mda_oprev_pccan.pdf','');
arPages['mda_pc_us'] = new pageObj(10,'PE États-Unis – Vue d’ensemble','fin_mda_pc_us.html','bmo_ar08_mda_oprev_pcus.pdf','');
arPages['mda_pcg'] = new pageObj(10,'Groupe GP - Vue d’ensemble','fin_mda_pcg.html','bmo_ar08_mda_oprev_pcg.pdf','');
arPages['mda_cap'] = new pageObj(10,'BMO Marchés des capitaux – Vue d’ensemble','fin_mda_capmarkets.html','bmo_ar08_mda_oprev_capmark.pdf','');
// PDF-only pages
arPages['mda_comp'] = new pageObj(10,'Rapport de gestion en entier','','bmo_ar08_mda.pdf','');
arPages['mda_who'] = new pageObj(10,'Ce que nous sommes','','bmo_ar08_mda_whoweare.pdf','');
arPages['mda_glance'] = new pageObj(10,'Résultats financiers et situation financière en bref','','bmo_ar08_mda_glance.pdf','');
arPages['mda_strategy'] = new pageObj(10,'Stratégie globale','','bmo_ar08_mda_strategy.pdf','');
arPages['mda_caution'] = new pageObj(10,'Mise en garde concernant les déclarations prospectives','','bmo_ar08_caution.pdf','');
arPages['mda_future'] = new pageObj(10,'Facteurs pouvant influer sur les résultats futurs','','bmo_ar08_mda_future.pdf','');
arPages['mda_ecodev'] = new pageObj(10,'Évolution de la situation économique','','bmo_ar08_mda_ecodev.pdf','');
arPages['mda_value'] = new pageObj(10,'Mesures de la valeur','','bmo_ar08_mda_value.pdf','');
arPages['mda_perfreview'] = new pageObj(10,'Analyse des résultats financiers de 2008','','bmo_ar08_mda_perfreview.pdf','');
arPages['mda_opreview'] = new pageObj(10,'Analyse des résultats des groupes d’exploitation','','bmo_ar08_mda_opreview.pdf','');
arPages['mda_finconrev'] = new pageObj(10,'Analyse de la situation financière','','bmo_ar08_mda_finconrev.pdf','');
arPages['mda_acct'] = new pageObj(10,'Questions comptables et contrôles de communication de l’information','','bmo_ar08_mda_acct.pdf','');
arPages['mda_riskman'] = new pageObj(10,'Gestion globale des risques','','bmo_ar08_mda_riskman.pdf','');
arPages['mda_nongaap'] = new pageObj(10,'Mesures non conformes aux PCGR','','bmo_ar08_mda_nongaap.pdf','');
arPages['mda_quart'] = new pageObj(10,'Analyse des résultats du quatrième trimestre, Tendances trimestrielles relatives au revenu net et Analyse des résultats financiers de 2007','','bmo_ar08_mda_quart.pdf','');
arPages['mda_supp'] = new pageObj(10,'Données complémentaires','','bmo_ar08_mda_supplemental.pdf','');

// Notes
// HTML-coded pages
arPages['fin_notes'] = new pageObj(11,'Notes afférentes aux états financiers consolidés','fin_notes.html','bmo_ar08_notes.pdf','');
// PDF-only pages
arPages['notes'] = new pageObj(11,'Notes affrentes aux tats financiers consolids en entier','','bmo_ar08_notes.pdf','');
arPages['note1'] = new pageObj(11,'Note 1: Normes de présentation','','bmo_ar08_note1.pdf','');
arPages['note2'] = new pageObj(11,'Note 2: Encaisse','','bmo_ar08_note2.pdf','');
arPages['note3'] = new pageObj(11,'Note 3: Valeurs mobilières','','bmo_ar08_note3.pdf','');
arPages['note4'] = new pageObj(11,'Note 4: Prêts, engagements de clients aux termes d’acceptations et provision pour pertes sur créances','','bmo_ar08_note4.pdf','');
arPages['note5'] = new pageObj(11,'Note 5: Autres instruments de crédit','','bmo_ar08_note5.pdf','');
arPages['note6'] = new pageObj(11,'Note 6: Gestion des risques','','bmo_ar08_note6.pdf','');
arPages['note7'] = new pageObj(11,'Note 7: Garanties','','bmo_ar08_note7.pdf','');
arPages['note8'] = new pageObj(11,'Note 8: Titrisation d’actifs','','bmo_ar08_note8.pdf','');
arPages['note9'] = new pageObj(11,'Note 9: Entités à détenteurs de droits variables','','bmo_ar08_note9.pdf','');
arPages['note10'] = new pageObj(11,'Note 10: Instruments dérivés','','bmo_ar08_note10.pdf','');
arPages['note11'] = new pageObj(11,'Note 11: Bureaux et matériel','','bmo_ar08_note11.pdf','');
arPages['note12'] = new pageObj(11,'Note 12: Acquisitions','','bmo_ar08_note12.pdf','');
arPages['note13'] = new pageObj(11,'Note 13: Écarts d’acquisition et actifs incorporels','','bmo_ar08_note13.pdf','');
arPages['note14'] = new pageObj(11,'Note 14: Actifs divers','','bmo_ar08_note14.pdf','');
arPages['note15'] = new pageObj(11,'Note 15: Dépôts','','bmo_ar08_note15.pdf','');
arPages['note16'] = new pageObj(11,'Note 16: Passifs divers','','bmo_ar08_note16.pdf','');
arPages['note17'] = new pageObj(11,'Note 17: Charge de restructuration','','bmo_ar08_note17.pdf','');
arPages['note18'] = new pageObj(11,'Note 18: Dette subordonnée','','bmo_ar08_note18.pdf','');
arPages['note19'] = new pageObj(11,'Note 19: Titres d’une fiducie de capital','','bmo_ar08_note19.pdf','');
arPages['note20'] = new pageObj(11,'Note 20: Risque de taux d’intérêt','','bmo_ar08_note20.pdf','');
arPages['note21'] = new pageObj(11,'Note 21: Capital-actions','','bmo_ar08_note21.pdf','');
arPages['note22'] = new pageObj(11,'Note 22: Gestion du capital','','bmo_ar08_note22.pdf','');
arPages['note23'] = new pageObj(11,'Note 23: Rémunération du personnel – Rémunération à base d’actions','','bmo_ar08_note23.pdf','');
arPages['note24'] = new pageObj(11,'Note 24: Rémunération du personnel – Régimes de retraite et autres avantages sociaux futurs','','bmo_ar08_note24.pdf','');
arPages['note25'] = new pageObj(11,'Note 25: Impôts sur les bénéfices','','bmo_ar08_note25.pdf','');
arPages['note26'] = new pageObj(11,'Note 26: Résultat par action','','bmo_ar08_note26.pdf','');
arPages['note27'] = new pageObj(11,'Note 27: Segmentation opérationnelle et géographique','','bmo_ar08_note27.pdf','');
arPages['note28'] = new pageObj(11,'Note 28: Opérations entre apparentés','','bmo_ar08_note28.pdf','');
arPages['note29'] = new pageObj(11,'Note 29: Passif éventuel','','bmo_ar08_note29.pdf','');
arPages['note30'] = new pageObj(11,'Note 30: Juste valeur des instruments financiers','','bmo_ar08_note30.pdf','');
arPages['note31'] = new pageObj(11,'Note 31: Rapprochement des principes comptables généralement reconnus du Canada et des États-Unis','','bmo_ar08_note31.pdf','');

// creates a page with title, url, pdf and excel
function pageObj(sect, ttl, url, pdf, xls) {
	this.sect = sect;
	this.ttl = ttl;
	this.url = url;
	this.pdf = pdf;
	this.xls = xls;
}

function openPageInMain(url) {
	newWin = window.opener.document.location = url;
}


/**** READ/WRITE/REMOVE FUNCTION BELOW HERE ****/

function getMARvalues() {
	var allcookies = document.cookie;
	var pos = allcookies.indexOf("myReport=");
	if (pos != -1) {
		var start = pos + 9;
		var end = allcookies.indexOf(";", start);
		if (end == -1) { end = allcookies.length;}
		var value = allcookies.substring(start, end);
		value = unescape(value);
		return value;
	}
}

function addToMyAR(pageRef,cancelAlert) {
//	alert (pageRef);
	// get the page title for feedback
	var ttl = arPages[pageRef].ttl;
	var alertMessage = ttl + " figure maintenant dans Mon Rapport annuel.";
	// find out what's already stored
	var marValues = getMARvalues();
	var alreadyAdded = false;
	if (marValues != undefined) {
		var arTemp = marValues.split("|");
		var i = arTemp.length;
		while (i--) {
			if (pageRef != arTemp[i]) { 
				var cValue = marValues + "|" + pageRef;
			} else {
				var cValue = marValues;
				alreadyAdded = true;
				alertMessage = "Cette page figure déjà dans Mon Rapport annuel."
				break;
			}
		}
	} else {
		var cValue = pageRef;
	}
//	alert ("cValue = " + cValue);
	// set the new cookie
	createCookie("myReport",cValue,365);
	
	//tracking
	if (!alreadyAdded) { trackEvent( "Add", ttl )};
	
	// provide feedback to the user
	if (!cancelAlert) {
		alert (alertMessage);
	}
}
function removeFromMyReport(pageRef,requestFromEdit) {
	// get the page title for feedback
	var ttl = arPages[pageRef].ttl;
	var alertMessage = ttl + " supprimé de Mon Rapport annuel";
	// find out what's already stored
	var marValues = getMARvalues();
	var arTemp = marValues.split("|");
	var found = false;
	var i = arTemp.length;
	while (i--) {
		if (pageRef == arTemp[i]) {
			var firstArray = arTemp.slice(0,i);
			var secondArray = arTemp.slice(i+1);
			var arNew = firstArray.concat(secondArray)
			var cValue = arNew.join('|');
			found = true;
		}
	}
	// set the new cookies
	createCookie("myReport",cValue,365);
	if (getNotes(pageRef)) {
		deleteNote(pageRef,requestFromEdit);
	}
	
	//tracking
	if (found) { trackEvent( "Remove", ttl ); }
	// refresh the page
	document.location.replace("myannualreport.html");
}

// Omniture Event tracking
function trackEvent( action, sectionName ) {
	if (typeof captureLinkAlt == 'function') {
		captureLinkAlt(window.location,"Annual Report 2008","","action=ar" + action + "2008-" + sectionName + "-FR");
	}
}

function addNote(pageRef) {
	var pageToLoad = "notes_add.html?pageRef="+pageRef;
	var attributes = "menubar=no,toolbar=no,location=no,status=yes,scrollbars=yes,resizable=yes,width=400,height=320"
	newWin(pageToLoad,name,attributes);
}
function viewNotes(pageRef) {
	var pageToLoad = "notes_view.html?pageRef="+pageRef;
	var attributes = "menubar=no,toolbar=no,location=no,status=yes,scrollbars=yes,resizable=yes,width=400,height=320"
	newWin(pageToLoad,name,attributes);
}
function shareNote(pageRef) {
	var doShare = true;
	var loc = document.location.href;
	if (loc.indexOf("notes_add") != -1) {
		doShare = false;
		if (document.noteForm.noteContent.value != "") {
			if (confirm ("Vous devez enregistrer la note avant de pouvoir la transmettre. Désirez-vous enregistrer votre note?")) {			
				saveNote();
				doShare = true;
			}
		} else {
			alert("Entrer votre note.");
			document.noteForm.noteContent.focus();
		}
	}
	if (doShare) {
		var pageToLoad = "notes_share.html?pageRef="+pageRef;
		document.location = pageToLoad;
	}
}


function clearAllMyReport() {
	if (confirm("Désirez-vous vraiment effacer toutes les pages enregistrées?")) {
		cValue = "";
		createCookie("myNotes",cValue,-30);
		createCookie("myReport",cValue,-30);
		//tracking
		trackEvent("Clear", "all");
		document.location.replace("myannualreport.html");
	}
}

function getAllNotes() {
	var value = "";
	var allcookies = document.cookie;
	var pos = allcookies.indexOf("myNotes=");
	if (pos != -1) {
		// remove any "undefined" value
		if (allcookies.toString().indexOf('undefined') != -1) {
			var arTemp = allcookies.split('undefined');
			allcookies = arTemp[0] + arTemp[1];
		}
		var start = pos + 8;
		var end = allcookies.indexOf(";", start);
		if (end == -1) { end = allcookies.length;}
		value = allcookies.substring(start, end);
		value = unescape(value);
	}
	return value;
}

function getNotes(pageRef) {
	var val = null;
	var c = unescape(readCookie("myNotes"));
	if (c != null) {
		var arTemp = c.split('|');
		var i = arTemp.length;
		while (i--) {
			var thisNote = arTemp[i];
			if (thisNote.indexOf(pageRef) != -1) {
				var startIndex = thisNote.indexOf(':') + 1;
				var val = thisNote.substr(startIndex);
			}
		}
	}
	return val
}

function deleteNote(pageRef, reqFromEditPage) {
	var allNotes = getAllNotes();
	var prevNotes = getNotes(pageRef);
	if (prevNotes != null) {
		var splitter = pageRef + ":" + prevNotes;
		var arTemp = allNotes.split(splitter);
		var cVal = arTemp[0] + arTemp[1];
	}
	createCookie("myNotes",cVal,365);
	// refresh the page if necessary
	if (reqFromEditPage) {
		var url = arPages[pageRef].url;
		var parent = window.opener.location.toString();
		if (parent.indexOf(url) != -1) {
			var currPage = document.location.toString();
			if (currPage.indexOf('notes_add.html') != -1) {
				document.noteForm.noteContent.value = "";
			}
			openPageInMain(url);
		} else {
			openPageInMain("myannualreport.html");
		}
	}
}


function getPageNotes(pageRef) {
	var val = false;
	var c = readCookie("myNotes");
//	alert (c);
	if (c != null) {
		if (c.indexOf(pageRef) != -1) {
			val = true;
		}
	}
	return val
}

function writeViewNotesLink(pageRef) {
	var hasNotes = getPageNotes(pageRef);
	var s = "";
	if (hasNotes) {
		s += '<a id="viewNotes" title="Afficher mes notes à cette page" href="javascript:viewNotes(\''+pageRef+'\')" onmouseover="return showStatus(\'Afficher mes notes à cette page\');" onmouseout="return showStatus(\'\');">Afficher mes notes à cette page</a>';
	} else {
		s += '<span id="viewNotes" class="inactive" title="Aucune note à cette page">Aucune note à cette page</span>';
	}
//	alert (s);
	document.write(s);
}