var Goals = {

	init : function(openIndex, selectors, classes) {
		//alert('init');
		var cls = this;

		this.selectors = {
			link : 'a.title',
			container : '.goal_container'
		};
		this.classes = {
			openedLink : 'openedtab'
		};

		for (var prop in selectors) {
			this.selectors[prop] = selectors[prop];
		}
		for (var prop in classes) {
			this.classes[prop] = classes[prop];
		}

		jQuery(this.selectors.link).each(function(index, obj) {
				jQuery(this).bind('click', $delegate(cls, 'onGoalsClick', this, index));
			}).removeClass(this.classes.openedLink);

		jQuery(this.selectors.container).hide(); // hide all
		if (!isNaN(openIndex[0])){
			// process array of indexes
			for ( var i = 0; i < openIndex.length; i++) {
				this.lastHolder = jQuery(this.selectors.link).eq(openIndex[i]).addClass(this.classes.openedLink);
				this.lastHolder = jQuery(this.selectors.container).eq(openIndex[i]).show();
			}
		} else {
			this.lastHolder = jQuery(this.selectors.link).eq(openIndex).addClass(this.classes.openedLink);
			this.lastHolder = jQuery(this.selectors.container).eq(openIndex).show();
		}


	},

	onGoalsClick : function(link, index) {
		//alert('onGoalsClick link='+link);
		jQuery(this.selectors.link).eq(index).toggleClass(this.classes.openedLink);
		var holder = jQuery(this.selectors.container).eq(index).slideToggle();
		/*if (this.lastHolder[0] != holder[0]) {
			if (this.lastHolder.length) {
				this.lastHolder.stop().slideUp();
			}
			this.lastHolder = holder;
		} else {
			this.lastHolder = [];
		}*/
		return false;
	}

};