var template = new Template('\
<table>\
  <tr>\
    <td><img src="images/#{image}" /></td>\
    <td valign="top">\
      <a href="default.htm?v=#{id}-1"><b>#{title}</b></a><br />#{date}, #{year}\
      </td>\
    </tr>\
</table>');

var authorTemplate = new Template('\
<table>\
  <tr>\
    <td><img src="images/#{image}" /></td>\
    <td valign="top">\
      <a href="default.htm?v=#{id}-1"><b>#{title}</b></a>\
      </td>\
    </tr>\
</table>');


var pwTemplate = new Template('\
<table>\
	<tr>\
		<td rowspan="11">\
		<img src="images/#{image}" />\
	</td>\
		<td valign="top">\
		<b>#{title}</b></a><br /><br />\
		This broadcast is available to California schools and educators only. Please\
		email <a href="mailto:ldellisanti@ocde.us">Laura Dellisanti</a> to receive password to view the\
		broadcast.\
		</td>\
	</tr>\
	<tr>\
		<td valign="top">\
			<form action="../login_main.asp" method="post">\
				<input type="hidden" name="LoginType" value="Secured" />\
				<input type="password" name="password" />\
				<input type="submit" value="Submit" />\
			</form>\
		</td>\
	</tr>\
</table>');

var vidList = new Array();
var pageSize = 5;

function showAll()
{
	var html = '';
	vidList = Array();

	$('introText').hide();

	for(i = 0; i < videos.length; i++)
	{
		vidList.push(videos[i]);
	}
	
	showResults();
}

function filter()
{
	var year = '';
  	var tag = '';
	var html = '';
	vidList = Array();

	if(arguments.length != 0)
	{
		year = arguments[0]['year'] == null ? '' : arguments[0]['year'];
		tag = arguments[0]['tag'] == null ? '' : arguments[0]['tag'];
	}
	else
	{
		year = $F('year');
	}

	$('introText').hide();
	
	if(year == '' && tag == '')
	{
		showAll();
		return;
	}
	
	for(i = 0; i < videos.length; i++)
	{
		if(videos[i]['tag'] == tag && videos[i]['year'] == year)
		{
			vidList.push(videos[i]);
		}
		else if(tag == '' && videos[i]['year'] == year)
		{
			vidList.push(videos[i]);
		}
		else if(year == '' && videos[i]['tag'] == tag)
		{
			vidList.push(videos[i]);
		}
	}
	
	showResults();
}

function getPage(pageNumber)
{
	var results = new Array();
	
	// pg 1 starts at 0, pg 2 starts at 10, etc
	i = (pageNumber - 1) * pageSize;
	bound = i + pageSize;
	for(; i < bound && i < vidList.length; i++)
	{
		results.push(vidList[i]);
	}
	
	return results;
}

function totalPages()
{
	var pages = 0;
	
	pages = vidList.length / pageSize;
	pages += ((vidList.length % pageSize == 0) || (pages < 1)) ? 0 : 1;
	
	return pages;
}

function showResults(pageNumber)
{
	var vidText = '';
	var resultText = '<h3>Search Results:</h3>';
	var pageNumbers = '';
	var numberTemplate = new Template('<a onclick="showResults(#{number});return false;">#{number}</a> ');
	var countTemplate = new Template('<p>Displaying #{startNum} - #{endNum} of #{totalNum} total</p>');

	if(pageNumber == null)
	{
		pageNumber = 1;
	}
	
	page = getPage(pageNumber);

	// page numbers and text
	if(vidList.length === 0)
	{
		resultText.append('<p>There were no results for your search. Please try a different tag or year.</p>');
	}
	else
	{
		var nums = {'startNum':((pageNumber - 1) * pageSize + 1), 'endNum':((pageNumber - 1) * pageSize + page.length), 'totalNum':vidList.length};
		resultText += countTemplate.evaluate(nums);
	}
	
	if(totalPages() > 1)
	{
		pageNumbers = 'Page: '
		for(i = 1; i <= totalPages(); i++)
		{
			pageNumbers += (i === pageNumber) ? i + ' ': numberTemplate.evaluate({'number':i});
		}
	}
	
	// videos
	for(i = 0; i < page.length; i++)
	{
		if('password' in page[i] && page[i]['password'] === true)
		{
			vidText += pwTemplate.evaluate(page[i]);
		}
		else if(page[i]['tag'] === 'cyrm')
		{
			vidText += authorTemplate.evaluate(page[i]);
		}
		else
		{
			vidText += template.evaluate(page[i]);
		}
	}
	
	$('playerText').hide();
	$('resultText').update(resultText).show();
	$('searchResults').update(vidText);
	$('pageNumbers').update(pageNumbers);
}

function checkParams()
{
	var query = location.search.toQueryParams();
	var vidName = query['v'];
	var tag = query['tag'];
	var year = query['year'];
	
	if(vidName != null)
	{
		vidName = vidName.split('-');
		for(i = 0; i < videos.length; i++)
		{
			if(videos[i]['id'] == vidName[0])
			{
				$('introText').hide();
				return vidName;
			}
		}
	}

	if(tag != null || year != null)
	{
		filter({'tag':tag, 'year':year});
	}	
	
	// if the specified video doesn't exist?
	return [videos[0]['id'], 1];
}