
function trace (s) {
	$A(arguments).each(function (s) {
		if (typeof console == 'undefined' || window.webkit) {
			if (!document.getElementById('debug')) {
				var o = document.createElement('pre');
				o.id = 'debug';
				o.style.color = 'white';
				o.style.fontSize = '10pt';
				o.style.position = 'absolute';
				o.style.top = '0px';
				o.style.right = '0px';
				o.style.textAlign = 'left';
				document.getElementsByTagName('body')[0].appendChild(o);
			}
	
			s = new String(s);
			s = s.replace('<', '&lt;');
			s = s.replace('>', '&gt;');
			document.getElementById('debug').innerHTML += s + '<br />';
		}
		else {
			console.log(s);
		}
	});
}

window.addEvent('domready', function() {
	var togglerTag = 'h2';

	var portfolio = $$('div.portfolio').length ? true : false;
	
	var list = portfolio ? $$('div.portfolio') : $$('div.data');
	list.each(function (e) {
		var p = e.parentNode;
		var n = new Element('div', {'class': 'dataAccordian', styles: {position: 'relative', overflow: 'hidden'}});
		p.replaceChild(n, e);
		n.appendChild(e);
	});

	$$('#accordion ' + togglerTag).each(function (e) {
		e.addEvent('mouseenter', function () {e.addClass('hover')});
		e.addEvent('mouseleave', function () {e.removeClass('hover')});
		new Element('span').injectInside(e);
	});
	
	var togglers = $$('#accordion ' + togglerTag);
	var elements = $$('div.dataAccordian');
	
	//any anchor?
	var elementToDisplay = -1;
	var locParts = window.location.toString().split('#');
	if (locParts.length > 1) {
		var anchor = locParts[1];
		var numberOfTogglers = togglers.length, i = 0;
		while (i < numberOfTogglers && elementToDisplay < 0) {
			if (togglers[i].id == anchor) {
				elementToDisplay = i;
			}
			i++;
		}
	}
		
	var accordions = [];
	var options = {};
	if (portfolio) {
		for (var i = 0; i < togglers.length; i++) {
			accordions.push({
				togglers: [togglers[i]],
				elements: [elements[i]]
			})
		}
		options = {
			show: 0,
			display: -1,
			alwaysHide: true
		}
	}
	else {
		accordions.push({
			togglers: togglers,
			elements: elements
		});
		options = {
			show: -1,
			alwaysHide: true,
			alwaysToggle: false
		}
	}
	
	if (elementToDisplay >= 0) {
		options.show = elementToDisplay;
	}
	options.show = 0;
	accordions.each(function (a) {
		new Accordion(a.togglers, a.elements, $extend({
			onActive: function(toggler, el) {
				toggler.addClass('active');
			},
			onBackground: function(toggler, el) {
				if (toggler.hasClass('video')) {
					// Unload Flash player and show holding image
					var holdingImage = el.getElement('img');
					$('development-video').empty();
					holdingImage.setStyle('display', 'block');
				}
				a.elements.each(function(e) {
					if (e.getStyle('height') == 'auto') {
						var h = e.getSize();
						e.setStyles({
							height: h.y
						});
					}
				});
				toggler.removeClass('active');
			},
			onComplete: function() {
				a.elements.each(function(e) {
					if (e.getStyle('height').toInt() > 0) {
						if (e.getPrevious().hasClass('video')) {
							// Check whether the video is already playing
							var container = $('development-video');
							if (!container.getChildren().length) {
								// Activate video (hide image holder then load player)
								var holdingImage = e.getElement('img');
								var width = holdingImage.width;
								var height = holdingImage.height;
								holdingImage.setStyle('display', 'none');
								
								var videoLink = e.getElement('a.video-link').get('href');
								var flashVars = {
									file: rootPath + videoLink.replace(/^\.\.\//, ''),
									image: holdingImage.src,
									autostart: 'true'
								};
								var params = {
									allowfullscreen: 'true'
								}
								
								new Element('div', {id: 'development-video-player'}).injectInside(container);
								swfobject.embedSWF(rootPath + 'jwplayer/player.swf', 'development-video-player', width, height, '9.0', 'false', flashVars, params);
							}
						}
						
						e.setStyles({
							height: 'auto'
						});
					}
				});
			}
		}, options));
	});
	
	 //most browser are tricked by the accordions closing up and won't properly scroll to the anchor,
	 //so reposition it
	if (elementToDisplay >= 0 && accordions.length == 1) {
		new Fx.Scroll(window, {wheelStops: false, duration: 0}).toElement(togglers[elementToDisplay]);
	}
});

