function fReset(o,p) {
if (o.value==p) { o.value='';}
}
function validate(form,lang,action) {
var errmsg='', errOut='', posn, ifocuselem, pass=true;
aErro = new Array(4);
switch (lang) {
	case "pt":
		aErro[0] = "\tA sua sugestão\n";
		aErro[1] = "\tO seu nome\n";
		aErro[2] = "\tO seu email não está valido\n";
		aErro[3] = "Por favor, verifique todos os campos obrigatórios:\n";
	break;
	case "en":
		aErro[0] = "\tYour suggestion!\n";
		aErro[1] = "\tYour name\n";
		aErro[2] = "\tYour email is not valid\n";
		aErro[3] = "Please check all mandatory fields:\n";
	break;
}

switch (form.name) {
	case "frm_sugestao":
	var hasTel = false;
	for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "nome":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[1]
					ifocuselem = x;
				}
				break;
				case "sugestao":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[0]
					ifocuselem = x;
				}
				break;
				case "email":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[2];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[2];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[2];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[2];
							ifocuselem=x;}
						}
					}
				break;
			}
			
			}
	break;	
}

if (errmsg!='') {
	errOut= "_______________________________________________________________\n";	
	errOut+=aErro[3];
	errOut+=errmsg;
	errOut+="\n_______________________________________________________________\n";
	alert(errOut);
	if (parseInt(ifocuselem)) eval("form.elements[" + ifocuselem + "].focus();");
	pass=false;
}
else {
	form.action = action;
	form.submit();	
	pass=true;
}
return (pass);
}
function isDate(dateparam) {
	var elems = dateparam.split("-");   // extrai as 3 componentes da data
	result = (elems.length == 3); // verifica se são 3 componentes
	if (result) {
		var today = new Date();
		var year   = parseInt(elems[0],10);
		var month = parseInt(elems[1],10);
		var day  = parseInt(elems[2],10);
		result    = allDigits(elems[0]) && (elems[0].length == 4) && 
			allDigits(elems[1]) && (month > 0) && (month < 13) &&
			allDigits(elems[2]) && (day > 0) && (day < 32);
	}
	return result;
}
function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}
function inValidCharSet(str,charset)
{
	var result = true;
	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;}
	return result;
}

<!--
function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}

function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);

if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

//alert("KEY: " + key);

// check goodkeys
if (goods.indexOf(keychar) != -1)
	return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   return true;

// else return false
return false;
}