function competitor_tabClick(tab, domain, page, sort) { return Cabinet.open('competitor', tab, domain, page, sort); };

var competitor_positions_tableHeaderPosition = null;
var competitor_positions_tableHeaderRank = null;
var competitor_positions_tableHeaderTraffic = null;

function competitor_positions_draw(data)
{
	var _template = Templates['competitor']['positions'].begin();
	if (!data['error'] && (data['total_count'] == "0" || !data['total_count'])) data['error'] = 'No positions of "'+data['domain']+'" in Google.com';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['domain']);
	_template.fullReportLinks('/site_pos?domain='+encodeURIComponent(data['domain'])+'&engine=google&sort=rank+desc&type=__type__');
	
	/* fill table's header: Position */
	if (!competitor_positions_tableHeaderPosition) competitor_positions_tableHeaderPosition = $('#competitor_positions_tableHeaderPosition');
	if (data['sort'] == 'position asc') competitor_positions_tableHeaderPosition.addClass('darrow').html('Position');
	else competitor_positions_tableHeaderPosition.removeClass('darrow').html('<a href="#competitor/'+encodeURIComponent(data['domain'])+'/positions/position+asc/1" onclick="Cabinet.open(\'competitor\',\'positions\',\''+data['domain']+'\',1,\'position asc\');">Position</a>');
	/* fill table's header: Rank */
	if (!competitor_positions_tableHeaderRank) competitor_positions_tableHeaderRank = $('#competitor_positions_tableHeaderRank');
	if (data['sort'] == 'rank desc') competitor_positions_tableHeaderRank.addClass('darrow').html('Traffic cost');
	else competitor_positions_tableHeaderRank.removeClass('darrow').html('<a href="#competitor/'+encodeURIComponent(data['domain'])+'/positions/rank+desc/1" onclick="Cabinet.open(\'competitor\',\'positions\',\''+data['domain']+'\',1,\'rank desc\');">Traffic&nbsp;cost</a>');
	/* fill table's header: Traffic */
	if (!competitor_positions_tableHeaderTraffic) competitor_positions_tableHeaderTraffic = $('#competitor_positions_tableHeaderTraffic');
	if (data['sort'] == 'clicks desc') competitor_positions_tableHeaderTraffic.addClass('darrow').html('Traffic');
	else competitor_positions_tableHeaderTraffic.removeClass('darrow').html('<a href="#competitor/'+encodeURIComponent(data['domain'])+'/positions/clicks+desc/1" onclick="Cabinet.open(\'competitor\', \'positions\', \''+data['domain']+'\', 1, \'clicks desc\');">Traffic</a>');
	
	Hints['competitor']['positions'].reset();
	for (var i in data['rows'])
	{
		var newRow = _template.Table.newRow();
		newRow.cells[0].innerHTML = data['rows'][i]['order_num'] + '.';
		newRow.cells[2].innerHTML = htmlspecialchars(data['rows'][i]['position']);
		newRow.cells[3].innerHTML = htmlspecialchars('$' + formatNumber(data['rows'][i]['rank']));
		newRow.cells[4].innerHTML = htmlspecialchars(formatNumber(data['rows'][i]['clicks']));
		
		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\');" title="Upgrade your account to view more results">' + htmlspecialchars(data['rows'][i]['keyword']) + '</a>'; 
				continue;
			};
			newRow.cells[1].innerHTML = '<a href="javascript:void(0)" onclick="showLoginForm(\'competitor\', \'positions\');" title="Sign Up / Sign In to view more results">' + htmlspecialchars(data['rows'][i]['keyword']) + '</a>'; 
			continue;
		};
		
		Hints['competitor']['positions'].setFor(newRow, data['rows'][i]);
		newRow.cells[1].innerHTML = '<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>';
	};
	_template.showPages(data['current_page'], data['total_count'], data['results_per_page'], data['domain'], data['sort']);
	_template.end();
};

function competitor_adkeywords_draw(data)
{
	var _template = Templates['competitor']['adkeywords'].begin();
	
	if (!data['error'] && (data['total_count'] == "0" || !data['total_count'])) data['error'] = 'No ad keywords for "' + data['domain'] + '"';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['domain']);
	_template.fullReportLinks('/ads_more?domain='+encodeURIComponent(data['domain'])+'&report=keywords&engine=google&sort=&type=__type__');
	for (var i in data['rows'])
	{
		var newRow = _template.Table.newRow();
		newRow.cells[0].innerHTML = data['rows'][i]['order_num'] + '.';
		newRow.cells[2].innerHTML = htmlspecialchars(formatNumber(data['rows'][i]['monthly_searches']));
		newRow.cells[3].innerHTML = htmlspecialchars('$' + formatNumber(data['rows'][i]['avg_cpc']));
		newRow.cells[4].innerHTML = htmlspecialchars(formatNumber(data['rows'][i]['traffic']));
		newRow.cells[5].innerHTML = htmlspecialchars(data['rows'][i]['position']);
				
		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(\'competitor\', \'positions\');">' + htmlspecialchars(data['rows'][i]['keyword']) + '</a>'; 
			continue;
		};
		
		Hints['competitor']['adkeywords'].setFor(newRow, data['rows'][i]);
		newRow.cells[1].innerHTML = '<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>';
	};
	_template.showPages(data['current_page'], data['total_count'], data['results_per_page'], data['domain']);
	_template.end();
};

var original_container = null; /* подвесим сюда (в воздух) изначальный контейнер с шаблонами для объявлений */
function competitor_adtexts_draw(data)
{
	var _template = Templates['competitor']['adtexts'].begin();
	
	if (!data['error'] && (data['total_count'] == "0" || !data['total_count'])) data['error'] = 'No ad texts for "' + data['domain'] + '"';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['domain']);
	_template.fullReportLinks('/ads_more?domain='+encodeURIComponent(data['domain'])+'&report=texts&engine=google&sort=&type=__type__');
	
	/* fill the table */
	var container = $('div#competitor_adtexts_samples');
	if (detectedBrowserIsIE) /* боже, храни IE */
	{
		if (!original_container) original_container = container.clone();
		container.children('span.sample_ads').remove();
	}
	else
	{
		if (!original_container) original_container = container;
		container.children('span.sample_ads:gt(2)').remove();
	};
	
	var original_spans = original_container.children('span.sample_ads');
	var templates = {'sign_in': null, 'upgrade': null, 'sample': null};
	for (var i in templates) templates[i] = original_spans.filter('[name='+i+']:eq(0)').css('display','');
	
	if (detectedBrowserIsIE)
	container.children('span.sample_ads').remove(); /* clear container */
	
	for (var i in data['rows'])
	{
		var new_span;
		if (data['rows'][i]['order_num'] > data['allowed_results_count'])
		{
			var name = data['authenticated'] ? 'upgrade' : 'sign_in';
			new_span = templates[name].clone();
		}
		else
		{
			new_span = templates['sample'].clone();
			var inner_spans = new_span.children('span');
			inner_spans.eq(0).html('<a href="#competitor/'+encodeURIComponent(data['domain'])+'/adtexts//'+data['current_page']+'">'+(data['rows'][i]['title'])+'</a>');
			inner_spans.eq(1).html(data['rows'][i]['descr']);
			inner_spans.eq(2).html(data['rows'][i]['green_url']);
		};
		container.append(new_span);
	};
	for (var i in templates) templates[i].hide();

	/* show pages */
	_template.showPages(data['current_page'], data['total_count'], data['results_per_page'], data['domain']);
	_template.end();
};

competitor_summary_template = null;

var competitorSummaryTables = [];

function competitor_summary_draw(data)
{
	var _template = Templates['competitor']['summary'].begin();
	if (!data['error'] && data['organic']['total_count'] == '0' && data['adkeywords']['total_count'] == '0' && !data['clicks'] && !data['paid_clicks'] && !data['paid_rank']) data['error'] = 'Sorry, no data available for "' + data['domain'] + '"';
	if (data['error']) return _template.end(data['error']);

	_template.subject(data['domain']);
	$('#competitor_summary_screenshot').attr('src', '/img/screenshot_loading.gif');
	$('#competitor_summary_screenshot').attr('src', '/screenshot2?domain='+encodeURIComponent(data['domain']));
	$('#competitor_summary_searchTraffic').html(htmlspecialchars(formatNumber(data['clicks'])));
	$('#competitor_summary_adTraffic').html(htmlspecialchars(formatNumber(data['paid_clicks'])));
	$('#competitor_summary_adBudget').html(htmlspecialchars('$' + formatNumber(data['paid_rank'])));
	
	competitor_summary_adKeywordsDraw(data['adkeywords'], data['domain']);
	competitor_summary_adTextsDraw(data['ads'], data['domain']);
	competitor_summary_organicKeywordsDraw(data['organic'], data['domain']);
	
	_template.end();
};

function competitor_summary_adKeywordsDraw(data, domain)
{
	if (!competitorSummaryTables['adkeywords'])
	{
		var _table = document.getElementById('competitor_summary_adsTable');
		if (!_table) return;
		competitorSummaryTables['adkeywords'] = new CTableWrapper(_table, {'shown':[0,2], 'templates':[1]});
	};
	var Table = competitorSummaryTables['adkeywords'];
	Table.reset();
	
	$('#competitor_summary_adKeywordsNum').html(htmlspecialchars(formatNumber(data['total_count'])));
	$('#competitor_summary_adKeywordsLink').attr('href', '#competitor/'+encodeURIComponent(domain)+'/adkeywords//1');
	
	Hints['competitor']['summary_ad'].reset();
	for (var i in data['rows'])
	{
		var newRow = Table.newRow('result');
		Hints['competitor']['summary_ad'].setFor(newRow, data['rows'][i]);
		newRow.cells[0].innerHTML = '<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>';
		newRow.cells[1].innerHTML = htmlspecialchars('$' + formatNumber(data['rows'][i]['avg_cpc']));
	};
	
	/* цвет и видимость строки 'view all' */
	if (data['rows'].length)
	{
		Table.Shown['viewall'].className = 'dbsearch_site_result' + ((data['rows'].length) % 2);
		Table.Shown['viewall'].style.display = '';
	}
	else Table.Shown['viewall'].style.display = 'none';

};

function competitor_summary_adTextsDraw(data, current_domain)
{
	if (!data['total_count'] || !data['rows'].length) return $('#competitor_summary_paidDiv').hide();
	$('#competitor_summary_paidDiv').css('display', 'inline');
	
	$('#competitor_summary_adTextsNum').html(htmlspecialchars(formatNumber(data['total_count'])));
	$('#competitor_summary_adTextsLink').attr('href','#competitor/'+encodeURIComponent(current_domain)+'/adtexts//1');
	
	var _ads = $('#competitor_summary_adTextsSpan'); _ads.children('span:gt(0)').remove();
	var _sample_ad = _ads.children('span:first').css('display','');
	for (var i = 0; i < data['rows'].length && i < 6; i++)
		_sample_ad.clone().html('<a href="#competitor/'+encodeURIComponent(current_domain)+'/summary//1">'+(data['rows'][i]['title'])+'</a><br />'+(data['rows'][i]['descr'].replace('&nbsp;',' '))+'<br /><span style="color:green;">'+htmlspecialchars(data['rows'][i]['green_url'])+'</span>').appendTo(_ads);
	_sample_ad.remove();
};

function competitor_summary_organicKeywordsDraw(data, domain)
{
	if (!competitorSummaryTables['organic'])
	{
		var _table = document.getElementById('competitor_summary_organicKeywordsTable');
		if (!_table) return;
		competitorSummaryTables['organic'] = new CTableWrapper(_table, {'shown':[0,3], 'templates':[1,2], 'counter':{'cell':0,'init':1}, 'ifempty': 'line_empty'});
	};
	var Table = competitorSummaryTables['organic'];
	Table.reset();
	
	if (!data['total_count'] || !data['rows'].length)
	{
		$('#competitor_summary_organicViewAllTable').hide();
		return;
	}
	
	$('#competitor_summary_organicDiv').css('display', 'inline');
	$('#competitor_summary_organicNum').html(htmlspecialchars(formatNumber(data['total_count'])));
	$('#competitor_summary_organicLink').attr('href','#competitor/'+encodeURIComponent(domain)+'/positions//1');
	$('#competitor_summary_organicSortLink1').attr('href', '#competitor/'+encodeURIComponent(domain)+'/positions/positions+asc/1');
	$('#competitor_summary_organicSortLink1').get(0).onclick = function(){ Cabinet.open('competitor', 'positions', domain, 1, 'position asc');};
	$('#competitor_summary_organicSortLink2').attr('href','#competitor/'+encodeURIComponent(domain)+'/positions/clicks+desc/1');
	$('#competitor_summary_organicSortLink2').get(0).onclick = function(){ Cabinet.open('competitor', 'positions', domain, 1, 'clicks desc');};
	
	Hints['competitor']['summary_org'].reset();
	for (var i in data['rows'])
	{
		var newRow = Table.newRow('result');
		Hints['competitor']['summary_org'].setFor(newRow, data['rows'][i]);
		newRow.cells[1].innerHTML = '<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>';
		newRow.cells[2].innerHTML = data['rows'][i]['position'];
		newRow.cells[3].innerHTML = htmlspecialchars('$' + formatNumber(data['rows'][i]['h_rank']));
		newRow.cells[4].innerHTML = htmlspecialchars(formatNumber(data['rows'][i]['h_clicks']));
	};
	
	
	/* цвет, видимость и номер строки 'view all' */
	var table_length = data['rows'].length;
	Table.Shown['viewall'].cells[0].innerHTML = table_length + 1;
	if (table_length)
	{
		Table.Shown['viewall'].className = 'dbsearch_site_result' + ((table_length + 1) % 2);
		Table.Shown['viewall'].style.display = '';
	}
	else Table.Shown['viewall'].style.display = 'none';
};

function competitor_subdomains_draw(data)
{
	var _template = Templates['competitor']['subdomains'].begin();
	
	if (!data['error'] && data['total_count'] == '0') data['error'] = 'No such domain in the database';
	if (data['error']) return _template.end(data['error']);

	_template.subject(data['domain']);
	$('#competitor_subdomains_hostsFound').html(htmlspecialchars(data['total_count']));
	
	for (var i in data['domains'])
	{
		var newRow = _template.Table.newRow();
		newRow.cells[0].innerHTML = data['domains'][i]['order_num'] + '.';				
		var link = newRow.cells[2].getElementsByTagName('a')[0];
		
		if(data['domains'][i]['order_num'] > data['allowed_results_count'])
		{
			if(data['authenticated'])
			{
				newRow.cells[1].innerHTML =
					'<a href="#pricing//brief" onclick="pricing_tabClick(\'brief\')">' +
					htmlspecialchars(data['domains'][i]['domain']) + 
					'</a>';
				link.href = '#pricing//brief/';
				link.onclick = function (){pricing_tabClick('brief')}; 
				continue;
			}
			
			newRow.cells[1].innerHTML =
				'<a href="javascript:void(0)" onclick="showLoginForm(\'competitor\',\'subdomains\')">' +
				htmlspecialchars(data['domains'][i]['domain']) + 
				'</a>';
			link.href = 'javascript:void(0)';
			link.onclick = function(){ showLoginForm('competitor', 'subdomains')};  
			continue;
		};
			
		newRow.cells[1].innerHTML = htmlspecialchars(data['domains'][i]['domain']);
		link.href = '#competitor/' + encodeURIComponent(data['domains'][i]['domain']) + '/summary//1';
		link.onclick = function(i){ return function (){ Cabinet.open('competitor', 'summary', data['domains'][i]['domain'])}}(i);
	};
	_template.showPages(data['current_page'],data['total_count'],data['results_per_page'],data['domain']);
	_template.end();
};

function competitor_revip_draw(data)
{
	var _template = Templates['competitor']['revip'].begin();
	
	if (!data['error'] && data['total_count'] == '0') data['error'] = 'No such domain in the database';
	if (data['error']) return _template.end(data['error']);
	
	_template.subject(data['ip']);
	$('#competitor_revip_hostsFound').html(data['total_count']);
	
	for (var i in data['domains'])
	{
		var newRow = _template.Table.newRow();
		newRow.cells[0].innerHTML = data['domains'][i]['order_num'] + '.';				
		var link = newRow.cells[2].getElementsByTagName('a')[0];
		
		if(data['domains'][i]['order_num'] > data['allowed_results_count'])
		{
			if(data['authenticated'])
			{
				newRow.cells[1].innerHTML =
					'<a href="#pricing//brief" onclick="pricing_tabClick(\'brief\')">' +
					htmlspecialchars(data['domains'][i]['domain']) +
					'</a>';
				link.href = '#pricing//brief/';
				link.onclick = function (){pricing_tabClick('brief')}; 
				continue;
			};
			newRow.cells[1].innerHTML =
				'<a href="javascript:void(0)" onclick="showLoginForm(\'competitor\',\'subdomains\')">' +
				htmlspecialchars(data['domains'][i]['domain']) +
				'</a>';
			link.href = 'javascript:void(0)';
			link.onclick = function(){ showLoginForm('competitor', 'subdomains')};  
			continue;
		};
		
		newRow.cells[1].innerHTML = htmlspecialchars(data['domains'][i]['domain']);
		link.href = '#competitor/' + encodeURIComponent(data['domains'][i]['domain']) + '/summary//1';
		link.onclick = function(i){ return function (){ Cabinet.open('competitor', 'summary', backslashQuotes(data['domains'][i]['domain']))}}(i);
	};
	_template.showPages(data['current_page'], data['total_count'], data['results_per_page'], data['domain']);
	_template.end();
};


