﻿var col1  = null; var col2  = null;
var ph1; var ph2; var bh1; var bh1i; var b1  = null; var b3  = null;
var bImg = null; var bImgSrc = ''; var bImgAlt = ''; var bImgDIV = null; var bImgShad = null;
var colsplit = 0;  var fringe = 6; var col1shorten = fringe*4 ;var totop = 'totop';  var nudge = 2; var nudge2 = 1;
var bImgIDs = ''; var bILensIDs = ''; var IStackID = 'IStack1'; var IStack = new(Object);
var IE = document.all?true:false;
var BRV = navigator.appVersion; var BRV2 = parseFloat(BRV);
var bHigh = 0; var bWide = 0;

if ( typeof(IIDWidth) == "undefined" ) { var IIDWidth = 200; var IIDW2 = 200; var IIDHeight = 110; var IIDH2 = 150;};
if ( typeof(IIDClass) == "undefined" ) { var IIDClass = ''; };

var IIDHSpace = IIDHeight/3;
var ImageN = 0; var ImageNFinal = 0; var MStack = 'col1fill';

function loadJSF(file,handle,ind) {
  var head = document.getElementsByTagName('head').item(0);
  var scriptAdd = document.getElementById(handle+ind);
  if (scriptAdd) head.removeChild(scriptAdd);
  var scriptAdded = document.createElement('script');
  scriptAdded.src = file;
  scriptAdded.type = 'text/javascript';
  scriptAdded.id = handle+ind;
  head.appendChild(scriptAdded);
}

function Layout() {
	
	b1 = document.getElementById("b1");
	b3 = document.getElementById("b3");
	bImg = document.getElementById("bimage1");
	bImgDIV = document.getElementById("bimage1div");
	col1 = document.getElementById("col1");
	col2 = document.getElementById("col2");
	if (document.getElementById(IStackID)) {IStack = document.getElementById(IStackID).childNodes;};

	if (IStack) {
		for(var is=0;is<IStack.length;is++){
			if(IStack[is].id && bImgIDs.length > 0 && IStack[is].nodeName=='IMG') {
				bImgIDs += ',';
			}
			if (IStack[is].id && IStack[is].nodeName=='IMG') {bImgIDs += IStack[is].id;};
		}

		bImgIDs = bImgIDs.replace(/i/gi, '');
	};

	bh1 = bImgDIV.offsetHeight;
	bILensIDs = '0';
	
	if (IE) {
		bHigh = document.documentElement.clientHeight; // quirks mode use document.body.clientHeight in strict;
		bWide = document.documentElement.clientWidth;
		
	} else { // Firefox places %20 into dom for spaces
		bHigh = window.innerHeight;
		bWide = window.innerWidth;
	};
	ph2 = col2.offsetHeight;
	
	if (col1) {
		if (col1.offsetHeight > col2.offsetHeight) {
			ph2 = col1.offsetHeight;
		} else {
			colsplit = col2.offsetHeight - col1.offsetHeight - col1shorten;

			if (colsplit > IIDHeight+IIDHSpace*2) {
				ImageN = parseInt(colsplit/(IIDHeight+IIDHSpace*2));
				if (ImageN == 1) {
					IIDHSpace += parseInt((colsplit-IIDHeight-IIDHSpace-col1shorten*2)/2);	
				} else {
					IIDHSpace += parseInt((colsplit/(IIDHeight+IIDHSpace*2)-ImageN)*(IIDHeight+IIDHSpace*2-col1shorten*2)/ImageN/2);
				}

			} else if (colsplit > IIDHeight) {
				ImageN = 1;
				IIDHSpace -= IIDHSpace-(colsplit-IIDHeight)/2;
			}
			loadJSF('/sscinclude/IIDRandomJS2.cfm?n='+ImageN+'&lk=1&hs='+IIDHSpace+'&h='+IIDHeight+'&h2='+IIDH2+'&w='+IIDWidth+'&w2='+IIDW2+'&IC='+escape(IIDClass)+'&DomID='+MStack+'&k='+escape(k)+'&IOut='+bImgIDs+'&bdr='+escape('2px solid'),'menustack','1');
		};
	}
	/*ph2 += fringe*2;*/
	ph1 = ph2 + bh1;
	b1.style.height = ph1 + 'px';
	b3.style.height = ph2 + 'px';
	col2.style.height = ph2 + 'px';
/* need cumulative heights instead fro m/sscinclude/IIDRandomJS2.cfm */
	if(col1 && col1.offsetHeight<col2.offsetHeight) { col1.style.height = col2.offsetHeight + 'px'; };
	if (col1) { findPos(col1.id); col1Y = maptop; findPos(document.getElementById(totop).parentNode.parentNode.id); totopY = maptop;
	if (col1Y + col1.offsetHeight > totopY) {

		for (i=0; i<document.getElementById(totop).parentNode.parentNode.childNodes.length; i++){
			if (document.getElementById(totop).parentNode.parentNode.childNodes[i].offsetHeight ) {
				totopY += document.getElementById(totop).parentNode.parentNode.childNodes[i].offsetHeight };
		};
		
		document.getElementById(totop).parentNode.parentNode.style.marginTop = col1Y + col1.offsetHeight - document.getElementById(totop).parentNode.offsetHeight*2 - totopY + 'px';
		document.getElementById(totop).parentNode.parentNode.style.marginBottom = -(col1Y + col1.offsetHeight + document.getElementById(totop).parentNode.parentNode.offsetHeight - totopY) + 'px';
		findPos(totop); totopY = maptop;
	};};

	if (document.getElementById(totop) && bHigh>totopY) {
		document.getElementById(totop).parentNode.parentNode.removeChild(document.getElementById(totop).parentNode);
	};
};

function changeimage(caller,key)
{	ImageID = document.getElementById(caller.id);
	if(bImgIDs) {IOutParam = '+\'&IOut=\'+' + bImgIDs; } else { IOutParam = '';};
	if(key != ''){
		loadJSF('/sscinclude/IIDRandomJS2.cfm?n=1&lk=1&h='+IIDHeight+'&h2='+IIDH2+'&w='+IIDWidth+'&w2='+IIDW2+'&IC='+escape(IIDClass)+'&DomID='+caller.parentNode.id+'&k='+key+'&mrg='+escape(ImageID.style.margin)+'&bdr='+escape(ImageID.style.border)+IOutParam,'menustack','1');
	} else {
	loadJSF('/sscinclude/IIDRandomJS2.cfm?n=1&lk=1&h='+IIDHeight+'&h2='+IIDH2+'&w='+IIDWidth+'&w2='+IIDW2+'&IC='+escape(IIDClass)+'&DomID='+caller.parentNode.id+'&k=%20&mrg='+escape(ImageID.style.margin)+'&bdr='+escape(ImageID.style.border)+IOutParam,'menustack','1');
	};

}

function printpage()
  {
  window.print()
  };

var mapleft = maptop = 0;
var userX; var userY;
var RFX = new Array(); var RFXCSS = new Array();
var RegLabelID = 'reglabel';
var RegMapID = 'regnavmap';
var RegLabel = null;
var primehtml = '';
RFX[1] = 'Vancouver - Whistler'; RFXCSS[1] = 'seatosky1';
RFX[2] = 'Whistler'; RFXCSS[2] = 'whistler1';
RFX[3] = 'Squamish'; RFXCSS[3] = 'squamish1';
RFX[4] = 'Pemberton'; RFXCSS[4] = 'pemberton1';

function RegionNAV(RFXID) {
RegLabel = document.getElementById(RegLabelID);
if (primehtml == '') {
	primehtml = RegLabel.innerHTML; };
// document.onmouseover = getMouseXY;
// RegLabel.style.top = maptop + userY - RegLabel.offsetHeight/2 + 'px';
// RegLabel.style.left = mapleft + userX - RegLabel.offsetWidth + 'px';
RegLabel.innerHTML = RFX[RFXID];
RegLabel.className = RFXCSS[RFXID];
};

function RegionNAVOut(RFXID) {
if (RFXID == 4) { document.getElementById(RegLabelID).className = 'BaseC PrimaryBGColour';
} else { document.getElementById(RegLabelID).className = 'BaseB PrimaryBGColour';
};
document.getElementById(RegLabelID).innerHTML = primehtml;
};

var mapleft = maptop = 0;
var userX; var userY; var FlyoutID='';
var PreFlyout = ''; var Objflyout=new(Object);; var ObjCluster=new(Object);

var bCShift = 0;

function buildCluster(ObjCluster,PreFlyout,bCShift) {
	findPos(ObjCluster.id);
	FlyoutID = PreFlyout + ObjCluster.id.substring(ObjCluster.id.search('_')+1,ObjCluster.id.length);
	Objflyout = document.getElementById(FlyoutID);
	
	if (mapleft < bWide / 6) {
		Objflyout.style.left = mapleft - fringe * 3 + ObjCluster.firstChild.offsetWidth*.667 + 'px';
	} else if (mapleft >= bWide/ 6 && mapleft < bWide - bWide / 4 ) {
		Objflyout.style.left = mapleft - fringe - (Objflyout.offsetWidth - ObjCluster.offsetWidth )/2
+ 'px';
	} else {
		Objflyout.style.left = mapleft - (Objflyout.offsetWidth - ObjCluster.offsetWidth) + fringe/2
 + 'px';
	}

	Objflyout.style.top = maptop + bCShift  + 'px';
	showCluster();
	
}

function showCluster() {
	Objflyout.style.visibility = 'visible';
}

function hideCluster() {
	Objflyout.style.visibility = 'hidden';
	if (lastdescid != '') { hidePageDesc(lastdescid); };
}

var lastdesc = 0; var lastdescid = ''; var descidtemp = '';
var descidinnerHTML = new Object();
var descidX = new Object(); var descidY = new Object(); var descidH = new Object();
var descid = new Object(); var descid2 = new Object();
var MenuDesc = new(Object); var MenuDesc2 = new(Object);
function getPageDesc(descid,descdomid) {
	MenuDesc = document.getElementById(descdomid);
	if (lastdescid != '') { hidePageDesc(lastdescid); };
	lastdescid = descdomid;

/* add if container unchanged do nothing */
	descidtemp = descid.id.substring(descid.id.search('_')+1,descid.id.length);
	if (descidtemp == '') { descidtemp = '%20'; }

	if (lastdesc != descidtemp && descidinnerHTML[descidtemp] == null) {
		descidH[descidtemp] = descid.offsetHeight;
		loadJSF('/sscincludes/ipagedescJS.cfm?pid='+descidtemp+'&domid='+descdomid,descdomid,'1');
	} else { /* cashed */
		MenuDesc.innerHTML = descidinnerHTML[descidtemp];
		MenuDesc.style.top=descidY[descidtemp]; 
		MenuDesc.style.left=descidX[descidtemp]; 
		MenuDesc.style.visibility='visible'; 
		lastdesc = descidtemp.replace("%20","0");
	};
}

function showPageDesc(descid2,descdomid2) {
	if (lastdescid != '') { hidePageDesc(lastdescid); };
	lastdescid = descdomid2;
	findPos(descid2.id);
	descidH[0] = descid2.offsetHeight;
	MenuDesc2 = document.getElementById(descdomid2);
	MenuDesc2.onmouseover='hidePageDesc(' + descdomid2 + ');';
	MenuDesc2.style.position='absolute';
	
	if (maptop > bHigh / 2) {
		MenuDesc2.style.top = maptop - MenuDesc2.offsetHeight - fringe/2 + 'px';
	} else {
		MenuDesc2.style.top = maptop + descid2.offsetHeight + fringe + 'px';
	}; 

	if (mapleft < bWide / 6) {
		if(descid2.childNodes.length > 1) {
			MenuDesc2.style.left = mapleft - (MenuDesc2.offsetWidth - descid2.offsetWidth)/2 + descid2.lastChild.offsetWidth*.667 + 'px'; } else {
			MenuDesc2.style.left = mapleft - (MenuDesc2.offsetWidth - descid2.offsetWidth)/2 + descid2.firstChild.offsetWidth*1.333 + 'px'; }		
	} else if (mapleft >= bWide/ 6 && mapleft < bWide - bWide / 4 ) {
		MenuDesc2.style.left = mapleft - (MenuDesc2.offsetWidth - descid2.offsetWidth + fringe )/2
	+ 'px';
	} else {
		MenuDesc2.style.left = mapleft - (MenuDesc2.offsetWidth - descid2.offsetWidth) + fringe/2
	+ 'px';
	}
	MenuDesc2.style.visibility='visible';
}


function hidePageDesc(descdomid) {
	document.getElementById(descdomid).style.visibility='hidden';
	lastdesc = 0;
}

function getMouseXY(e) {
	findPos(e); /*	findPos(RegMapID); */
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		userX = e.pageX;
		userY = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		userX = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft - 3;
		userY = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop - 3;
	}
	userX -= mapleft; userY -= maptop;
	return true;
};

function findPos(map2) {
	map3 = document.getElementById(map2);
	mapleft = maptop = 0;
	if (map3.offsetParent) {
		do {
			mapleft += map3.offsetLeft;
			maptop += map3.offsetTop;
			} while (map3 = map3.offsetParent);
	}
	return [mapleft,maptop];
};

	if(bImgIDs) {IOutParam = '+\'&IOut=\'+' + bImgIDs; } else { IOutParam = '';};

var oplast = 0;

function changeopimage(caller,op,IW,IH)
{	ImageID = document.getElementById(caller.id);
	if(op!=oplast) {
		oplast = op;
		bILensIDs = '';
	};
	if(!IH) { var IH = ImageID.height.toString;}; if(!IW) { var IW = ImageID.width.toString;};
	loadJSF('/sscinclude/IIDRandomJS2.cfm?n=1&lk=1&h='+IH+'&w='+IW+'&DomID='+caller.parentNode.id+'&k=%20&mrg='+escape(ImageID.style.margin)+'&bdr='+escape(ImageID.style.border)+'&op='+op+'&iout='+bILensIDs,'opstack','1');

}

function changeopimage2(IID,op,IW,IH)
{	ImageID = document.getElementById(IID);
	if(op!=oplast) {
		oplast = op;
		bILensIDs = '';
	};
	if (ImageID.firstChild.nodeName == 'IMG') { temp = ImageID.firstChild.id;} else { temp = ImageID.firstChild.firstChild.id;};
	ImageID_img1 = document.getElementById(temp);
	if(!IH) { var IH = ImageID.height.toString;}; if(!IW) { var IW = ImageID.width.toString;};
	loadJSF('/sscinclude/IIDRandomJS2.cfm?n=1&lk=1&h='+IH+'&w='+IW+'&DomID='+IID+'&k=%20&mrg='+escape(ImageID_img1.style.margin)+'&bdr='+escape(ImageID_img1.style.border)+'&op='+op+'&iout='+bILensIDs,'opstack','1');
}

function convertToDMS (val) {
  var valStr = val.toString();
  var parts = valStr.split(".");
  var degStr = parts[0];
  if (!parts[1]) {
    return (degStr + "&#176 0' 0'' ");
  }
  var dummyStr = (Number("0." + parts[1]) * 60).toString();
  parts = dummyStr.split(".");
  var minStr = parts[0];
  if (!parts[1]) {
    return (degStr + "&#176 " + minStr + "' 0'' ");
  }
  var secStr = roundDecimals(Math.round(Number("0." + parts[1]) * 60)).toString();
  return (degStr + "&#176 " + minStr + "' " + secStr + "'' ");
}

function convertLatToDMS (val) {
  if (val < 0) {
    return convertToDMS (Math.abs(val)) + "S";
  } else {
    return convertToDMS (Math.abs(val)) + "N";
  }
}

function convertLngToDMS (val) {
  if (val < 0) {
    return convertToDMS (Math.abs(val)) + "W";
  } else {
    return convertToDMS (Math.abs(val)) + "E";
  }
}

function roundDecimals (val) { 
  var dummy = Math.pow (10, precision);
  return Math.round(val*dummy)/dummy;
}

var source=null; var target=null; var sourceds=null; var mapgutter = 24; var oldHeight=''; var oldWidth=''; var oldLeft=0; var oldTop=0; var dScrollY = 0;
var toggle=-1;
function fillPage (source2) {
	/*alert(source.id); alert(source.previousSibling.id);*/
	source = source2;
	if (IE) {
		var bHigh2 = document.documentElement.clientHeight-mapgutter; // quirks mode use document.body.clientHeight in strict;
		var bWide2 = document.documentElement.clientWidth;
	} else { // Firefox places %20 into dom for spaces
		var bHigh2 = window.innerHeight;
		var bWide2 = window.innerWidth;
	};
	var scrollOffset = source.parentNode.parentNode.parentNode.offsetHeight-mapgutter-bHigh2;
	
	dScrollY = document.body.scrollTop
    ? document.body.scrollTop
    : (window.pageYOffset
        ? window.pageYOffset
        : (document.body.parentElement
            ? document.body.parentElement.scrollTop
            : 0
        )
    );

	findPos(source.id);
	
	/*window.scrollTo(0,maptop-mapgutter/2); */

	target = source.previousSibling;
	if (oldHeight == '') {
		oldHeight = target.offsetHeight-target.style.borderTopWidth.replace('px','')-target.style.borderBottomWidth.replace('px','');
		oldWidth = target.offsetWidth-target.style.borderLeftWidth.replace('px','')-target.style.borderRightWidth.replace('px','');
		findPos(target.id); oldLeft = mapleft; oldTop = maptop;
		sourceds = source.childNodes;
	}
	if (target.style.height == oldHeight+'px') {
		target.style.height = bHigh2-mapgutter*2.5+'px'; target.style.width = bWide2-mapgutter*3.75+'px';
		target.style.position = 'absolute'; target.style.top = dScrollY+mapgutter+parseInt(target.style.borderTopWidth.replace('px',''))*2+'px'; target.style.left = mapgutter*1.5-target.style.borderLeftWidth.replace('px','') + 'px'; target.style.zIndex='1900';
		source.className = source.className.replace('o2','o8 BaseB');
		source.style.height = bHigh2-mapgutter+'px'; source.style.width = bWide2-mapgutter*2.5+'px';
		source.style.position = 'absolute'; source.style.top = dScrollY+mapgutter*.5+'px'; source.style.left = mapgutter-target.style.borderLeftWidth.replace('px','')*2 + 'px'; source.style.zIndex='1800';

		for (var i = 0; i < sourceds.length; i++) {
			sourceds[i].style.visibility='visible';
			if (i>1) {
				sourceds[i].style.marginTop = bHigh2-mapgutter*2.25+'px';
			}
		};

	} else {
		source.className = source.className.replace('o8 BaseB','o2');
		target.style.height = source.style.height = oldHeight+'px';
		target.style.width = source.style.width = oldWidth+'px';
		target.style.position = source.style.position = 'relative';
		target.style.top = source.style.top = '0px'; target.style.left = source.style.left = '0px';
		source.style.zIndex='1900'; target.style.zIndex='1800';
		for (var i = 0; i < sourceds.length; i++) {
			sourceds[i].style.visibility='hidden';
			if (i>1) {
				sourceds[i].style.marginTop = '0px';
			}
		};
	};
	maptype=map.getCurrentMapType();
	mapzoom=map.getZoom();
	mapcentre=map.getCenter();
	initialize();
};

var istack2 = null; var istack2child = null; var ibuffer = 0;
var istack2cheight = 0; var istack2cvspace = 0; var hspce = 0;
function iStretch(istack,ibuffer,hspce) {
	col2 = document.getElementById("col2");
	istack2 = document.getElementById(istack);
	if (istack2) {
	istack2child = istack2.getElementsByTagName('img');
	if (col2.offsetHeight-ibuffer > istack2.offsetHeight) {
	    for(var i=0; i<istack2child.length; i++){
			istack2cheight += istack2child[i].offsetHeight;			
    	};
		istack2cvspace = (col2.offsetHeight-ibuffer-istack2cheight-hspce*4)/istack2child.length;
		istack2.style.height = col2.offsetHeight - ibuffer + hspce + 'px';
		for(var i=0; i<istack2child.length; i++){
			istack2child[i].style.margin = hspce + 'px ';
			istack2child[i].style.marginTop = istack2cvspace + 'px';
    	};
	};};
};

