balletHelper = function(options) {
	this.settings = {
		repPerfData: null
	};
	
	if(options.repPerfData) {
		this.settings.repPerfData = options.repPerfData;
	};
	
	this.showData = function() {
		//console.log(this.settings.repPerfData);
	}
	;
	this.getAllPerformances = function() {
		if(this.settings.repPerfData == null) {
			throw new Error("The repPerfData option is null and is required for this method.");
		}
		
		return this.settings.repPerfData.performances[0].performance;
		
	};
	
	this.getPerformance = function (perfId) {
		var perfObjPos =  this.settings.repPerfData.performances[0].performance.indexOf("id", perfId);
		var perfObj =  this.settings.repPerfData.performances[0].performance[perfObjPos];
		
		return perfObj;
	};
	
	this.getRep = function (repId) {
		var repObjPos = this.settings.repPerfData.repertories[0].repertory.indexOf("id", repId);
		var repObj = this.settings.repPerfData.repertories[0].repertory[repObjPos];
		
		return repObj;
	};
	
	this.createRelatedRepsElement = function (relatedReps) {
		var repList = jq('<div class="performing-reps"></div>')
		var repHelper = this;
		jq.map(relatedReps, function (relatedNode) {
			var relatedRep = repHelper.getRep(relatedNode.id);
			var relatedRepLink = jq('<a href="#">'+ relatedRep.title[0].Text +'</a>');
			
			relatedRepLink.click(function () {
				//jq().trigger('showRepDetails', relatedNode.id);
				//console.log("showing rep details.. [NOT WORKING]");
				switchRepertoryDetails(relatedRep.id);
				return false;
			});
			
			repList.append(relatedRepLink);
			repList.append("<br />");
		});
		
		return repList;
	};
};