﻿var SearchUtils = function()
{
	function _createHeaderObject(aAttr)
	{
		var attr = jQuery.extend({
			text: ''
		}, aAttr);
		
		return $('<div class="searchOverlayHeader"></div>')
			.append(attr.text);
	}
	
	function _createSubheaderObject(aAttr)
	{
	}
	
	function _createArticleResultObject(aAttr)
	{
		var attr = jQuery.extend({
			contentId: 0,
			authorName: '',
			title: '',
			description: '',
			linkText: '',
			click: null
		}, aAttr);
		
		var sAuthorString = "";
		
		if (attr.authorName.length > 0)
		{
			sAuthorString = " - by " + attr.authorName;
		}
		
		var ele = $('<div class="searchOverlayArticleResult"></div>')
			.css('margin-top', '10px');
		var eleHeader = $('<div class="searchOverlayArticleResultHeader"></div>');
		var eleInfo = $('<div class="searchOverlayArticleResultInfo"></div>');
		var eleContent = $('<div class="searchOverlayArticleResultContent"></div>');
		var eleLinks = $('<div class="searchOverlayArticleResultLinks"></div>');
		
		// Header
		if (attr.click != null)
		{
			eleHeader.append(
				$('<a href="#" onclick="return false;"></a>')
					.append(attr.title)
					.click(attr.click)
			);
		}
		else
		{
			eleHeader.append(attr.title);
		}
		
		// Info
		if (attr.authorName.length > 0)
		{
			eleInfo.append('by ' + attr.authorName);
		}
		
		// Content
		eleContent.append(
			$('<p></p>').append(attr.description)
		);
		
		// Links
		if (attr.click != null)
		{
			eleLinks.append(
				$('<a href="#" onclick="return false;"></a>')
					.text(attr.linkText)
					.click(attr.click)
			);
		}
		
		ele.append($('<div class="resultDetails" style="display: none;"></div>')
			.append($('<div class="contentId"></div>').append(attr.contentId))
		);
		ele.append(eleHeader);
		ele.append(eleInfo);
		ele.append(eleContent);
		ele.append(eleLinks);

		return ele;
	}
		
	function _createMediaResultObject(aAttr)
	{
		var attr = jQuery.extend({
			mediaId: 0,
			authorName: '',
			title: '',
			description: '',
			durationText: '0:00',
			titleClick: null,
			playlistClick: null,
			watchClick: null,
			fileType: '',
			publication: '',
			passage: ''
		}, aAttr);
		
		var ele = $('<div class="searchOverlayMediaResult"></div>');
		var eleDetails = $('<div class="resultDetails" style="display: none;"></div>');
		var eleHeader = $('<div class="searchOverlayMediaResultHeader"></div>');
		var eleInfo = $('<div class="searchOverlayMediaResultInfo"></div>');
		var eleContent = $('<div class="searchOverlayMediaResultContent"></div>');
		var eleLinks = $('<div class="searchOverlayMediaResultLinks"></div>');
		
		// Details
		eleDetails.append($('<div class="mediaId"></div>').append(attr.mediaId))
		
		// Header
		if (attr.titleClick != null)
		{
			eleHeader.append(
				$('<a href="#" onclick="return false;"></a>')
					.append(attr.title)
					.click(attr.titleClick)
			);
		}
		else
		{
			eleHeader.append(attr.title);
		}
		
		// Info
		eleInfo.append(attr.authorName);
		if (attr.authorName.length > 0 && attr.durationText.length > 0)
		{
			eleInfo.append(' - ');
		}
		eleInfo.append(attr.durationText);
		
		// Content
		eleContent.append(
			$('<p></p>').append(attr.description)
		);
		
		// Links
		if (attr.watchClick != null)
		{
			eleLinks.append(
				$('<a href="#" onclick="return false;">WATCH NOW</a>')
					.click(attr.watchClick)
			);
		}
		if (attr.watchClick != null && attr.playlistClick != null)
		{
			eleLinks.append('&nbsp;&nbsp;&nbsp;');
		}
		if (attr.playlistClick != null)
		{
			eleLinks.append(
				$('<a href="#" onclick="return false;">ADD TO PLAYLIST</a>')
					.click(attr.playlistClick)
			);
		}
			
		ele.append(eleDetails);
		ele.append(eleHeader);
		ele.append(eleInfo);
		ele.append(eleContent);
		ele.append(eleLinks);
		
		eleHeader = null;
		eleInfo = null;
		eleContent = null;
		eleLinks = null;
		
		/*var ele = $('<div class="searchOverlayResult"></div>');
		
		ele.append($('<div class="resultDetails" style="display: none;"></div>')
			.append($('<div class="mediaId"></div>').append(attr.mediaId))
		);
		ele.append(attr.authorName + ', ');
		if (attr.click != null)
		{
			ele
				.append($('<a href="#"></a>')
					.append(attr.title)
					.click(attr.click)
				)
				.append(', ');
		}
		else
		{
			ele.append(attr.title + ', ');
		}
		
		switch (attr.fileType)
		{
			case Globals.fileTypes.video:
				ele.append('Video');
				break;
			case Globals.fileTypes.audio:
				ele.append('Audio');
				break;
			case Globals.fileTypes.both:
				ele.append('Video/Audio');
				break;
			default:
				ele.append('Unknown');
				break;
		}
		*/
		
		return ele;
	}
	
	function _getMediaResultObjectDetails(ele)
	{
		var ret = {
			mediaId: 0
		};
		
		var dele = $(ele).find('.resultDetails');
		ret.mediaId = dele.find('.mediaId').text();
		
		return ret;
	}
	
	function _getArticleResultObjectDetails(ele)
	{
		var ret = {
			contentId: 0
		};
		
		var dele = $(ele).find('.resultDetails');
		ret.contentId = dele.find('.contentId').text();
		
		return ret;
	}
	
	return {
		createHeaderObject : function(aAttr)
		{
			return _createHeaderObject(aAttr);
		},
		createSubheaderObject : function(aAttr)
		{
			return _createSubheaderObject(aAttr);
		},
		createMediaResultObject : _createMediaResultObject,
		createArticleResultObject : _createArticleResultObject,
		getMediaResultObjectDetails : _getMediaResultObjectDetails,
		getArticleResultObjectDetails : _getArticleResultObjectDetails
	};
}();