var isRatingDisplayed = false;
var isReviewsDisplayed = false;
var currentHilite = null;
var regularColor = "#FFFFFF";
var hilitedColor = "#FDECC2";
var borderString = "solid 1px #C12621";
var noBorderString = "none 0px #000000";

function RateSite_Init ()
{
	return true;
}

function RateSite_OnClick (id, name, target)
{
	document.forms[0].siteId.value = id;
	
	RateSite_Show (name, target);
	
	return false;
}

function RatingSubmitButton_OnClick ()
{
	RateSite_OnSubmit ();
	
	return true;
}

function RatingCancelButton_OnClick ()
{
	RateSite_Hide ();
	RateSiteForm_Clear ();
	
	return false;
}

function ViewReviews_OnClick (id, name, target)
{
//	alert ("ViewReviews_OnClick()");
	ViewReviews_Show (id, name, target);
	
	return false;
}

function ViewReviewsClose_OnClick ()
{
	ViewReviews_Hide ();
	
	return false;
}

function RateSite_Show (name, target)
{
//	alert ("RateSite_Show()");
	var targetLayer = null;
	var ratingForm = null;
	var siteTitle = null;
	var topOffset = 0;
	var leftOffset = 0;

	if (isReviewsDisplayed == true)
	{
		ViewReviews_Hide ();
	}
	
//	alert ("Here 1");
	ChangeRatingLinkHilite (target + "Link");
//	alert ("Here 2");
	
	if (document.all)
	{
		ratingForm = document.all["ratingForm"];
		siteTitle = document.all["ratingSiteName"];
		targetLayer = document.all[target];
	}
	else
	{
		ratingForm = document.getElementById ("ratingForm");
		siteTitle = document.getElementById ("ratingSiteName");
		targetLayer = document.getElementById (target);
	}
	
	topOffset = Number (targetLayer.offsetTop);
	leftOffset = Number (targetLayer.offsetLeft);

//	alert (topOffset.toString () + "," + leftOffset.toString ());
	siteTitle.innerHTML = "Rate Site: \"" + name + "\"";
	ratingForm.style.top = topOffset.toString() + "px";
	ratingForm.style.left = leftOffset.toString() + "px";
	ratingForm.style.visibility = "visible";
	isRatingDisplayed = true;
//	alert ("RateSite_Show() Done");
	
	return true;
}

function ViewReviews_Show (id, name, target)
{
//	alert ("ViewReviews_Show()");
	var viewReviewsFrame = null;
	var siteTitle = null;
	var targetLayer = null;
	var topOffset = 0;
	var leftOffset = 0;

	if (isRatingDisplayed == true)
	{
		RateSite_Hide ();
	}
	
	ChangeRatingLinkHilite (target + "Link");
	
	if (document.all)
	{
		viewReviewsFrame = document.all["viewReviewsContainer"];
		siteTitle = document.all["reviewsSiteName"];
		targetLayer = document.all[target];
	}
	else
	{
		viewReviewsFrame = document.getElementById ("viewReviewsContainer");
		siteTitle = document.getElementById ("reviewsSiteName");
		targetLayer = document.getElementById (target);
	}
	
	topOffset = Number (targetLayer.offsetTop);
	leftOffset = Number (targetLayer.offsetLeft);
	
//	alert (topOffset.toString () + "," + leftOffset.toString ());
	viewReviewsFrame.style.top = topOffset.toString() + "px";
	viewReviewsFrame.style.left = leftOffset.toString() + "px";
	viewReviewsFrame.style.visibility = "visible";
	isReviewsDisplayed = true;
//	alert ("ViewReviews_Show() Done");

	return ViewReviews_OnDisplay (id);
}

function RateSite_Hide ()
{
//	alert ("RateSite_Hide()");
	var ratingForm = null;
	
	if (document.all)
	{
		ratingForm = document.all.ratingForm;
	}
	else
	{
		ratingForm = document.getElementById ("ratingForm");
	}
	
	if (currentHilite != null)
	{
		ResetCurrentHilite ();
	}
	
	ratingForm.style.visibility = "hidden";
	isRatingDisplayed = false;
	
	return true;
}

function ViewReviews_Hide ()
{
//	alert ("ViewReviews_Hide()");
	var reviewsForm = null;
	
	if (document.all)
	{
		reviewsForm = document.all["viewReviewsContainer"];
	}
	else
	{
		reviewsForm = document.getElementById ("viewReviewsContainer");
	}
	
	if (currentHilite != null)
	{
		ResetCurrentHilite ();
	}
	
	reviewsForm.style.visibility = "hidden";
	isReviewsDisplayed = false;
	
	return true;
}

function ChangeRatingLinkHilite (name)
{
//	alert ("ChangeRatingLinkHilite()");
	var myLink = null;

	if (currentHilite != null)
	{
		ResetCurrentHilite ();
	}
	
	if (document.all)
	{
		myLink = document.all[name];
	}
	else
	{
		myLink = document.getElementById (name);
	}
	
	myLink.style.backgroundColor = hilitedColor;
	myLink.style.border = borderString;
	myLink.style.textDecoration = "none";
	currentHilite = myLink;
	
	return true;
}

function ResetCurrentHilite ()
{
	currentHilite.style.backgroundColor = regularColor;
	currentHilite.style.border = noBorderString;
	currentHilite.style.textDecoration = "underline";
	currentHilite = null;
	
	return true;
}
