var global_transitions = [ //array of IE transition strings
					 "progid:DXImageTransform.Microsoft.Fade()"
//					 ,"progid:DXImageTransform.Microsoft.GradientWipe()"
//					 ,"progid:DXImageTransform.Microsoft.Slide()
//					 ,"progid:DXImageTransform.Microsoft.Barn()"
//					 ,"progid:DXImageTransform.Microsoft.Blinds()"
//					 ,"progid:DXImageTransform.Microsoft.CheckerBoard()"
//					 ,"progid:DXImageTransform.Microsoft.Inset()"
//					 ,"progid:DXImageTransform.Microsoft.Iris()"
//					 ,"progid:DXImageTransform.Microsoft.Pixelate()"
//					 ,"progid:DXImageTransform.Microsoft.RadialWipe()"
//					 ,"progid:DXImageTransform.Microsoft.RandomBars()"
//					 ,"progid:DXImageTransform.Microsoft.RandomDissolve()"
//					 ,"progid:DXImageTransform.Microsoft.Spiral()"
//					 ,"progid:DXImageTransform.Microsoft.Stretch()"
//					 ,"progid:DXImageTransform.Microsoft.Strips()"
//					 ,"progid:DXImageTransform.Microsoft.Wheel()"
//					 ,"progid:DXImageTransform.Microsoft.Zigzag()"
					]


function flashyslideshow(setting) {
    this.wrapperid = setting.wrapperid;
    this.imagearray = setting.imagearray;
    this.pause = setting.pause;
    this.transduration = setting.transduration / 1000;  //convert from miliseconds to seconds unit to pass into el.filters.play()
    this.currentimg = 0;
    var preloadimages = [];  //temp array to preload images
    for (var i = 0; i < this.imagearray.length; i++) {
        preloadimages[i] = new Image();
        preloadimages[i].src = this.imagearray[i][0];
    }

    document.write('<div id="' + this.wrapperid + '" class="' + setting.wrapperclass + '">' + this.getSlideHTML(this.currentimg) + '</div>');
    var effectindex = Math.floor(Math.random() * global_transitions.length);  //randomly pick a transition to utilize
    var wrapperdiv = document.getElementById(this.wrapperid);

    if (wrapperdiv.filters) { //if the filters[] collection is defined on element (only in IE)
        wrapperdiv.style.filter = global_transitions[effectindex];  //define transition on element
        this.pause += setting.transduration;  //add transition time to pause
    }

    this.filtersupport = (wrapperdiv.filters && wrapperdiv.filters.length > 0) ? true : false;  //test if element supports transitions and has one defined

    var slideshow = this;
    setInterval(function() { slideshow.rotate() }, this.pause);
}

flashyslideshow.prototype.getSlideHTML = function(index) {
    var slideHTML = (this.imagearray[index][1]) ? '<a href="' + this.imagearray[index][1] + '" target="' + this.imagearray[index][2] + '" title="Click to see all pictures for this event">\n' : ''; //hyperlink slide?
    slideHTML += '<img src="' + this.imagearray[index][0] + '" />';
    slideHTML += (this.imagearray[index][1]) ? '</a><br />' : '<br />';
    slideHTML += (this.imagearray[index][3]) ? this.imagearray[index][3] : ''; //text description?
    return slideHTML; //return HTML for the slide at the specified index
}

flashyslideshow.prototype.rotate = function() {
    var wrapperdiv = document.getElementById(this.wrapperid);
    this.currentimg = (this.currentimg < this.imagearray.length - 1) ? this.currentimg + 1 : 0;
//    this.currentimg = Math.floor(Math.random() * this.imagearray.length);  //randomly pick a picture
    if (this.filtersupport)
        wrapperdiv.filters[0].apply();

    wrapperdiv.innerHTML = this.getSlideHTML(this.currentimg);

    if (this.filtersupport)
        wrapperdiv.filters[0].play(this.transduration);
}

var flashyshow = new flashyslideshow({ //create instance of slideshow
    wrapperid: "myslideshow", //unique ID for this slideshow
    wrapperclass: "caption", //desired CSS class for this slideshow
    imagearray: [ // img, url, target, caption
                       //"[ImageURL]","[LinkURL]","[Target]","[Caption]"
						["Images/Events/flag-waving2.jpg", "", "", "Flag waving in Monroe, Washington on June 14th 2009"],
						["Images/Events/flag-waving.jpg", "", "", "Flag waving in Monroe, Washington protesting TARP fund abuse."],
						["Images/Events/CIMG1553.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1554.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1555.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1556.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1557.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1559.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1561.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1563.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1564.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1566.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1567.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1569.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/CIMG1570.jpg", "/sl/?gallery|mount_vernon_town_hall_(aug_8th_2009)", "", "Town Hall Meeting in Mt Vernon with Rick Larsen on August 8th 2009"],
						["Images/Events/slide1.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide2.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide3.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide4.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide5.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide6.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide7.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide8.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide9.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide10.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide11.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide12.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide13.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide14.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"],
						["Images/Events/slide15.jpg", "/sl/?gallery|everett_tea_party_(apr_15th_2009)", "", "Demonstrating in Everett against wasteful spending on April 15th 2009"]
					 ],
    pause: 2000, //pause between slides (milliseconds)
    transduration: 1000 //transition duration (milliseconds)
});
