function showCommentForm()
	{
	//document.getElementById("comment_form").style.display = (document.getElementById("comment_form").style.display =="block" ? "none" : "block");
	document.location.hash="#comment_form";
	//if (document.getElementById("comment_form").style.display=="block")
	if (document.getElementById("new_comment"))
		document.getElementById("new_comment").focus();
	}
function trimTextarea(ta, len, ev)
	{
	if (ta.value.length>len)
		ta.value=ta.value.substring(0, len);

	if (ev.keyCode)
		var keyCode=ev.keyCode;
	else
		var keyCode=ev.which;
	if (keyCode==13)
		submitComment();
	}
function submitComment()
	{
	if ($('new_comment').value=='')
		{
		$("new_comment").focus();		
		return false;
		}

	/*if (!uhr)
		{
		$('new_rating_text').innerHTML="<span class='error_message'>Please rate this widget:&nbsp;</span>";
		return false;
		}*/

	var dateOb=new Date();

	var query = "/widgetComments/submitComment?time="+dateOb.getTime();
	if ($('current_comment').value!=0 && (page=findPage()))
		query+="&page="+page;

	new Ajax.Request(query, {method:'post', parameters: $('new_comment_form').serialize(true), onSuccess:function(transport){
			var response = transport.responseText;
			var error = '';
			if (response.indexOf('START-ERROR')>-1)
				{
				error = response.substring(response.indexOf('START-ERROR')+11, response.indexOf('END-ERROR'));
				response = response.substring(response.indexOf('END-ERROR')+9);
				}
			if ($('captcha_error'))
				$('captcha_error').innerHTML = error;
			$('comment_block').innerHTML=response;
			fixTimes();
			$('current_comment').value='';
			$('new_comment_form').reset();
			if ($('captcha'))
				Recaptcha.create('6Le2bQAAAAAAADVIgN--i4nNIDrw5COzV1qg4lxQ', 'captcha', {theme: 'clean'});
			}});
	
	return false;
	}
function editComment(id)
	{
	document.getElementById("comment_form").style.display="block";
	document.getElementById('current_comment').value=id;
	document.getElementById('comment_submit').value="Edit Comment";
	document.getElementById("new_comment").value=document.getElementById("comment_"+id).innerHTML;
	document.getElementById("new_comment").focus();
	}
function deleteComment(id)
	{
	if (confirm('Are you sure you want to delete this comment?'))
		{
		var wid=document.getElementById('comment_widget_id').value;

		var query = "/widgetComments/deleteComment?wid="+wid+"&id="+id;
		if (page=findPage())
			query+="&page="+page;
		
		new Ajax.Request(query, {method:'get', onSuccess:function(transport){document.getElementById('comment_block').innerHTML=transport.responseText; fixTimes();}});
		}
	}
function submitRating(rating)
	{
	var wid=document.getElementById('comment_widget_id').value;
	
	var dateOb=new Date();

	var query = "/widgets/submitRating?time="+dateOb.getTime()+"&wid="+wid+"&rating="+rating+"&uhr="+uhr;

	var commReq="/widgetComments/gatherComments/"+wid+"?time="+dateOb.getTime();
	var rateReq="/widgets/gatherRatings?wid="+wid+"&time="+dateOb.getTime()+"&rate=false";

	if (page=findPage())
		commReq+="&page="+page;

	if (!uhr)
		{
		newText="&nbsp;("+(totalRatings+1)+" vote";
		if (totalRatings>0)
			newText+="s";
		newText+=')';
		document.getElementById('widget_rating_count').innerHTML=newText;
		totalRatings++;
		uhr=true;
		}

	user_rating=rating;

	document.getElementById('widget_rating').innerHTML='<em style="float: left">Processing&hellip;</em>';

	new Ajax.Request(query, {method:'get', onSuccess:function(transport)
		{
		document.getElementById('new_rating_form').innerHTML=transport.responseText;
		new Ajax.Request(rateReq, {method:'get', onSuccess:function(transport){document.getElementById('widget_rating').innerHTML=transport.responseText}});		
		new Ajax.Request(commReq, {method:'get', onSuccess:function(transport){document.getElementById('comment_block').innerHTML=transport.responseText}});
		}});
	}
function findPage()
	{
	/*if (document.location.search && document.location.search.indexOf('page')>-1)
		{
		searchBits=document.location.search.split('?')[1].split('&');
		for (var i=0; i<searchBits.length; i++)
			{
			if (searchBits[i].indexOf('page')>-1)
				{
				return (searchBits[i].split('=')[1]);
				}
			}
		}
	return false;*/
	return document.getElementById('comment_page').value;
	}
function getNewStars(rating, rateFlag)
	{
	var tipArray=new Array('This widget sucks!', 'This widget is flawed', 'This widget is adequate', 'This widget is pretty good', 'This widget rules!');
	var starStr="";
	for (var i=0; i<5; i++)
		{
		starStr+='<div class="rating_star_';
		if (i<rating)
			starStr+='full';
		else
			starStr+='empty';
		if (!rateFlag)
			starStr+='_locked';
		starStr+='" title="';
		if (rateFlag)
			starStr+=tipArray[i]+'" onmouseover="this.parentNode.innerHTML=getNewStars('+(i+1)+');" onclick="submitRating('+(i+1)+');"';
		else
			starStr+=tipArray[rating-1]+'"';
		starStr+='></div>';
		}
	return starStr;
	}
function updateStars(elem, rating)
	{
	for (var i=0; i<elem.childNodes.length; i++)
		{
		if (i<rating)
			elem.childNodes[i].className='rating_star_full';
		else
			elem.childNodes[i].className='rating_star_empty';
		}
	}
function fixTimes()
	{
	elems = $$('.comment_time');
	for(var i=0; i<elems.length; i++)
		eval(elems[i].firstChild.innerHTML);
	}