/* 
	created: 4/14/2008
	functions for thread comment
*/
function reportCommentLength(textarea_id,countarea_id,limit,errorbox_id){
	var textarea = document.getElementById(textarea_id);
	var countarea = document.getElementById(countarea_id);
	var errorbox = document.getElementById(errorbox_id);
	if (textarea.value.length >= limit){
   		textarea.value = textarea.value.substring(0,limit);
		errorbox.innerHTML = "Character Limit Reached!";
   }
	else{
		errorbox.innerHTML = "";
	}
	var textarealength = textarea.value.length;
	countarea.innerHTML = "("+textarealength+"/"+limit+" Character Maximum)";
}

function postComment(articleId, from) {
	var loc = document.getElementById('postIframe').src;
	var file = loc.substring(0, loc.indexOf('?'));
	document.getElementById('postIframe').src = file+"?from="+from+"&article_id=" + articleId;
	parent.frames['postIframe'].refresh;
}
function postReply(articleId, parentId, from) {
	var loc = document.getElementById('postIframe').src;
	var file = loc.substring(0, loc.indexOf('?'));
	document.getElementById('postIframe').src = file+"?from="+from+"&article_id=" + articleId+"&parent_id=" + parentId;
	parent.frames['postIframe'].refresh;
}

var firstTime = true;
function checkName(form) {

	var name = form.author.value;
	var email = form.email.value;
	var country = form.country.value;
	var comment = form.comment.value;
	var seeError = false;
	
	clearContentErrorDivs();	

	if ( document.getElementById('loginSection').style.display == 'none' && document.getElementById('commentArea').style.display == 'block' ) {
		submitCommentForm('commentform');
		return 1;
	}	

	if ( email == '' || !email.match(/^.+@.+\..+$/)) {
		document.getElementById('emailLabel').className = 'form_error';
		seeError = true;
	}
	
	if ( name == '' || usernameValidate(name) ) {
		document.getElementById('authorLabel').className = 'form_error';				   
		seeError = true;		
	}

	if ( country == '' ) {
		document.getElementById('countryLabel').className = "form_error";				   
		seeError = true;		
	}

	if ( (comment == '' && !firstTime) || (comment == '' && document.getElementById('commentArea').style.display == 'block')) {
		document.getElementById('commentLabel').className = "form_error";
		seeError = true;
	}

	if ( form.verification.value == '' && document.getElementById('verificationSection').style.display == 'block' ) {
		document.getElementById('verificationLabel').className = 'form_error';
		seeError = true;		
	}
		
	if (!seeError && !usernameValidate(name) && (email.match(/^.+@.+\..+$/))) {
		var url = "functions/userValidate.php?author=" + name + "&email=" + email + "&country=" + country + "&time=" + getCurrentTime(); //url
		new Ajax.Request(url,
		{
			method:'get',
			onSuccess: function(transport){	
				successHandler(transport, form, name);
			},
			onFailure: function(){ 
			}
		});
	
		if ( comment == '' && !firstTime ) {
			document.getElementById('commentLabel').className = "form_error";
			seeError = true;			
		}
			
		if ( form.verification.value == '' && !firstTime ) {
			document.getElementById('verificationLabel').className = 'form_error';
			seeError = true;			
		}
		else if (document.getElementById('verificationSection').style.display == 'block') {
			validate_verification(form.verification.value);
		}

	} 
	
	if ( seeError ) {
		document.getElementById('errorMsg').style.display = 'block';	
	}
}

function validate_verification(val) {
	new Ajax.Request("functions/captcha.php",
	{
		method:'post',
		parameters: "verification=" + val + "&time=" + getCurrentTime(),
		onSuccess: function(transport){				
			if ( transport.responseText == 'success' ) {
				document.getElementById('verificationLabel').className = '';				
				submitCommentForm('commentform');				
			}
			else {
				document.getElementById('verificationLabel').className = 'form_error';
			}
		},
		onFailure: function(){ 
		}
	});	
}

function successHandler(transport, form, name) {
			
	var response = transport.responseText;
	switch (response) {
		case 'success': 
			document.getElementById('welcome_user_name').innerHTML = name;
			document.getElementById('welcome').style.display = 'block';
			document.getElementById('verificationSection').style.display = 'none';	
			document.getElementById('loginSection').style.display = 'none';
			document.getElementById('commentArea').style.display = 'block';
			createCookie(name, form.email.value, form.country.value);
			document.getElementById('commentpostresult').style.display = 'none';
			if ( form.comment.value != '' ) {
				submitCommentForm('commentform');
			}
			else {				
				form.comment.focus();
			}
			firstTime = false;			
			break;
		case 'wrong':
			document.getElementById('errorMsg').innerHTML = "There is already a user with that name.";
			document.getElementById('errorMsg').style.display = 'block';
			firstTime = true;
			break;
		case 'available':						
			document.getElementById('verificationSection').style.display = 'block';								
			document.getElementById('commentArea').style.display = 'block';		
			document.getElementById('errorMsg').style.display = 'none';		
			form.country.focus();
			firstTime = false;
			break;
	}
		//document.getElementById('welcome').innerHTML = response;
		//document.getElementById('welcome').style.display = 'block';
}

function usernameValidate(name) {
	var regex = /^[a-zA-Z]/;
	var regex_invalid = /[^a-zA-Z0-9_\-]/g;
	if ( !(name).match(regex) && !(name).match(regex_invalid)) {
		return true;
	}
	else {
		return false;	
	}
}