// (C) 2007 - 2011 Serge Lamarche
// sergewebservice.ca
// All codes copyrights Serge Lamarche, any reproduction and 
// use strictly forbidden without written consent.
// Toute reproduction est interdite sans autorisation écrite
// Contact sergewebservice@yahoo.ca or sergelamarche@gmail.com 
// for help with your website. Reliable, inexpensive website service.
// Les effets javascripts sont disponibles à prix abordables. Merci. 

var map = new Object(); conserveimage = false; 

if (!nodetexte) var nodetexte = new Object(); 

function chargeimage(elementa) { if (!document.getElementById) return; 
if (!document.getElementById("ecran")) return; 
nilintervfonduench(); montre('ecran', true); //arrete fondu-enchainé et mets l'écran pour sur.
var lecran = document.getElementById("ecran"); 
if (!lecran.innerHTML||!document.documentElement.innerHTML) return; // bug sur opera 9.6 oblige d'enlever typeof().
if (conserveimage) { lecran.innerHTML=''; lecran.innerHTML = conserveimage; conserveimage = false; }; //remet si conservée.
transparence('img01', 0); montre('attend', true); //met en veilleuse un moment. 
nilintervdiapofondu(); montre('screen', false); //arrête diapo et prends note ci-dessous: 
var limg01 = document.getElementById("img01"); 
//laphotodsimg01 = limg01.src; //aussi: document.images["img01"].src;
laphotodsimg01 = limg01.getAttribute("href"); photodsimg01 = true; 
var nomphoto = elementa.getAttribute("href"); 
//alert(nomphoto); 
var ledebordement = (window.getComputedStyle) ? window.getComputedStyle(lecran,null).overflow : lecran.currentStyle.overflow; 
var srcimage = "http://www.canadianheli-skiing.com/gallery-maps/"; var imgfraiche = ".jpg"; 
if (-1!=nomphoto.search(/gallery-maps/)&&-1==nomphoto.search(/HMLhelipad/)) { if (-1!=nomphoto.search(/gallery-maps/)&&-1==nomphoto.search(/HMLhelipad/)) nomphoto = nomphoto.substring(48, nomphoto.length-4); changelegende(map[nomphoto].legende);
//if (-1!=nomphoto.search(/\?khr/)) nomphoto = nomphoto.substring(23); 
 } else { var lawebcam; imgfraiche = "?"+Math.random(); 
if (-1!=nomphoto.search(/HMLhelipad/)) { srcimage = ""; lawebcam="HMLhelipad"; }; 
if (-1!=nomphoto.search(/alpineholidays/)) { srcimage = ""; lawebcam="gah"; }; imgfraiche = ""; 
if (-1!=nomphoto.search(/subCat=7572/)) { srcimage = ""; lawebcam="khreagleeye"; nomphoto=khreagleeyehub}; 
if (-1!=nomphoto.search(/subCat=11692/)) { srcimage = ""; lawebcam="khrstairway"; nomphoto=khrstairwayhub}; 
changelegende(map[lawebcam].legende); }
if (nomphoto=="gch-runmap-gd") { lecran.style.overflow = "hidden"; lecran.style.height = "507px"; limg01.style.position = "absolute"; limg01.style.left = "-1980px"; limg01.style.top = "-1400px"; limg01.style.cursor = "move"; dragDrop.initElement(limg01); } else if (ledebordement=="hidden") { lecran.style.height = "auto"; lecran.style.overflow = "auto"; limg01.style.position = "relative"; limg01.style.left = "auto"; limg01.style.top = "auto"; limg01.style.cursor = "auto"; }; 
//changelegende(photo[nomphoto].legende+" &mdash; by "+photo[nomphoto].proprio+" &mdash; "+photo[nomphoto].date); 
//var x=document.getElementById("img01").offsetHeight||document.getElementById("img01").style.pixelHeight; alert(x);
changephotosrc('img01', srcimage+nomphoto+imgfraiche); 
intervdefilepage = window.setInterval("defilepage(0)", 20); 
intervattendimage = window.setInterval("attendimage()", 500); return false; }; 


//Remplacer ' par &rsquo; dans les légendes:

map['bc-google'] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'Google map of British Columbia', 
"affiche": '', 
"titre": ""
 }; 

map['hml-google'] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'Google map of Heather Mountain Lodge', 
"affiche": '', 
"titre": ""
 }; 

map['gch-runmap'] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'All our runs are in the Purcell and Selkirk ranges. <a href="http://www.canadianheli-skiing.com/gallery-maps/gch-runmap-gd.jpg" onclick="return chargeimage(this)">View full size (6MB - high quality)</a>', 
"affiche": '', 
"titre": ""
 }; 

map['gch-runmap-gd'] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'All our runs are in the Purcell and Selkirk ranges. <a href="http://www.canadianheli-skiing.com/gallery-maps/gch-runmap.jpg" onclick="return chargeimage(this)">Return to smaller size</a>', 
"affiche": '', 
"titre": ""
 }; 

map['HMLhelipad'] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'Webcam image at the helipad of Heather Mountain Lodge. <a href="http://www.canadianheli-skiing.com/gallery-maps/HMLhelipad.jpg" onclick="return chargeimage(this)">Refresh</a>', 
"affiche": '', 
"titre": ""
 }; 

map['gah'] = { 
"proprio": "Golden Alpine Holidays", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'Webcam image at Sentry Mountain Lodge webcam (2109 m) of Golden Alpine Holidays. <a href="http://www.goldenalpineholidays.com/camera0.jpg" onclick="return chargeimage(this)">Refresh</a>', 
"affiche": '', 
"titre": ""
 }; 

map['khreagleeye'] = { 
"proprio": "Kicking Horse Resort", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'Webcam image at Eagle&lsquo;s Eye restaurant of Kicking Horse Resort. <a href="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284127672&width=640&webCam=1&subCat=7572" onclick="return chargeimage(this)">Refresh</a>', 
"affiche": '', 
"titre": ""
 }; 

map['khrstairway'] = { 
"proprio": "Kicking Horse Resort", 
"sousgroupe": "aucun", 
"date": "2008-00-00", 
"cote": 0, 
"legende": 'Webcam image at Stairway to Heaven chairlift of Kicking Horse Resort. <a href="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284094502&width=640&webCam=1&subCat=11692" onclick="return chargeimage(this)">Refresh</a>', 
"affiche": '', 
"titre": ""
 }; 


/* 
map[''] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2009-00-00", 
"cote": 0, 
"legende": '', 
"affiche": '', 
"titre": ""
 }; 
*/


nodetexte['forecasts'] = { 
"proprio": "Snow-forecast.com and Various Canadian government agencies", 
"sousgroupe": "aucun", 
"date": "Current", 
"cote": 0, 
"legende": "Forecasts", 
"affiche": '<p></p>', 
"textehtml": '<br /><p><a href="http://www.snow-forecast.com/resorts/GC-HeliSki/6day/top" target="_blank"><img width="144" height="40" border="0" alt="Snow Forecast" src="images-gen/logo-snowforecast_144px.gif" style="width: 144px; height: 40px; margin-right: 13px;" /></a> <strong><a href="http://www.snow-forecast.com/resorts/GC-HeliSki/6day/top" target="_blank">Snow Forecast for GCH</a> &mdash;</strong> (elevation 1006 to 3200&nbsp;m, 3,300 to 10,500&nbsp;ft)</p><br /><p><a href="http://www.weatheroffice.gc.ca/city/pages/bc-34_metric_e.html" target="_blank"><img width="144" height="34" border="0" alt="Environment Canada" src="images-gen/logo-envcan_144px.gif" style="float: left; width: 144px; height: 34px; margin-right: 13px;" /></a> <strong class="marge"><a href="http://www.weatheroffice.gc.ca/city/pages/bc-34_metric_e.html" target="_blank">Golden Forecast</a> &mdash;</strong> (elevation 786 m, 2581 ft)<br /><strong class="marge"><a href="http://www.weatheroffice.gc.ca/city/pages/bc-65_metric_e.html" target="_blank">Revelstoke Forecast</a> &mdash;</strong> (elevation 442 m, 1451 ft)</p><br /><p><a href="http://www.pc.gc.ca/apps/PSB/index_e.asp?oqAVA_PARK_ID=3" target="_blank"><img width="124" height="24" border="0" alt="Parcs Canada" src="images-gen/logo-parcscanada_144px.gif" style="width: 144px; height: 24px; margin-right: 10px;" /></a> <strong class="marge"><a href="http://www.pc.gc.ca/apps/PSB/index_e.asp?oqAVA_PARK_ID=3" target="_blank">Glacier National Park Report</a></strong></p><br />', 
"description": "", 
"titre": "Forecasts"
 }; 


nodetexte['snowforecastfeed'] = { 
"proprio": "Snow-forecast.com", 
"sousgroupe": "aucun", 
"date": "Current", 
"cote": 0, 
"legende": "Forecasts", 
"affiche": '<p></p>', 
"textehtml": '<link href="http://www.snow-forecast.com/stylesheets/feed.css" media="screen" rel="stylesheet" type="text/css" /><div id="wf-weatherfeed" style="margin: 5px auto;"><iframe style="overflow:hidden;border:none;" allowtransparency="true" height="272" width="469" src="http://www.snow-forecast.com/resorts/GC-HeliSki/forecasts/feed/top/a" scrolling="no" frameborder="0" marginwidth="0" marginheight="0"><p>Your browser does not support iframes.</p></iframe><div id="wf-link"><a href="http://www.snow-forecast.com/"><img alt="Snow Forecast" src="http://www.snow-forecast.com/images/feed/snowlogo-150.png"/></a><p id="cmt">View detailed snow forecast for <a href="http://www.snow-forecast.com/resorts/GC-HeliSki?utm_source=embeddable&amp;utm_medium=widget&amp;utm_campaign=GC-HeliSki">Great Canadian Heli-Skiing</a> at: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.snow-forecast.com/resorts/GC-HeliSki?utm_source=embeddable&amp;utm_medium=widget&amp;utm_campaign=GC-HeliSki"><strong>snow-forecast.com</strong></a></p></div></div>', 
"description": "", 
"titre": "Forecasts"
 }; 


nodetexte['satellites'] = { 
"proprio": "Snow-forecast.com and Environment Canada", 
"sousgroupe": "aucun", 
"date": "Current", 
"cote": 0, 
"legende": "", 
"affiche": '<p></p>', 
"textehtml": '<p><strong><a href="http://snow-forecast.com/maps/bcol_dynamical.shtml" target="_blank">Snow-forecast Interactive Snowfall Maps</a></strong></p><p><strong class="marge"><a href="http://www.meteo.gc.ca/satellite/animateweb_e.html?imagetype=satellite&amp;imagename=goes_wcan_vvi_s_..................jpg&amp;nbimages=1&amp;clf=1" target="_blank">Environment Canada Satellite Loop</a> &mdash;</strong> (Goes-West) Western Canada IR+Visible Small includes all 110 images.</p>', 
"description": "", 
"titre": "Satellites"
 }; 

nodetexte['webcams'] = { 
"proprio": "GCH, GAH, KHMR, BC", 
"sousgroupe": "aucun", 
"date": "Current", 
"cote": 0, 
"legende": "", 
"affiche": '<p></p>', 
"textehtml": '<div class="gauche" style="width: 370px"><a href="http://www.canadianheli-skiing.com/gallery-maps/HMLhelipad.jpg" target="_blank" onclick="return chargeimage(this)"><img src="http://www.canadianheli-skiing.com/gallery-maps/HMLhelipad.jpg" width="160" height="120" /></a><p><strong class="marge"><a href="http://www.canadianheli-skiing.com/gallery-maps/HMLhelipad.jpg" target="_blank" onclick="return chargeimage(this)">GCH webcam</a></strong> at our Heather Mountain Lodge <br />(1030&nbsp;m, 3379&nbsp;ft)</p></div><div class="droite" style="width: 370px"><a href="http://www.goldenalpineholidays.com/camera0.jpg" target="_blank" onclick="return chargeimage(this)"><img src="http://www.goldenalpineholidays.com/camera0.jpg" width="160" height="120" /></a><p><strong class="marge"><a href="http://www.goldenalpineholidays.com/camera0.jpg" onclick="return chargeimage(this)">Sentry Mountain Lodge webcam</a></strong> at Golden Alpine Holidays (2109&nbsp;m, 6918&nbsp;ft).</p></div><div class="gauche" style="width: 370px"><a href="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284127672&width=640&webCam=1&subCat=7572" target="_blank" onclick="return chargeimage(this)"><img src="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284127672&width=640&webCam=1&subCat=7572" width="160" height="120" /></a><p><strong><a href="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284127672&width=640&webCam=1&subCat=7572" target="_blank" onclick="return chargeimage(this)">Eagle Eye webcam</a></strong> at Kicking Horse Mountain Resort (2392&nbsp;m, 7850&nbsp;ft)</p></div><div class="droite" style="width: 370px"><a href="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284094502&width=640&webCam=1&subCat=11692" target="_blank" onclick="return chargeimage(this)"><img src="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284094502&width=640&webCam=1&subCat=11692" width="160" height="120" /></a><p><strong class="marge"><a href="http://us3.resorts-interactive.com/mvp/getImage.php?fromRSS=1&clientID=282&photoID=284094502&width=640&webCam=1&subCat=11692" target="_blank" onclick="return chargeimage(this)">Stairway to Heaven webcam</a></strong> at Kicking Horse Mountain Resort (2392&nbsp;m, 7850&nbsp;ft)</p></div><div class="gauche"><p><strong class="marge"><a href="http://images.drivebc.ca/bchighwaycam/pub/html/www/101.html" target="_blank">Rogers Pass webcam</a> &mdash;</strong> Glacier National Park relative information. (1322&nbsp;m, 4337&nbsp;ft)</p></div>', 
"description": "", 
"titre": "Webcams"
 }; 

nodetexte['historicdata'] = { 
"proprio": "Environment Canada", 
"sousgroupe": "aucun", 
"date": "", 
"cote": 0, 
"legende": "", 
"affiche": '<p></p>', 
"textehtml": '<p><strong><a href="http://climate.weatheroffice.gc.ca/climate_normals/results_e.html?stnID=1363&prov=&lang=e&dCode=1&dispBack=1&StationName=rogers_pass&SearchType=Contains&province=ALL&provBut=&month1=0&month2=12" target="_blank">Rogers Pass</a> &mdash;</strong> (elevation 1322m, 4337 ft) <img width="144" height="34" border="0" alt="Environment Canada" src="images-gen/logo-envcan_144px.gif" style="width: 144px; height: 34px;"/></p><p><strong class="marge"><a href="http://climate.weatheroffice.gc.ca/climate_normals/results_e.html?stnID=1345&prov=&lang=e&dCode=1&dispBack=1&StationName=mt_fidelity&SearchType=Contains&province=ALL&provBut=&month1=0&month2=12" target="_blank">Mt. Fidelity</a> &mdash;</strong> (elevation 1874m, 6148 ft)</p>', 
"description": "", 
"titre": "Historic data"
 }; 



/* 
nodetexte[''] = { 
"proprio": "", 
"sousgroupe": "aucun", 
"date": "2009-01-01", 
"cote": 0, 
"legende": "", 
"affiche": '<p></p>', 
"textehtml": '<div class="droite"><img src="gallery-textes/.jpg" width="210" height="210" align="middle" border="0" alt="" /><p></p></div><p></p>', 
"description": "", 
"titre": ""
 }; 
*/

//fonctions pour trainer la carte gracieuseté de (C) PPK 2009 au quirksmode.org:
//Following codes authored by PPK (C) 2009 at quirksmode.org:
//Codes were modified to apply to the map:
function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}

dragDrop = {
	//keyHTML: '<a href="#" class="keyLink">#</a>',
	//keySpeed: 10, // pixels per keypress event
	initialMouseX: undefined,
	initialMouseY: undefined,
	startX: undefined,
	startY: undefined,
	dXKeys: undefined,
	dYKeys: undefined,
	draggedObject: undefined,
	initElement: function (element) {
		//if (typeof element == 'string')
		//	element = document.getElementById(element);
		element.onmousedown = dragDrop.startDragMouse; return false; 
		element.innerHTML += dragDrop.keyHTML;
		var links = element.getElementsByTagName('a');
		var lastLink = links[links.length-1];
		lastLink.relatedElement = element;
		lastLink.onclick = dragDrop.startDragKeys;
	},
	startDragMouse: function (e) {
		dragDrop.startDrag(this);
		var evt = e || window.event;
		dragDrop.initialMouseX = evt.clientX;
		dragDrop.initialMouseY = evt.clientY;
		addEventSimple(document,'mousemove',dragDrop.dragMouse);
		addEventSimple(document,'mouseup',dragDrop.releaseElement);
		return false;
	},
	startDragKeys: function () { 
		dragDrop.startDrag(this.relatedElement); return false; 
		dragDrop.dXKeys = dragDrop.dYKeys = 0;
		addEventSimple(document,'keydown',dragDrop.dragKeys);
		addEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		this.blur();
		return false;
	},
	startDrag: function (obj) {
		if (dragDrop.draggedObject)
			dragDrop.releaseElement();
		dragDrop.startX = obj.offsetLeft;
		dragDrop.startY = obj.offsetTop;
		dragDrop.draggedObject = obj;
		//obj.className += 'dragged';
	},
	dragMouse: function (e) {
		var evt = e || window.event;
		var dX = evt.clientX - dragDrop.initialMouseX;
		var dY = evt.clientY - dragDrop.initialMouseY;
		dragDrop.setPosition(dX,dY);
		return false;
	},
	dragKeys: function(e) { return false; 
		var evt = e || window.event;
		var key = evt.keyCode;
		switch (key) {
			case 37:	// left
			case 63234:
				dragDrop.dXKeys -= dragDrop.keySpeed;
				break;
			case 38:	// up
			case 63232:
				dragDrop.dYKeys -= dragDrop.keySpeed;
				break;
			case 39:	// right
			case 63235:
				dragDrop.dXKeys += dragDrop.keySpeed;
				break;
			case 40:	// down
			case 63233:
				dragDrop.dYKeys += dragDrop.keySpeed;
				break;
			case 13: 	// enter
			case 27: 	// escape
				dragDrop.releaseElement();
				return false;
			default:
				return true;
		}
		dragDrop.setPosition(dragDrop.dXKeys,dragDrop.dYKeys);
		if (evt.preventDefault)
			evt.preventDefault();
		return false;
	},
	setPosition: function (dx,dy) {
		dragDrop.draggedObject.style.left = dragDrop.startX + dx + 'px';
		dragDrop.draggedObject.style.top = dragDrop.startY + dy + 'px';
	},
	switchKeyEvents: function () {
		// for Opera and Safari 1.3
		removeEventSimple(document,'keydown',dragDrop.dragKeys);
		removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		addEventSimple(document,'keypress',dragDrop.dragKeys);
	},
	releaseElement: function() {
		removeEventSimple(document,'mousemove',dragDrop.dragMouse);
		removeEventSimple(document,'mouseup',dragDrop.releaseElement);
		//removeEventSimple(document,'keypress',dragDrop.dragKeys);
		//removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		//removeEventSimple(document,'keydown',dragDrop.dragKeys);
		dragDrop.draggedObject.className = dragDrop.draggedObject.className.replace(/dragged/,'');
		dragDrop.draggedObject = null;
	}
}


