// JavaScript Document

				var image =  new Array();
					image[0] = "/img/h2_image_home.jpg";
					image[1] = "/img/h2_image_about.jpg";
					image[2] = "/img/h2_image_cafe.jpg";
					image[3] = "/img/h2_image_kids.jpg";
					image[4] = "/img/h2_image_gallery.jpg";
					image[5] = "/img/h2_image_classes.jpg";
					image[6] = "/img/h2_image_parties.jpg";												
					image[7] = "/img/h2_image_location.jpg";				
					image[8] = "/img/h2_image_online.jpg";	
				var caption =  new Array();
					caption[0] = ("A Chicago cafe where kids are free to be kids and you're free to relax.");
					caption[1] = ("Because when you're happy, your kids are happy too.");
					caption[2] = ("Enjoy a cappuccino with friends with your kids nearby? See how we do it.");
					caption[3] = ("Activities to keep your kids happy and engaged while you relax nearby.");
					caption[4] = ("Indulge in gourmet coffees, espressos and teas in our kid friendly cafe.");
					caption[5] = ("Enroll in our fun and educational classes fro kids, moms and families.");
					caption[6] = ("Reserve a space for your next party and leave the fuss to us.");
					caption[7] = ("Walk, CTA, Drive - A Sophisticated, Chicago Cafe for families and friends.");
					caption[8] = ("Chicago-based coffees, espressos and treats you're sure to love.");
					
				var destination =  new Array();
					destination[0] = ("");
					destination[1] = ("/kid-friendly-coffee-shop");
					destination[2] = ("/chicago-coffee-cafe");	
					destination[3] = ("/kids-indoor-playground");
					destination[4] = ("/coffee-shop-pictures");					
					destination[5] = ("/kids-classes-chicago");
					destination[6] = ("/kids-birthday-parties");					
					destination[7] = ("family-grounds-location");
					destination[8] = ("/chicago-coffee-cafe");

				var cursor =  new Array();
					cursor[0] = ("default");
					cursor[1] = ("pointer");
					cursor[2] = ("pointer");	
					cursor[3] = ("pointer");
					cursor[4] = ("pointer");					
					cursor[5] = ("pointer");
					cursor[6] = ("pointer");					
					cursor[7] = ("pointer");
					cursor[8] = ("pointer");
				
				var totalBan = image.length;
				var newBanner = 0;
				
				// Set slideShowSpeed (milliseconds)
				var slideShowSpeed = 5000;					 			
				
				var t;
				var swapImage; 

				var preLoad = new Array();
				for (i = 0; i < totalBan; i++) {
				preLoad[i] = new Image();
				preLoad[i].src = image[i];
				}
		
		function runSlideShow() {
				newBanner = newBanner + 1;
				if (newBanner > (totalBan - 1)) newBanner = 0;
				swapImage = preLoad[newBanner].src;
				document.bannerImage.alt=caption[newBanner];
				document.getElementById("bannerLink").href=destination[newBanner];
				document.getElementById("bannerLink").style.cursor=cursor[newBanner];
				t = setTimeout('runSlideShow()', slideShowSpeed);
				crossfade(document.getElementById('bannerImg'), swapImage, '2', document.bannerImage.alt);
			}
				
		function setH2Image(){
				var pageType = document.body.className;

					if (pageType == 'front not-logged-in node-type-page no-sidebars'){
						newBanner = 0;
											
				document.images.bannerImage.src = preLoad[newBanner].src;
				document.bannerImage.alt=caption[newBanner];
				document.getElementById("bannerLink").href=destination[newBanner];
				t = setTimeout('runSlideShow()', slideShowSpeed);

				}
				}

//crossfade setup function
function crossfade()
{
	//if the timer is not already going
	if(ixf.clock == null)
	{
		//copy the image object 
		ixf.obj = arguments[0];
		
		//copy the image src argument 
		ixf.src = arguments[1];
		
		//store the supported form of opacity
		if(typeof ixf.obj.style.opacity != 'undefined')
		{
			ixf.type = 'w3c';
		}
		else if(typeof ixf.obj.style.MozOpacity != 'undefined')
		{
			ixf.type = 'moz';
		}
		else if(typeof ixf.obj.style.KhtmlOpacity != 'undefined')
		{
			ixf.type = 'khtml';
		}
		else if(typeof ixf.obj.filters == 'object')
		{
			//weed out win/ie5.0 by testing the length of the filters collection (where filters is an object with no data)
			//then weed out mac/ie5 by testing first the existence of the alpha object (to prevent errors in win/ie5.0)
			//then the returned value type, which should be a number, but in mac/ie5 is an empty string
			ixf.type = (ixf.obj.filters.length > 0 && typeof ixf.obj.filters.alpha == 'object' && typeof ixf.obj.filters.alpha.opacity == 'number') ? 'ie' : 'none';
		}
		else
		{
			ixf.type = 'none';
		}
		
		//change the image alt text if defined
		if(typeof arguments[3] != 'undefined' && arguments[3] != '')
		{
			ixf.obj.alt = arguments[3];
		}
		
		//if any kind of opacity is supported
		if(ixf.type != 'none')
		{
			//create a new image object and append it to body
			//detecting support for namespaced element creation, in case we're in the XML DOM
			ixf.newimg = document.getElementsByTagName('body')[0].appendChild((typeof document.createElementNS != 'undefined') ? document.createElementNS('http://www.w3.org/1999/xhtml', 'img') : document.createElement('img'));

			//set positioning classname
			ixf.newimg.className = 'idupe';
			
			//set src to new image src
			ixf.newimg.src = ixf.src

			//move it to superimpose original image
			ixf.newimg.style.left = ixf.getRealPosition(ixf.obj, 'x') + 'px';
			ixf.newimg.style.top = ixf.getRealPosition(ixf.obj, 'y') + 'px';
			
			//copy and convert fade duration argument 
			ixf.length = parseInt(arguments[2], 10) * 1000;
			
			//create fade resolution argument as 20 steps per transition
			ixf.resolution = parseInt(arguments[2], 10) * 20;
			
			//start the timer
			ixf.clock = setInterval('ixf.crossfade()', ixf.length/ixf.resolution);
		}
		
		//otherwise if opacity is not supported
		else
		{
			//just do the image swap
			ixf.obj.src = ixf.src;
		}
		
	}
};

var ixf = { 'clock' : null, 'count' : 1 }

//crossfade timer function
ixf.crossfade = function()
{
	//decrease the counter on a linear scale
	ixf.count -= (1 / ixf.resolution);
	
	//if the counter has reached the bottom
	if(ixf.count < (1 / ixf.resolution))
	{
		//clear the timer
		clearInterval(ixf.clock);
		ixf.clock = null;
		
		//reset the counter
		ixf.count = 1;
		
		//set the original image to the src of the new image
		ixf.obj.src = ixf.src;
	}
	
	//set new opacity value on both elements
	//using whatever method is supported
	switch(ixf.type)
	{
		case 'ie' :
			ixf.obj.filters.alpha.opacity = ixf.count * 100;
			ixf.newimg.filters.alpha.opacity = (1 - ixf.count) * 100;
			break;
			
		case 'khtml' :
			ixf.obj.style.KhtmlOpacity = ixf.count;
			ixf.newimg.style.KhtmlOpacity = (1 - ixf.count);
			break;
			
		case 'moz' : 
			//restrict max opacity to prevent a visual popping effect in firefox
			ixf.obj.style.MozOpacity = (ixf.count == 1 ? 0.9999999 : ixf.count);
			ixf.newimg.style.MozOpacity = (1 - ixf.count);
			break;
			
		default : 
			//restrict max opacity to prevent a visual popping effect in firefox
			ixf.obj.style.opacity = (ixf.count == 1 ? 0.9999999 : ixf.count);
			ixf.newimg.style.opacity = (1 - ixf.count);
	}
	
	//now that we've gone through one fade iteration 
	//we can show the image that's fading in
	ixf.newimg.style.visibility = 'visible';
	
	//keep new image in position with original image
	//in case text size changes mid transition or something
	ixf.newimg.style.left = ixf.getRealPosition(ixf.obj, 'x') + 'px';
	ixf.newimg.style.top = ixf.getRealPosition(ixf.obj, 'y') + 'px';
	
	//if the counter is at the top, which is just after the timer has finished
	if(ixf.count == 1)
	{
		//remove the duplicate image
		ixf.newimg.parentNode.removeChild(ixf.newimg);
	}
};



//get real position method
ixf.getRealPosition = function()
{
	this.pos = (arguments[1] == 'x') ? arguments[0].offsetLeft : arguments[0].offsetTop;
	this.tmp = arguments[0].offsetParent;
	while(this.tmp != null)
	{
		this.pos += (arguments[1] == 'x') ? this.tmp.offsetLeft : this.tmp.offsetTop;
		this.tmp = this.tmp.offsetParent;
	}
	
	return this.pos;
};
