var vote = -1;
var item_id=-1;
var ajax=true;
var review='';
var name='';
var subject='';
var email='';
function vot(nom,id)
{
	item_id = id;
	vote = nom;
	voteLight();
	updateVote();
}
function votn(id)
{
	item_id = id;
	vote=0;
	document.getElementById('vin_'+id).className='ynactive';
	document.getElementById('viy_'+id).className='yn';
	updateVote();
}
function voty(id)
{
	item_id = id;
	vote=1;
	document.getElementById('viy_'+id).className='ynactive';
	document.getElementById('vin_'+id).className='yn';
	updateVote();
}
function updateVote()
{
	if(!(use_rvw)){ajaxVote();}
}
function voteLight(id)
{
	highlight(vote,prev_src2,id);
}
function highlight(val,toSrc,id)
{
	try
	{
	if(typeof toSrc == 'undefined'){toSrc=prev_src2;}
	for(i=1;i<=prev_scale;i++)
	{
		if(i<=val)
			document.getElementById('vi'+id+'_'+i).src=toSrc;
		else
			document.getElementById('vi'+id+'_'+i).src=prev_src1;
	}
}
catch(e){window.status=(id);}
}
function highlightTo(val,id){highlight(val,prev_src3,id);}
function ajaxVote()
{
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				ajax=false;
			}
		}
	}
	xmlHttp.onreadystatechange=function()
	{
			var id = item_id;
		if(xmlHttp.readyState==4)
		{
			var reply = xmlHttp.responseText;
				//alert(reply);
			if(reply.indexOf('rtg:')>-1)
			{
				var new_rtg = reply.substring(reply.indexOf('rtg:')+4);
				var new_votes = new_rtg.substring(new_rtg.indexOf(',')+1);
				new_rtg = new_rtg.substring(0,new_rtg.indexOf(','));
				updateRating(new_rtg,new_votes,id);
			}
			if(use_rvw && reply.indexOf('error:')==-1)
			{
				document.getElementById('review_div_'+id).style.display="none";
				document.getElementById('review_conf_div_'+id).style.display="block";
			}
			else if(reply.indexOf('error:')>-1)
			{
				document.getElementById('review_div_'+id).style.display="none";
				document.getElementById('review_conf_div_'+id).style.display="block";
				var msg = document.getElementById('review_submit_'+id);
				var err_code = reply.substring(reply.indexOf('error:')+6);
				if(err_code==1)
					msg.innerHTML='You have already rated/reviewed this. Not submitted';
				else
					msg.innerHTML='An unkwnown error has occurred with your submisison.';
			}
		}
	}
	if(ajax)
	{
		var send=false;
		try{email=document.getElementById('review_entry_email_'+item_id).value;}
		catch(e){email='';}
		if(email_prompt==1 && email==''){alert('You must submit a valid email!');}
		else if(use_rvw)
		{
			try{tinyMCE.triggerSave();}catch(e){}
			review = document.getElementById('review_entry_'+item_id).value;
			review=review.replace(/&/g,'%26');
			name = document.getElementById('review_entry_name_'+item_id).value;
			subject = document.getElementById('review_entry_subject_'+item_id).value;
			if(review.length<=1)
			{
				if(vote!=-1 && use_rtg)
				{
					if(confirm('You are about to submit a rating without a review, as your entry is too short. Is this okay?'))
					{
						send=true;
					}
				}
				else{alert('You must submit a rating and/or enter a review about the item to submit!');}
			}
			else
			{
				if(vote==-1 && use_rtg)
				{
					if(confirm('You are about to submit a review without a rating. Do you wish to submit only a review?'))
					{
						send=true;
					}
				}
				else{send=true;}
			}
		}
		else if(use_rtg)
		{
			if(vote!=-1)
				send=true;
			else
				alert('You must select a rating!');
		}
		if(send)
		{
			xmlHttp.open("GET","/ajax_dbvote.aspx?vt=" + vote + "&name=" + name + "&email=" + email + "&subject=" + subject + "&db_item=" + item_id + "&rvw=" + review,true);
			//alert("/ajax_dbvote.aspx?vt=" + vote + "&name=" + name + "&email=" + email + "&subject=" + subject + "&db_item=" + item_id + "&rvw=" + review);
			xmlHttp.send(null);
		}
	}
	//remove the textarea node (if it's using the wysiwyg). this improves the user experience b/c otherwise, after submitting the review
	//form and refreshing the page to see their review posted, the user would still see their comment in the wysiwyg editor.
	//this is a known issue in Firefox and the only way around it is to remove the element entirely.
	var textAreaParent = document.getElementById('td_parent_of_textarea');
	if(textAreaParent != null)
	{
		var textArea = document.getElementById('review_entry_' + item_id);
		textAreaParent.removeChild(textArea);
	}
	
}
function ajaxReview(id)
{
	item_id=id;
	ajaxVote();
}
function updateRating(num,votes,id)
{
	try
	{
		if(prev_type==2)
		{
			var average = Math.round(num/votes*10)/10;
			document.getElementById('rtg_text_' + id).innerHTML='<span class="fraction_num">' + average + '</span>/<span class="fraction_denom">' + prev_scale + '</span><span class="num_votes">' + votes + ' votes</span>';
			var ret = '<ul class="rtg_img_list">';
			for(ct=1;ct<=prev_scale;ct++)
			{
				if(ct<=average)
				{
					ret = ret + '<li class="vote"><img src="' + prev_src2 + '"/></li>';
				}
				else if((ct-1) < (average))
				{
					var pct = Math.round(Number((average-(ct-1))/1*1000))/10;
					ret = ret + '<li class="half_vote" style="position:relative;"><div class="nv_container"><img src="' + prev_src1 + '"/></div><div style="position:absolute;left:0px;top:0px;width:' + pct + '%;" class="half_img"><img src="' + prev_src2 + '" alt="half_vote"/></div></li>';
				}
				else
				{
					ret = ret + '<li class="novote"><img src="' + prev_src1 + '"/></li>';
				}
			}
			ret = ret + '</ul>';
			document.getElementById('rtg_imgs_' + id).innerHTML=ret;
		}
		else if(prev_type==1)
		{
			var yes = num;
			var no = votes-num;
			document.getElementById("rtg_imgs_" + id).innerHTML='<div class="rtg_display"><div class="yVotes"><a id="yes_votes">' + yes + '</a></span><img src="' + prev_src2 + '" alt="yes"/></div><div id="nVotes"><a id="no_votes">' + no + '</a><img src="' + prev_src1 + '" alt="no"/></div></div>';
		}
	}
	catch(e){}
}
