/*
 * A maxshop moodboard in javascript.
 * <p>Loads a moodboard.
 * <br />The moodboard information will contain</p>
 * <ul>
 *		<li>id</li>
 *		<li>name</li>
 *		<li>styleId</li>
 * </ul>
 * @param {object} jsonInfo The basic style infomation
 * @constructor
 * @requires maxshop
 */
maxshop.moodboard = function(jsonInfo)
{
	var _id = jsonInfo.id;
	var _name = jsonInfo.name;
	var _styleId = jsonInfo.styleId;


	/*
	 * Get the moodboard name.
	 * @param {boolean} withAddLink If true will wrap description a link to add the moodboard
	 * @return string
	 */
	this.getName = function(withAddLink)
	{
		if( withAddLink )
		{
			return returnWithAddLink(_name);
		}
		return _name;
	}

	/*
	 * Return the item wrapped in a link to the style
	 * @param {jQuery} item The object that needs to be wrapped
	 */
	function returnWithAddLink(item)
	{
		var link = $('<a></a>');
		link.click(function()
		{
			$.getJSON(maxshop.urlPrefix + '/moodboards/add/' + _styleId + '/?lookBookId=' + _id, function(data)
			{
				if (data.success)
				{
					maxshop.moodboard.completeAdd();
				}
				else
				{
					alert(data.errorMessage);
				}
			});

			return false;
		});
		link.append(item);
		return link;
	}
}

//
//  Static functions
//  -------------------------------
//

maxshop.moodboard.getList = function(styleId, callback, error)
{
	$.ajax({
		dataType:'json',
		error: error,
		success:function(rawMoodboardList)
		{
			var moodboardArray = new Array();
			for( var i in rawMoodboardList )
			{
				var rawMoodboard = rawMoodboardList[i];
				$.extend(rawMoodboard, {styleId:styleId});
				moodboardArray.push(new maxshop.moodboard(rawMoodboard))
			}
			callback(moodboardArray);
		},
		url: maxshop.urlPrefix + '/moodboards/list/'
	});
}

maxshop.moodboard.completeAdd = function()
{
	closeMoodboard();

	var success = $('<span>successfully added to moodboard</span>');
	success.addClass('success');

	$('#add_to_moodboard').append(success);
	success.fadeOut(2000);
}