
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 = 'h4';

	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
		}
	}
	
	if (elementToDisplay >= 0) {
		options.show = elementToDisplay;
	}
	accordions.each(function (a) {
		new Accordion(a.togglers, a.elements, $extend({
			onActive: function(toggler, el){
				toggler.addClass('active');
			},
			onBackground: function(toggler, el){
				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) {
						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]);
	}
});

