﻿/*        *        *        *        *        *        *        *         */

/*        Utility functions.                                              */

/*        *        *        *        *        *        *        *         */

function $(ctrlID) {
  var ctrl = document.getElementById(ctrlID);
  if (!ctrl)
    alert("Unexpected Error: Unable to locate control " + ctrlID);
  return ctrl;
}

function ClassExists(ctrl, name) {
	return new RegExp("\\b" + name + "\\b").test(ctrl.className);
}
function ClassAdd(ctrl, name) {
	if (!ClassExists(ctrl,name)) {
	  if ("" == ctrl.className)
	    ctrl.className = name;
    else
  	  ctrl.className += " " + name;
	}
}
function ClassRemove(ctrl, name) {
	var rep = ctrl.className.match(" " + name) ? " " + name : name;
	ctrl.className = ctrl.className.replace(rep, "");
}

function GetElementsByClassName(clsName) {
  var retVal = new Array();
  var elements = document.getElementsByTagName("*");
  var classes, j;
  for (var i = 0; i < elements.length; i++) {
    if (elements[i].className.indexOf(" ") >= 0) {
      classes = elements[i].className.split(" ");
      for (j = 0; j < classes.length; j++) {
        if (classes[j] == clsName)
          retVal.push(elements[i]);
      }
    }
    else if (elements[i].className == clsName)
      retVal.push(elements[i]);
  }
  return retVal;
}

function GetEventCtrl(e) {
  var ctrl;
  if (!e) var e = window.event;
  ctrl = e.target || e.srcElement;
  if (ctrl.nodeType == 3) ctrl = ctrl.parentNode;     // defeat Safari bug
  return ctrl;
}

//***Cross browser attach event function. For 'evt' pass a string value with the leading "on" omitted
//***e.g. AttachEvent(window,'load',MyFunctionNameWithoutParenthesis);
function AttachEvent(obj, evt, fnc) {
	if (obj.addEventListener) {
		obj.addEventListener(evt, fnc, false);
		return true;
	} else if (obj.attachEvent) return obj.attachEvent("on" + evt, fnc);
} 

function setOpacity(ctrl, opacity) {
  if (100 == opacity)
    try{ ctrl.removeAttribute("filter"); } catch(err) {}
  else {
    opacity = (opacity == 100)?99.999:opacity;
    ctrl.style.filter = "alpha(style=0,opacity:"+opacity+",style=0)";  // IE/Win
//    ctrl.style.filter = "filter:progidBig GrinXImageTransform.Microsoft.Alpha(opacity=100,style=0)
    ctrl.style.KHTMLOpacity = opacity/100;             // Safari<1.2, Konqueror
    ctrl.style.MozOpacity = opacity/100;               // Older Mozilla and Firefox
    ctrl.style.opacity = opacity/100;                  // Safari 1.2, newer Firefox and Mozilla, CSS3
  }
}

/*        *        *        *        *        *        *        *         */

/* Preload images? */

/*        *        *        *        *        *        *        *         */

//imgMenu0 = new Image(60,27);
//imgMenu0.src = "Images/Menu0_Hilite.gif";

/*        *        *        *        *        *        *        *         */

/* Home page animation. */

/*        *        *        *        *        *        *        *         */

var _imgIndex = 0;

function SwapHdrImg() {
  var imgBase, imgNew, pos;

  imgBase = $("imgMainHdr");

  ++_imgIndex;
  if (_imgIndex >= _slides.length) _imgIndex = 0;

//  imgNew = imgBase.cloneNode(false);
imgNew = document.createElement("img");
  imgNew.src = imgBase.src;
  imgNew.id = "__NewImg__";
  imgNew.style.zIndex = 2;
  imgNew.style.position = "absolute";
  pos = findPos(imgBase);
  imgNew.style.left = imgBase.offsetLeft + "px";
  imgNew.style.top = imgBase.offsetTop + "px";
//  imgNew.style.left = pos[0] + "px";
//  imgNew.style.top = pos[1] + "px";

  imgNew.style.paddingTop = "6px";
  imgNew.style.paddingBottom = "6px";
  imgNew.style.backgroundColor = "#fff";
  imgBase.offsetParent.appendChild(imgNew);
  imgBase.style.zIndex = 1;
  imgBase.src = _slides[_imgIndex];

  setOpacity(imgNew, 100);
  fadeOut(imgNew.id, 100, true);

  setOpacity(imgBase, 0);
  fadeIn(imgBase.id, 0);
}

function fadeOut(imgName, opacity, pause) {
  var ctrl;
  ctrl = document.getElementById(imgName);
  if (opacity >= 0) {
    setOpacity(ctrl, opacity);
    opacity -= 7;
    window.setTimeout("fadeOut('"+imgName+"',"+opacity+","+pause+")", 100);
  } else {
    if (pause) {
      window.setTimeout("removeHdrImg('"+imgName+"')", _timeOut);
    }
    else {
      ctrl.parentNode.removeChild(ctrl);
      SwapHdrImg();
    }
  }
  ctrl = null;
}
function removeHdrImg(imgName) {
  var ctrl;
  ctrl = document.getElementById(imgName);
  ctrl.parentNode.removeChild(ctrl);
  SwapHdrImg();
  ctrl = null;
}

function fadeIn(imgName, opacity) {
  var ctrl;
  ctrl = document.getElementById(imgName);
  if (opacity <= 100) {
    setOpacity(ctrl, opacity);
    opacity += 7;
    window.setTimeout("fadeIn('"+imgName+"',"+opacity+")", 100);
  } else {
    setOpacity(ctrl, 100);
  }
  ctrl = null;
}

function findPos(obj) {
  var curleft = curtop = 0;
  do {
    curleft += obj.offsetLeft;
    curtop += obj.offsetTop;
  } while (obj = obj.offsetParent);
  return [curleft,curtop];
}

/*        *        *        *        *        *        *        *         */

function GalleryPage(page, item) {
  var ctrl, ctrl2, i;
  ctrl = document.getElementById("GalleryRight");
  i = 0;
  while (ctrl2 = ctrl.childNodes[i]) {
    if (3 != ctrl2.nodeType) ctrl2.style.display = "none";
    ++i;
  }
  ctrl2 = document.getElementById("GR_" + page + "_" + item);
  if (ctrl2) ctrl2.style.display = "block";
  ctrl2 = null;
  ctrl = null;
  return false;
}

/*        *        *        *        *        *        *        *         */

var _pageTestimonial = 0;
var _pageTestimonialCnt = 0;

function TestimonialPage(e) {
  var ctrl;
  ctrl = GetEventCtrl(e);
  ShowTestimonial(parseInt(ctrl.firstChild.data) - 1);
  ctrl = null;
}

function TestimonialPrevPage() {
  if (0 == _pageTestimonial)
    _pageTestimonial = _pageTestimonialCnt - 1;
  else
    _pageTestimonial -= 1;
  ShowTestimonial(_pageTestimonial);
}

function TestimonialNextPage() {
  if ((_pageTestimonialCnt - 1) == _pageTestimonial)
    _pageTestimonial = 0;
  else
    _pageTestimonial += 1;
  ShowTestimonial(_pageTestimonial);
}

function ShowTestimonial(page) {
  var ctrls, i, ctrl;
  ctrls = GetElementsByClassName("testimonial")
  for (i = 0; i < ctrls.length; ++i) {
    ctrls[i].style.display = "none";
  }
  ctrl = $("T_" + (page + 1));
  ctrl.style.display = "block";
  _pageTestimonial = page;
  ctrl = null;
  ctrls = null;
}

/*        *        *        *        *        *        *        *         */
