/***************************************************************
Global Variable Object
Detail 		:	An object for storing global variables
Extend		:	Object.extend(globalVars, {'property ' : value }) 
***************************************************************/
var factive
var activeTimer
var global = new Class({
    initialize: function(date){
        this.date = date;
    }
});
G = new global(Date())

// Establishes the slide object array and its index as global variables
Object.extend(G, {'slides' : $$('#slideViewer .IWslide') } ) 
Object.extend(G, {'slideIndex' : 0 } ) 




function insertFlash(id, el, flv_src, img_src){
    (activeTimer)?clearTimeout(activeTimer):null;
    factive = true;
	var fo = new SWFObject("http://static.growingbolder.com/vplayer/flvplayer.swf", id, "374px", "280px", "8.0.15", "#ffffff", true);
     	fo.addParam("allowScriptAccess", "always");
     	fo.addParam("menu", "flase");
     	fo.addParam("allowfullscreen", "true");
     	//fo.addParam("menu", "false");
      	fo.addParam("flashvars", "width=374&height=280&displayheight=260&file="+flv_src+"&image="+img_src+"&autostart=true&location=flvplayer.swf&allowfullscreen=true&repeat=false&shuffle=false&overstretch=true&enablejs=true");
      	
      	fo.write(el);
}



/***************************************************************
                 SlideShow Player Functions

***************************************************************/
			


function getIndex(id, array){
	for(var i=0; i < array.length; i++){
		if(array[i].id == id){ return i} 
	}
}

function beginTimer(){
//		 Activates countdown of active slide
/////////////////////////////////////////////////////////////
	if(!factive){
	time = G.slides[G.slideIndex].getFirst().rev * 1000;
	$(G.slides[G.slideIndex].id + '_link').addClass('hover')
	G.slideIndex < G.slides.length-1 ? targetIndex = G.slideIndex + 1 : targetIndex = 0;
	activeTimer = setTimeout("slideTrigger(null, '"+G.slides[targetIndex].id+"')", time)
	}
};


function slideTrigger(event, targetID){
//		 Essentially the onClick event
/////////////////////////////////////////////////////////////
	if(event){event = new Event(event).stop()}
//	if (!targetID){targetID = $(G.slides[targetIndex].id).id}
	$$('#interactiveWidget a.hover').removeClass('hover')
	$(targetID+'_link').addClass('hover');
	(activeTimer)?clearTimeout(activeTimer):null;
	slidescroll.stop();
	prepareSlide(targetID);
	
};


function prepareSlide(targetID){
//		 Ensures all flash elements are removed when scrolling
/////////////////////////////////////////////////////////////
	oldTarget = G.slides[G.slideIndex]
	if(!targetID){ targetID = oldTarget.id}
	
	// IF slide contains any flash, remove the flash element before proceeding
	if(oldTarget.className.indexOf('IWflash') >= 0 && $('flash'+oldTarget.id.slice(oldTarget.id.indexOf('_'))).getFirst()){ 
		fid = oldTarget.id.slice(oldTarget.id.indexOf('_')+1)
		$('flash_'+fid).removeChild($(fid))
		factive = false;
		}
	G.slideIndex = getIndex(targetID, G.slides)
	slidescroll.toElement(targetID);
};


var transition

function createScroller(){
//		 Creates Smooth Scrolling Effect
/////////////////////////////////////////////////////////////
	slidescroll = new Fx.Scroll('slideViewer', {
		duration: 1200,
		offset: {'x': 0, 'y': 0},
		transition: Fx.Transitions.Expo.easeInOut,
		onComplete: function(){beginTimer();}
	});

	window.addEvent('scroll', function(){
		if(!factive){
		clearTimeout(transition)
		transition = setTimeout('prepareSlide(null)', 100)
		}
	});
	
	for (var i=0; i < G.slides.length; i++){
		$(G.slides[i].id+'_link').addEvent('click', function(e){
			slideTrigger(e, this.id.slice(0,this.id.lastIndexOf('_')));
			this.blur();
		});
	}
};
womAdd('createScroller()')
womAdd('slidescroll.toElement(G.slides[G.slideIndex])')

