/** Passed to img src **/

var imageList = [
"http://farm4.static.flickr.com/3215/2401572587_cf17f7b9bb_m.jpg",
"http://farm3.static.flickr.com/2049/2402404916_2efb347e8c_m.jpg",
"http://farm3.static.flickr.com/2313/2401580931_14ef5e372c_m.jpg",
"http://farm4.static.flickr.com/3059/2401573095_5e62cabe53_m.jpg",
"http://farm4.static.flickr.com/3198/2401573573_16d1d1c127_m.jpg",
"http://farm3.static.flickr.com/2390/2401574085_2c5a29d0fd_m.jpg",
"http://farm4.static.flickr.com/3138/2401574531_2f7e2a49c6_m.jpg",
"http://farm3.static.flickr.com/2293/2401575341_9d6b2b0463_m.jpg",
"http://farm3.static.flickr.com/2006/2401575885_ccd3181923_m.jpg",
"http://farm3.static.flickr.com/2349/2401576837_64611c6157_m.jpg",
"http://farm4.static.flickr.com/3060/2402406102_a9736b289e_m.jpg",
"http://farm3.static.flickr.com/2253/2402406710_e277fbdf96_m.jpg",
"http://farm3.static.flickr.com/2166/2402407168_5941f6ae05_m.jpg",
"http://farm3.static.flickr.com/2078/2401579433_504f03d456_m.jpg",
"http://farm4.static.flickr.com/3104/2402408340_71cceb2d2b_m.jpg",
"http://farm3.static.flickr.com/2231/2401580535_72c63b4d60_m.jpg",
"http://farm4.static.flickr.com/3145/2401581633_f0b764d0c7_m.jpg",
"http://farm3.static.flickr.com/2106/2401582271_a53516469f_m.jpg",
"http://farm4.static.flickr.com/3088/2401582945_5b6cf1b69d_m.jpg",
"http://farm3.static.flickr.com/2224/2401583557_45db1b5798_m.jpg",
"http://farm3.static.flickr.com/2001/2402412830_32621aa1af_m.jpg",
"http://farm4.static.flickr.com/3188/2402413402_2cced59597_m.jpg",
"http://farm4.static.flickr.com/3176/2402414220_95a3ebf2d9_m.jpg",
"http://farm4.static.flickr.com/3007/2402488676_e99f204e8e_m.jpg"
];

/** Passed to a href **/

var urlList = [
"http://www.flickr.com/photos/lobsterfiesta/2401572587/",
"http://www.flickr.com/photos/lobsterfiesta/2402404916/",
"http://www.flickr.com/photos/lobsterfiesta/2401580931/",
"http://www.flickr.com/photos/lobsterfiesta/2401573095/",
"http://www.flickr.com/photos/lobsterfiesta/2401573573/",
"http://www.flickr.com/photos/lobsterfiesta/2401574085/",
"http://www.flickr.com/photos/lobsterfiesta/2401574531/",
"http://www.flickr.com/photos/lobsterfiesta/2401575341/",
"http://www.flickr.com/photos/lobsterfiesta/2401575885/",
"http://www.flickr.com/photos/lobsterfiesta/2401576837/",
"http://www.flickr.com/photos/lobsterfiesta/2402406102/",
"http://www.flickr.com/photos/lobsterfiesta/2402406710/",
"http://www.flickr.com/photos/lobsterfiesta/2402407168/",
"http://www.flickr.com/photos/lobsterfiesta/2401579433/",
"http://www.flickr.com/photos/lobsterfiesta/2402408340/",
"http://www.flickr.com/photos/lobsterfiesta/2401580535/",
"http://www.flickr.com/photos/lobsterfiesta/2401581633/",
"http://www.flickr.com/photos/lobsterfiesta/2401582271/",
"http://www.flickr.com/photos/lobsterfiesta/2401582945/",
"http://www.flickr.com/photos/lobsterfiesta/2401583557/",
"http://www.flickr.com/photos/lobsterfiesta/2402412830/",
"http://www.flickr.com/photos/lobsterfiesta/2402413402/",
"http://www.flickr.com/photos/lobsterfiesta/2402414220/",
"http://www.flickr.com/photos/lobsterfiesta/2402488676/"
];

/** Formats HTML for an LI **/

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

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

var loadInitialItems = function(type, args) {
	var start = args[0];
	var last = args[1]; 

	load(this, start, last);	
};

var loadNextItems = function(type, args) {	

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

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

var load = function(carousel, start, last) {

	for(var i=start; i<=last; i++) {
		carousel.addItem(i, fmtItem(imageList[i-1], urlList[i-1], "Number "+i));
	}
};

var handlePrevButtonState = function(type, args) {

	var enabling = args[0];
	var leftImage = args[1];
	if(enabling) {
		leftImage.src = "images/left-enabled.png";		
	} else {
		leftImage.src = "images/left-disabled.png";	
	}
	
};

var handleNextButtonState = function(type, args) {

	var enabling = args[0];
	var rightImage = args[1];
	if(enabling) {
		rightImage.src = "images/right-enabled.png";	
	} else {
		rightImage.src = "images/right-disabled.png";
	}
	
};

var carousel; // for ease of debugging; globals generally not a good idea
var pageLoad = function() 
{
	carousel = new YAHOO.extension.Carousel("dhtml-carousel", 
		{
			numVisible:        2,
			animationSpeed:    0.25,
			animationMethod:   YAHOO.util.Easing.easeBoth,
			scrollInc:         2,
			navMargin:         38,
			size:              24,
			loadInitHandler:   loadInitialItems,
			prevElement:     "prev-arrow",
			nextElement:     "next-arrow",
			loadNextHandler:   loadNextItems,
			loadPrevHandler:   loadPrevItems,
			prevButtonStateHandler:   handlePrevButtonState,
			nextButtonStateHandler:   handleNextButtonState
		}
	);
};

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

