/**
 * @param {Synergy.Point} point
 */
Synergy.Suggestion = 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.title;

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

		var viewTip = $('<a href="/html/suggestion/' + _allData.id + '">View Tip</a>');
	

		viewTip.click( function()
		{
			window.location.hash = _allData.id;
		});
		

		container.append('<span class="poster">' + _allData.poster.firstName + ': </span>');
		container.append(descriptionString + '&nbsp;');
		container.append(viewTip);

		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.title;

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

		var container = $('<div >');
		var viewTipLink = $('<a class="button" href="/html/suggestion/' + _allData.id + '"><span class="t">View Tip</span><span class="cap">&nbsp;</span></a>');
		
		container.append('<h2>' + _allData.poster.firstName + '\'s Energy Saving Tip</h2>');
		container.append('<div class="description">' + descriptionString + '</div>');
		container.append(viewTipLink);

		viewTipLink.click( function()
		{
			window.location.hash = _allData.id;
		});
		
		var singleInfo = $('<div class="singleInfo">');
		singleInfo.append(viewTipLink);
		singleInfo.append('<div class="rating"><h3>Current Rating </h3><div class="stars rank_' + _allData.stars + '"></div></div>');
		container.append(singleInfo);

		return container;
	};
};

