//
// Setting up some variables.
//

	var isUpdating	= true;
	var checkInt	= 0;
	var checkTimer	= 1000;
	var lastPull	= 0;
	var pullCount	= 0;
	var first_ad	= false;

//
// Request some more data pages based upon what we already got.
//

	function pullResults()
	{
		VIEWZI.datapull.getData(VIEWZI.searchterm, 'yhoo,goog', 'stagger_by_source,dedupe', lastPull, lastPull + 20, 'testcall');
	}

//
// Run on an interval to check scrollbar position.
//

	function pullMoreResults()
	{
		if (!isUpdating)
		{
			//YAHOO.util.Dom.setStyle('loading_message', 'display', 'block');
			//YAHOO.util.Dom.setStyle('load_more_a', 'display', 'none');
			isUpdating = true;
			pullResults();
			document.getElementById('load_more_a').innerHTML="Getting more results...";
		}
	}

//
// Rollz the screenshots.
//

	function rollScreen(resultNum, direction)
	{
		var animease	= YAHOO.util.Easing.easeOutStrong;
		var params, thumbAnim;

		function hideImage()
		{
			YAHOO.util.Dom.setStyle('text_view_new_img_id_' + resultNum, 'display', 'none');
		}

		function swapSource()
		{
			var thumb_src = VIEWZI.util.d('ss_small_' + resultNum).src.split('_small');
			var large_url = thumb_src[0] + '_large' + thumb_src[1];

			YAHOO.util.Dom.get('text_view_new_img_id_' + resultNum).src = large_url;
		}

		if (direction == 'in')
		{
			var pt_x = Math.floor(YAHOO.util.Dom.getX('ss_small_' + resultNum));
			var pt_y = Math.floor(YAHOO.util.Dom.getY('ss_small_' + resultNum));

			YAHOO.util.Dom.setStyle('ss_small_' + resultNum, 'opacity', 0.25);

			if (YAHOO.util.Dom.get('text_view_new_img_id_' + resultNum))
			{
				var the_img = YAHOO.util.Dom.get('text_view_new_img_id_' + resultNum);
					the_img.style.top = pt_y + 'px';
					the_img.style.left = pt_x + 72 + 'px';
					the_img.style.display = 'block';
			}
			else
			{
				var new_img = document.createElement('img');
					new_img.id = 'text_view_new_img_id_' + resultNum;
					new_img.className = 'text_view_new_img';
					new_img.style.top = pt_y + 'px';
					new_img.style.left = pt_x + 72 + 'px';
					new_img.src = YAHOO.util.Dom.get('ss_small_' + resultNum).src;

				document.body.appendChild(new_img);
			}

			params = {
				'width'			: {to: 400},
				'height'		: {to: 300},
				'margin-left'	: {to: 10},
				'margin-top'	: {to: -140}
			};

			thumbAnim = new YAHOO.util.Anim('text_view_new_img_id_' + resultNum, params, 0.1, animease);
			thumbAnim.onStart.subscribe(swapSource);
			thumbAnim.animate();
		}
		else
		{
			YAHOO.util.Dom.setStyle('ss_small_' + resultNum, 'opacity', 1);

			params = {
				'width'			: {to: 0},
				'height'		: {to: 0},
				'margin-left'	: {to: 0},
				'margin-top'	: {to: 0}
			};

			thumbAnim = new YAHOO.util.Anim('text_view_new_img_id_' + resultNum, params, 0.1, animease);
			thumbAnim.onComplete.subscribe(hideImage);
			thumbAnim.animate();
		}
	}

//
// Render the result node HTML for screen rendering.
//

	function renderResultNode(e)
	{
		var id			= parseInt(e.id, 10);
		var url			= e.url;
		var title		= unescape(e.title);
		var alt			= (pullCount++ % 2) ? '' : ' alt';
		var	source		= '';
		var delim		= (e.source.split(',').length > 1) ? ' &amp; ' : '';

		if (e.source.indexOf('yahoo') >= 0)
		{
			source += 'Yahoo' + delim;
		}

		if (e.source.indexOf('goog') >= 0)
		{
			source += 'Google';
		}

		var		s =		'';
				s +=	'<li class="result' + alt + '" id="result' + id + '">';
				s +=	'	<div class="resultNumber">' + (id + 1) + '</div>';
				s +=	'	<div class="rank" id="rank' + id + '">';
				s +=	'		<ul>';
				s +=	'			<li><span class="googrank" id="googrank_4"><strong>' + source + '</span></strong></li>';
				s +=	'		</ul>';
				s +=	'	</div>';

				if (YAHOO.env.ua.webkit)
				{
					/* Fixes a Safari positioning bug. */
					s += '<a id="ss_large_' + id + '" href="' + url + '" class="text_view_safari_fix">';
				}
				else
				{
					s += '<a id="ss_large_' + id + '" href="' + url + '">';
				}

				s +=	'			<img class="screenshot" onmouseover="if (this.src.slice(-10) !== \'spacer.gif\' && this.src.slice(-18) !== \'unavailable-sm.jpg\' && this.src.slice(-14) !== \'loading-sm.jpg\') {rollScreen(' + id + ', \'in\');}" onmouseout="rollScreen(' + id + ', \'out\');"id="ss_small_' + id + '" src="' + VIEWZI.CODEBASE + 'img/spacer.gif" alt="' + title + '" />';
				s +=	'		</a>';
				s +=	'	<div class="description">';
				s +=	'		<h2>';
				s +=	'			<a href="' + url + '">' + title + '</a>';
				s +=	'		</h2>';
				s +=	'		<p class="summary">' + e.summary + '</p>';
				s +=	'		<p class="url" id="url_' + id + '"><a href="' + url + '">' + VIEWZI.util.breakUrl(url, 100) + '</a></p>';
				s +=	'		</div>';
				s +=	'	<div class="clear"></div>';
				s +=	'</li>';
		return	s;
	}

//
// Data catch result function from the pullResults call.
//

	VIEWZI.view.onDataResult = function(evtId, evt)
	{
		//YAHOO.util.Dom.setStyle('loading_message', 'display', 'none');
		document.getElementById('load_more_a').innerHTML="Get More Results";
		YAHOO.util.Dom.setStyle('load_more', 'display', 'block');

		if (document.getElementById('results').getElementsByTagName('li').length === 0 && evt[0].data.length === 0)
		{
			document.getElementById('view_term').innerHTML	= VIEWZI.searchterm;
			document.getElementById('results').innerHTML	= '<li id="text_view_no_results"><span>No results found via Yahoo or Google.</span></li>';
			return;
		}
		else if (evt[0].id == 'testcall')
		{

			if (VIEWZI.searchterm.match(/hdtv/i) && !first_ad && VIEWZI.clientcontext === 'MEDIALIFE')
			{
				var html = '';
				(function() /* Closure. */
				{
					first_ad = true;

					var w	= 120;
					var h	= 80;
					var url	= evt[0].data[0].url;
					var id	= parseInt(evt[0].data[0].id, 10);

					html += renderResultNode(evt[0].data[0]);

					VIEWZI.screenshot.addScreen('ss_small_' + evt[0].data[0].id, url, 320, 240, 'small', false);

				})(); /* End closure. */

				html += '<li id="text_view_ad"><a href="http://www.bestbuy.com/site/olspage.jsp?skuId=8817373&amp;type=product&amp;id=1206749957185"><img src="' + VIEWZI.CODEBASE + 'img/text_view_ad_left.gif" id="text_view_ad_left" alt="" /><img src="' + VIEWZI.CODEBASE + 'img/text_view_ad_right.gif" id="text_view_ad_right" alt="" /></a></li>';

				for (var i = 1; i < evt[0].data.length; i++)
				{
					var w	= 120;
					var h	= 80;
					var url	= evt[0].data[i].url;
					var id	= parseInt(evt[0].data[i].id, 10);

					html += renderResultNode(evt[0].data[i]);

					VIEWZI.screenshot.addScreen('ss_small_' + evt[0].data[i].id, url, 320, 240, 'small', false);
				}
				
				VIEWZI.util.d('results').innerHTML += html;
			}
			else
			{
				var html = '';
				for (var i = 0; i < evt[0].data.length; i++)
				{
					var w	= 120;
					var h	= 80;
					var url	= evt[0].data[i].url;
					var id	= parseInt(evt[0].data[i].id, 10);

					html += renderResultNode(evt[0].data[i]);

					VIEWZI.screenshot.addScreen('ss_small_' + evt[0].data[i].id, url, 320, 240, 'small', false);
				}
				VIEWZI.util.d('results').innerHTML += html;
			}

			VIEWZI.screenshot.flushScreens();

			/* VIEWZI.util.d('view_resultNum').innerHTML = id + 1; */

			VIEWZI.util.d('view_term').innerHTML = VIEWZI.searchterm;

			lastPull	= id + 1;
			isUpdating	= false;
		}
		else if (evt[0].data[0].rank)
		{
			VIEWZI.util.d(evt[0].id).innerHTML = '<a href="' + evt[0].data[0].url + '">' + evt[0].data[0].rank + '</a>';
		}
	};

//
// Got a screenshot result here, chief!
//

	VIEWZI.view.onScreenResult = function(evtId, evt)
	{
		VIEWZI.util.d(evt[0].id).src = evt[0].src;
	};

//
// This gets called on pageload, gets things jammin.
//

	VIEWZI.view.pageLoad = function()
	{
		/* VIEWZI.debug.live = true; */
		
		YAHOO.util.Event.on('load_more', 'click', pullMoreResults);
		
		VIEWZI.dataresult.subscribe(VIEWZI.view.onDataResult, VIEWZI.view);

		VIEWZI.screenresult.subscribe(VIEWZI.view.onScreenResult, VIEWZI.view);

		pullResults();
	};