var cc_ids = new Array();
var cc_mc = new Array();
var cc_ar = new Array ();

function checkCommentField (elem, whatisit)
{
	switch (whatisit)
	{
		case 'nickname': if (!checkNickname (elem)) elem.style.borderColor = '#DD0000';
			else elem.style.borderColor = '#00DD55'; break;
		case 'email': if (!checkEmail (elem)) elem.style.borderColor = '#DD0000';
			else elem.style.borderColor = '#00DD55'; break;
		case 'homepage': if (!checkHomepage (elem)) elem.style.borderColor = '#DD0000';
			else elem.style.borderColor = '#00DD55'; break;
		case 'title': if (!checkTitle (elem)) elem.style.borderColor = '#DD0000';
			else elem.style.borderColor = '#00DD55'; break;
		case 'comment': if (!checkComment (elem)) elem.style.borderColor = '#DD0000';
			else elem.style.borderColor = '#00DD55'; break;
	}
}

function submitCommentForm ()
{
	
	if (!checkNickname (document.create_comment.nickname))
	{
		document.create_comment.nickname.focus ();
		return false;
	}
	if (!checkEmail (document.create_comment.email))
	{
		document.create_comment.email.focus ();
		return false;
	}
	if (!checkHomepage (document.create_comment.homepage))
	{
		document.create_comment.homepage.focus ();
		return false;
	}
	if (!checkTitle (document.create_comment.title))
	{
		document.create_comment.title.focus ();
		return false;
	}
	if (!checkComment (document.create_comment.comment))
	{
		document.create_comment.comment.focus ();
		return false;
	}
	
	document.create_comment.submit ();
	
}

function checkNickname (elem)
{
	if (elem.value.length < 3 || elem.value.length > 20) return false;
	
	return true;
}

function checkEmail (elem)
{
	if (elem.value != '' && (!check_email (elem.value) || elem.value.length > 100)) return false;
	
	return true;
}

function checkHomepage (elem)
{
	if (elem.value != '' && (!check_homepage (elem.value) || elem.value.length > 100)) return false;
	
	return true;
}

function checkTitle (elem)
{
	if (elem.value.length < 3 || elem.value.length > 100) return false;
	
	return true;
}

function checkComment (elem)
{
	if (elem.value.length < 10 || elem.value.length > 500) return false;
	
	return true;
}

function charcounter_init (divId, maxChars, areaid)
{
 	var cckey = cc_ids.length;
	cc_ids[cckey] = divId;
	cc_mc[cckey] = maxChars;
	cc_ar[cckey] = areaid;
	
	document.getElementById(divId).innerHTML = '<div class="charcounter_bg"><div class="charcounter_progress" style="width: 0px"><div class="charcounter_number">' + maxChars + '</div></div></div>'
}

function charcounter_refresh (divId)
{
 	var i;
	for (i=0; i<cc_ids.length; i++)
		if (cc_ids[i] == divId)
			break;
		
	var percent = document.getElementById(cc_ar[i]).value.length / cc_mc[i] * 100;
	percent = Math.round(percent);
	
	if (percent > 100) percent = 100;

	document.getElementById(divId).innerHTML = '<div class="charcounter_bg"><div class="charcounter_progress" style="width: ' + percent +'px' + '; background-color: #' + (percent + 155).toString(16) + '9B9B"><div class="charcounter_number">' + (cc_mc[i] - document.getElementById(cc_ar[i]).value.length) + '</div></div></div>'
}

function insertAtCursor(myField, myValue) {
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue 
		+ myField.value.substring(endPos, myField.value.length);
	} else {
		myField.value += myValue;
	}
}
