//petsel's funky helpers
Array.forEach = function (obj, fct) {if(typeof fct=="function"){var i,l=(((obj instanceof Array)||((typeof obj.length=="number")&&((typeof obj.item=="function")||(typeof obj.item=="object")||(typeof obj.item=="string")||(obj instanceof window.NodeList)||(obj instanceof window.HTMLCollection))))?(obj.length):(0));for(i=0;i<l;++i){fct.call(null,(obj[i]||obj.item(i)),i,obj);}}};


YAHOO.namespace('ecco.slideshow');


//YAHOO Loader
loader = new YAHOO.util.YUILoader({
    require: ['animation','dom','event'],
    loadOptional: true,
    onSuccess: function() {
        YAHOO.util.Event.onAvailable('flickr_badge_image1', function() {
            YAHOO.ecco.slideshow.init();
        });
    }
});
loader.insert();


YAHOO.ecco.slideshow.init = function() {
    //CONFIG
    //Seconds Timeout
    YAHOO.ecco.slideshow.timeOut = 5;
    
    //Current Slide
    YAHOO.ecco.slideshow.currentSlide = 1;
    
    //zindex
    YAHOO.ecco.slideshow.currentZindex = 900;
    
    //Timer Holder
    YAHOO.ecco.slideshow.timer = null;
    
    //Effect Attrs
    YAHOO.ecco.slideshow.effects = { opacity: { from: 0, to: 1 } };
    
    //Array of Images
    YAHOO.ecco.slideshow.slides = YAHOO.util.Dom.getChildren('flickrSlideshow');
    

	//Set all link targets to "_blank" (veileh 090422)
	Array.forEach(document.getElementById("flickrGallery").getElementsByTagName("A"), function(e) {
		e.target = "_blank";
	})

    
    //START IT
    YAHOO.ecco.slideshow.slide_holder = YAHOO.util.Dom.get('flickrSlideshow');
    YAHOO.util.Dom.setStyle(YAHOO.ecco.slideshow.slide_holder, 'display', 'block');
    YAHOO.ecco.slideshow.loadSlide(YAHOO.ecco.slideshow.currentSlide);
}

//YAHOO.widget.slideshow.
YAHOO.ecco.slideshow.loadNextSlide = function() {
    var nextSlide = (YAHOO.ecco.slideshow.currentSlide + 1);
    if (!YAHOO.ecco.slideshow.slides[nextSlide]) {
        nextSlide = 1;
    }
    YAHOO.ecco.slideshow.loadSlide(nextSlide);
    YAHOO.ecco.slideshow.currentSlide = nextSlide;
}

//YAHOO.widget.slideshow.
YAHOO.ecco.slideshow.loadSlide = function(slideID) {
    if (YAHOO.ecco.slideshow.slides[slideID]) {
        var div = YAHOO.util.Dom.get('flickr_badge_image' + slideID);
        var nextImage = YAHOO.ecco.slideshow.slides[slideID];
        YAHOO.util.Dom.setStyle(div, 'opacity', 0); //prevent flickEr
        YAHOO.util.Dom.setStyle(div, 'visibility', 'visible'); //prevent visible loading of all images in IE, smoothly fade in first image
        YAHOO.util.Dom.setStyle(div, 'z-index', YAHOO.ecco.slideshow.currentZindex);
        var animSlide = new YAHOO.util.Anim(div, YAHOO.ecco.slideshow.effects, 1, YAHOO.util.Easing.easeOut); //YAHOO.util.Dom.getLastChild(div)
        animSlide.animate();
        YAHOO.ecco.slideshow.currentZindex++;
        YAHOO.ecco.slideshow.timer = setTimeout('YAHOO.ecco.slideshow.loadNextSlide()', (YAHOO.ecco.slideshow.timeOut * 1000));
    }
}
