// JavaScript Document

var t_httpreq;
var t_element;
var p_element;
var poster_open;
var old_length;

function testimony_init(p_e, t_e)
{
	t_httpreq=null;
	t_element=t_e;
	p_element=p_e;
	poster_open=false;
	getComments();
}

function toggleCommentPoster()
{
	if(poster_open)
	{
		getPosterElement().style.visibility='hidden';
		getPosterElement().style.display='none';
		getPosterElement().className='no_error';
		poster_open=false;
	}else{
		getPosterElement().style.visibility='visible';
		getPosterElement().style.display='block';
		document.getElementById('remove_holder').removeChild(document.getElementById('oneuse'));
		poster_open=true;	
	}
}

function getComments()
{
	t_httpreq=GetXmlHttpObject();
	if (t_httpreq==null)
  	{
  		alert ("Browser does not support HTTP Request");
  		return;
  	}
	var url="library/get_comments.php";
	t_httpreq.onreadystatechange=stateChangedCom;
	t_httpreq.open("GET",url,true);
	t_httpreq.setRequestHeader("If-Modified-Since", "Fri, 31 Dec 1999 23:59:59 GMT");
	t_httpreq.send(null);
}

function stateChangedCom(){
	if(t_httpreq.readyState==4)
	{
		getCommentElement().innerHTML=t_httpreq.responseText;
	}
}

function getPosterElement()
{
	var ret = document.getElementById(p_element);
	if(ret)
	{
		return ret;
	}else{
		return null;
	}
}

function getCommentElement()
{
	var ret = document.getElementById(t_element);
	if(ret)
	{
		return ret;
	}else{
		return null;
	}
}

function GetXmlHttpObject()
{
	if (window.XMLHttpRequest)
  	{
  		// code for IE7+, Firefox, Chrome, Opera, Safari
  		return new XMLHttpRequest();
  	}
	if (window.ActiveXObject)
  	{
  	// code for IE6, IE5
  	return new ActiveXObject("Microsoft.XMLHTTP");
  	}
	return null;
}

function getElement(element)
{
	return document.getElementById(element);
}

function counter_down(event, textbox, element)
{
	var chars = getElement(element+"_chars")
	var max_chars = chars.value;
	var total_chars = textbox.value.length;
	if(event.keyCode==8){
		return true;
	}
	
	old_length=total_chars;
	if(max_chars-total_chars<=0){
		return false;
	}else{
		return true;
	}
}

function counter_up(event, textbox, element)
{
	var counter = getElement(element+"_counter")
	var chars = getElement(element+"_chars")
	var max_chars = chars.value;
	var total_chars = textbox.value.length;
	
	var newCLeft = max_chars-total_chars;
	counter.innerHTML=newCLeft;
	
	if(total_chars>max_chars){
		textbox.value=textbox.value.substring(max_chars-total_chars, max_chars);
	}
	
	if(max_chars-total_chars<=0){
		return false;
	}else{
		return true;
	}
}

function submitComment(form)
{
	var error = false;
	if(form.name.value.length==0){
		showError("Please enter your name");
		return false;
	}
	if(form.name.value.length>getElement("name_chars").value){
		showError("Your name is too long.");
		error = true;
		return false;
	}
	if(form.sum.value.length==0){
		showError("Please enter a summary.");
		error = true;
		return false;
	}
	if(form.sum.value.length>getElement("sum_chars").value){
		showError("Your summary is too long.");
		error = true;
		return false;
	}
	if(form.comment.value.length==0){
		showError("Please enter a testimony.");
		error = true;
		return false;
	}
	if(form.comment.value.length>getElement("comment_chars").value){
		showError("Your testimony is too long.");
		error = true;
		return false;
	}
	hideError();
	
	t_httpreq=GetXmlHttpObject();
	if (t_httpreq==null)
  	{
  		alert ("Browser does not support HTTP Request");
  		return;
  	}
	var url="library/post_comment.php?name="+form.name.value+"&c="+form.comment.value+"&title="+form.sum.value;
	t_httpreq.onreadystatechange=function(){
		if(t_httpreq.readyState==4)
		{
			if(t_httpreq.responseText.search("success")!=-1){
				submitSuccess();
				getComments()
			}else{
				showError("Not posted: "+t_httpreq.responseText);
				return false;
			}
		}
	};
	t_httpreq.open("GET",url,true);
	t_httpreq.setRequestHeader("If-Modified-Since", "Fri, 31 Dec 1999 23:59:59 GMT");
	t_httpreq.send(null);
}

function showError(msg)
{
	getPosterElement().className='error';
	document.getElementById('error_loc').innerHTML=msg;
}

function hideError()
{
	getPosterElement().className='no_error';
	document.getElementById('error_loc').innerHTML='';
}

function submitSuccess()
{
	getPosterElement().className='success';
	getPosterElement().style.textAlign='center';
	getPosterElement().innerHTML='<p>Testimony submitted. You will be able to see it here when an administrator approves it.</p>';
}