function HV_IsBlocked(hole){
	if(HV_CurrentHole != hole){
		MM_swapImgRestore();
	}
}

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)) {
		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(!HoleData[newHole]['FlyOver'])	{
			document.getElementById('flyoverspan').innerHTML='<img alt="Flyover" src="/common/gcvt/gallery_flyover_btn_off.gif" border="0" name="FlyOver" style="border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;	border-top:1px solid #e0e0e0;" />';
		}
		else	{
			document.getElementById('flyoverspan').innerHTML='<a id="FlyOver" onmouseover="return HV_SetImage(\'FlyOver\', \'Over\');" onclick="HV_RunButton(\'FlyOver\'); return false;" onmouseout="return HV_SetImage(\'FlyOver\', \'Normal\');" href="#"><img alt="Flyover" src="/common/gcvt/gallery_flyover_btn_off.gif" border="0" name="FlyOver" /></a>';
		}
		
		if(!HoleData[newHole]['Pete'])	{
			document.getElementById('tipsspan').innerHTML='<img alt="Pete Dye\'s Tips" src="/common/gcvt/gallery_petetips_btn_off.gif" border="0" name="Pete" style="border-right:1px solid #e0e0e0;" />';
		}
		else	{
			document.getElementById('tipsspan').innerHTML='<a id="Tips" onmouseover="return HV_SetImage(\'Pete\', \'Over\');" onclick="HV_RunButton(\'Pete\'); return false;" onmouseout="return HV_SetImage(\'Pete\', \'Normal\');" href="#"><img alt="Pete Dye\'s Tips" src="/common/gcvt/gallery_petetips_btn_off.gif" border="0" name="Pete" /></a>';
		}
		
		
		if      (HV_CurrentHole == 1)  { HV_SetImage('PrevHole', 'Force'); }
		else if (HV_CurrentHole == 18) { HV_SetImage('NextHole', 'Force'); }
		if      (newHole == 1)         { HV_SetImage('PrevHole', 'Out'); }
		else if (newHole == 18)        { HV_SetImage('NextHole', 'Out'); }
		var ConTable = document.getElementById('HolesContent');
		ConTable.style.visibility = 'visible';
		
		var oldHole = HV_CurrentHole
		HV_CurrentHole = newHole;
		HV_CurrentUp   = '';
		
		if (HV_PopStatus == true) { HV_ClickImg(); }
		
		if (document.images) {
			HV_CourseImg[HV_CurrentHole]     = new Image();
			HV_CourseImg[HV_CurrentHole].src = HoleData[HV_CurrentHole]['YardageThumb'];
			HV_YardImg[HV_CurrentHole]       = new Image();
			HV_YardImg[HV_CurrentHole].src   = HoleData[HV_CurrentHole]['YardageLarge'];
		}

		// set arrow to point to current hole
		var HoleTD = document.getElementById('Hole' + HV_CurrentHole);
		HoleTD.style.backgroundImage = 'url(/common/gcvt/ArrowRedUp.jpg)';
		HoleTD.style.backgroundRepeat = 'no-repeat';
		HoleTD.style.backgroundPosition = 'bottom center';

		for (i = 0; i < HV_Buttons.length; i++) {
			if (HoleData[HV_CurrentHole][HV_Buttons[i]] != '') {
				HV_SetImage(HV_Buttons[i], 'Force');
				HV_Out[HV_Buttons[i]] = false;
			}
			else {
				HV_SetImage(HV_Buttons[i], 'Out');
				HV_Out[HV_Buttons[i]] = true;
			}
		}

		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 HoleHead1 = document.getElementById('HHTop');
		var HoleNum   = document.getElementById('HoleNum');		
		var HoleName  = HoleData[HV_CurrentHole]['HoleName'];
		if (document.getElementById('Main').innerHTML) { document.getElementById('Main').innerHTML = '<br>' + HoleName; }
		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);
		}
		HoleHead1.replaceChild(document.createTextNode(HoleName.replace(/&#39;/,"'")), HoleHead1.firstChild);
		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 + '<br><br>'; }
			}
            hcTextBlock = hcTextBlock.replace("<p>", "");
            hcTextBlock = hcTextBlock.replace("</p>", "");
			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);
		
		// turn "off" previously selected hole
		var oldHolePadded = oldHole;
		if( oldHole < 10 )
		{
			oldHolePadded = '0' + oldHole;
		}
		
        if (Hole_Dir == 'occ2010') {
            MM_swapImage('hole'+oldHole,'','/common/gcvt/'+Hole_Dir+'/thumbnails/hole' + oldHole + '_thumb_off.jpg',0);
        } else { 
            MM_swapImage('hole'+oldHole,'','/common/gcvt/'+Hole_Dir+'/Hole'+oldHolePadded+'/'+Hole_Num+''+oldHolePadded+'_btn_off.jpg',0);
        }
		
		// turn "on" current hole
		var newHolePadded = newHole;
		if( newHole < 10 )
		{
			newHolePadded = '0' + newHole;
		}
        if (Hole_Dir == 'occ2010') {
            MM_swapImage('hole'+newHole,'','/common/gcvt/'+Hole_Dir+'/thumbnails/hole' + newHole + '_thumb_on.jpg',0);
        } else { 
            MM_swapImage('hole'+newHole,'','/common/gcvt/'+Hole_Dir+'/Hole'+newHolePadded+'/'+Hole_Num+''+newHolePadded+'_btn_on.jpg',0);
        }
		
		return true;
	}
}

function HV_RunButton(Button) {
	if (HV_Out[Button] == true)  { return false; }
	HV_CurrentFlash = false;

	var HVFrame = document.getElementById('HVFrame');
	var HVNP    = document.getElementById('HVNP');
	var HVPP    = document.getElementById('HVPP');
	var ICTElem = document.getElementById('ICT');

	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]['thumb'] != 'undefined') {
					if (HV_isSAFARI) { HVFrame.src = HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto]['thumb']; } // Safari doesn't like location.replace on iframes.
					else             { ifLoad.location.replace(HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto]['thumb']); }
				}
				if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto]['large'] != 'undefined') {
					HV_SetImage('Zoom', 'Force');
					HV_Out['Zoom'] = false;
					HV_CurrentLarge = HV_CurrentPhoto;
					var ZoomScreen = document.createElement('img');
					ZoomScreen.setAttribute('src', '/common/gcvt/blank.gif');
					ZoomScreen.setAttribute('alt', 'Magnify Image');
					ZoomScreen.setAttribute('width', '376');
					ZoomScreen.setAttribute('height', '306');
					ZoomScreen.onclick = HV_ZoomPhoto;
					ICTElem.style.display  = 'block';
					ICTElem.style.width    = '376px';
					ICTElem.style.height   = '306px';
					ICTElem.style.position = 'absolute';
					ICTElem.style.zIndex   = '400';
					ICTElem.style.top      = '145px';
					ICTElem.style.left     = '183px';
					ICTElem.style.cursor   = 'pointer';
					while (ICTElem.childNodes.length > 0) { ICTElem.removeChild(ICTElem.firstChild); }
					ICTElem.appendChild(ZoomScreen);
				}
				else {
					HV_Out['Zoom'] = false;
					HV_SetImage('Zoom', 'Out');
					HV_Out['Zoom'] = true;
					ICTElem.style.display = 'none';
					while (ICTElem.childNodes.length > 0) { ICTElem.removeChild(ICTElem.firstChild); }
				}
				
				if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentPhoto+1] != 'undefined') {
					var NextBut = document.createElement('img');
					NextBut.setAttribute('src', '/common/gcvt/BuNextPhoto.gif');
					NextBut.setAttribute('alt', 'Next Photo');
					NextBut.setAttribute('width', '75');
					NextBut.setAttribute('height', '17');
					NextBut.onclick = HV_NextPhoto;
					HVNP.style.display  = 'block';
					HVNP.style.width    = '75px';
					HVNP.style.height   = '17px';
					HVNP.style.position = 'absolute';
					HVNP.style.zIndex   = '450';
					HVNP.style.top      = '100px';
					HVNP.style.left     = '450px';
                    // HVNP.style.left     = '476px';
					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', '/common/gcvt/BuPreviousPhoto.gif');
					PrevBut.setAttribute('alt', 'Previous Photo');
					PrevBut.setAttribute('width', '93');
					PrevBut.setAttribute('height', '17');
					PrevBut.onclick = HV_PrevPhoto;
					HVPP.style.display  = 'block';
					HVPP.style.width    = '93px';
					HVPP.style.height   = '17px';
					HVPP.style.position = 'absolute';
					HVPP.style.zIndex   = '450';
					HVPP.style.top      = '100px';
					HVPP.style.left     = '163px';
					HVPP.style.cursor   = 'pointer';
					HVPP.appendChild(PrevBut);
				}
			}
		}
	}
	else if (Button == 'Zoom') {
		if (typeof HoleData[HV_CurrentHole]['Photos'][HV_CurrentLarge]['large'] != 'undefined') {
				HV_PopImg(HoleData[HV_CurrentHole]['Photos'][HV_CurrentLarge]['large'], 0, 0, false);
		}
	}
	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); }
		if (HoleData[HV_CurrentHole][Button] != '') {
			HV_CurrentFlash = true;
			HV_Out['Zoom'] = false;
			HV_SetImage('Zoom', 'Out');
			HV_Out['Zoom'] = true;
			if (HV_isSAFARI) { HVFrame.src = HoleData[HV_CurrentHole][Button]; } // Safari doesn't like location.replace on iframes.
			else             { ifLoad.location.replace(HoleData[HV_CurrentHole][Button]); }
		}
	}
	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'],'306','376', 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)) { /*alert('test');*/return false; }
	if ((imageType != 'Force') && (HV_CurrentUp == imageName)) { /*alert('test1');*/return false; }
	
	if (document.images[imageName]) {
		if      (imageType == 'Over') { document.images[imageName].src = HV_imagesOver[imageName].src; /*alert(HV_imagesOver[imageName].src)*/  return true; }
		else if (imageType == 'Out')  { document.images[imageName].src = HV_imagesOut[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('HolesContent');
			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         = '96px';
            // LoadArea.style.left        = '183px';
			LoadArea.style.left        = '159px';
			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         = '61px';
			LoadArea.style.left        = '1px';
			AltText                    = 'Click to Close Image';
		}
		var PopImg    = document.createElement('img');
		//alert(imageURI);
		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', '18');
		PopZoom.setAttribute('width',  '18');
		PopZoom.setAttribute('src',    '/common/gcvt/gallery_zoom.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('HolesContent');
	ConTable.style.visibility = 'visible';

	var LoadArea = document.getElementById('YardGuideHolder');
	LoadArea.style.display  = 'none';
	LoadArea.removeChild(LoadArea.firstChild);
	HV_PopStatus = false;
	return true;
}

function HV_LoadHole() {
	if (HV_isSAFARI) { setTimeout("HV_LoadHoleDelay()", 2000); } // Safari needs a second to catch up...
	else             { HV_LoadHoleDelay();}
}

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);
}
