/**
 * @param {Synergy.Point} point
 */
Synergy.School = function( point )
{
	var _point = point;
	var _loaded = false;
	var _allData;

	/**
	 * Get a the suggestion point.
	 *
	 * @return {Synergy.Point}
	 */
	this.getPoint = function()
	{
		return _point;
	};

	/**
	 * A check to see if all the data has been loaded yet.
	 */
	this.isLoaded = function()
	{
		return _loaded;
	};

	/**
	 * Load the extended data that is needed.
	 */
	this.loadData = function( data )
	{
		_loaded = true;
		_allData = data;
	};

	/**
	 * Get a description.
	 * <p>
	 * This is used when displaying multiple Suggestions.
	 * </p>
	 *
	 * @return {jQuery}
	 */
	this.generateDescription = function()
	{
		var maxStringLength = 60;

		var container = $('<div class="suggestion">');

		var descriptionString = _allData.name;

		if( descriptionString.length > maxStringLength )
		{
			descriptionString = descriptionString.substring(0, maxStringLength) + '&#0133;';
		}

		var viewTipSchoolLink = $('<a href="/school/' + _allData.id + '/?hover" rel="#overlay" class="' + _allData.type + 'School">' + descriptionString + '</a>');
		viewTipSchoolLink.overlay(Synergy.App.overlayOptions);

		container.append(viewTipSchoolLink);
		container.append($('<br />'));
		container.append(_allData.rank);
		container.append($('<br />'));

		return container;
	};

	/**
	 * Get a simple description.
	 * <p>
	 * This is used when only display 1 suggestion
	 * </p>
	 *
	 * @return {jQuery}
	 */
	this.simple = function()
	{
		var maxStringLength = 85;

		var descriptionString = _allData.name;

		if( descriptionString.length > maxStringLength ) {
			descriptionString = descriptionString.substring(0, maxStringLength) + '&#0133;';
		}

		var container = $('<div >');
		var viewTipLink = $('<a class="button" href="/school/' + _allData.id + '/?hover" rel="#overlay"><span class="t">View School</span><span class="cap">&nbsp;</span></a>');
		viewTipLink.overlay(Synergy.App.overlayOptions);

		container.append('<h2 class="' + _allData.type + 'School">' + descriptionString + '</h2>');

		container.append('<div class="description">Currently placed ' + _allData.rank + '</div>');

		container.append(viewTipLink);

		return container;
	};
};

