function keyword_tabClick(tab, keyword, page, sort) { return Cabinet.open('keyword', tab, keyword, page, sort); };

function keyword_related_draw(data)
{
	var _template = Templates['keyword']['related'].begin();
	if (!data['error'] && !data['total_count']) data['error'] = 'No related keywords for \'' + data['domain'] + '\'';
	if (data['error']) return _template.end(data['error']);

	_template.subject(data['keyword']);
	_template.fullReportLinks('/keyword_related?keyword='+encodeURIComponent(data['keyword'])+'&type=__type__');
	
	for (var i in data['rows'])
	{
		var strong = ((data['current_page'] == '1' || data['current_page'] == 1) && (i == 0 || i == '0'));
		
		var newRow = _template.Table.newRow();
		newRow.cells[0].innerHTML = data['rows'][i]['order_num'] + '.';//newRow.cells[0].innerHTML = (parseInt(data['current_page']) - 1)*resultsPerPage + parseInt(i) + 1 + '.';		
		newRow.cells[2].innerHTML = (strong?'<strong>':'')+htmlspecialchars(formatNumber(data['rows'][i]['exact_search_volume']))+(strong?'</strong>':'');
		newRow.cells[3].innerHTML = (strong?'<strong>':'')+htmlspecialchars('$'+formatNumber(data['rows'][i]['avg_cpc']))+(strong?'</strong>':'');
		newRow.cells[4].innerHTML = (strong?'<strong>':'')+htmlspecialchars('$'+formatNumber(data['rows'][i]['niche_value']))+(strong?'</strong>':'');
		newRow.cells[5].innerHTML = (strong?'<strong>':'')+htmlspecialchars(formatNumber(data['rows'][i]['google_found']))+(strong?'</strong>':'');
		
		if(data['rows'][i]['order_num'] > data['allowed_results_count'])
		{
			if(data['authenticated'])
			{
				newRow.cells[1].innerHTML =
					'<a href="#pricing//brief/" onclick="pricing_tabClick(\'brief\');">'+
					htmlspecialchars(data['rows'][i]['keyword'])+
					'</a>'; 
				continue;
			};
			newRow.cells[1].innerHTML =
				'<a href="javascript:void(0)" onclick="showLoginForm(\'keyword\',\'related\');">'+
				htmlspecialchars(data['rows'][i]['keyword'])+
				'</a>'; 
			continue;
		};
		newRow.cells[1].innerHTML =
			(strong?'<strong>':'')+
			'<a href="#keyword/'+encodeURIComponent(data['rows'][i]['keyword'])+'/summary//1" onclick="Cabinet.open(\'keyword\', \'summary\', \''+backslashQuotes(data['rows'][i]['keyword'])+'\');">'+
			htmlspecialchars(data['rows'][i]['keyword'])+
			'</a>'+
			(strong?'</strong>':'');		
	};
	_template.showPages(data['current_page'],data['total_count'],data['results_per_page'],data['keyword']);
	_template.end();
};

function keyword_organic_draw(data)
{
	var _template = Templates['keyword']['organic'].begin();
	
	if (!data['error'] && (data['total_count'] == "0" || !data['total_count'])) data['error'] = 'No organic competitors for \'' + data['keyword'] + '\'';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['keyword']);
	
	for (var i in data['rows'])
	{
		var newRow = _template.Table.newRow();
		newRow.cells[0].innerHTML = (parseInt(data['current_page']) - 1)*parseInt(data['results_per_page'],10) + parseInt(i,10) + 1 + '.';
		
		if(data['rows'][i]['order_num'] > data['allowed_results_count'])
		{
			if(data['authenticated'])
			{
				var link_begin = '<a href="#pricing//brief/" onclick="pricing_tabClick(\'brief\');">';
				newRow.cells[1].innerHTML = link_begin + htmlspecialchars(data['rows'][i]['domain']) + '</a>'; 
				if (data['rows'][i]['paid_positions'] != '0') newRow.cells[2].innerHTML = link_begin + htmlspecialchars(formatNumber(data['rows'][i]['paid_positions'])) + '</a>';
				else newRow.cells[2].innerHTML = '0';
					
				if (data['rows'][i]['positions'] != '0') newRow.cells[3].innerHTML = link_begin + htmlspecialchars(formatNumber(data['rows'][i]['positions'])) + '</a>';
				else newRow.cells[3].innerHTML = '0';
			}
			else
			{
				var link_begin = '<a href="javascript:void(0)" onclick="showLoginForm(\'keyword\',\'adkeywords\');">';
				newRow.cells[1].innerHTML = link_begin + htmlspecialchars(data['rows'][i]['domain']) + '</a>'; 
				
				if (data['rows'][i]['paid_positions'] != '0') newRow.cells[2].innerHTML = link_begin + htmlspecialchars(formatNumber(data['rows'][i]['paid_positions'])) + '</a>';
				else newRow.cells[2].innerHTML = '0';
					
				if (data['rows'][i]['positions'] != '0') newRow.cells[3].innerHTML = link_begin + htmlspecialchars(formatNumber(data['rows'][i]['positions'])) + '</a>';
				else newRow.cells[3].innerHTML = '0';
			
			};
			continue;
		}
		
		newRow.cells[1].innerHTML = '<a href="#competitor/' + encodeURIComponent(data['rows'][i]['domain']) + '/summary//1" onclick="Cabinet.open(\'competitor\', \'summary\', \'' + backslashQuotes(data['rows'][i]['domain']) + '\');">' + htmlspecialchars(data['rows'][i]['domain']) + '</a>';

		if (data['rows'][i]['paid_positions'] != '0') newRow.cells[2].innerHTML = '<a href="#competitor/'+encodeURIComponent(data['rows'][i]['domain'])+'/adkeywords//1" onclick="Cabinet.open(\'competitor\',\'adkeywords\',\''+backslashQuotes(data['rows'][i]['domain'])+'\');">'+htmlspecialchars(formatNumber(data['rows'][i]['paid_positions']))+'</a>';
		else newRow.cells[2].innerHTML = '0';

		if (data['rows'][i]['positions'] != '0') newRow.cells[3].innerHTML = '<a href="#competitor/'+encodeURIComponent(data['rows'][i]['domain'])+'/positions//1" onclick="Cabinet.open(\'competitor\',\'positions\',\''+backslashQuotes(data['rows'][i]['domain'])+'\');">'+htmlspecialchars(formatNumber(data['rows'][i]['positions']))+'</a>';
		else newRow.cells[3].innerHTML = '0';
	};
	_template.showPages(data['current_page'],data['total_count'],data['results_per_page'],data['keyword']);
	_template.end();
};

function keyword_adwords_draw(data)
{
	var _template = Templates['keyword']['adwords'].begin();
	if (!data['error'] && (data['total_count'] == "0" || !data['total_count'])) data['error'] = 'No adwords competitors for \'' + data['keyword'] + '\'';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['keyword']);
	
	keyword_paid_hintData = data['rows'];
	for (var i in data['rows'])
	{
		var newRow = _template.Table.newRow();
		/* 1 */
		newRow.cells[0].innerHTML = data['rows'][i]['order_num'] + '.';
		
		/* 2 */
		if(data['rows'][i]['order_num'] > data['allowed_results_count'])
		{
			var link_begin = data['authenticated']
				? '<a href="#pricing//brief/" onclick="pricing_tabClick(\'brief\');">'
				: '<a href="javascript:void(0)" onclick="showLoginForm(\'keyword\', \'adwords\');">';
			newRow.cells[1].innerHTML = link_begin + htmlspecialchars(data['rows'][i]['domain']) + '</a>'; 
			if (data['rows'][i]['paid_positions'] != '0' && data['rows'][i]['paid_positions'])
				newRow.cells[2].innerHTML = link_begin + htmlspecialchars(formatNumber(data['rows'][i]['paid_positions'])) + '</a>'; 
			else newRow.cells[2].innerHTML = '0';
			if (data['rows'][i]['positions'] != '0' && data['rows'][i]['positions'])
				newRow.cells[3].innerHTML = link_begin + htmlspecialchars(formatNumber(data['rows'][i]['positions'])) + '</a>'; 
			else newRow.cells[3].innerHTML = '0';
			continue;
		}
		
		newRow.cells[1].innerHTML =
			'<a href="#competitor/' + encodeURIComponent(data['rows'][i]['domain']) + '/summary//1" ' +
			' onclick="Cabinet.open(\'competitor\', \'summary\', \'' + backslashQuotes(data['rows'][i]['domain']) + '\');">' +
			htmlspecialchars(data['rows'][i]['domain']) +
			'</a>';		
				
		if (data['rows'][i]['paid_positions'] != '0' && data['rows'][i]['paid_positions']) newRow.cells[2].innerHTML =
			'<a href="#competitor/'+encodeURIComponent(data['rows'][i]['domain'])+'/adkeywords//1" ' +
			' onclick="Cabinet.open(\'competitor\', \'adkeywords\', \''+backslashQuotes(data['rows'][i]['domain'])+'\');">'+
			htmlspecialchars(formatNumber(data['rows'][i]['paid_positions']))+
			'</a>';
		else newRow.cells[2].innerHTML = '0';
			
		if (data['rows'][i]['positions'] != 0 && data['rows'][i]['positions']) newRow.cells[3].innerHTML =
				'<a href="#competitor/'+encodeURIComponent(data['rows'][i]['domain'])+'/positions//1" ' +
				' onclick="Cabinet.open(\'competitor\', \'positions\', \''+backslashQuotes(data['rows'][i]['domain'])+'\');">'+
				htmlspecialchars(formatNumber(data['rows'][i]['positions']))+
				'</a>';
		else newRow.cells[3].innerHTML = htmlspecialchars(formatNumber(data['rows'][i]['positions']));
	};
	_template.showPages(data['current_page'],data['total_count'],data['results_per_page'],data['keyword']);
	_template.end();
};

var keywordSummaryTables = []; /* здесь будем хранить tableWrapper'ы */

function keyword_summary_draw(data)
{
	var _template = Templates['keyword']['summary'].begin();
	if (!data['error'] && !data['related']['total'] && !data['adcompetitors']['total'] && !data['organic']['total']) 
		data['error'] = 'Sorry, no data available for "' + data['keyword'] + '"';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['keyword']);
	$('#keyword_summary_avg_cpc').html(htmlspecialchars(formatNumber(data['avg_cpc'])));
	$('#keyword_summary_searches').html(htmlspecialchars(formatNumber(data['exact_search_volume'])));
	$('#keyword_summary_phrase_searches').html(htmlspecialchars(formatNumber(data['phrase_search_volume'])));
	
	keyword_summary_relatedDraw(data['related'], data['keyword']);
	keyword_summary_adcompetitorsDraw(data['adcompetitors'], data['keyword']);
	keyword_summary_organicDraw(data['organic'], data['keyword']);
	
	_template.end();
};

function keyword_summary_relatedDraw(data, keyword)
{
	if (!keywordSummaryTables['related'])
	{
		var _table = document.getElementById('keyword_summary_relatedTable');
		if (!_table) return;
		keywordSummaryTables['related'] = new CTableWrapper(_table, {'shown':[0,3], 'templates':[1,2], 'ifempty':'empty'});
	};
	var Table = keywordSummaryTables['related'];
	Table.reset();
	
	$('#keyword_summary_relatedLink')
		.css('display', (data['rows'].length > 0 ? 'inline' : 'none'))
		.attr('href', '#keyword/'+encodeURIComponent(keyword)+'/related//1')
		.click(function(){Cabinet.open('keyword', 'related');})
		.children('span').html(htmlspecialchars(formatNumber(data['total'])));
	
	for (var i in data['rows'])
	{
		var newRow = Table.newRow('result');
		var _cells = $(newRow).children('td');
		_cells.eq(0).children('a')
			.html(data['rows'][i]['keyword'])
			.attr('keyword', data['rows'][i]['keyword'])
			.click(function(){Cabinet.open('keyword', 'summary', $(this).attr('keyword'));})
			.attr('href', function(index,attr){return attr.replace('__uekeyword__', encodeURIComponent(data['rows'][i]['keyword']))});
		_cells.eq(1).children('span').html(formatNumber(data['rows'][i]['exact_search_volume']));
		_cells.eq(2).children('span').html(formatNumber(data['rows'][i]['avg_cpc']));
		var _niche_value = parseInt(data['rows'][i]['exact_search_volume'],10) * parseFloat(data['rows'][i]['avg_cpc'],10);
		_cells.eq(3).children('span').html(formatNumber(_niche_value));
		_cells.eq(4).children('span').html(formatNumber(data['rows'][i]['google_found']));
	};
	
	/* цвет и видимость последней строки 'view all' */
	if (data['rows'].length)
	{
		Table.Shown['viewall'].className = 'dbsearch_site_result' + ((data['rows'].length + 1) % 2);
		Table.Shown['viewall'].style.display = '';
	}
	else Table.Shown['viewall'].style.display = 'none';
	
	//FIXME:
	//$(Table.o).find('tr:eq(3) td *').css('font-weight', 'bold');
};

function keyword_summary_adcompetitorsDraw(data, keyword, Table)
{
	if (!keywordSummaryTables['adcompetitors'])
	{
		var _table = document.getElementById('keyword_summary_adcompetitorsTable');
		if (!_table) return;
		keywordSummaryTables['adcompetitors'] = new CTableWrapper(_table, {'shown':[0,3], 'templates':[1,2], 'ifempty':'empty'});
	};
	var Table = keywordSummaryTables['adcompetitors'];
	Table.reset();
	
	$('#keyword_summary_adcompetitorsLink')
		.css('display', (data['rows'].length > 0 ? 'inline' : 'none'))
		.attr('href', '#keyword/'+encodeURIComponent(keyword)+'/adwords//1')
		.click(function(){return Cabinet.open('keyword', 'adwords');})
		.children('span').html(htmlspecialchars(formatNumber(data['total'])));
	
	for (var i in data['rows'])
	{
		var _cells = $(Table.newRow('result')).children('td');
		_cells.eq(0).children('a') /* domain */
			.html(data['rows'][i]['domain'])
			.click(function(domain){return function(){Cabinet.open('competitor', 'summary', domain);}}(data['rows'][i]['domain']))
			.attr('href', function(index, attr){return attr.replace('__uedomain__', encodeURIComponent(data['rows'][i]['domain']));});
		_cells.eq(1).children('a') /* paid positions */
			.html(formatNumber(data['rows'][i]['paid_q']))
			.click(function(domain){return function(){Cabinet.open('competitor','adkeywords',domain);}}(data['rows'][i]['domain']))
			.attr('href', function(index, attr){return attr.replace('__uedomain__', encodeURIComponent(data['rows'][i]['domain']))});
		_cells.eq(2).children('a') /* organic positions */
			.html(formatNumber(data['rows'][i]['q_positions']))
			.click(function(domain){return function(){Cabinet.open('competitor','positions',domain);}}(data['rows'][i]['domain']))
			.attr('href', function(index, attr){return attr.replace('__uedomain__', encodeURIComponent(data['rows'][i]['domain']))});
	};
	
	/* цвет и видимость последней строки 'view all' */
	if (data['rows'].length)
	{
		Table.Shown['viewall'].className = 'dbsearch_site_result' + ((data['rows'].length + 1) % 2);
		Table.Shown['viewall'].style.display = '';
	}
	else Table.Shown['viewall'].style.display = 'none';
};

function keyword_summary_organicDraw(data, keyword, Table)
{
	if (!keywordSummaryTables['organic'])
	{
		var _table = document.getElementById('keyword_summary_organicTable');
		if (!_table) return;
		keywordSummaryTables['organic'] = new CTableWrapper(_table, {'shown':[0,3], 'templates':[1,2], 'ifempty':'empty'});
	};
	var Table = keywordSummaryTables['organic'];
	Table.reset();
	
	$('#keyword_summary_organicLink')
		.css('display',(data['rows'].length > 0 ? 'inline' : 'none'))
		.attr('href', '#keyword/'+encodeURIComponent(keyword)+'/organic//1')
		.click(function(){return Cabinet.open('keyword', 'organic');})
		.children('span').html(htmlspecialchars(formatNumber(data['total'])));
	
	for (var i in data['rows'])
	{
		var _cells = $(Table.newRow('result')).children('td');
		_cells.eq(0).children('a') /* domain */
			.html(data['rows'][i]['domain'])
			.click(function(domain){return function(){Cabinet.open('competitor','summary',domain);}}(data['rows'][i]['domain']))
			.attr('href', function(index, attr){return attr.replace('__uedomain__', encodeURIComponent(data['rows'][i]['domain']));});
		_cells.eq(1).children('a') /* paid positions */
			.html(formatNumber(data['rows'][i]['paid_q']))
			.click(function(domain){return function(){Cabinet.open('competitor','adkeywords',domain);}}(data['rows'][i]['domain']))
			.attr('href', function(index, attr){return attr.replace('__uedomain__', encodeURIComponent(data['rows'][i]['domain']))});
		_cells.eq(2).children('a') /* organic positions */
			.html(formatNumber(data['rows'][i]['q_positions']))
			.click(function(domain){return function(){Cabinet.open('competitor','positions',domain);}}(data['rows'][i]['domain']))
			.attr('href', function(index, attr){return attr.replace('__uedomain__', encodeURIComponent(data['rows'][i]['domain']))});
	};
	
	/* цвет и видимость последней строки 'view all' */
	if (data['rows'].length)
	{
		Table.Shown['viewall'].className = 'dbsearch_site_result' + ((data['rows'].length + 1) % 2);
		Table.Shown['viewall'].style.display = '';
	}
	else Table.Shown['viewall'].style.display = 'none';
};


