﻿
var _imgPreloads = new Array();

function PreloadImages(images) {
  var i, obj;
  if (typeof(images) == "string") {
    obj = new Image();
    obj.src = images;
    _imgPreloads.push(obj);
  }
  else {
    for (i = 0; i <= images.length; i++) {
      obj = new Image();
      obj.src = images[i];
      _imgPreloads.push(obj);
    }
  }
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function $(elemID) {
  var elem = document.getElementById(elemID);
  if (!elem) alert("Unexpected Error: Unable to locate control " + elemID);
  return elem;
}

function ClassExists(elem, name) {
	return new RegExp("\\b" + name + "\\b").test(elem.className);
}
function ClassAdd(elem, name) {
	if (!ClassExists(elem, name)) elem.className += ("" == elem.className ? "" : " ") + name;
}
function ClassRemove(elem, name) {
	var rep = (elem.className.match(" " + name) ? " " : "") + name;
	elem.className = elem.className.replace(rep, "");
}

function setOpacity(elem, opacity) {
  if (100 <= opacity) {
    try{ elem.removeAttribute("filter"); } catch(err) {}
    opacity = 99.999;
  }
  elem.style.filter = "alpha(style=0,opacity:"+opacity+",style=0)";  // IE/Win
  elem.style.KHTMLOpacity = opacity/100;             // Safari<1.2, Konqueror
  elem.style.MozOpacity = opacity/100;               // Older Mozilla and Firefox
  elem.style.opacity = opacity/100;                  // Safari 1.2, newer Firefox and Mozilla, CSS3
}

function GetEventElem(e) {
  var elem;
  if (!e) e = window.event;
  elem = e.target || e.srcElement;
  if (elem.nodeType == 3) elem = elem.parentNode;     // defeat Safari bug
  return elem;
}

function is_child_of(parent, child) {
	if( child != null ) {
		while( child.parentNode ) {
			if( (child = child.parentNode) == parent ) {
				return true;
			}
		}
	}
	return false;
}
		
/*        *        *        *        *        *        *        *         */

/* Animation. */

var _imgIndex = 0;
var _timeOut = 2000;
var _imgArray;

function animImage() {
  var imgBase, imgText, imgNew, pos;
  imgBase = $("imgSlide");

  ++_imgIndex;
  if (_imgIndex >= _imgArray.length) _imgIndex = 0;

  imgNew = document.createElement("img");
  imgNew.src = imgBase.src;
  imgNew.id = "__NewImg__";
  imgNew.style.position = "absolute";
  imgNew.style.left = 0;
  imgNew.style.top = 0;
  imgNew.style.width = imgBase.style.width;
  imgNew.style.height = imgBase.style.height;
  imgBase.offsetParent.appendChild(imgNew);
  imgBase.src = _imgArray[_imgIndex].src;

  setOpacity(imgNew, 100);
  animFadeOut(imgNew.id, 100, false);

//  setOpacity(imgBase, 0);
//  animFadeIn(imgBase.id, 0);
}

function animFadeOut(imgName, opacity, pause) {
  var ctrl;
  ctrl = $(imgName);
  if (opacity >= 0) {
    setOpacity(ctrl, opacity);
    opacity -= 7;
    window.setTimeout("animFadeOut('"+imgName+"',"+opacity+","+pause+")", 100);
  } else {
    if (pause) {
      window.setTimeout("animRemoveImg('"+imgName+"')", _timeOut);
    }
    else {
      ctrl.parentNode.removeChild(ctrl);
      window.setTimeout("animImage()", _timeOut * 2);
    }
  }
  ctrl = null;
}
function animRemoveImg(imgName) {
  var ctrl;
  ctrl = $(imgName);
  ctrl.parentNode.removeChild(ctrl);
  animImage();
  ctrl = null;
}

function animFadeIn(imgName, opacity) {
  var ctrl;
  ctrl = $(imgName);
  if (opacity <= 100) {
    setOpacity(ctrl, opacity);
    opacity += 7;
    window.setTimeout("animFadeIn('"+imgName+"',"+opacity+")", 100);
  } else {
    setOpacity(ctrl, 100);
  }
  ctrl = null;
}

/*        *        *        *        *        *        *        *         */

