/*****

Image Cross Fade Redux
Version 1.0
Last revision: 02.15.2006
steve@slayeroffice.com

Please leave this notice intact. 

Rewrite of old code found here: http://slayeroffice.com/code/imageCrossFade/xfade2.html


*****/
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

window.addEventListener?window.addEventListener("load",so_init,false):window.attachEvent("onload",so_init);

var containers = new Array();
var viewTime = 7000;
var imageContainerCnt = 1; 

function so_init() {
	if(!document.getElementById || !document.createElement)return;
	
	css = document.createElement("link");
	css.setAttribute("href","images/intro/fade/xfade2.css");
	css.setAttribute("rel","stylesheet");
	css.setAttribute("type","text/css");
	document.getElementsByTagName("head")[0].appendChild(css);

  var viewOffsetStep = ( viewTime / imageContainerCnt );
  for( var j = 0; j < imageContainerCnt; j++ ) {	
    
    containers.push( new ImageContainer( ( "imageContainer" + j ), ( j * viewOffsetStep ) ) );
  }

	
}

function ImageContainer( id, viewOffset ) {

  var fadeTimeout = null;
  var viewTimeout = null;
  
  var zInterval = null, current=0, pause=false;
  var imgs = getElementsByClass("fade-item", document.getElementById( id ) );
  for( i = 1 ; i < imgs.length; i++ ) 
    imgs[i].xOpacity = 0;
  imgs[0].style.display = "block";
  imgs[0].xOpacity = .99;

  var so_xfade = function() {
  
    
    cOpacity = imgs[current].xOpacity;
    nIndex = imgs[current+1]?current+1:0;
  
    nOpacity = imgs[nIndex].xOpacity;
    
    cOpacity-=.05; 
    nOpacity+=.05;
    
    imgs[nIndex].style.display = "block";
    imgs[current].xOpacity = cOpacity;
    imgs[nIndex].xOpacity = nOpacity;
    
    setOpacity(imgs[current]); 
    setOpacity(imgs[nIndex]);
    
    if(cOpacity<=0) {

      imgs[current].style.display = "none";
      current = nIndex;
      viewTimeout = setTimeout(so_xfade,viewTime);
    } else {
      fadeTimeout = setTimeout(so_xfade,50);
    }
    
    function setOpacity(obj) {
      if(obj.xOpacity>.99) {
        obj.xOpacity = .99;
        return;
      }
      obj.style.opacity = obj.xOpacity;
      obj.style.MozOpacity = obj.xOpacity;
      obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
    }
  }
  
  viewTimeout = setTimeout(so_xfade, viewOffset );

}