
function redirect() {
	window.location = "http://www.google.com";
}

function logResponse(data) {
	if (reqid > 0) {
		logUrl = "/common/js/log/";

		logData = "id="+reqid+"&"+data;

		$.ajax({
			type: "GET",
			url: logUrl,
			data: logData,
			dataType: 'json',
			success: function(data) {
			}
		});
	}

}

function logABTest(testId, testEvent, testValue) {
	if (original_request) {
		if (original_request.adext) {
			$.get("/unique/record.js", {'event': [testId+'.'+testEvent+'='+testValue], 't': site.t} );
		}
	}
}

function linkClick(link, sl, sr) {
	var tr = 0;
	if (sl) tr = tr + 1;
	if (sr) tr = tr + 2;
	if ($(link).hasClass('sl')) tr = tr + 4;
	if ($(link).hasClass('sr')) tr = tr + 8;
	if ($(link).hasClass('sitelink')) tr = tr + 16;
	if ($(link).hasClass('ratings-url')) tr = tr + 32;

	logABTest('fmt', 'clk', tr);
}

function google_afd_ad_request_done(resp) {
	if (!resp) return;
	if (resp.error_code) return;
	
	if (resp.secondtier) {
		if (site.rendered) {
			return;
		}
		site.rendered = true;
	}
	else {
		var status = [];

		if (resp.needsreview) {
			status.push('needsreview');
		}
		if (resp.faillisted) {
			status.push('faillisted');
		}
		if (typeof(resp.adult) != "undefined" && resp.adult != site.adult) {
			var excluded = (resp.client.indexOf("19_3ph") != -1);
			if (!excluded) {
				status.push('adult');
			}
		}
	
		if (status.length > 0) {
			$.get("/unique/status.js", {'status': status.toString(), 't': site.t} );
		}

		if (resp.faillisted) {
			return;
		}
		
		if (resp.ads && resp.ads.length > 0) {
			if (site.rendered) {
				return;
			}
			site.rendered = true;
		}
	}
	
	if (typeof(js_debug) != 'undefined') {
		if (resp.request) {
			$.each(resp.request, function(key, val) {
				var row = $('<tr/>');
				
				$('<td/>').text(key).appendTo(row);
				$('<td/>').text(val).appendTo(row);
				
				$('#ggl_response_vars').append(row);
			});
		}
		if (resp.ads) {
			$('#ggl_adcount').text(resp.ads.length);
		}
		if (resp.link_units) {
			$('#ggl_relcount').text(resp.link_units.length);
		}
		if (resp.categories) {
			$('#ggl_catcount').text(resp.categories.length);
		}
	}
	if (js_targets.results && js_targets.results.length > 0) {
		if (resp.ads && resp.ads.length > 0) {
			if (resp.feedback_url) {
				var resultsTitle = $('.resultshdr .resultsTitle').html();
				if (resultsTitle) {
					var anchor = $('<a/>').attr('href', resp.feedback_url).attr('target', '_blank').html(resultsTitle);
					$('.resultshdr .resultsTitle').replaceWith(anchor);
				}
			}

			var repeatedAds = false;
			if (resp.adrep || (original_request && original_request.adrep)) {
				repeatedAds = true;
			}

			$.each(js_targets.results, function (i, target) {
				renderResults(resp.ads, target, repeatedAds);
			});
		}
	}
	var renderRelatedDone = false;
	if (js_targets.related && js_targets.related.length > 0) {
		if (resp.link_units && resp.link_units.length > 0) {
			$.each(js_targets.related, function (i, target) {
				renderRelated(resp.link_units, target);
				renderRelatedDone = true;
			});
		}
	}
	if (js_targets.twoclick && js_targets.twoclick.length > 0) {
		$.each(js_targets.twoclick, function (i, target) {
			if ( renderRelatedDone && resp.categories ) {
				renderTwoClick(resp.categories, target);
			}
			else if (resp.link_units) {
				renderTwoClick(resp.link_units, target);
			}
			else if (resp.categories) {
				renderTwoClick(resp.categories, target);
			}
		});
	}

	if (resp.client && resp.feedback_url) {
		var relatedTitle = $('.relatedTitle').html();
		if (relatedTitle) {
			var anchor = $('<a/>').attr('href', resp.feedback_url).attr('target', '_blank').html(relatedTitle);
			$('.relatedTitle').replaceWith(anchor);
		}
	}

	var tkn = '';

	if (resp.token) {
		tkn = resp.token;
		$('a').each(function (i) {
			if (matches = this.href.match(/tkn\=(.*)/)) {
				if (matches[1] == '' || matches[1].match(/^\W/i)) {
					var html = this.innerHTML;
					this.href = this.href.replace(/tkn\=/, 'tkn='+tkn);
					if (this.innerHTML != html) {
						this.innerHTML = html;
					}
				}
			}
		});
	}

	if (resp.search_token) {
		$("input:hidden").each(function (i) {
			if (this.name == 'tkn' && this.value == '') {
				this.value = resp.search_token;
			}
		});
	}

	if (resp.ads) {
		ad_nr = resp.ads.length;
	}

	if (resp.link_units) {
		rel_nr = resp.link_units.length;
	}

	logResponse('ads='+ad_nr+'&rads='+rel_nr);
}

renderResults = function(ads, target, repeatedAds) {
	var start = 1;
	var end = -1;
	if (target.start) start = target.start;
	if (target.end) end = target.end;
	$(target.element).html('');
	
	if (ads && ads.length > 0) {
		var sl = false;
		var sr = false;

		$.each(ads, function (i, ad) {
			var renderAd = true;
			if (repeatedAds) {
				if (ad.position) {
					if (!target.backfill) {
						renderAd = true;
					}
					else {
						renderAd = false;
					}
				}
				else {
					renderAd = target.backfill;
				}
			}
			if(renderAd && i + 1 >= start && (end < 0 || i + 1 <= end)) {
				var pClass = 'r' + (i+1);
				var visible_url = ad.visible_url;
				if (ad.curl) {
					var url = ad.curl;
				}
				else {
					var url = redir_ps_base.replace(/&amp;/g, '&')+'&extravars='+encodeURIComponent(ad.url)+'|'+ad.n+'|'+visible_url.replace(/<[^>]*>/g,'');
				}
				
				if (ad.sitelinks) {
					url = url + '[SL:0]';
				}
				if (ad.seller_ratings) {
					url = url + '[SR]';
				}
				
				$('<p/>').addClass(pClass).appendTo(target.element);
				
				$('<a/>').attr('id', 'navid'+(i+1)).addClass('title').attr("target", '_blank').attr("href", url).appendTo(target.element+' p.'+pClass).html(ad.line1);
				
				$('<br/>').appendTo(target.element+' p.'+pClass);
			
				if (ad.line3) {
					$(target.element+' p.'+pClass).append(ad.line2 + ' ' + ad.line3 + '<br />');
				}
				else {
					$(target.element+' p.'+pClass).append(ad.line2 + '<br />');
				}
				
				$('<a/>').addClass('url').attr("target", '_blank').attr("href", url).appendTo(target.element+' p.'+pClass).html(visible_url);

				if (ad.seller_ratings) {
					sr = true;
					if (ad.seller_ratings.text) {
						var html = ad.seller_ratings.text;
						html = html.replace(/{{RATING}}/g, '<img src="'+ad.seller_ratings.rating_img_url+'" class="star-rating" alt="'+ad.seller_ratings.rating+'" title="'+ad.seller_ratings.rating+'"/>');
						html = html.replace(/{{LINK_START}}/g, '<a href="'+ad.seller_ratings.source_url+'" target="_blank" class="ratings-url">');
						html = html.replace(/{{LINK_END}}/g, '</a>');

						$(target.element+' p.'+pClass).append('<br />').append(html);
					}
					else {
						var rating_img = $('<img/>');
						rating_img.attr('src', '/common/images/stars/'+(ad.seller_ratings.rating * 10)+'_stars.png');
						rating_img.attr('alt', ad.seller_ratings.rating+' out of 5 stars');
						rating_img.attr('title', ad.seller_ratings.rating+' out of 5 stars');
						rating_img.addClass('star-rating');
					
						var rating_a = $('<a/>');
						rating_a.attr('href', ad.seller_ratings.source_url);
						rating_a.attr('target', '_blank');
						rating_a.addClass('ratings-url');
						rating_a.html(ad.seller_ratings.review_count);
					
						$(target.element+' p.'+pClass).append('<br />').append(ad.seller_ratings.advertiser_info + ' ').append(rating_img).append(' (').append(rating_a).append(')');
					}
				}
				
				if (ad.sitelinks) {
					sl = true;
					var sitelinks_list = $('<div/>').addClass('sitelinks');
					var sitelinks_left = $('<span/>').addClass('sitelinks-left');
					var sitelinks_right = $('<span/>').addClass('sitelinks-right');
					$.each(ad.sitelinks, function (i, sitelink) {
						var sitelink_url = redir_ps_base.replace(/&amp;/g, '&')+'&extravars='+encodeURIComponent(sitelink.url)+'|'+ad.n+'|'+visible_url.replace(/<[^>]*>/g,'')+'[SL:'+(i+1)+']';
						var link = $('<a/>').html(sitelink.link_text).attr('href', sitelink_url).addClass('sitelink').attr("target", '_blank');
						
						if (i % 2 == 1) {
							$(sitelinks_right).append(link).append('<br/>');
						}
						else {
							$(sitelinks_left).append(link).append('<br/>');
						}
					});
					
					$(sitelinks_list).append(sitelinks_left);
					$(sitelinks_list).append(sitelinks_right);
					
					$(target.element+' p.'+pClass).append(sitelinks_list);
				}
			}
		});

		$(target.element+' a').click(function() { linkClick(this, sl, sr); });

		var tr = 0;
		if (sl) {
			tr = tr + 1;
		}
		if (sr) {
			tr = tr + 2;
		}

		logABTest('fmt', 'imp', tr);

	}
}

renderRelated = function(related, target) {
	var list = false;
	var num = 0;
	
	if ($(target.element).is('ul')) {
		list = true;
	}
	var start = 1;
	var end = -1;
	if (target.start) start = target.start;
	if (target.end) end = target.end;
	var path = '/related/';
	if (target.path) path = target.path;
	if (target.element == "") {
		return;
	}
	$(target.element).html('');	

	if (related && related.length > 0) {

		$.each(related, function (i, link) {
			
			if(i + 1 >= start && (end < 0 || i + 1 <= end)) {
				term = link.term.toLowerCase();
				html = $('<a/>').attr('href', path+term.replace(/ /g, '-')+'.htm?tkn='+link.token+window.persistent_vars).text(link.term);
				if (list) {
					$('<li/>').html(html).appendTo(target.element);
				} else {
					if (num > 0) {
						$(target.element).append(' | ');
					}
					num = num+1;
					$(target.element).append(html);
				}
			}

		});
	}
	
}

renderTwoClick = function(data, target) {
	var table = false;
	var classname = '';
	var rowid = 0;
	
	if ($(target.element).is('table')) {
		table = true;
	}
	var start = 1;
	var end = -1;
	if (target.start) start = target.start;
	if (target.end) end = target.end;
	var path = '/related/';
	if (target.path) path = target.path;
	$(target.element).html('');
		
	if (data && data.length > 0) {
		$.each(data, function (i, pop) {
			
			if(i + 1 >=  start && (end < 0 || i + 1 <= end)) {
				term = pop.term.toLowerCase();
				html = $('<a/>').attr('href', path+term.replace(/ /g, '-')+'.htm?tkn='+pop.token+window.persistent_vars).text(pop.term);
				
				if (table) {
					cell = $('<td/>').html(html).attr('align', 'top');
					if (i % 2 == 0) {
						row = $('<tr/>');
						cell.appendTo(row);
					} else {
						cell.appendTo(row);
						row.appendTo(target.element);
					}
				} else {
						classname = '';
					if (i % 2 == 1) {
						classname = "alt ";
					} else {
							classname = "";
					}
						rowid = i + 1;
					classname += "r"+rowid.toString();
					$('<p/>').html(html).addClass(classname).appendTo(target.element);
				}
			}

		});
	} 
}

resultClick = function(result_url, result_rank, result_dom) {
	$.get(redir_ps_base.replace(/&amp;/g, '&'), {'extravars': '|'+result_rank+'|'+result_dom}, function(data) {
	});
}

window.setTimeout('loadSecondTier()', 2000);
function loadSecondTier() {
	if (!site.rendered) {
		if (original_request) {
			original_request.ref = document.referrer;
			$.ajax({
				type: "GET",
				url: "/unique/results.js",
				data: original_request,
				dataType: 'json',
				success: function(data) {
					google_afd_ad_request_done(data);
				}
			});
		}
	}
}

