/*
Muda o estilo para indicar que o campo precisa de ser preenchido
*/
function ChangeStyle(p_object,p_wrong,p_class_right,p_class_wrong)
{
	if(p_wrong==true)
	{
		p_object.className =p_class_wrong;	
	}
	else
	{
		p_object.className =p_class_right;	
	}
}//fim de ChangeStyle


//percorre todos os elementos do form e ter a certeza de que os styles são os normais
function ResetFormStyles(p_class_right)
{
	
//percorrer todos os elementos do form e ter a certeza de que os styles são os normais
for (var i=0; i < document.forms[0].elements.length; i++) 
{
  var element = document.forms[0].elements[i];
 if (typeof element == "object") 
 {
  	if(element.name.substring(0,3)=="txt")
	{
	 ChangeStyle(element,false,p_class_right,"");
	 }
  }
}//fim do For


}// fim do ResetFormStyles





/*
function para verificar a validade de um dado e-mail
*/
function CheckValidEmail(emailStr)
{

var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {

	return false
}
var user=matchArray[1]
var domain=matchArray[2]


if (user.match(userPat)==null) {

    return false
}

var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {

	  for (var i=1;i<=4;i++) {
	    if (IPArray[i]>255) {

		return false
	    }
    }
    return true
}

var domainArray=domain.match(domainPat)
if (domainArray==null) {

    return false
}


var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 || 
    domArr[domArr.length-1].length>3) {

   return false
}


if (len<2) {

   return false
}

return true

}//fim de CheckValidEmail



/*
onKeyDown="return AllowOnlyNumbers(event);"
**/
function AllowOnlyNumbers(myfield, e, dec)
{
var key;
var keychar;

if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) ||  (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;

else
   return false;
}
//fim de AllowOnlyNumbers




/*****************************
FORMS VALIDATION
******************************/


function CheckFormInfo()
{
	//document.forms[0].submit();
/* .txt_ask .txt_ask_error 
campos obrigatórios
txtname (input)
txtemail (input)
txtsubject (textarea)
txtcode (input) hcode
*/	

//1º - reset dos estilos para o estado normal
ResetFormStyles("txt_ask");


var i_tmp;
var i_result;
i_result	=true; //valor por defeito

i_tmp		=document.getElementById("msgwarning");
i_tmp.style.visibility="hidden";

	
i_tmp		=document.getElementById("txtname");
if(i_tmp.value=="")
{	
	
	ChangeStyle(i_tmp,true,"txt_ask","txt_ask_error");
	i_result= false;
}

i_tmp		=document.getElementById("txtsubject");
if(i_tmp.value=="")
{
	ChangeStyle(i_tmp,true,"txt_ask","txt_ask_error");
	i_result= false;
}

i_tmp		=document.getElementById("txtemail");
if(i_tmp.value=="")
{
	ChangeStyle(i_tmp,true,"txt_ask","txt_ask_error");
	i_result= false;
}else
	{
		if(CheckValidEmail(i_tmp.value)==false)
		{
			ChangeStyle(i_tmp,true,"txt_ask","txt_ask_error");
			i_result= false;
		}
	}


i_tmp		=document.getElementById("txtcode");
i_tmp2		=document.getElementById("hcode");
if(i_tmp.value!=i_tmp2.value)
{
	ChangeStyle(i_tmp,true,"txt_ask","txt_ask_error");
	i_result= false;
}

if (i_result==true)
{
document.forms[0].submit();	
} else
	{
	i_tmp		=document.getElementById("msgwarning");
	i_tmp.style.visibility="visible";
	}
}




/*
Usada para ir contando os caracteres num campo de texto e actualizando um campo de contagem dos mesmos
Chamado:onKeyUp="UpdateTextCounter(this.form.mensagem_grp,this.form.remLen,160);
<input readonly type="text" name="remLen" class="caixinha" size="4" maxlength="4"
value="160"> 
**/
function UpdateTextCounter(p_txtfield,p_countfield,p_textlimit)
{
	if(p_txtfield.value.length>p_textlimit)
	{
		p_txtfield.value = p_txtfield.value.substring(0, p_textlimit);
	}else
		{
	 		p_countfield.value = p_textlimit - p_txtfield.value.length;
		}
	
}//fim de UpdateTextCounter


/**
verifica se os radiobuttons estão preenchidos no inquérito de satisfação (inquiry.php)
*/
function ValidateInquiry()
{

//limpar qualquer mensagem de erro que possa estar visivel
var i_tmp =document.getElementById("msgWarning");
i_tmp.style.visibility="hidden";


//1º - reset dos estilos para o estado normal
ResetFormStyles();
var i_arrayradio	=["r1","r2","r3","r4","r5","r6","r7","r8","r9","r10"];
var i_tmpfield;
var i_tmpresult		=false; //valor por defeito


i_tmptxt		=document.getElementById("txtContact");
if(i_tmptxt.value=="")
{
	ChangeStyle(i_tmptxt,true);
	i_tmp.style.visibility="visible";
	return false;
}

for(var i_counter1=0;i_counter1<i_arrayradio.length; i_counter1++)
{
	i_tmpfield	=eval("document.forms[0]." + i_arrayradio[i_counter1]);
	
	for(var i_counter2=0;i_counter2<i_tmpfield.length;i_counter2++)
	{
		if(i_tmpfield[i_counter2].checked==true)
		{
			i_tmpresult=true;
		}
	}
	//basta que um dos radios não esteja preenchido para o resultado ser falso
	if(i_tmpresult==false)
	{
		i_tmpfield[0].focus();
		i_tmp.style.visibility="visible";
		return false;	
	}else
		{
			i_tmpresult		=false;
		}	
}



document.forms[0].submit();
	
}//fim de ValidateInquiry





/*****************************
FIM DO FORMS VALIDATION
******************************/




