/* x210109
function SendMessage(recipient_input,message_input,subject_input,response_div,responder)
{
	this.recipient_input_id=recipient_input;
	this.message_input_id=message_input;
	this.subject_input_id=subject_input;
	this.response_div_id=response_div;
	this.responder=responder;
	
	this.last_request=null;
}

SendMessage.prototype.DoRequest = function()
{
	var recipient = document.getElementById(this.recipient_input_id).value;
	var message = document.getElementById(this.message_input_id).value;
	var subject = document.getElementById(this.subject_input_id).value;
	
	if (recipient == null || recipient.length == 0)
	{
		document.getElementById(this.response_div_id).innerHTML = MessageError('Member name was invalid!');
		return;
	}
	else if (message == null || message.length == 0)
	{
		document.getElementById(this.response_div_id).innerHTML = MessageError('Message was invalid!');
		return;
	}
	else if (subject == null || subject.length == 0)
	{
		document.getElementById(this.response_div_id).innerHTML = MessageError('Subject was invalid');
		return;
	}
	
	var uri = this.responder+'?recipient='+recipient+'&message='+escape(message)+'&subject='+subject;
	
	if (this.last_request != uri)
	{
		SimpleResponse(this.response_div_id,MessageLoading('Sending...'));
		
		LoadDoc(this,uri,this.ParseResponse,true);
		this.last_request = uri;
	}
}

SendMessage.prototype.ParseResponse = function(parentObj,resultText)
{
	StaticResponse(parentObj.response_div_id,resultText);
}
*/

function SuggestMember(text_input,results_div,parser_func,objname)
{
	this.text_input_id=text_input;
	this.results_div_id=results_div;
	this.parser_function=parser_func;
	this.obj_name=objname;
	
	this.suggest_last_value=null;
	this.ar_suggested_users=null;
	this.context_inuse=false;
	this.suggest_ready=true;
}

SuggestMember.prototype.Suggest = function(uri,value)
{
	if (value.length == 0 || value == null)
	{
		this.CloseSuggestions(this.results_div_id);
		return;
	}
	else if (this.suggest_last_value == value)
	{
		return;	
	}

	setTimeout(this.obj_name+'.GetSuggestions(\"'+uri+'\");',500);
}

SuggestMember.prototype.ResultsActive = function()
{
	this.context_inuse = true;
}

SuggestMember.prototype.ResultsInActive = function()
{
	this.context_inuse = false;
}

SuggestMember.prototype.GetSuggestions = function(uri)
{
	if (this.suggest_ready)
	{
		this.suggest_ready = false;
		
		this.suggest_last_value = document.getElementById(this.text_input_id).value;

		LoadDoc(this,uri+'?string='+this.suggest_last_value,this.parser_function,false);
	}
	else
	{
		// dirty timeout hack
		setTimeout(this.obj_name+'.SetSuggestReady();',1500);
	}
}

SuggestMember.prototype.CloseSuggestions = function()
{
	if (!this.context_inuse)
	{
		document.getElementById(this.results_div_id).style.display = 'none';
	}
}

SuggestMember.prototype.SetSuggestReady = function()
{
	this.suggest_ready = true;
}

SuggestMember.prototype.SetMember = function(id)
{
	document.getElementById(this.text_input_id).value = this.ar_suggested_users[id];
	document.getElementById(this.results_div_id).style.display = 'none';
}

function ParseSuggestions(parentObj,resultText)
{
	parentObj.SetSuggestReady();
	
	parentObj.ar_suggested_users = resultText.split(',');
	
	var ar_suggestions = new Array();
	for (var i=0;i<parentObj.ar_suggested_users.length;++i)
	{
		ar_suggestions.push('<a href=\"javascript:;\" onclick=\"'+parentObj.obj_name+'.SetMember('+i+')\">'+parentObj.ar_suggested_users[i]+'</a>');
	}
	
	document.getElementById(parentObj.results_div_id).innerHTML = ar_suggestions.join('<br>');
	document.getElementById(parentObj.results_div_id).style.display = 'block';	
}

function SimpleRequest(response_div_id,response_types,load_msg)
{
	this.response_div_id=response_div_id;
	this.response_types=response_types;
	this.load_msg=load_msg;
	this.floodcheck=true;
}

SimpleRequest.prototype.DoRequest = function(uri)
{
	SimpleResponse(this.response_div_id,this.load_msg);
	LoadDoc(this,uri,this.ParseResponse,this.floodcheck);
}

SimpleRequest.prototype.ParseResponse = function(parentObj,resultText)
{
	if (parentObj.response_types == undefined)
	{
		var response = resultText;
	}
	else
	{
		for (var key in parentObj.response_types)
		{
			if (key == resultText)
			{
				var response = parentObj.response_types[key];
				break;
			}
		}
	}
	
	document.getElementById(parentObj.response_div_id).innerHTML = response;
}

function CSA(input_votetype_id,uri,input_rating_id,input_reasons_id,input_freeform_id,structured_prefix,approve_div_id,disapprove_div_id,feedback_div_id,skip_feedback_div_id,structured_div_id,freeform_div_id,structured_link_id,freeform_link_id)
{
	this.input_votetype_id=input_votetype_id;
	this.uri=uri;
	this.input_freeform_id=input_freeform_id;
	this.structured_prefix=structured_prefix;
	this.vote_visibility={'APP':false,'DISP':false}
	this.vote_reverse={'APP':'DISP','DISP':'APP'}
	this.vote_parentdivs={'APP':approve_div_id,'DISP':disapprove_div_id}
	this.vote_menus={'APP':input_rating_id,'DISP':input_reasons_id}
	this.modes={'0':{'link':structured_link_id,'div':structured_div_id},'1':{'link':freeform_link_id,'div':freeform_div_id}}
	this.modes_reverse={'0':'1','1':'0'}
	
	this.feedback_div_id=feedback_div_id;
	this.skip_feedback_div_id=skip_feedback_div_id;
	
	this.structured_div_id=structured_div_id;
	this.freeform_div_id=freeform_div_id;
	this.structured_link_id=structured_link_id;
	this.freeform_link_id=freeform_link_id;

	this.structured_titles={'1':'Pros','2':'Cons','3':'Improvements','4':'Notes'}
	this.feedback_checked=false;
	this.feedback_exists=false;
}

CSA.prototype.StartVote = function(type,reason_value)
{
	document.getElementById(this.input_votetype_id).value = type;
	
	this.SelectReason(reason_value);
	
	if (!this.feedback_checked)
	{
		LoadDoc(this,this.uri,this.CheckFeedback,true);
	}
	
	if (this.vote_visibility[type])
	{
		var bool = false;
		var visibility = 'hidden';
		var border = 'none';
	}
	else
	{
		var bool = true;
		var visibility = 'visible';
		var border = '2px solid #FFD800';
	}
	
	this.vote_visibility[type] = bool;
	document.getElementById(this.vote_menus[type]).style.visibility = visibility;
	document.getElementById(this.vote_parentdivs[type]).style.border = border;
	
	var reverse_vote = this.vote_reverse[type];
	
	if (this.vote_visibility[reverse_vote])
	{
		this.vote_visibility[reverse_vote] = false;
		document.getElementById(this.vote_menus[reverse_vote]).style.visibility = 'hidden';
		document.getElementById(this.vote_parentdivs[reverse_vote]).style.border = 'none';
	}
	
	if (!this.vote_visibility['APP'] && !this.vote_visibility['DISP'])
	{
		document.getElementById(this.feedback_div_id).style.display = 'none';
	}
}

CSA.prototype.CheckFeedback = function(parentObj,resultText)
{
	parentObj.feedback_checked = true;
	
	if (resultText == '1')
	{
		parentObj.feedback_exists = true;
	}
}

CSA.prototype.SelectReason = function(value)
{
	if (!this.feedback_exists)
	{
		var div = this.feedback_div_id;
	}
	else
	{
		var div = this.skip_feedback_div_id;
	}
		
	if (value > 0 && value != '#')
	{
		var display = 'block';			
	}
	else
	{
		var display = 'none';
	}
	
	document.getElementById(div).style.display = display;
}

CSA.prototype.FeedbackMode = function(type)
{
	var rev = this.modes_reverse[type];
	var link_id = this.modes[type]['link'];
	var rev_link_id = this.modes[rev]['link'];
	var show_div = this.modes[type]['div'];
	var hide_div = this.modes[rev]['div'];
	
	if (type == 1)
	{
		document.getElementById(this.input_freeform_id).value = this.BuildStructured();
	}
	
	document.getElementById(link_id).style.fontWeight = 'bold';
	document.getElementById(rev_link_id).style.fontWeight = 'normal';
	document.getElementById(link_id).style.color = '#E2E2E2';
	document.getElementById(rev_link_id).style.color = '#FFD800';
	document.getElementById(show_div).style.display = 'block';
	document.getElementById(hide_div).style.display = 'none';
}

CSA.prototype.BuildStructured = function()
{
	var feedback = new Array();
	
	this.structured_length = 0;
	
	for (var key in this.structured_titles)
	{
		var value = document.getElementById(this.structured_prefix+key).value;
		
		if (value.length > 0)
		{
			feedback.push('<b>'+this.structured_titles[key]+':</b> '+value);
			this.structured_length += value.length;
		}
	}
	
	return feedback.join('\n');
}

CSA.prototype.SubmitStructured = function()
{
	document.getElementById(this.input_freeform_id).value = this.BuildStructured();
	
	if (!this.feedback_exists && this.structured_length < 10)
	{
		this.Submit(false);
	}
	else
	{
		this.Submit(true);
	}
}

CSA.prototype.SubmitFreeform = function()
{
	if (!this.feedback_exists && document.getElementById(this.input_freeform_id).value.length < 5)
	{
		this.Submit(false);
	}
	else
	{
		this.Submit(true);
	}
}

CSA.prototype.Submit = function(bool)
{
	if (!bool) alert('You must supply adequate feedback!');
	else document.csa.submit();
}

function ShowUsers(uri)
{
	this.uri=uri;
}

ShowUsers.prototype.DoRequest = function(query_val,id)
{
	if (document.getElementById(id).style.display == 'none')
	{
		SimpleResponse(id,MessageLoading('Loading...'));
		this.current_element = id;
		LoadDoc(this,this.uri+'?query='+query_val,this.ParseResponse,true);
	}
	else
	{
		SimpleResponse(id,'');
	}
}

ShowUsers.prototype.ParseResponse = function(parentObj,resultText)
{
	var ar_rows = resultText.split(',');
			
	var ar_users = new Array();
	for (var i=0;i<ar_rows.length;i++)
	{
		var ar_user = ar_rows[i].split(':');
		ar_users.push((ar_user[0]>0?'<a href=\"'+DOMAIN+'/members/'+ar_user[0]+'\">'+ar_user[1]+'</a>':'<i><u>You</u></i>'));
	}
	
	SimpleResponse(parentObj.current_element,'<img src=\"'+IMAGE_DOMAIN+'/ico/dline.gif\"> '+ar_users.join(', '));
}

function StampIt(uri,response_div_id,stamp_id_prefix)
{
	this.uri=uri;
	this.response_div_id=response_div_id;
	this.stamp_id_prefix=stamp_id_prefix;
	
	this.ar_stamps = new Array();
	this.num_selected = 0;
	this.span_count_prefix = 'stmpcnt';
}

StampIt.prototype.DoRequest = function()
{
	if (this.ar_stamps.length > 0)
	{
		var stamps = this.ar_stamps.join(',');
		
		if (stamps != this.last_response)
		{
			SimpleResponse(this.response_div_id,MessageLoading('Saving...'));
			
			LoadDoc(this,this.uri+':'+stamps,this.ParseResponse,true);
			
			this.last_response = stamps;
		}
	}
	else
	{
		SimpleResponse(this.response_div_id,MessageError('No stamps selected'));
	}
}

StampIt.prototype.ParseResponse = function(parentObj,resultText)
{
	switch (resultText)
	{
		case '2':
			var msg = MessageError('No stamps were selected');
			break;
		case '3':
			var msg = MessageError('Fatal error occured');
			break;
		case '4':
			var msg = MessageError('Please login');
			break;
		case '5':
			var msg = MessageError('Failed to insert new stamp');
			break;
		case '6':
			var msg = MessageError('Failed to remove old stamps');
			break;
		default:
			var msg = MessageOk('Stamps submitted successfully');
	}
	
	if (parentObj.ar_last_stamps != undefined)
	{
		for (var i=0;i<parentObj.ar_stamps.length;i++)
		{
			if (!in_array(parentObj.ar_stamps[i],parentObj.ar_last_stamps))
			{
				// increment type	
				parentObj.ChangeCount(parentObj,parentObj.ar_stamps[i],1);
			}
		}
			
		for (var i=0;i<parentObj.ar_last_stamps.length;i++)
		{
			if (!in_array(parentObj.ar_last_stamps[i],parentObj.ar_stamps))
			{
				// decrement type	
				parentObj.ChangeCount(parentObj,parentObj.ar_last_stamps[i],-1);
			}
		}
	}
	else
	{
		for (var i=0;i<parentObj.ar_stamps.length;i++)
		{
			// increment type
			parentObj.ChangeCount(parentObj,parentObj.ar_stamps[i],1);
		}
	}
	
	parentObj.ar_last_stamps = new Array();
	for (var i=0;i<parentObj.ar_stamps.length;i++)
	{
		parentObj.ar_last_stamps.push(parentObj.ar_stamps[i]);
	}
	
	SimpleResponse(parentObj.response_div_id,msg);
}

StampIt.prototype.ChangeCount = function(parentObj,typeid,num)
{
	if (document.getElementById(parentObj.span_count_prefix+typeid) != undefined)
	{
		var count = parseInt(document.getElementById(parentObj.span_count_prefix+typeid).innerHTML);
		count += num;
		
		document.getElementById(parentObj.span_count_prefix+typeid).innerHTML = count;
	}
}

StampIt.prototype.ModArray = function(val)
{
	var key = -1;
	
	for (var i=0;i<this.ar_stamps.length;i++)
	{
		if (this.ar_stamps[i] == val)
		{
			key = i;
			break;
		}	
	}
	
	if (key != -1)
	{
		--this.num_selected;
		this.ar_stamps.splice(key,1);
		document.getElementById(this.stamp_id_prefix+val).style.color = '#FFD800';
		document.getElementById(this.stamp_id_prefix+val).style.MozOpacity = '0.3';
	}
	else if (this.num_selected < 4)
	{
		++this.num_selected;
		this.ar_stamps.push(val);
		document.getElementById(this.stamp_id_prefix+val).style.color = '#F6FF6B';
		document.getElementById(this.stamp_id_prefix+val).style.MozOpacity = '1';
	}
}

/* x120209
function CSAv5(response_div_id,input_votetype_id,uri,input_reasons_id,input_freeform_id,structured_prefix,criterial_prefix,approve_div_id,disapprove_div_id,feedback_div_id,feedback_control_div_id,skip_feedback_div_id,structured_div_id,criterial_div_id,freeform_div_id,structured_link_id,criterial_link_id,freeform_link_id,criterial_titles)
{
	this.response_div_id=response_div_id;
	this.input_votetype_id=input_votetype_id;
	this.uri=uri;
	this.input_freeform_id=input_freeform_id;
	this.structured_prefix=structured_prefix;
	this.criterial_prefix=criterial_prefix;
	this.vote_visibility={'APP':false,'DISP':false}
	this.vote_reverse={'APP':'DISP','DISP':'APP'}
	this.vote_parentdivs={'APP':approve_div_id,'DISP':disapprove_div_id}
	
	this.feedback_div_id=feedback_div_id;
	this.feedback_control_div_id=feedback_control_div_id;
	this.skip_feedback_div_id=skip_feedback_div_id;
	
	this.structured_div_id=structured_div_id;
	this.criterial_div_id=criterial_div_id;
	this.freeform_div_id=freeform_div_id;
	
	this.structured_link_id=structured_link_id;
	this.criterial_link_id=criterial_link_id;
	this.freeform_link_id=freeform_link_id;

	this.structured_titles={'1':'Pros','2':'Cons','3':'Improvements','4':'Notes'}
	this.criterial_titles=criterial_titles;
	this.feedback_checked=false;
	this.feedback_exists=false;
}

CSAv5.prototype.StartVote = function(type)
{
	document.getElementById(this.input_votetype_id).value = type;
	this.votetype = type;
	
	if (!this.feedback_checked)
	{
		SimpleResponse(this.response_div_id,MessageLoading('Checking for existing feedback...'));
		LoadDoc(this,this.uri,this.CheckFeedback,true);
	}
	else
	{
		this.ShowForm(this,type);
	}
}

CSAv5.prototype.ShowForm = function(obj)
{
	if (obj.vote_visibility[obj.votetype])
	{
		var bool = false;
		//var border = 'none';
	}
	else
	{
		var bool = true;
		//var border = '2px solid #FFD800';
	}
	
	obj.vote_visibility[obj.votetype] = bool;
	
	if (!obj.vote_visibility['APP'] && !obj.vote_visibility['DISP'])
	{
		// hide all
		SetDisplay(obj.vote_parentdivs[obj.votetype],'none');
		SetDisplay(obj.feedback_div_id,'none');
		SetDisplay(obj.skip_feedback_div_id,'none');
	}
	else
	{
		// show assessment input
		SetDisplay(obj.vote_parentdivs[obj.votetype],'block');
		
		var reverse_vote = obj.vote_reverse[obj.votetype];
		
		if (obj.vote_visibility[reverse_vote])
		{
			obj.vote_visibility[reverse_vote] = false;
			SetDisplay(obj.vote_parentdivs[reverse_vote],'none');
		}
	
		// show feedback input
		if (!obj.feedback_exists)
		{
			SetDisplay(obj.skip_feedback_div_id,'none');
			
			if (obj.votetype == 'APP')
			{
				obj.FeedbackMode(0);
				SetDisplay(obj.feedback_div_id,'block');
				SetDisplay(obj.feedback_control_div_id,'block');
				SetDisplay(obj.structured_div_id,'block');
				SetDisplay(obj.freeform_div_id,'none');
			}
			else
			{
				obj.FeedbackMode(2);
				SetDisplay(obj.feedback_div_id,'block');
				SetDisplay(obj.feedback_control_div_id,'none');
				SetDisplay(obj.structured_div_id,'none');
				SetDisplay(obj.freeform_div_id,'block');
			}
		}
		else
		{
			SetDisplay(obj.skip_feedback_div_id,'block');
			SetDisplay(obj.feedback_div_id,'none');
		}
	}
}

CSAv5.prototype.CheckFeedback = function(parentObj,resultText)
{
	SimpleResponse(parentObj.response_div_id,'');
	parentObj.feedback_checked = true;
	
	if (resultText == '1')
	{
		parentObj.feedback_exists = true;
	}
	
	parentObj.ShowForm(parentObj);
}

CSAv5.prototype.ShowFeedbackMode = function(div_id,link_id)
{
	SetDisplay(div_id,'block');
	document.getElementById(link_id).style.textDecoration = 'underline';
	document.getElementById(link_id).style.color = '#E2E2E2';
}

CSAv5.prototype.HideFeedbackMode = function(div_id,link_id)
{
	SetDisplay(div_id,'none');
	document.getElementById(link_id).style.textDecoration = 'none';
	document.getElementById(link_id).style.color = '#FFD800';
}

CSAv5.prototype.FeedbackMode = function(mode)
{
	if (mode == 1)
	{
		// criterial
		this.ShowFeedbackMode(this.criterial_div_id,this.criterial_link_id);
		this.HideFeedbackMode(this.structured_div_id,this.structured_link_id);
		this.HideFeedbackMode(this.freeform_div_id,this.freeform_link_id);
	}
	else if (mode == 2)
	{
		document.getElementById(this.input_freeform_id).value = this.BuildStructured();
		
		// freeform
		this.ShowFeedbackMode(this.freeform_div_id,this.freeform_link_id);
		this.HideFeedbackMode(this.structured_div_id,this.structured_link_id);
		this.HideFeedbackMode(this.criterial_div_id,this.criterial_link_id);
	}
	else
	{
		// structured
		this.ShowFeedbackMode(this.structured_div_id,this.structured_link_id);
		this.HideFeedbackMode(this.criterial_div_id,this.criterial_link_id);
		this.HideFeedbackMode(this.freeform_div_id,this.freeform_link_id);
	}
	
	this.feedback_mode = mode;
}

CSAv5.prototype.BuildStructured = function()
{
	if (this.feedback_mode == 1)
	{
		// criterial
		var titles = this.criterial_titles;
		var prefix = this.criterial_prefix;
	}
	else
	{
		// structured
		var titles = this.structured_titles;
		var prefix = this.structured_prefix;
	}
	
	this.structured_length = 0;
	var feedback = new Array();
	
	for (var key in titles)
	{
		var value = document.getElementById(prefix+key).value;
		
		if (value.length > 0)
		{
			feedback.push('<b>'+titles[key]+':</b> '+value);
			this.structured_length += value.length;
		}
	}
	
	return feedback.join('\n');
}

CSAv5.prototype.SubmitStructured = function()
{
	document.getElementById(this.input_freeform_id).value = this.BuildStructured();
	
	if (!this.feedback_exists && this.structured_length < 10)
	{
		this.Submit(false);
	}
	else
	{
		this.Submit(true);
	}
}

CSAv5.prototype.SubmitFreeform = function()
{
	if (!this.feedback_exists && document.getElementById(this.input_freeform_id).value.length < 10)
	{
		this.Submit(false);
	}
	else
	{
		this.Submit(true);
	}
}

CSAv5.prototype.Submit = function(bool)
{
	if (!bool) alert('You must supply adequate feedback!');
	else document.csa.submit();
}
*/

function CSAv6(approve_link_id,disapprove_link_id,response_div_id,input_votetype_id,uri,input_reasons_id,input_freeform_id,structured_prefix,criterial_prefix,approve_div_id,disapprove_div_id,feedback_div_id,feedback_control_div_id,skip_feedback_div_id,structured_div_id,criterial_div_id,freeform_div_id,structured_link_id,criterial_link_id,freeform_link_id,criterial_titles,num_sliders,anon_checkbox_id)
{
	this.response_div_id=response_div_id;
	this.input_votetype_id=input_votetype_id;
	this.uri=uri;
	this.input_reasons_id=input_reasons_id;
	this.input_freeform_id=input_freeform_id;
	this.structured_prefix=structured_prefix;
	this.criterial_prefix=criterial_prefix;
	this.vote_visibility={'APP':false,'DISP':false}
	this.vote_reverse={'APP':'DISP','DISP':'APP'}
	this.vote_parentdivs={'APP':approve_div_id,'DISP':disapprove_div_id}
	this.parent_links={'APP':approve_link_id,'DISP':disapprove_link_id}
	
	this.feedback_div_id=feedback_div_id;
	this.feedback_control_div_id=feedback_control_div_id;
	this.skip_feedback_div_id=skip_feedback_div_id;
	
	this.structured_div_id=structured_div_id;
	this.criterial_div_id=criterial_div_id;
	this.freeform_div_id=freeform_div_id;
	
	this.structured_link_id=structured_link_id;
	this.criterial_link_id=criterial_link_id;
	this.freeform_link_id=freeform_link_id;

	this.structured_titles={'1':'Pros','2':'Cons','3':'Improvements','4':'Notes'}
	this.criterial_titles=criterial_titles;
	this.num_sliders=num_sliders;
	this.anon_checkbox_id=anon_checkbox_id;
	this.feedback_checked=false;
	this.feedback_exists=false;
}

CSAv6.prototype.StartVote = function(type)
{
	document.getElementById(this.input_votetype_id).value = type;
	this.votetype = type;
	
	if (!this.feedback_checked)
	{
		SimpleResponse(this.response_div_id,MessageLoading('Checking for existing feedback...'));
		LoadDoc(this,this.uri,this.CheckFeedback,true);
	}
	else
	{
		// x120209
		//this.ShowForm(this,type);
		this.ShowForm(this);
	}
}

CSAv6.prototype.ShowForm = function(obj)
{
	if (obj.vote_visibility[obj.votetype])
	{
		var bool = false;
	}
	else
	{
		var bool = true;
	}
	
	document.getElementById(obj.parent_links[obj.votetype]).className = 'tstrong bit left row_dark';
	document.getElementById(obj.parent_links[obj.vote_reverse[obj.votetype]]).className = 'tstrong bit left';
	
	obj.vote_visibility[obj.votetype] = bool;
	
	if (!obj.vote_visibility['APP'] && !obj.vote_visibility['DISP'])
	{
		// hide all
		SetDisplay(obj.vote_parentdivs[obj.votetype],'none');
		SetDisplay(obj.feedback_div_id,'none');
		SetDisplay(obj.skip_feedback_div_id,'none');
		
		document.getElementById(obj.parent_links[obj.votetype]).className = 'tstrong bit left';
	}
	else
	{
		// show assessment input
		SetDisplay(obj.vote_parentdivs[obj.votetype],'block');
		
		var reverse_vote = obj.vote_reverse[obj.votetype];
		
		if (obj.vote_visibility[reverse_vote])
		{
			obj.vote_visibility[reverse_vote] = false;
			SetDisplay(obj.vote_parentdivs[reverse_vote],'none');
		}
	
		// show feedback input
		if (!obj.feedback_exists)
		{
			SetDisplay(obj.skip_feedback_div_id,'none');
			
			if (obj.votetype == 'APP')
			{
				obj.FeedbackMode(0);
				SetDisplay(obj.feedback_div_id,'block');
				SetDisplay(obj.feedback_control_div_id,'block');
				SetDisplay(obj.structured_div_id,'block');
				SetDisplay(obj.freeform_div_id,'none');
			}
			else
			{
				obj.FeedbackMode(2);
				SetDisplay(obj.feedback_div_id,'block');
				SetDisplay(obj.feedback_control_div_id,'none');
				SetDisplay(obj.structured_div_id,'none');
				SetDisplay(obj.freeform_div_id,'block');
			}
		}
		else
		{
			SetDisplay(obj.skip_feedback_div_id,'block');
			SetDisplay(obj.feedback_div_id,'none');
		}
	}
}

CSAv6.prototype.CheckFeedback = function(parentObj,resultText)
{
	SimpleResponse(parentObj.response_div_id,'');
	parentObj.feedback_checked = true;
	
	// x300408
	//if (resultText == '1')
	if (resultText.charAt(0) === '1')
	{
		parentObj.feedback_exists = true;
		
		var bits = resultText.split(':');
		
		var ratings = bits[2].split(',');
		if (bits[1] === 'approved')
		{
			// prefill approval sliders
			for (var i=0;i<parentObj.num_sliders;i++)
			{
				A_SLIDERS[i].f_setValue(ratings[i]);
			}
		}
		else
		{
			var select = document.getElementById(parentObj.input_reasons_id);
			
			// preselect disapproval reasons
			for (var i=0;i<select.length;i++)
			{
				if (in_array(select.options[i].value,ratings))
				{
					select.options[i].selected = true;
				}
			}
		}
		
		// fill anon checkbox
		if (bits[3] === 'true')
		{
			document.getElementById(parentObj.anon_checkbox_id).checked = true;
		}
	}
	
	parentObj.ShowForm(parentObj);
}

CSAv6.prototype.ShowFeedbackMode = function(div_id,link_id)
{
	SetDisplay(div_id,'block');
	document.getElementById(link_id).style.textDecoration = 'underline';
	document.getElementById(link_id).style.color = '#E2E2E2';
}

CSAv6.prototype.HideFeedbackMode = function(div_id,link_id)
{
	SetDisplay(div_id,'none');
	document.getElementById(link_id).style.textDecoration = 'none';
	document.getElementById(link_id).style.color = '#FFD800';
}

CSAv6.prototype.FeedbackMode = function(mode)
{
	if (mode == 1)
	{
		// criterial
		this.ShowFeedbackMode(this.criterial_div_id,this.criterial_link_id);
		this.HideFeedbackMode(this.structured_div_id,this.structured_link_id);
		this.HideFeedbackMode(this.freeform_div_id,this.freeform_link_id);
	}
	else if (mode == 2)
	{
		document.getElementById(this.input_freeform_id).value = this.BuildStructured();
		
		// freeform
		this.ShowFeedbackMode(this.freeform_div_id,this.freeform_link_id);
		this.HideFeedbackMode(this.structured_div_id,this.structured_link_id);
		this.HideFeedbackMode(this.criterial_div_id,this.criterial_link_id);
	}
	else
	{
		// structured
		this.ShowFeedbackMode(this.structured_div_id,this.structured_link_id);
		this.HideFeedbackMode(this.criterial_div_id,this.criterial_link_id);
		this.HideFeedbackMode(this.freeform_div_id,this.freeform_link_id);
	}
	
	this.feedback_mode = mode;
}

CSAv6.prototype.BuildStructured = function()
{
	if (this.feedback_mode == 1)
	{
		// criterial
		var titles = this.criterial_titles;
		var prefix = this.criterial_prefix;
	}
	else
	{
		// structured
		var titles = this.structured_titles;
		var prefix = this.structured_prefix;
	}
	
	this.structured_length = 0;
	var feedback = new Array();
	
	for (var key in titles)
	{
		var value = document.getElementById(prefix+key).value;
		
		if (value.length > 0)
		{
			feedback.push('<b>'+titles[key]+':</b> '+value);
			this.structured_length += value.length;
		}
	}
	
	return feedback.join('\n');
}

CSAv6.prototype.SubmitStructured = function()
{
	document.getElementById(this.input_freeform_id).value = this.BuildStructured();
	
	if (!this.feedback_exists && this.structured_length < 10)
	{
		this.Submit(false);
	}
	else
	{
		this.Submit(true);
	}
}

CSAv6.prototype.SubmitFreeform = function()
{
	if (!this.feedback_exists && document.getElementById(this.input_freeform_id).value.length < 10)
	{
		this.Submit(false);
	}
	else
	{
		this.Submit(true);
	}
}

CSAv6.prototype.Submit = function(bool)
{
	if (!bool) alert('You must supply adequate feedback!');
	else document.csa.submit();
}