/******************************
** slideshow.js
**
** makes slideshow for OAN
******************************/
function initializeSlideShow() {
	var numbersPerPage = (arguments[0]) ? arguments[0]:10;
	
	//get images for slideshow . . . if only one, then we hide all the nav
	var images = $('slideshowImageContainer').getElementsByClassName('slideshowImage');
    var newImages = [];
    
	//fixes bug in safari 3.1
	for (var i=0;i<images.length;i++) {
        newImages.push(images[i]);
    }
    images = newImages;

    if (images.length == 1) {
        $('prevSlide').style.visibility = "hidden";
        $('nextSlide').style.visibility = "hidden";
        $('prevEllipsis').style.visibility = "hidden";
        $('nextEllipsis').style.visibility = "hidden";
    }

    //set up the case study for the slide numbers
    var numElements = Math.ceil(images.length/numbersPerPage);
    var pageClusters = [];
    for (var i=0;i<numElements;i++) {
        pageClusters.push(document.createElement('ul'));
        pageClusters[pageClusters.length-1].style.display = 'none';
        pageClusters[pageClusters.length-1].style.width = (i==numElements-1) ? (images.length%numbersPerPage || numbersPerPage)*28 + 'px' : '291px';
        document.getElementsByClassName('slideshowNavigationPhotos')[0].appendChild(pageClusters[pageClusters.length-1]);
    }

    window.pageNumSlideShow = new CaseStudy(document.getElementsByClassName('slideshowNavigationPhotos')[0], pageClusters, {
        onElementChange: function(currentElement) {
            if (currentElement == 1) {
                $('prevEllipsis').style.visibility = "hidden";
            } else {
                $('prevEllipsis').style.visibility = "";
            }

            if (currentElement == pageClusters.length) {
                $('nextEllipsis').style.visibility = "hidden";
            } else {
                $('nextEllipsis').style.visibility = "";
            }
        }
    });

	var slideshow = new CaseStudy('slideshowImageContainer', images, {
		nextElement: 'nextSlide',
		prevElement: 'prevSlide',
		onElementChange: function(elementNumber) {
			var captions = $('slideshowCaption').getElementsByTagName('P');			
			var copyrights = $('slideshowPhotoCopyright').getElementsByTagName('P');
			//take care of left/right buttons
			if (elementNumber == 1) {
				$('prevSlide').style.visibility = 'hidden';
			} else {
				$('prevSlide').style.visibility = '';
			}

			if (elementNumber == images.length) {
				$('nextSlide').style.visibility = 'hidden';
			} else {
				$('nextSlide').style.visibility = '';
			}

			//show the next set of elements if we can
			if (elementNumber%numbersPerPage == 1 && Math.ceil(elementNumber/numbersPerPage) != window.pageNumSlideShow.currentElementNumber) {
				window.pageNumSlideShow.nextElement();
			} else if (elementNumber%numbersPerPage == 0 && Math.ceil(elementNumber/numbersPerPage) != window.pageNumSlideShow.currentElementNumber) {
				window.pageNumSlideShow.prevElement();
			}

			//display the caption and make the current link current
			for (var i=0;i<captions.length;i++) {
				if (i == elementNumber-1) {
					captions[i].style.display = '';
					copyrights[i].style.display = '';
					if ($('slideshow').getElementsByClassName('imageLink')[i]) {
						$('slideshow').getElementsByClassName('imageLink')[i].addClassName('current');
					}
				} else {
					captions[i].style.display = 'none';
					copyrights[i].style.display = 'none';
					if ($('slideshow').getElementsByClassName('imageLink')[i]) {
						$('slideshow').getElementsByClassName('imageLink')[i].removeClassName('current');
					}
				}
			}
			
			return true;
		}
	});

    //add in the links for the images
	for (var i=0;i<slideshow.getElementCount();i++) {
        var elementNumber = document.createElement('a');
        var listElement = document.createElement('li');
        listElement.appendChild(elementNumber);
        elementNumber.href = "javascript:void(0);";
        elementNumber.className = (slideshow.currentElementNumber==i+1) ? "imageLink current" : "imageLink";
        elementNumber.innerHTML = i+1;
        pageClusters[Math.ceil((i+1)/numbersPerPage-1)].appendChild(listElement);
        slideshow.bindEventToElement(i+1, elementNumber);
    }
	
	return true;
}
