﻿var udplayer;

var UDVideo = new Class({
	initialize : function(el){
		var $this = this;
		this.DIV = el;
		this.DIV.addEvent('click', this.clicked.bind(this) );
	}
	,clicked: function() {
		var oc = Elements.from(this.DIV.get('data-code'));
		var src = oc.get('src').toString();
		if( src.indexOf('youtube') !== -1 ) {
			if( src.indexOf('autoplay') === -1 ) {
				if( src.indexOf('?') === -1 ) {
					src += '?autoplay=1';
				} else {
					src += '&autoplay=1';
				}
				oc.set('src', src);
			}
		}
		this.DIV.empty();
		oc.inject(this.DIV);
	}
});


var UDGallery = new Class({
	initialize : function(el){
		var $this = this;
		this.DIV = el;
		this.BOX = el.getElement('.box');
		this.COUNTER = el.getElement('.counter');
		this.DESCR = el.getElement('.gal-description');
		this.BOX.addEvent('click', this.clicked.bind(this) );
		this.COUNTER.addEvent('click', this.clicked.bind(this) );
		this.loading = false;
		this.current = -1;
		this.paths = this.BOX.get('data-paths').split('||');
		this.descrs = [];
		if(this.BOX.get('data-descrs')) {
			this.descrs = this.BOX.get('data-descrs').split('||');
		}
		this.clicked();
	}
	,clicked: function() {
		if( this.loading ) {
			delete this.newImg;
		}
		this.loading = true;
		this.BOX.getElement('img').setStyle('visibility','hidden');
		//this.DESCR.set('html','');
		this.current++;
		if( this.current === this.paths.length ) this.current = 0;
		this.newImg = Asset.image(this.paths[this.current], {
			onLoad: this.insert.bind(this)
		});
	}
	,insert: function() {
		this.BOX.empty();
		this.newImg.inject(this.BOX);
		this.DESCR.set('html',this.descrs[this.current]);
		this.COUNTER.getElement('span').set('html', (this.current+1)+'/'+(this.paths.length) );
		this.loading = false;
		this.resize();
	}
	,resize: function() {
		this.DIV.setStyle('width', this.newImg.getSize().x );
	}
});


var UDPlayer = new Class({
	initialize : function(el){
		var $this = this;
		this.activePlayerDIV = false;
		$$('.playlist div[data-path]').addEvent( 'click', function(){ $this.startPlayer(this); } );
	}
	,startPlayer: function( el ) {
		if( this.activePlayerDIV !== false ) {
			this.stopPlayer();
			return;
		}
		this.activePlayerDIV = el;
		var obj = new Swiff('/assets/ud-player.swf', {
			id: 'ud-player',
			width: 51,
			height: 12,
			container: el,
			params: {
				wMode: 'opaque',
				bgcolor: '#000000'
			},
			vars: {
				soundurl: el.get('data-path')
				,duration: el.get('data-time')
			}
		});
	}
	,stopPlayer: function() {
		this.activePlayerDIV.empty();
		this.activePlayerDIV = false;
	}
});

( function() {
	
	window.addEvent('load', function() {
		$$('.videobox').each( function( v) {
			new UDVideo(v);
		});
		
		$$('article.gallery').each( function(g) {
			new UDGallery(g);
		});
		
		if( $$('.playlist div[data-path]').length > 0 ) {
			udplayer = new UDPlayer();
		}
		
		$$('a.check').each( function( el) {
			if( el.get('href').indexOf('ulrichdrechsler.com') === -1 ) {
				el.setProperty('target', '_blank');
			}
		});
		
	});
})(); 
