window.addEvent('domready', function(){

	$$('label.phantom').each( function(el){
		new PhantomLabels(el);
	});

	$$('textarea.textcount').each( function(el){
		new TextCounter(el);
	});

	$$('a.resptrigger').each( function(el){
		new TriggerBox(el);
	});

	$$('a.formtrigger').each( function(el){
		new TriggerBox(el);
	});

	// Google Analytics
	if(typeof urchinTracker == "function"){
		_uacct = "UA-356557-4";
		urchinTracker();
	}
});

var TriggerBox = new Class({

	options: {
		hideClass: 'hideme'
	},

	initialize: function(el){
		this.trigger = $(el);
		// find the target based on the class in the link
		if (this.trigger.hasClass('resptrigger')) {
			this.contentSelector = '.responses';
			this.offLinkText = 'hide answers';
		} else if (this.trigger.hasClass('formtrigger')) {
			this.contentSelector = '.answerform';
			this.offLinkText = 'hide answer form';
		}
		this.content = this.trigger.getParent().getParent().getElementsBySelector(this.contentSelector)[0];
		if (this.trigger) {
			// set the text to replace
			this.onLinkText = this.trigger.getText();
			if (!this.content.hasClass(this.options.hideClass)) {
				this.trigger.setText(this.offLinkText);
			}
			this.trigger.addEvent('click', this.toggleContent.bindWithEvent(this));
		}
	},

	toggleContent: function(event) {
		event = new Event(event).stop();
		if (this.content.hasClass(this.options.hideClass)) {
			this.content.removeClass(this.options.hideClass);
			this.trigger.setText(this.offLinkText);
		} else {
			this.content.addClass(this.options.hideClass);
			this.trigger.setText(this.onLinkText);
		}
	}

});
