﻿function addFavorite(domain)
{
	window.external.AddFavorite('http://' + domain, domain)
	
	return false;
}

function gotoUrl(url)
{
	location.href = url;
	
	return false;
}

function tipTrustpilot(domainID)
{
	window.open('/Popups/TipTrustpilot.aspx?DID=' + domainID,null,'width=400,height=500');
	
	return false;
}

function showPopup(url, width, height)
{
	window.open(url, null, "width=" + width + ",height=" + height + ",scrollbars=1");
}

function showPopupDibs(e, url, width, height) {
	if (!e) var e = window.event;
	if (e.ctrlKey && e.altKey && e.shiftKey && url.indexOf('?') >= 0) {
		url += '&test=yes';
		alert("Testing");
	}
	else if (e.ctrlKey && e.altKey && e.shiftKey) {
		url += '?test=yes';
		alert("Testing");
	}
	window.open(url, null, "width=" + width + ",height=" + height + ",scrollbars=1");
}

function tipAFriend(domainID)
{
	window.open('/Popups/TipAFriend.aspx?DID=' + domainID,null,'width=300,height=500');
	
	return false;
}

function elementFocus(e)
{
	e.value = (e.value == e.defaultValue) ? '' : e.value;
	e.className += ' set';
}

function elementBlur(e)
{
	e.value = (e.value == '') ? e.defaultValue : e.value;
	if (e.value == e.defaultValue)
		e.className = e.className.replace(/set/gi, '');
}

function setRoundedButtonColor(el, color)
{
	el = el.firstChild.firstChild.firstChild;
	el.style.backgroundImage = 'url(/Images/Buttons/' + color + '/left.png)';
	el.nextSibling.style.backgroundImage = 'url(/Images/Buttons/' + color + '/middle.png)';
	el.nextSibling.nextSibling.style.backgroundImage = 'url(/Images/Buttons/' + color + '/right.png)';
}

function getRoundedButtonColor(el)
{
	return el.firstChild.firstChild.firstChild.style.backgroundImage.split('/Buttons/')[1].split('/')[0];
}

function setRatingUserOpinion2(ratingID, opinion, source)
{
	source.blur();
	source.style.fontWeight = "bold";
	source.style.border = "none";

	var otherElement = null;
	if (source.previousSibling)
		if (source.previousSibling.previousSibling)
			if (source.previousSibling.previousSibling.tagName == "A")
				otherElement = source.previousSibling.previousSibling;
	if (otherElement == null)
		if (source.nextSibling)
			if (source.nextSibling.nextSibling)
				if (source.nextSibling.nextSibling.tagName == "A")
					otherElement = source.nextSibling.nextSibling;

	otherElement.style.fontWeight = "normal";
	otherElement.style.borderBottom = "1px solid black";

	callPage('/SetUserOpinion.aspx?RID=' + ratingID + '&O=' + opinion);
}

function setUseful(id, opinion, source, type, and)
{
	var url;
	if (type == 0)
		url = '/SetUserOpinion.aspx?ID=';
	else if (type == 1)
		url = '/SetTipOpinion.aspx?ID=';
	
	callPage(url + id + '&Opinion=' + opinion);
	
	if (source == null)
	{
		GB_urlPopup('', '/Popups/Login.aspx');
		return false;
	}

	// This makes it feel a bit less like 1991
	source.blur();
	
	if (source.className == 'selected')
		return false; // Don't do anything if the user clicks the already selected option
		
	source.className = 'selected';

	var otherElement = null;
	if (source.previousSibling)
		if (source.previousSibling.previousSibling)
			if (source.previousSibling.previousSibling.tagName == 'A')
				otherElement = source.previousSibling.previousSibling;
	if (otherElement == null)
		if (source.nextSibling)
			if (source.nextSibling.nextSibling)
				if (source.nextSibling.nextSibling.tagName == 'A')
					otherElement = source.nextSibling.nextSibling;

	otherElement.className = '';

	var userid = document.getElementById('userid').innerHTML;
	var field = document.getElementById('o' + id);
	var usefulreview = document.getElementById('usefulreview').innerHTML;
	var username = '<a class="user orange" href="/UserProfile.aspx?UID=' + userid + '">' + document.getElementById('username').innerHTML + '</a>';
	var userpattern = '<a.*=' + userid + '".*?a>';

	if (field.innerHTML.contains('<a') && opinion == 1)
	{
		field.innerHTML = field.innerHTML.replace(' ' + and + ' ', ', ');
		field.innerHTML = field.innerHTML.substring(0, field.innerHTML.lastIndexOf('>') + 1) + ' ' + and + ' ' + username + field.innerHTML.substring(field.innerHTML.lastIndexOf('>') + 1);
	}
	else if (field.innerHTML.contains('<a') && opinion == 0)
	{
		var andbefore = new RegExp(' ' + and + ' ' + userpattern);
		var commabefore = new RegExp(', ' + userpattern);
		var andafter = new RegExp(userpattern + ' ' + and);
		var commaafter = new RegExp(userpattern + ', ');
		var lone = new RegExp(userpattern);
		field.innerHTML = field.innerHTML.replace(andbefore, '').replace(commabefore, '').replace(andafter, '').replace(commaafter, '').replace(lone, '');
	}
	else if (opinion == 1)
		field.innerHTML = username + ' ' + document.getElementById('positiveusers').innerHTML;

	if (!field.innerHTML.contains('<a'))
		field.innerHTML = usefulreview;

	if (field.innerHTML.contains(',') && !field.innerHTML.contains(' ' + and + ' '))
		field.innerHTML = field.innerHTML.substring(0, field.innerHTML.lastIndexOf(',')) + ' ' + and + ' ' + field.innerHTML.substring(field.innerHTML.lastIndexOf(',') + 1);
	
	return false;
}

function setRatingUserOpinion(ratingID, opinion, el)
{
	var tbl = el.parentNode.parentNode.parentNode.parentNode;
	
	if(getRoundedButtonColor(tbl) == 'GreyClicked')
	{
		setRoundedButtonColor(tbl, 'Grey');
		
		if(opinion == '0')
			setRoundedButtonColor(tbl.previousSibling.previousSibling, 'Grey');
		else
			setRoundedButtonColor(tbl.nextSibling.nextSibling, 'Grey');
		
		callPage('/SetUserOpinion.aspx?RID=' + ratingID + '&O=-1');
	}
	else
	{
		if(opinion == '1')
		{
			setRoundedButtonColor(tbl, 'GreyClicked');
			setRoundedButtonColor(tbl.nextSibling.nextSibling, 'Grey');
		}
		else
		{
			setRoundedButtonColor(tbl, 'GreyClicked');
			setRoundedButtonColor(tbl.previousSibling.previousSibling, 'Grey');
		}
	
		callPage('/SetUserOpinion.aspx?RID=' + ratingID + '&O=' + opinion);
	}
}

function callPage(url)
{
	var xmlHttp = new getXMLHttpRequest();
	if(xmlHttp != null)
	{
		xmlHttp.open('GET', url, true);
		xmlHttp.send(null);
	}
}

function getXMLHttpRequest()
{
	if (window.XMLHttpRequest)
		return new XMLHttpRequest()
	else if (window.ActiveXObject)
		return new ActiveXObject("Microsoft.XMLHTTP");
	else
		return null;
}
function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('max-length')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('max-length');
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onkeyup();
		}
	}
}

function checkMaxLength() {
	var maxLength = this.getAttribute('max-length');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
		this.relatedElement.className = 'toomuch';
	else
		this.relatedElement.className = '';
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}

GB_urlPopup = function(e, caption, url) {
	if (url) {
		if (!e) var e = window.event;
		if (e.ctrlKey && url.indexOf('?') >= 0)
			url += '&EditMode=true';
		else if (e.ctrlKey)
			url += '?EditMode=true';
	}
	else {
		var url = caption;
		caption = e;
	}

	var options =
	{
		caption: caption,
		height: 593,
		width: 480,
		fullscreen: false,
		show_loading: true,
		center_win: true,
		custom_loader: "custom_loader.html"
	}
	var win = new GB_Window(options);
	return win.show(url);
}

function closeAndRefresh()
{
	GB_hide();

	if (top.location.href.toLowerCase().indexOf('activate') > -1)
	{
		for (var link in top.document.links)
		{
			var l = top.document.links[link];
			if (l.href && l.href.toLowerCase().indexOf('activateuser.aspx?uid=') > -1)
				top.location = '/UserProfile.aspx?UID=' + l.href.substring(l.href.toLowerCase().indexOf('?uid=') + 5, l.href.indexOf('&'));
		}
	}
	else
	{
		var reviewUrl = top.location.href.replace('/evaluate/', '/review/');
		// Cut off possible name URIs (...#123456)
		if (reviewUrl.indexOf('#') > 0)
			reviewUrl = reviewUrl.substring(0, reviewUrl.indexOf('#'));
		top.location = reviewUrl;
	}
}
function toggleComments(link)
{
	link.blur();

	var divs = document.getElementsByTagName('div');
	for (var div in divs)
	{
		if (divs[div].className && divs[div].className == 'companyComments')
		{
			var image = divs[div].getElementsByTagName("img")[0];
			var link = divs[div].getElementsByTagName("a")[0];
			var text = divs[div].getElementsByTagName("p")[0];
			
			// Toggle the link-text
			var temp = link.rel;
			link.rel = link.innerHTML;
			link.innerHTML = temp;
			
			// Toggle image (plus/minus)
			image.src = image.src.replace('minus', 'temp').replace('plus', 'minus').replace('temp', 'plus');
			
			// Toggle text (display/hide)
			if (text.style.display != 'none')
				text.style.display = 'block';
			text.style.display = text.style.display.replace('block', 'temp').replace('none', 'block').replace('temp', 'none');
		}
	}
}

function hover(e, over, timeout) {
	if (timeout)
		setTimeout(function() { hover(e, over) }, timeout);
	else {
		if (over)
			e.className += ' hover';
		else
			e.className = e.className.replace(' hover', '');
	}
}

if (document.addEvent)
document.addEvent('domready', function() {
	var q = $('q');
	var qs = $('qs');
	if (!q)
		return;

	qs.defaultvalue = qs.innerHTML;
	if (location.href.length < 30)
		// Focus the search box, when we are on the frontpage
		q.focus();

	if (Browser.Engine.name != 'trident' || Browser.Engine.version != 4) // ie6
		new Autocompleter.Request.JSON(q, '/SearchSuggestion.aspx', { 'postVar': 'query', 'filterSubset': true, 'relative': true });

	q.addEvent('keydown', function(event) {
		if (event.key == 'enter')
			selectSuggestion(q.value);
	});

	q.addEvent('keyup', function(event) {
		if (this.value == '')
			qs.innerHTML = qs.defaultvalue;
		else
			qs.innerHTML = '';
	});

	q.addEvent('click', function(event) {
		qs.innerHTML = '';
	});

	qs.addEvent('click', function(event) {
		qs.innerHTML = '';
		q.focus();
	});

	q.addEvent('contextmenu', function(event) {
		qs.innerHTML = '';
	});

	q.addEvent('blur', function(event) {
		if (this.value == '')
			qs.innerHTML = qs.defaultvalue;
	});

	$(document.body).getElements('input.searchbutton').addEvent('click', function(event) {
		if (q.value.length <= 2) {
			q.focus();
			return false;
		}
	});
});

function selectSuggestion(suggestion) {
	suggestion = suggestion.trim().replace(/ /g, '+').replace(/&\+/g, '@+');

	if (suggestion != '')
	{
		if (suggestion.contains('.'))
			location.href = '/review/' + suggestion;
		else
			location.href = '/category/' + suggestion;
	}
}

if (typeof(Element) != 'undefined' && Element.NativeEvents) {
	$extend(Element.NativeEvents, {
		'paste': 2, 'input': 2
	});

	Element.Events.paste = {
		base: (Browser.Engine.presto || (Browser.Engine.gecko && Browser.Engine.version < 19)) ? 'input' : 'paste',
		condition: function(e) {
			this.fireEvent('paste', e, 1);
			return false;
		}
	};
}

function useful()
{
	this.blur();
	var userid = document.getElementById('userid').innerHTML;

	var opinion = this.className.contains('active') ? -1 : 1;
	var id = this.parentNode.parentNode.parentNode.id;
	callPage('SetUserOpinion.aspx?ID=' + id + '&Opinion=' + opinion);

	// If no user is logged in, request that the user logs in
	if (userid.length == 0 || userid == 0)
	{
		GB_urlPopup('', '/Popups/Login.aspx');
		return false;
	}

	$(this).toggleClass('active');

	// If there isn't already a like-box, add one if the user likes this contribution
	if (this.parentNode.parentNode.getChildren('.usefulbox').length == 0 && opinion == 1)
	{
		(new Element('p', { 'class': 'usefulbox' })).inject(this.parentNode.parentNode);
		(new Element('div', { 'class': 'clear' })).inject(this.parentNode.parentNode);
	}

	// Find the like-box
	var field = this.parentNode.parentNode.getChildren('.usefulbox')[0];

	// These are simply localized texts
	var usefulreview = document.getElementById('usefulreview').innerHTML;
	var and = document.getElementById('and').innerHTML;

	// The name of the user is retrived from the backend through the hidden "username" element
	var username = '<a href="/UserProfile.aspx?UID=' + userid + '">' + document.getElementById('username').innerHTML + '</a>';
	var userpattern = '<a.*?' + userid + '".*?/a>';

	// Add user to the list of users liking this
	if (field.innerHTML.contains('<a') && opinion == 1)
	{
		field.innerHTML = field.innerHTML.replace(' ' + and + ' ', ', ');
		field.innerHTML = field.innerHTML.substring(0, field.innerHTML.lastIndexOf('>') + 1) + ' ' + and + ' ' + username + field.innerHTML.substring(field.innerHTML.lastIndexOf('>') + 1);
	}
	// Remove user from the list of users liking this
	else if (field.innerHTML.contains('<a') && opinion == -1)
	{
		var andbefore = new RegExp(' ' + and + ' ' + userpattern);
		var commabefore = new RegExp(', ' + userpattern);
		var andafter = new RegExp(userpattern + ' ' + and);
		var commaafter = new RegExp(userpattern + ', ');
		var lone = new RegExp(userpattern);
		field.innerHTML = "<span></span>" + field.innerHTML.replace(andbefore, '').replace(commabefore, '').replace(commaafter, '').replace(andafter, '').replace(lone, '');
	}
	// User is the first and only user liking this
	else if (opinion == 1)
		field.innerHTML = "<span></span>" + username + ' ' + usefulreview;

	// Noone likes this
	if (!field.innerHTML.contains('<a'))
		field.dispose();

	// Replace the last comma in the list of users liking this, with an "and"
	if (field.innerHTML.contains(',') && !field.innerHTML.contains(' ' + and + ' '))
		field.innerHTML = field.innerHTML.substring(0, field.innerHTML.lastIndexOf(',')) + ' ' + and + ' ' + field.innerHTML.substring(field.innerHTML.lastIndexOf(',') + 1);

	// Update profile page summary
	if ($('userOpinionCount')) {
		var previousCount = /[0-9]+/.exec($('userOpinionCount').innerHTML);
		$('userOpinionCount').innerHTML = $('userOpinionCount').innerHTML.replace(/[0-9]+/, (previousCount | 0) + opinion);
	}

	return false;
}

function selectTab()
{
	var tabHeader = $('contributionsHeader');
	var index = 0;
	var tabs = tabHeader.getChildren('h2');
	for (var i = 0; i < tabs.length; i++) {
		if (this == tabs[i]) {
			tabs[i].addClass('selected');
			index = i;
		}
		else
			tabs[i].removeClass('selected');
	}

	var tabs = tabHeader.getParent().getChildren('.rph')[0].getChildren('.profiletab');
	for (var i = 0; i < tabs.length; i++) {
		if (i == index)
			tabs[i].setStyle('display', 'block');
		else
			tabs[i].setStyle('display', 'none');
	}
}

function updatePager(pagerID) {
	var pager = $(pagerID);
	var itemCount = pager.itemCount;
	var pageSize = pager.pageSize;
	var offset = pager.offset;
	if (itemCount > pageSize)
		pager.setStyle('display', 'block');
	else
		pager.setStyle('display', 'none');

	var currentPage = (offset / pageSize) + 1;
	var lastPage = Math.ceil(itemCount / pageSize);

	pager.getChildren('.currentPage')[0].innerHTML = currentPage;
	pager.getChildren('.lastPage')[0].innerHTML = lastPage;

	if (currentPage < lastPage)
		pager.getChildren('.nextPage')[0].innerHTML = "&raquo;";
	else
		pager.getChildren('.nextPage')[0].innerHTML = "";

	if (currentPage > 1)
		pager.getChildren('.previousPage')[0].innerHTML = "&laquo;";
	else
		pager.getChildren('.previousPage')[0].innerHTML = "";
}

function nextPage(pagerID)
{
	var pager = $(pagerID);
	pager.offset += pager.pageSize;
	pager.update(pager.offset, pager.itemCount, pager.pageSize);
	return false;
}

function lastPage(pagerID)
{
	var pager = $(pagerID);
	pager.offset = (Math.ceil(pager.itemCount / pager.pageSize) - 1) * pager.pageSize;
	pager.update(pager.offset, pager.itemCount, pager.pageSize);
	return false;
}

function previousPage(pagerID)
{
	var pager = $(pagerID);
	pager.offset -= pager.pageSize;
	pager.update(pager.offset, pager.itemCount, pager.pageSize);
	return false;
}

function toggleLoader(show)
{
	if ($('ajax-loader') == null)
		return;
	if (show)
		$('ajax-loader').setStyle('display', 'block');
	else
		$('ajax-loader').setStyle('display', 'none');
}

function addActionEvents()
{
	var contributions = $('reviewContainer').getChildren('.contribution');
	for (var i = 0; i < contributions.length; i++)
		contributions[i].getChildren('.contributioncontent')[0].getChildren('.actions')[0].getChildren('.useful')[0].addEvent('click', useful);
}

function usefulMarkup(likedBy)
{
	if (likedBy == null || likedBy.length == 0)
		return '';
	var markup = '';
	for (var i = 0; i < likedBy.length; i++)
	{
		markup += '<a href="/UserProfile.aspx?UID=' + likedBy[i].UserID + '">' + likedBy[i].Username + '</a>';
		if (i + 2 == likedBy.length)
			markup += " " + $('and').innerHTML + " ";
		else if (i + 2 < likedBy.length)
			markup += ", ";
	}
	return '<p class="usefulbox"><span></span>' + markup + ' ' + $('usefulreview').innerHTML + '</p>';
}

function displayReviews(result)
{
	toggleLoader(false);
	var reviews = result.Ratings;
	var innerStart = new Date();
	document.getElementById('reviewContainer').innerHTML = '';
	var first = true;

	for (var review in reviews)
	{
		if (reviews[review]['RatingID'])
		{
			renderReview(reviews[review], first);
			first = false;
		}
	}

	addActionEvents();
	updatePager('reviewPager');
}

function getReviews(offset, itemCount, pageSize)
{
	$('reviewContainer').innerHTML = '';
	toggleLoader(true);
	var itemsToGet = pageSize;
	if (offset + itemsToGet > itemCount)
		itemsToGet = itemCount - offset;

	Trustpilot.Backend.ReviewService.getUserRatings(getQuerystring('UID'), offset, itemsToGet, displayReviews);
}

function getQuerystring(key, defaultValue)
{
	if (defaultValue == null)
		defaultValue = '';
	
	key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
	var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
	var qs = regex.exec(window.location.href);
	if (qs == null)
		return defaultValue;
	else
		return qs[1];
}

function getTips(offset, itemCount, pageSize)
{
	$('tipsContainer').innerHTML = '';
	toggleLoader(true);
	var itemsToGet = pageSize;
	if (offset + itemsToGet > itemCount)
		itemsToGet = itemCount - offset;

	Trustpilot.Backend.ReviewService.GetUserTips(getQuerystring('UID'), offset, itemsToGet, displayTips);
}

function displayTips(tips)
{
	toggleLoader(false);

	$('tipsContainer').innerHTML = '';
	
	var first = true;
	
	for (var tip in tips)
	{
		if (tips[tip]['TipID'])
		{
			renderTip(tips[tip], first);
			first = false;
		}
	}

	updatePager('tipsPager');
}

function renderTip(tip, first)
{
	var html = $('tipHtml').innerHTML;
	html = html.replace('[Title]', tip['Title']);
	html = html.replace('[Summary]', tip['Summary']);
	html = html.replace(/\[ID\]/g, tip['TipID']);
	html = html.replace('[Age]', tip['Age']);
	html = html.replace('[Divider]', first ? '' : '<div class="divider"></div>');
	html = html.replace(/\[DomainName\]/g, tip['DomainName']);
	html = html.replace('[DomainID]', tip['DomainID']);
	html = html.replace('[CompanyName]', tip['ProperDomain']);
	html = html.replace('[Image]', '<img class="domainImage" src="' + tip['ImageUrl'] + '" />');
	html = html.replace(/\[Url\]/g, tip['Url']);

	$('tipsContainer').innerHTML += html;
}

function renderReview(review, first)
{
	var html = document.getElementById('reviewHtml').innerHTML;
	html = html.replace('[User]', review['UserName']);
	html = html.replace('[Title]', review['Title']);
	html = html.replace('[Text]', review['Message']);
	html = html.replace('[ID]', review['RatingID']);
	html = html.replace('[AnswerText]', review['CompanyMessage']);
	html = html.replace('[UserID]', review['UserID']);
	html = html.replace('[Created]', review['Created']);
	html = html.replace('[StarCss]', review['StarCss']);
	html = html.replace('[Divider]', first ? '' : '<div class="divider"></div>');
	html = html.replace(/\[DomainName\]/g, review['DomainName']);
	html = html.replace(/\[DomainID\]/g, review['DomainID']);
	html = html.replace('[CompanyName]', review['CompanyName']);
	html = html.replace('[LikedBy]', usefulMarkup(review['LikedBy']));
	html = html.replace('[Image]', '<img class="domainImage" src="DomainImage.aspx?DID=' + review['DomainID'] + '" alt="' + review['CompanyName'] + '" />');
	html = html.replace('[RatingImages]', review['Images']);
	html = html.replace('[ReplyMarkup]', review['ReplyMarkup']);

	var likedByMe = false;
	var userid = document.getElementById('userid').innerHTML;
	if (userid.length > 0 && review['LikedBy'] != null && review['LikedBy'].length > 0)
		for (var i = 0; i < review['LikedBy'].length; i++)
			if (review['LikedBy'][i].UserID == userid)
				likedByMe = true;
				
	html = html.replace('[LikedByMe]', likedByMe ? ' active' : '');
		
	document.getElementById("reviewContainer").innerHTML += html;
}
function updateUserList()
{
	var users = topusers[$('topUserCategory').options[$('topUserCategory').selectedIndex].value + $('topUserTimeFrame').options[$('topUserTimeFrame').selectedIndex].value];
	if (users.length == 0)
	{
		$('topUserList').innerHTML = '';
		return;
	}
	var html = '';
	var description = $('topUserCategory').options[$('topUserCategory').selectedIndex].text.toLowerCase();
	for (var i = 0; i < users.length; i++)
		html += '<li>' + (i + 1) + '. <a href="/UserProfile.aspx?UID=' + users[i][0] + '">'
		+ users[i][1] + '</a>' + ' - ' + users[i][2] + ' ' + description + '</li>';
	$('topUserList').innerHTML = html;
	$('topUserList').firstChild.className = 'first';
	$('topUserList').getChildren('li').addEvent('click', clickTopUser);
}
function clickTopUser(e)
{
	var target;
	if (!e)
		var e = window.event;
	if (e.target)
		target = e.target;
	else if (e.srcElement)
		target = e.srcElement;
	if (target.nodeType == 3)
		target = target.parentNode;

	if (target.tagName.toUpperCase() != 'LI')
		return;

	location.href = $(target).getChildren('a')[0].href;
	return false;
}

function deleteReview(element)
{
	if (!confirm($('deleteconfirmation').innerHTML))
		return false;

	var contribution = $(element.parentNode.parentNode.parentNode);
	var domainID = contribution.getChildren('div')[0].id;
	var pager = $(contribution.parentNode.parentNode).getChildren('div.pager')[0];

	$('reviewContainer').innerHTML = '';
	toggleLoader(true);

	new Request({ url: '/AJAX/DeleteReview.aspx?domain=' + domainID,
		onSuccess: function(responseText, responseXML)
		{
			if (responseText.contains('SUCCESS'))
			{
				pager.itemCount--;
				if (pager.offset >= pager.itemCount)
					pager.offset -= pager.pageSize;
				pager.update(pager.offset, pager.itemCount, pager.pageSize);
				if ($('userRatingCount'))
				{
					var previousCount = /[0-9]+/.exec($('userRatingCount').innerHTML);
					$('userRatingCount').innerHTML = $('userRatingCount').innerHTML.replace(/[0-9]+/, (previousCount | 0) - 1);
				}
			}
			else
				alert(responseText);
		}
	}).send();

	return false;
}
function deleteReview(element)
{
	if (!confirm($('deleteevaluationconfirmation').innerHTML))
		return false;

	var contribution = $(element.parentNode.parentNode.parentNode);
	var domainID = contribution.getChildren('div')[0].id;
	var pager = $(contribution.parentNode.parentNode).getChildren('div.pager')[0];

	$('reviewContainer').innerHTML = '';
	toggleLoader(true);

	new Request({ url: '/AJAX/DeleteReview.aspx?domain=' + domainID,
		onSuccess: function(responseText, responseXML)
		{
			if (responseText.contains('SUCCESS'))
			{
				pager.itemCount--;
				if (pager.offset >= pager.itemCount)
					pager.offset -= pager.pageSize;
				pager.update(pager.offset, pager.itemCount, pager.pageSize);

				var previousCount = /[0-9]+/.exec($('userRatingCount').innerHTML);
				$('userRatingCount').innerHTML = $('userRatingCount').innerHTML.replace(/[0-9]+/, (previousCount | 0) - 1);
				$('reviewTab').innerHTML = $('reviewTab').innerHTML.replace(/[0-9]+/, (previousCount | 0) - 1);
			}
			else
				alert(responseText);
		}
	}).send();

	return false;
}
function deleteTip(element)
{
	if (!confirm($('deletementionconfirmation').innerHTML))
		return false;

	var contribution = $(element.parentNode.parentNode.parentNode);
	var tipID = contribution.id;
	var pager = $(contribution.parentNode.parentNode).getChildren('div.pager')[0];

	$('tipsContainer').innerHTML = '';
	toggleLoader(true);

	new Request({ url: '/AJAX/DeleteTip.aspx?tip=' + tipID,
		onSuccess: function(responseText, responseXML)
		{
			if (responseText.contains('SUCCESS'))
			{
				pager.itemCount--;
				if (pager.offset >= pager.itemCount)
					pager.offset -= pager.pageSize;
				pager.update(pager.offset, pager.itemCount, pager.pageSize);

				// Update counts
				var previousCount = /[0-9]+/.exec($('userMentionCount').innerHTML);
				$('userMentionCount').innerHTML = $('userMentionCount').innerHTML.replace(/[0-9]+/, (previousCount | 0) - 1);
				$('mentionTab').innerHTML = $('mentionTab').innerHTML.replace(/[0-9]+/, (previousCount | 0) - 1);
			}
			else
				alert(responseText);
		}
	}).send();

	return false;
}

function preselectWebsite(email, website)
{
	if (email.value.length == 0 || email.value.indexOf('@') == 0 || email.value.lastIndexOf('.') < email.value.indexOf('@'))
		return;

	if (document.getElementById(website).value == '')
		document.getElementById(website).value = 'www.' + email.value.substring(email.value.indexOf('@') + 1);
}