function cngPreChecks(obj, hintField, formWidth, formHeight, nameField, emailField, cngMessageField, timeField) {
	var myName = cngGetValue(nameField);
	var myEmail = cngGetValue(emailField);
	var myMessage = cngGetValue(cngMessageField);
	var myTime = cngGetValue(timeField);

	var emailRegex = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
	var emailValid = emailRegex.test(myEmail);
	var cngNow = new Date();
	var cngTimediff = Math.floor(cngNow.getTime()/1000) - (myTime*1);
	var cngError = false;

	if (3 > myName.length)
	{
		cngMessage = cngMessageName;
		cngError = true;
	}
	else if ( emailValid == false )
	{
		cngMessage = cngMessageMail;
		cngError = true;
	}
	else if (30 > myMessage.length)
	{
		cngMessage = cngMessageLength;
		cngError = true;
	}
	else if (20 > cngTimediff || 1200 < cngTimediff)
	{
		cngMessage = cngMessageTime;
		cngError = true;
	}
	
	if (cngError == true)
	{
		cngShowHint(obj, hintField, formWidth, formHeight, cngMessage);
		return false;
	}

	return true;
}

function cngShowHint(obj, hintField, formWidth, formHeight, cngMessage) {
	var coors = findPos(obj);
	var msgBox = document.getElementById(hintField);
	
	buttonWidth = 70; /* width of the default "send" image */
	popupWidth = formWidth - 70;
	myLeftOffset = formWidth - 20;
	myLeftOffset = myLeftOffset - buttonWidth;
	myTopOffset = formHeight - 40;
	
	msgBox.style.top = (coors[1] - myTopOffset) + 'px';
	msgBox.style.left = (coors[0] - myLeftOffset) + 'px';
	msgBox.style.width = popupWidth + 'px';
	msgBox.style.display = "block";
	msgBox.firstChild.data = cngMessage;
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function cngGetValue(elementId) {
	return document.getElementById(elementId).value;
}
