		
		var HV_CurrentHole  = 0;
		var HV_CurrentPhoto = 0;
		var HV_CurrentLarge = 0;
		var HV_CurrentFlash = false;
		var HV_PopStatus    = false;
		var HV_CurrentUp    = '';

		// Basic Browser Detect for Workarounds.
		var HV_reIE     = /msie 5\.0/;
		var HV_reSAFARI = /safari/;
		var HV_isIE     = true;
		var HV_isSAFARI = false;
		var HV_Detect = navigator.userAgent.toLowerCase();
		if      (HV_reIE.exec(HV_Detect)     != null) { HV_isIE     = true; }
		else if (HV_reSAFARI.exec(HV_Detect) != null) { HV_isSAFARI = true; }

		// Pre-Cache Nav Images.
		var HV_Out = new Object();
		
		var HV_TextNodes = new Array('ParNum', 'Handicap', 'YardGold', 'YardBlue', 'YardWhite', 'YardRed');
		var HV_Buttons   = new Array();
		var HV_CourseImg = new Object();
		var HV_YardImg   = new Object();
		var HV_CoursePhoto = new Object();


		if (document.images) {
			var HV_imagesNormal = new Object();
			HV_imagesNormal['PrevHole']            = new Image(88,8);
			HV_imagesNormal['PrevHole'].src        = 'images/BuPreviousHole.gif';
			HV_imagesNormal['NextHole']            = new Image(66,8);
			HV_imagesNormal['NextHole'].src        = 'images/BuNextHole.gif';
			
			var HV_imagesOff = new Object();
			HV_imagesOff['PrevHole']				= new Image(88,8);
			HV_imagesOff['PrevHole']				= 'images/spacer.gif'; 
			HV_imagesOff['NextHole']				= new Image(66,8);
			HV_imagesOff['NextHole']				= 'images/spacer.gif'; 
			
			var HV_imagesOver = new Object();

			var HV_imagesOut = new Object();
			HV_imagesOut['PrevHole']               = new Image(88,8);
			HV_imagesOut['PrevHole'].src           = 'images/BuPreviousHole2.gif';
			HV_imagesOut['NextHole']               = new Image(66,8);
			HV_imagesOut['NextHole'].src           = 'images/BuNextHole2.gif';

		}

		function HV_ChangeBar(newBar) {
			if ((document.getElementById) && (document.styleSheets)) {
				var FrontBar = document.getElementById('FrontHoles');
				var BackBar  = document.getElementById('BackHoles');
				if (newBar == 'back') {
					FrontBar.style.visibility = 'hidden';
					BackBar.style.visibility  = 'visible';
				}
				else {
					FrontBar.style.visibility = 'visible';
					BackBar.style.visibility  = 'hidden';
				}
				return true;
			}
			return false;
		}

		function HV_ChangeHole(newHole) {
			if ((document.getElementById) && (document.styleSheets)) {
				
				var BottomBar = document.getElementById('BottomBar');
				BottomBar.style.display = 'block';
				var SideBar = document.getElementById('spnHoleImage');
				SideBar.style.display = 'block';
				var tableNavHolder = document.getElementById('NavHolder');
				tableNavHolder.style.display = 'block';
				
				if (HV_CurrentHole == newHole) { return true; }
				if (HV_CurrentHole >= 0) {
					if      ((HV_CurrentHole < 10) && (newHole > 9)) { HV_ChangeBar('back'); }
					else if ((HV_CurrentHole > 9) && (newHole < 10)) { HV_ChangeBar('front'); }
					if (HV_CurrentHole > 0) {
						var OldTD  = document.getElementById('Hole' + HV_CurrentHole);
						OldTD.style.backgroundImage = '';
					}
				}

				if      (HV_CurrentHole == 1)  { HV_SetImage('PrevHole', 'Force'); }
				else if (HV_CurrentHole == 18) { HV_SetImage('NextHole', 'Force'); }
				if      (newHole == 1)         { document.images['PrevHole'].src = 'images/spacer.gif'; }
				else if (newHole == 18)        { document.images['NextHole'].src = 'images/spacer.gif';  }
				var ConTable = document.getElementById('Content');
				ConTable.style.visibility = 'visible';

				HV_CurrentHole = newHole;
				HV_CurrentUp   = '';


				if (document.images) {
					HV_CourseImg[HV_CurrentHole]     = new Image(HoleData[HV_CurrentHole]['YardageThumbW'], HoleData[HV_CurrentHole]['YardageThumbH']);
					HV_CourseImg[HV_CurrentHole].src = HoleData[HV_CurrentHole]['YardageThumb'];
					HV_YardImg[HV_CurrentHole]       = new Image(HoleData[HV_CurrentHole]['YardageLargeW'], HoleData[HV_CurrentHole]['YardageLargeH']);
					HV_YardImg[HV_CurrentHole].src   = HoleData[HV_CurrentHole]['YardageLarge'];
					HV_CoursePhoto[HV_CurrentHole] = new Image();
					HV_CoursePhoto[HV_CurrentHole].src = HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto]['large'];
				}

				var HoleTD = document.getElementById('Hole' + HV_CurrentHole);
				HoleTD.style.backgroundImage = 'url(images/ArrowRedUp.jpg)';
				HoleTD.style.backgroundRepeat = 'no-repeat';
				HoleTD.style.backgroundPosition = 'bottom center';


				if (document.images['CourseImage']) {
					var CourseImg = document.getElementById('CourseImage');
					CourseImg.src = HV_CourseImg[HV_CurrentHole].src;
					CourseImg.height = HoleData[HV_CurrentHole]['YardageThumbH'];
					CourseImg.width  = HoleData[HV_CurrentHole]['YardageThumbW']
				}

				
				var HoleNum   = document.getElementById('HoleNum');		
				var HoleName  = HoleData[HV_CurrentHole]['HoleName'];
				if (document.getElementById('Main').innerHTML) { document.getElementById('Main').innerHTML = 'Hole ' + HV_CurrentHole; }
				else {
					var HoleHead2 = document.getElementById('Main');
					var frag = document.createDocumentFragment();
					var newL = document.createElement('br');
					var txt1 = document.createTextNode('Hole ' + HV_CurrentHole);
					var txt2 = document.createTextNode(HoleName);
					frag.appendChild(txt1);
					frag.appendChild(newL);
					frag.appendChild(txt2);
					while (HoleHead2.childNodes.length > 0) { HoleHead2.removeChild(HoleHead2.firstChild); }
					HoleHead2.appendChild(frag);
				}
				HoleNum.replaceChild(document.createTextNode(HV_CurrentHole), HoleNum.firstChild);

				// Adding Line Breaks to the Copy.
				var HoleCopyElem  =  document.getElementById('HoleCopy');
				var HoleCopyStr   = HoleData[HV_CurrentHole]['HoleCopy'];
				var HoleCopyArray = HoleCopyStr.split("--");
				if (document.getElementById('HoleCopy').innerHTML) {
					var hcTextBlock = '';
					for (i = 0; i < HoleCopyArray.length; i++) {
						hcTextBlock = hcTextBlock + HoleCopyArray[i];
						if (i < (HoleCopyArray.length - 1)) { hcTextBlock = hcTextBlock + '&nbsp;'; }
					}
					HoleCopyElem.innerHTML = hcTextBlock;
				}
				else {
					var HoleCopyFrag  = document.createDocumentFragment();
					for (i = 0; i < HoleCopyArray.length; i++) {
						HoleCopyFrag.appendChild(document.createTextNode(HoleCopyArray[i]));
						if (i < (HoleCopyArray.length - 1)) {
							HoleCopyFrag.appendChild(document.createElement('br'));
							HoleCopyFrag.appendChild(document.createElement('br'));
						}
					}
					while (HoleCopyElem.childNodes.length > 0) { HoleCopyElem.removeChild(HoleCopyElem.firstChild); }
					HoleCopyElem.appendChild(HoleCopyFrag);
				}
				for (i = 0; i < HV_TextNodes.length; i++) { 
					var pref  = '';
					if      (HV_TextNodes[i] == 'ParNum')   { pref = 'PAR '; }
					else if (HV_TextNodes[i] == 'Handicap') { pref = 'Handicap: '; }
					var elem  = document.getElementById(HV_TextNodes[i]);
					elem.replaceChild(document.createTextNode(pref + HoleData[HV_CurrentHole][HV_TextNodes[i]]), elem.firstChild);
				}

				HV_CurrentPhoto = 0;
				HV_CurrentLarge = 0;
				HV_CurrentFlash = false;
				HV_RunButton('Photos'); // Loads first image.
				HV_SetCookie('holenum', HV_CurrentHole)

				return true;
			}
		}

		function HV_RunButton(Button) {
			if (HV_Out[Button] == true)  { return false; }
			HV_CurrentFlash = false;

			var HVNP    = document.getElementById('HVNP');
			var HVPP    = document.getElementById('HVPP');
			var ICTElem = document.getElementById('ICT');
			var CoursePhoto = document.getElementById('CoursePhoto');

			if (Button != 'Zoom') {
				if (HV_CurrentUp) { HV_SetImage(HV_CurrentUp, 'Force'); }
				HV_SetImage(Button, 'Over');
				HV_CurrentUp = Button;
			}

			if ((Button == 'Photos') || (Button == 'NextPhoto') || (Button == 'PrevPhoto')) {
				HVNP.style.display  = 'none';
				HVPP.style.display  = 'none';
				while (HVNP.childNodes.length > 0) { HVNP.removeChild(HVNP.firstChild); }
				while (HVPP.childNodes.length > 0) { HVPP.removeChild(HVPP.firstChild); }
		        
				if (typeof HoleData[HV_CurrentHole]['Photos'] != 'undefined') {
					if      (Button == 'Photos')    { HV_CurrentPhoto = 0; }
					else if (Button == 'NextPhoto') { if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto+1] != 'undefined') { HV_CurrentPhoto++; } else { HV_CurrentPhoto = 0; } }
					else                            { if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto-1] != 'undefined') { HV_CurrentPhoto--; } else { HV_CurrentPhoto = 0; } }
					if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto] != 'undefined') {
						if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto]['large'] != 'undefined') {
							CoursePhoto.src = HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto]['large']; 
						}
						
						if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto+1] != 'undefined') {
							var NextBut = document.createElement('img');
							NextBut.setAttribute('src', 'images/BuNextPhoto.gif');
							NextBut.setAttribute('alt', 'Next Photo');
							NextBut.setAttribute('width', '83');
							NextBut.setAttribute('height', '18');
							NextBut.onclick = HV_NextPhoto;
							HVNP.style.display  = 'block';
							HVNP.style.width    = '83px';
							HVNP.style.height   = '18px';
							HVNP.style.position = 'absolute';
							HVNP.style.zIndex   = '450';
							HVNP.style.top      = '350px';
							HVNP.style.left     = '480px';
							HVNP.style.cursor   = 'pointer';
							HVNP.appendChild(NextBut);
						}
						if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto-1] != 'undefined') {
							var PrevBut = document.createElement('img');
							PrevBut.setAttribute('src', 'images/BuPreviousPhoto.gif');
							PrevBut.setAttribute('alt', 'Previous Photo');
							PrevBut.setAttribute('width', '106');
							PrevBut.setAttribute('height', '18');
							PrevBut.onclick = HV_PrevPhoto;
							HVPP.style.display  = 'block';
							HVPP.style.width    = '106px';
							HVPP.style.height   = '18px';
							HVPP.style.position = 'absolute';
							HVPP.style.zIndex   = '450';
							HVPP.style.top      = '350px';
							HVPP.style.left     = '193px';
							HVPP.style.cursor   = 'pointer';
							HVPP.appendChild(PrevBut);
						}
					}
				}
			}
			else {
				HVNP.style.display  = 'none';
				HVPP.style.display  = 'none';
				while (HVNP.childNodes.length > 0) { HVNP.removeChild(HVNP.firstChild); }
				while (HVPP.childNodes.length > 0) { HVPP.removeChild(HVPP.firstChild); }
			}
			return true;
		}

		function HV_ClearIframe() {
			ifLoad.location.replace(HoleData[HV_CurrentHole]['Photos'][0]['thumb']);
			HV_CurrentPhoto = 0;
			return true;
		}

		function HV_NextPhoto() { HV_RunButton('NextPhoto'); }
		function HV_PrevPhoto() { HV_RunButton('PrevPhoto'); }
		function HV_ZoomPhoto() { HV_RunButton('Zoom'); }
		function HV_YardGuide() { HV_PopImg(HoleData[HV_CurrentHole]['YardageLarge'], HoleData[HV_CurrentHole]['YardageLargeH'], HoleData[HV_CurrentHole]['YardageLargeW'], true); }

		function HV_NextHole() {
			if (HV_CurrentHole < 18) { HV_ChangeHole(HV_CurrentHole+1); }
			else                     { return false; }
			return true;
		}

		function HV_PrevHole() {
			if (HV_CurrentHole > 1) { HV_ChangeHole(HV_CurrentHole-1); }
			else                    { return false; }
			return true;
		}

		function HV_SetImage(imageName, imageType) {
		//alert(imageName);
			if ((imageType != 'Force') && (HV_Out[imageName] == true)) { return false; }
			if ((imageType != 'Force') && (HV_CurrentUp == imageName)) { return false; }
			if (document.images[imageName]) {
				if      (imageType == 'Over') { document.images[imageName].src = HV_imagesOver[imageName].src;   return true; }
				else if (imageType == 'Out')  { document.images[imageName].src = HV_imagesOut[imageName].src;    return true; }
				else if (imageType == 'Off')  { document.images[imageName].src = HV_imagesOff[imageName].src;    return true; }
				else                          { document.images[imageName].src = HV_imagesNormal[imageName].src; return true; } // Including 'Force'
			}
			return false;
		}

		function HV_PopImg(imageURI, imageH, imageW, isYardGuide) {
			if (HV_isIE) {
				var newWin = window.open(imageURI, 'yardwin', "width=568,height=388,scrollbars=1,status=no,resizable=no,toolbar=no,left=10,top=200");
				newWin.focus();
				return true;
			}
			else if ((document.getElementById) && (document.styleSheets)) {
				if (!isYardGuide) {
					var ConTable = document.getElementById('Content');
					ConTable.style.visibility = 'hidden';
				}
				if (HV_CurrentFlash == true) { HV_ClearIframe(); }
				var LoadArea = document.getElementById('YardGuideHolder');
				var AltText  = '';
				while (LoadArea.childNodes.length > 0) { LoadArea.removeChild(LoadArea.firstChild); }
				LoadArea.style.display  = 'block';
				LoadArea.style.position = 'absolute';
				LoadArea.style.zIndex   = '500';
				if (isYardGuide) {
					LoadArea.style.top         = '110px';
					LoadArea.style.left        = '183px';
					LoadArea.style.borderStyle = 'solid';
					LoadArea.style.borderWidth = '0px 0px 2px 0px';
					LoadArea.style.borderColor = '#fff';
					AltText                    = 'Click to Close Yardage Guide';
				}
				else {
					LoadArea.style.top         = '91px';
					LoadArea.style.left        = '1px';
					AltText                    = 'Click to Close Image';
				}
				var PopImg    = document.createElement('img');
				PopImg.setAttribute('src', imageURI);
				PopImg.setAttribute('alt', AltText);
				if (imageH > 0) { PopImg.setAttribute('height', imageH); }
				if (imageW > 0) { PopImg.setAttribute('width',  imageW); }
				PopImg.style.cursor = 'pointer';
				PopImg.onclick = HV_ClickImg;
				LoadArea.appendChild(PopImg);
				var PopZoom = document.createElement('img');
				PopZoom.setAttribute('height', '20');
				PopZoom.setAttribute('width',  '28');
				PopZoom.setAttribute('src',    'images/BuLessMagnify1.gif');
				PopZoom.onclick      = HV_ClickImg;
				PopZoom.style.zIndex = '600';
				PopZoom.style.position = 'absolute';
				PopZoom.style.cursor   = 'pointer';
				var offSet = '10px';
				if (isYardGuide) { 
					if (HV_isSAFARI) {
						PopZoom.style.right = '11px';
						PopZoom.style.bottom = '-20px';
					}
					else {
						PopZoom.style.right  = '0px';
						PopZoom.style.bottom = '-22px';
					}
				}
				else if (HV_isSAFARI) {
					PopZoom.style.right  = '40px';
					PopZoom.style.bottom = '15px'; 
				}
				else {
					PopZoom.style.right  = offSet;
					PopZoom.style.bottom = offSet;
				}
				LoadArea.appendChild(PopZoom);
				HV_PopStatus = true;
				return true;
			}
			return false;
		}

		function HV_ClickImg() {
			var ConTable = document.getElementById('Content');
			ConTable.style.visibility = 'visible';

			var LoadArea = document.getElementById('YardGuideHolder');
			LoadArea.style.display  = 'none';
			LoadArea.removeChild(LoadArea.firstChild);
			HV_PopStatus = false;
			return true;
		}


		function HV_LoadHoleDelay() {
			var Hole   = 0;
			var Param  = HV_GetVar('hole');
			var Cookie = HV_GetCookie('holenum');
			if ((Cookie > 0) && (Cookie < 19)) {
				Cookie -= 0;
				Hole = Cookie;
			}
			if ((Param > 0) && (Param < 19)) { 
				Param -= 0;
				Hole = Param; 
			}
			if (Hole < 1) { Hole = 1; }
			HV_ChangeHole(Hole);
		}

		// Parameter Function.
		function HV_GetVar(getVarName) {
			var queryStr = window.location.search.substring(1);
			var queryVar = queryStr.split('&');
			for (var i = 0; i < queryVar.length; i++) {
				var varPair = queryVar[i].split('=');
				if (varPair[0] == getVarName) { return varPair[1]; }
			}
			return false;
		}

		// Cookie Functions.
		function HV_GetCookieVal(offset) {
			var endstr = document.cookie.indexOf (";", offset);
			if (endstr == -1) { endstr = document.cookie.length; }
			return unescape(document.cookie.substring(offset, endstr));
		}

		function HV_GetCookie(name) {
			var arg = name + "=";
			var alen = arg.length;
			var clen = document.cookie.length;
			var i = 0;
			while (i < clen) {
				var j = i + alen;
				if (document.cookie.substring(i, j) == arg) { return HV_GetCookieVal(j); }
				i = document.cookie.indexOf(" ", i) + 1;
				if (i == 0) { break; }
			}
			return null;
		}

		function HV_SetCookie(name, value) { 
			document.cookie = name + "=" + escape(value);
		}

