/**
 * Image src URLs
 **/
var imageList = [
         "",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/smallsociety.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/deyfischer.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/gci.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/veloce.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/ncc.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/second_porch.gif",
//				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/cdi.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/nic.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/logos.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/d_and_d.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/it_invisible.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/premier.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/dsw.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/percentix.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/atec.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/reece.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/jdmi.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/issi.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/tip.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/network_architects.gif",
				 
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/diamond.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/4front.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/cencor.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/computer_conductors.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/timely_technology.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/creative_computer_consultants.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/security_portal.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/bay_resources.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/sabredata.gif",
				 "http://www.mergertech.com/wp-content/themes/mergertech/images/thumbs/winstar.gif"
				 
				 ];
var urlList = [
         "",
				 "http://www.mergertech.com/success-stories/#ssSmallSociety",
				 "http://www.mergertech.com/success-stories/#ssDeyFischer",
				 "http://www.mergertech.com/success-stories/#ssGCI",
				 "http://www.mergertech.com/success-stories/#ssVeloce",
				 "http://www.mergertech.com/success-stories/#ssNCC",
				 "http://www.mergertech.com/success-stories/#ssPorch",
//				 "http://www.mergertech.com/success-stories/#ssCDI",
				 "http://www.mergertech.com/success-stories/#ssNIC",
				 "http://www.mergertech.com/success-stories/#ssLogos",
				 "http://www.mergertech.com/success-stories/#ssDandD",
				 "http://www.mergertech.com/success-stories/#ssITI",
				 "http://www.mergertech.com/success-stories/#ssPremier",
				 "http://www.mergertech.com/success-stories/#ssDataSystems",
				 "http://www.mergertech.com/success-stories/#ssPercentix",
				 "http://www.mergertech.com/success-stories/#ssATEC",
				 "http://www.mergertech.com/success-stories/#ssReece",
				 "http://www.mergertech.com/success-stories/#ssJDMi",
				 "http://www.mergertech.com/success-stories/#ssISSI",
				 "http://www.mergertech.com/success-stories/#ssTip",
				 "http://www.mergertech.com/success-stories/#ssNetArchitects",
				 
				 "http://www.mergertech.com/success-stories/#ssDiamond",
				 "http://www.mergertech.com/success-stories/#ss4Front",
				 "http://www.mergertech.com/success-stories/#ssCencor",
				 "http://www.mergertech.com/success-stories/#ssComputerConductors",
				 "http://www.mergertech.com/success-stories/#ssTimelyTechnology",
				 "http://www.mergertech.com/success-stories/#ssCreativeComputerConsultants",
				 "http://www.mergertech.com/success-stories/#ssSecurityPortal",
				 "http://www.mergertech.com/success-stories/#ssBayResources",
				 "http://www.mergertech.com/success-stories/#ssSabreData",
				 "http://www.mergertech.com/success-stories/#ssWinstar"
				 ];

var lastRan = -1;

/**
 * Since carousel.addItem uses an HTML string to create the interface
 * for each carousel item, this method formats the HTML for an LI.
 **/

var fmtItem = function(imgUrl, url, title) {

  	var innerHTML = 
  		'<a href="' + 
  		url + 
  		'"><img src="' + 
  		imgUrl +
		'" width="' +
		150 +
		'" height="' +
		150+
		'"/>' + 
  		title + 
  		'<\/a>';
  
	return innerHTML;
	
};

/**
 * Custom inital load handler. Called when the carousel loads the initial
 * set of data items. Specified to the carousel as the configuration
 * parameter: loadInitHandler
 **/
var loadInitialItems = function(type, args) {

	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2]; 
		
	load(this, start, last);	

	brightenOrDim(this);

};

/**
 * Custom load next handler. Called when the carousel loads the next
 * set of data items. Specified to the carousel as the configuration
 * parameter: loadNextHandler
 **/
var loadNextItems = function(type, args) {	

	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2];
	
	if(!alreadyCached) {
		load(this, start, last);
	}

	brightenOrDim(this);

};

/**
 * Custom load previous handler. Called when the carousel loads the previous
 * set of data items. Specified to the carousel as the configuration
 * parameter: loadPrevHandler
 **/
var loadPrevItems = function(type, args) {
	var start = args[0];
	var last = args[1]; 
	var alreadyCached = args[2];
	
	if(!alreadyCached) {
		load(this, start, last);
	}
	
	brightenOrDim(this);
	
	
};

var brightenOrDim = function(carousel) {
	var firstItemRevealed=carousel.getFirstItemRevealed();
	var lastItemRevealed=carousel.getLastItemRevealed();
	var firstVisible = carousel.getProperty("firstVisible");
	var lastVisible = carousel.getLastVisible();
		
	var first = (firstItemRevealed == -1) ? firstVisible : firstItemRevealed;
	var last = (lastItemRevealed == -1) ? lastVisible : lastItemRevealed;
	
	for(var i=first; i<=last; i++) {
		var li = carousel.getItem(i);
		if(li) {
			if(i == firstItemRevealed || i==lastItemRevealed) {
				YAHOO.util.Dom.replaceClass(li, "bright", "dim");
			} else {
				YAHOO.util.Dom.replaceClass(li, "dim", "bright");
			}
		}
	}
	
};

var load = function(carousel, start, last) {
	for(var i=start;i<=last;i++) {
		carousel.addItem(i, fmtItem(imageList[i], urlList[i], "Number " + i), "bright");
/*
		// Example of an alternate way to add an item (passing an element instead of html string)
		var p = document.createElement("P");
		var t = document.createTextNode("Item"+i);
		p.appendChild(t);
		carousel.addItem(i, p );
*/
	}
};

/**
 * Custom button state handler for enabling/disabling button state. 
 * Called when the carousel has determined that the previous button
 * state should be changed.
 * Specified to the carousel as the configuration
 * parameter: prevButtonStateHandler
 **/
var handlePrevButtonState = function(type, args) {

	var enabling = args[0];
	var leftImage = args[1];
	if(enabling) {
		leftImage.src = "http://www.mergertech.com/wp-content/themes/mergertech/images/left-enabled.png";	
	} else {
		leftImage.src = "http://www.mergertech.com/wp-content/themes/mergertech/images/left-disabled.png";
	}
	
};

var handleNextButtonState = function(type, args) {

	var enabling = args[0];
	var rightImage = args[1];
	if(enabling) {
		rightImage.src = "http://www.mergertech.com/wp-content/themes/mergertech/images/right-enabled.png";	
	} else {
		rightImage.src = "http://www.mergertech.com/wp-content/themes/mergertech/images/right-disabled.png";
	}
	
};

/**
 * You must create the carousel after the page is loaded since it is
 * dependent on an HTML element (in this case 'dhtml-carousel'.) See the
 * HTML code below.
 **/

var carousel; // for ease of debugging; globals generally not a good idea
var pageLoad = function() 
{
	carousel = new YAHOO.extension.Carousel("dhtml-carousel", 
		{
			numVisible:        5,
			animationSpeed:    1,
			scrollInc:         5,
			navMargin:         0,
			revealAmount:      100,
			autoPlay:          0,
			size:              29,
			wrap:              false,
			prevElement:       "prev-arrow",
			nextElement:       "next-arrow",
			loadInitHandler:   loadInitialItems,
			loadNextHandler:   loadNextItems,
			loadPrevHandler:   loadPrevItems,
			prevButtonStateHandler:   handlePrevButtonState,
			nextButtonStateHandler:   handleNextButtonState
		}
	);
};

YAHOO.util.Event.addListener(window, 'load', pageLoad);
