var gallery = Class.create(AC.ImageOverlay, {
	overlayShadowSrc: '/getamac/images/overlay_gallery_shadow20080327.png',
	
	getNav: function(item) {
		var wrapper = Element.up(item, 'div');
		var siblings = wrapper.getElementsByClassName('overlaythumb');
		var items = [];
 		for (var i=0; i<siblings.length; i++) {
 			var cloned = siblings[i].cloneNode(true);
	 		items.push(Builder.node('li', cloned));
 		}
		Element.down(items[0], '.overlaythumb').addClassName('active');
		var list = Builder.node('ul', {'class':'w'+siblings.length}, items);
		return list;
	}
});

var movie = Class.create(AC.MovieOverlay, {
	overlayShadowSrc: '/getamac/images/overlay_movieshadow20080327.png',
	
	setItemAttributes: function() {
 		for (var i=0; i<this.items.length; i++) {
			var item = this.items[i];
 			var data = this.items[i].up('div').down('.overlaymovie');
				
			item.movieLink = Element.down(data, 'a.overlaymovielink');
			item.movieUrl = item.movieLink.href;
			item.movieTitle = (Element.down(data, 'img')) ? Element.down(data, 'img').alt : data.innerHTML.stripTags();
			item.description = Element.down(data, '.overlaydescription');

			var posterFrame = Element.down(data, '.overlayposter');
			item.posterFrameUrl = posterFrame.innerHTML.match(/src="(.*)"/)[1];

 			this.setEvent(item, i);

		}

	 	this.listenForEvent(this, 'beforePop', false, function(evt) {
			this.handleBeforePop(evt);
		}.bindAsEventListener(this));

		this.listenForEvent(this, 'afterPop', false, function(evt) {
			this.handleAfterPop(evt);			
		}.bindAsEventListener(this));

		this.listenForEvent(this, 'beforeClose', false, function(evt) {
			this.handleBeforeClose(evt);
		}.bindAsEventListener(this));
	},
	
	track: function(item, state) {
		
		if (state == 'Start') {
			this.order++;
		}

		var movieName = document.title + ' - ';
		movieName += (item.movieTitle) ? item.movieTitle : item.movieUrl.match(/([^\/]+)\.\S\S\S$/)[1];

		if (state == 'Start') {
			AC.Tracking.trackPage({
				pageName: movieName,
				prop4: item.movieUrl,
				prop6: movieName,
				prop13: movieName +' - '+ state
			});
		} else if (state == 'End') {
			AC.Tracking.trackClick({
				prop13: movieName +' - '+ state
			}, this, 'o', movieName +' - '+ state);
		}
		
	}
	
});


Event.onDOMReady(function() {	
	var overlays = [];
	
	var galleryTriggers = $$('#main .gallerytrigger');
	if (galleryTriggers.length>0) overlays.push(new gallery(galleryTriggers));
	
	var movieTriggers = $$('#main .movietrigger');
	if (movieTriggers.length>0) overlays.push(new movie(movieTriggers, { movieheight:400, moviewidth:640}));
	
	if(overlays.length > 1) AC.OverlayInit(overlays);
		
});

