function init() {
  makeShadow();
  displayImageInfo();

  // homepage functions
  if (document.body.id == "home") {
    displayRandFeature();
    displayPackages();
    displayPlanner();

    // resize event
    if (window.attachEvent)
      window.attachEvent("onresize", displayPlanner);
    else
      window.addEventListener("resize", displayPlanner, false);
  }
}

function makeShadow(){
/* 2007-10-09: JM - Not needed for Country Club Site. Hardcode the header graphic into the CMS page_template 
					instead of loading here 
*/
	return;
	
  if (document.getElementById("shadow")) {
    if ((browser.isIE55 || browser.isIE6up) & browser.isWin32)
      document.getElementById("shadow").innerHTML = '<div style="height:50px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'Images/header/shadow.png\', sizingMethod=\'scale\')"></div>';
    else if ((browser.isGecko) || (browser.isIE5up && browser.isMac) || (browser.isOpera && browser.isWin && browser.versionMajor >= 6) || (browser.isOpera && browser.isUnix && browser.versionMajor >= 6) || (browser.isOpera && browser.isMac && browser.versionMajor >= 5) || (browser.isOmniweb && browser.versionMinor >= 3.1) || (browser.isIcab && browser.versionMinor >= 1.9) || (browser.isWebtv) || (browser.isDreamcast))
      document.getElementById("shadow").innerHTML = '<img src="Images/header/shadow.png" width="750" height="50" border="0" alt="">';
  } else if (document.getElementById("header")) {
    if ((browser.isIE55 || browser.isIE6up) && browser.isWin32)
      document.getElementById("header").innerHTML = '<div style="height:103px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'Images/header/header.png\', sizingMethod=\'scale\')"></div>';
    else if ((browser.isGecko) || (browser.isIE5up && browser.isMac) || (browser.isOpera && browser.isWin && browser.versionMajor >= 6) || (browser.isOpera && browser.isUnix && browser.versionMajor >= 6) || (browser.isOpera && browser.isMac && browser.versionMajor >= 5) || (browser.isOmniweb && browser.versionMinor >= 3.1) || (browser.isIcab && browser.versionMinor >= 1.9) || (browser.isWebtv) || (browser.isDreamcast))
      document.getElementById("header").innerHTML = '<img src="Images/header/header.png" width="750" height="103" border="0" alt="">';
  }
}

function displayImageInfo(){
  var info; var infoheight; var imgheight;
  if (document.getElementById("image-float")) {
    var imgnodes = document.getElementById("image-float");
    var nodelength = imgnodes.childNodes.length;
    for (var i = 0; i < nodelength; i++) {
      if (document.getElementById("desc"+i)) {
        with (document.getElementById("desc"+i)) {
          infoheight = clientHeight;
          imgheight = document.getElementById("img"+i).clientHeight;
          style.top = (imgheight - infoheight + 1) + "px";
          document.getElementById("link"+i).style.top = (infoheight - 16) + "px";
          style.visibility = "visible";
        }
      }
    }
  }
}

function displayBlurb() {
  var blurbtext = document.getElementById("blurb");
  blurbtext.style.display = (blurbtext.style.display == "none") ? "block" : "none";
}

// used on confirmation of booking
function checkTerms() {
  if (document.terms.checkterms.checked)
    location.href = "proceed.asp";
  else
    alert("Please tick the box to show that you agree with the terms and conditions.");
}

function checkCompTerms() {
  if (document.compfrm.terms.checked)
    document.compfrm.submit();
  else
    alert("Please tick the box to show that you agree with the terms and conditions.");
}

function submitPayment() {
  document.getElementById("paylink").innerHTML = "<a><strong>processing...</strong>&nbsp;&nbsp;</a>"
  document.paymentfrm.submit();
}

function displayInterests() {
  var interests = document.getElementById("interests");
  interests.style.display = (interests.style.display == "none") ? "block" : "none";
}

function displayUpsell(pid, tid) {
  var tournodes = document.getElementById(pid);
  tournodes = tournodes.getElementsByTagName("div");
  for (var i = 0; i < tournodes.length; i++)
    if (tournodes[i].className == "upsell") tournodes[i].style.display = "none";
  document.getElementById(tid).style.display = "block";
}

// Dinner Booking
function openBooking(pos) {
  var output = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">";
  output += "<tr><td style=\"width:100px\">Date/Time:</td><td><input type=\"text\" name=\"time"+ pos +"\" size=\"30\" maxlength=\"30\" style=\"margin-right:20px;\"></td></tr>";
  output += "<tr><td>People:</td><td><input type=\"text\" name=\"people"+ pos +"\" size=\"30\" maxlength=\"30\" style=\"margin-right:20px;\"></td></tr>";
  output += "<tr><td>Special Requests:</td><td><input type=\"text\" name=\"request"+ pos +"\" size=\"30\" maxlength=\"200\"></td></tr>";
  output += "</table>";
  document.getElementById("frm"+pos).innerHTML = output;
  document.getElementById("frm"+pos).style.display = "block";
}

function submitBooking() {
  var count = 7;
  for (var i = 1; i <= count; i++) {
    if (document.getElementById("frm"+ i).style.display == "block") {
      var formarray = document.commentsfrm.formarr.value;
      if (formarray.length > 0)
        document.commentsfrm.formarr.value = formarray +","+ i;
      else
        document.commentsfrm.formarr.value = i;
    }
  }
  document.commentsfrm.submit();
}

function changePasswordType(eForm) {
  document.getElementById("passfake").style.display = "none";
  document.getElementById("password").style.display = "inline";
  eForm = eForm.parentNode.parentNode;
  eForm.user_password.focus();
}

var win = null;
function openWindow(mypage, myname, w, h, scroll, pos) {
  if (pos == "center"){
    LeftPosition = (screen.width) ? (screen.width - w) / 2 : 100;
    TopPosition = (screen.height) ? (screen.height - h) / 2 : 100;
  } else if ((pos != "center" && pos != "random") || pos == null) {
    LeftPosition = 0;
    TopPosition = 20;
  }
  settings = 'width='+ w +',height='+ h +',top='+ TopPosition +',left='+ LeftPosition +',scrollbars='+ scroll +',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
  win = window.open(mypage, myname, settings);
  if (win.focus) win.focus();
}

function loadImage(cID,pID) {
  property_id = 666;
  pricing = false;
  document.getElementById("photo").innerHTML = 'Loading ...';
  loadXMLDoc("includes/content.asp?cID=" + cID + "&pID=" + pID);
}

function processImage() {
  var output = '';
  var items = xml.responseXML.getElementsByTagName("results");
  var pdiv = document.getElementById("photo");
  var iWidth = items[0].childNodes[5].firstChild.nodeValue;
  var iHeight = items[0].childNodes[6].firstChild.nodeValue;
  var pID = items[0].childNodes[7].firstChild.nodeValue;

  var bWide = false;
  var eStylesheets = document.getElementsByTagName("link");
  for (var i = 0; i < eStylesheets.length; i++)
    if (eStylesheets[i].getAttribute("href").indexOf("wide") != -1) bWide = true;

  if(iWidth > iHeight) {
    output += '<img src="' + items[0].childNodes[3].firstChild.nodeValue + '\" width=' + iWidth + ' height=' + iHeight + ' border=0 alt=\"' + items[0].childNodes[2].firstChild.nodeValue + '\">';
    output += '<div style="height:36px;padding-top:2px;">' + items[0].childNodes[4].firstChild.nodeValue + '</div>';
    //output += '<div style="float:left;"><img src="Images/icons/arrow_grey_left.gif" width=7 height=7 border=0><a href="" class="arrow">back</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="" class="arrow-left">next</a><img src="Images/icons/arrow_grey.gif" width=7 height=7 border=0></div>';
    if (!bWide) output += '<div style="float:right;"><a href="default.asp?pID=' + pID + '&cID=' + items[0].childNodes[0].firstChild.nodeValue + '" class="arrow-left">email this image to a friend</a><img src="Images/icons/arrow_grey.gif" width=7 height=7></div>';
  } else {
    output += '<div style="float:left;width:171px;"><div style="padding:140px 10px 10px 0px;">';
    output += '<div style="height:100px;">' + items[0].childNodes[4].firstChild.nodeValue + '</div>';
    if (!bWide) output += '<div style="height:37px;"><a href="default.asp?pID=' + pID + '&cID=' + items[0].childNodes[0].firstChild.nodeValue + '" class="arrow-left">email this image to a friend</a><img src="Images/icons/arrow_grey.gif" width="7" height="7" alt=""></div>';
    //output += '<div><img src="Images/icons/arrow_grey_left.gif" width="7" height="7" alt=""><a href="' + iPrev + '" class="arrow">back</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="' + iNext + '" class="arrow-left">next</a><img src="Images/icons/arrow_grey.gif" width="7" height="7" alt=""></div>';
    output += '</div></div>';
    output += '<div style="float:right;"><img src="' + items[0].childNodes[3].firstChild.nodeValue + '\" width=' + iWidth + ' height=' + iHeight + ' border=0 alt=\"' + items[0].childNodes[2].firstChild.nodeValue + '\"></div>';
  }
  pdiv.innerHTML = output;
}

var isOn = 'info_1';

function show(divID) {
  hide(isOn);
  document.getElementById(divID).style.visibility = 'visible';
  isOn = divID;
}

function hide(divID) {
  document.getElementById(divID).style.visibility = 'hidden';
}

function subForm(pg){
  document.cSearch.pg.value = pg;
  document.cSearch.submit();
}

function closeWin(url){
  window.parent.opener.location = url;
  window.parent.opener.focus();
  window.close();
}

function wordCounter(total, s) {
  var str = s.split(" ");
  var count = total - str.length;
  if (str.length >= total || count == 0) {
    document.compfrm.comp_entry.value = s.substring(0, s.length - 1);
    document.getElementById("wTotal").innerHTML = count;
  } else
    document.getElementById("wTotal").innerHTML = count;
}

function displayRandFeature() {
  // Only for homepage
  if (document.getElementById("p1")) {
    for (i = 1; i <= 5; i++)
      if (i == 5 || document.getElementById("p"+ i +"-title").innerHTML.toLowerCase() == "<span></span><br>") {
        var total = i - 1;
        break;
      }

    var rand = Math.floor(Math.random()*total) + 1;
    document.getElementById("empty").style.display = "none";
    document.getElementById("p"+ rand).style.display = "block";
  }
}

function displayPackages() {
  // Only for homepage... displays random packages
  if (document.getElementById("packages")) {
    var ePackages = document.getElementById("packages");
    var eNodes = ePackages.childNodes;
    var iTotal = 0, bBreak = false;

    for (var i = 0; i <= eNodes.length; i++)
      if (eNodes[i].className == "copy") {
        for (var d = 0; d < 3; d++) {
          // cycle through innerHTML of node but check for #text in FireFox first
          if (typeof eNodes[i].childNodes[d] != "undefined")
            if (eNodes[i].childNodes[d].nodeName.toLowerCase() == "div")
              if (eNodes[i].childNodes[d].innerHTML.toLowerCase().indexOf("<strong></strong>") != -1) {
                bBreak = true;
                break;
              }
        }
        if (bBreak) break;
        iTotal += 1;
        if (iTotal == 5) break;
      }

    // get random number
    var iRandomNum = Math.floor(Math.random() * iTotal) + 1;
    iTotal = 0;

    // once we have random number, cycle through nodes to find relevant nodes
    for (var i = 0; i <= eNodes.length; i++)
      if (eNodes[i].className == "copy") {
        iTotal += 1;
        if (iTotal == iRandomNum) {
          eNodes[i].style.display = "block";
          for (var d = i; d < eNodes.length; d++)
            if (eNodes[d].className == "images") {
              eNodes[d].style.display = "block";
              break;
            }
          break;
        }
      }
  }
}

var bType = "h";
function displayPlanner() {
/* 2007-10-09: JM - Not needed for Country Club site. No Planner provisioned. */
	return;
  var ePlanner = document.getElementById("planner");
  var eHolder = document.getElementById("Holder");
  var iWidth = (browser.isIE) ? 935 : 920;
  var eNodes, eIntro;
  var iScreenWidth = parseInt(document.documentElement.offsetWidth);

  if (iScreenWidth > iWidth && bType == "h") {
    // display vertical planner
    bType = "v";
    eHolder.style.paddingRight = "160px";

    var eDiv = document.createElement("div");
    eHolder.insertAdjacentElement("afterBegin", eDiv);
    with (eDiv) {
      id = "planner-v";
      innerHTML = ePlanner.innerHTML;
    }

    with (ePlanner) {
      style.display = "none";
      parentNode.className = "";
    }

    eNodes = eDiv.getElementsByTagName("div");
    for (var i = 0; i < eNodes.length; i++)
      if (eNodes[i].className == "link-white") {
        eNodes[i].className = "link-darkgreen";
        eNodes[i].getElementsByTagName("img")[0].src = "images/icons/arrow_armygreen.gif";
      } else if (eNodes[i].className == "link-darkgreen" && eNodes[i].innerHTML.indexOf("learn more") != -1)
        eNodes[i].innerHTML = eNodes[i].innerHTML.replace("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", "<br />");
  } else if (iScreenWidth < iWidth && bType == "v") {
    // display horizontal planner
    bType = "h";
    eHolder.style.paddingRight = "0";
    var ePlannerV = document.getElementById("planner-v");
    ePlannerV.removeNode(true);

    with (ePlanner) {
      style.display = "block";
      parentNode.className = "cRow";
    }
  }
}

var oAnimateCopy, oAnimateImage, bIsComplete = true;
function scrollFeature(sDirection) {
  if (!bIsComplete) return;

  var eFeature = document.getElementById("highlights");
  var eCopy = eFeature.childNodes[1];
  var eCopyScroll = eCopy.childNodes[0];
  var eCopyItem = eCopyScroll.childNodes[0];
  var eImage = eFeature.childNodes[2];
  var eImageScroll = eImage.childNodes[0];
  var eImageItem = eImageScroll.childNodes[0];

  // get number of items and set holder div to that width
  var eFeatureCount = eCopyScroll.childNodes.length;
  eCopyScroll.style.width = (eFeatureCount * eCopyItem.clientWidth) + "px";
  eImageScroll.style.width = (eFeatureCount * eImageItem.clientWidth) + "px";

  // add minus for previous direction
  var iCopyDirection = (sDirection == "next") ? eCopyItem.clientWidth : parseInt("-" + eCopyItem.clientWidth);
  var iImageDirection = (sDirection == "next") ? eImageItem.clientWidth : parseInt("-" + eImageItem.clientWidth);

	// EP (2008-03-26): Auto scroll implementation
	if (sDirection == "next")	{
		gIScrollCurrent++;
	} else {
		gIScrollCurrent--;
	}

  // initialise animation
  oAnimateCopy = new YAHOO.util.Scroll(eCopy, { scroll: { by: [iCopyDirection, eCopy.clientWidth] } }, 2, YAHOO.util.Easing.easeBoth);
  oAnimateImage = new YAHOO.util.Scroll(eImage, { scroll: { by: [iImageDirection, eImage.clientWidth] } }, 2, YAHOO.util.Easing.easeBoth);
  oAnimateCopy.onStart.subscribe(function() { bIsComplete = false; });
  oAnimateCopy.onComplete.subscribe(function() { bIsComplete = true; });
  oAnimateCopy.animate();
  oAnimateImage.animate();
}
function scrollFeatureDynamic(sDirection, which) {
  if (!bIsComplete) return;

  var eFeature = document.getElementById(which);
  var eCopy = eFeature.childNodes[1];
  var eCopyScroll = eCopy.childNodes[0];
  var eCopyItem = eCopyScroll.childNodes[0];
  var eImage = eFeature.childNodes[2];
  var eImageScroll = eImage.childNodes[0];
  var eImageItem = eImageScroll.childNodes[0];
  var eCopyFooter = eFeature.childNodes[3];
  var eCopyFooterScroll = eCopyFooter.childNodes[0];
  var eCopyFooterItem = eCopyFooterScroll.childNodes[0];

  // get number of items and set holder div to that width
  var eFeatureCount = eCopyScroll.childNodes.length;
  eCopyScroll.style.width = (eFeatureCount * eCopyItem.clientWidth) + "px";
  eImageScroll.style.width = (eFeatureCount * eImageItem.clientWidth) + "px";
  eCopyFooterScroll.style.width = (eFeatureCount * eCopyFooterItem.clientWidth) + "px";

  // add minus for previous direction
  var iCopyDirection = (sDirection == "next") ? eCopyItem.clientWidth : parseInt("-" + eCopyItem.clientWidth);
  var iImageDirection = (sDirection == "next") ? eImageItem.clientWidth : parseInt("-" + eImageItem.clientWidth);
  var iCopyFooterDirection = (sDirection == "next") ? eCopyFooterItem.clientWidth : parseInt("-" + eCopyFooterItem.clientWidth);

  // initialise animation
  oAnimateCopy = new YAHOO.util.Scroll(eCopy, { scroll: { by: [iCopyDirection, eCopy.clientWidth] } }, 2, YAHOO.util.Easing.easeBoth);
  oAnimateImage = new YAHOO.util.Scroll(eImage, { scroll: { by: [iImageDirection, eImage.clientWidth] } }, 2, YAHOO.util.Easing.easeBoth);
  oAnimateCopyFooter = new YAHOO.util.Scroll(eCopyFooter, { scroll: { by: [iCopyFooterDirection, eCopyFooter.clientWidth] } }, 2, YAHOO.util.Easing.easeBoth);
  
  oAnimateCopy.onStart.subscribe(function() { bIsComplete = false; });
  oAnimateCopy.onComplete.subscribe(function() { bIsComplete = false; });
  oAnimateCopyFooter.onComplete.subscribe(function() { bIsComplete = true; });
  
  oAnimateCopy.animate();
  oAnimateImage.animate();
  oAnimateCopyFooter.animate();
}

/*****************************************************************
  Prototypes
*****************************************************************/
// HTMLElement in Safari
if (!window.HTMLElement && /Safari/.test(navigator.userAgent)) {
  var HTMLElement = {};
  HTMLElement.prototype = document.createElement("div").__proto__;
}

// insertAdjacentElement, insertAdjacentHTML, insertAdjacentText and removeNode
if (typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {
  HTMLElement.prototype.insertAdjacentElement = function(position, parsedNode) {
    switch (position) {
      case "beforeBegin": this.parentNode.insertBefore(parsedNode,this); break;
      case "afterBegin": this.insertBefore(parsedNode, this.firstChild); break;
      case "beforeEnd": this.appendChild(parsedNode); break;
      case "afterEnd":
        if (this.nextSibling)
          this.parentNode.insertBefore(parsedNode, this.nextSibling);
        else
          this.parentNode.appendChild(parsedNode);
        break;
    }
  }
  HTMLElement.prototype.insertAdjacentHTML = function(position, sHTML) {
    var eRange = this.ownerDocument.createRange();
    eRange.setStartBefore(this);
    var parsedHTML = eRange.createContextualFragment(sHTML);
    this.insertAdjacentElement(position, parsedHTML);
  }
  HTMLElement.prototype.insertAdjacentText = function(position, sText) {
    var parsedText = document.createTextNode(sText)
    this.insertAdjacentElement(position, parsedText)
  }
  HTMLElement.prototype.removeNode = function(removeChildren) {
    if (Boolean(removeChildren))
      return this.parentNode.removeChild(this);
    else {
      var eRange = document.createRange();
      eRange.selectNodeContents(this);
      return this.parentNode.replaceChild(eRange.extractContents(), this);
    }
  }
}

function MM_findObj(n, d) { //v4.01
	var p,i,x;	if(!d) d=document;	if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

/* Thanks to Scott Andrew */
function addEvent(obj, evType, fn){
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
	    return false;
    }
}

function detachEvent(obj, evType, fn)	{
    if (obj.removeEventListener) {
        obj.removeEventListener(evType, fn, true);
        return true;
    } else if (obj.detachEvent) {
        var r = obj.detachEvent("on"+evType, fn);
        return r;
    } else {
	    return false;
    }
}
