﻿var Tags = {};

Tags.userEnter = function(productId)
{
	Api.invoke("/tags/enter?tagId=" + productId);
}

Tags.updateTagsList = function(domElementToUpdate)
{
	var onResultsArrived = function(allTags)
	{
		var tagsByParent = Array();
		var tagsById = Array();
		for (tagIndex in allTags)
		{
			var tag = allTags[tagIndex];
			var tagId = tag['ItemId'];
			var parentTagId = tag['ParentTagId'];
			tagsById[tagId] = tag;
			if (typeof (tagsByParent[parentTagId]) == 'undefined')
			{
				tagsByParent[parentTagId] = Array();
			}
			tagsByParent[parentTagId].push(tag);
		}

		var html = "";
		for (parentId in tagsByParent)
		{
			var childTags = tagsByParent[parentId];
			var parentTagTemplate = '<h2 class="parent-tag"><a href="javascript:void(0);" onclick="Products.showProductsByTag(\'{ItemId}\',false)">{Name}</a></h2>';
			html += String.fillWithArray(parentTagTemplate, tagsById[parentId]);
			//domElementToUpdate
			for (childTagId in childTags)
			{
				var childTag = childTags[childTagId];
				var childTagTemplate = '<h2 class="child-tag"><a href="javascript:void(0);" onclick="Products.showProductsByTag(\'{ItemId}\',false)">{Name}</a></h2>';
				html += String.fillWithArray(childTagTemplate, childTag);
			}
		}

		domElementToUpdate.html(html);
	}
	Api.getListAndCallback('/tags', 'ClientTag', onResultsArrived)
}