/**
 * Função que realiza a validação do formulário antes de o submeter.
 */
function validaHistoriaCliente(){
	// recupera o formulário
	var form = document.getElementById("registraHistoriaCliente");
	
	var msgErrorRequired = "Favor preencher todos os campos.";
	
	for(var i=0; i< form.elements.length; i++) {
		if (form.elements[i].value == null ||form.elements[i].value == ""){
			alert(msgErrorRequired);
			return false;
		}
	}
	
	// Valida se o email é válido
	var email = form.elements['formBean.email'].value;
	
	if (isValidEmail(email)){
		alert("E-mail inválido.");
		return false;
	}
	
	// Valida se o telefone só contém números
	var telefone = form.elements['formBean.telefone'].value;
	
	if (!isNumber(telefone)){
		alert("O telefone deve conter apenas dígitos.");
		return false;
	}
	
	if (telefone.length < 8){
		alert("O telefone deve conter pelo menos 8 dígitos.");
		return false;
	}
	
	return true;
}

/**
 * Verifica se uma string é composta apenas por números
 * 
 * @return true se a string possuir apenas caractéres numéricos
*/
function isNumber(numero){
   var invalidChar = false;

   for (i=0; i < numero.length; i++){
      var targetChar = numero.charAt(i);
      if(targetChar != "." && targetChar != "," && targetChar != "-"){
         if (isNaN(parseInt(targetChar))) invalidChar = true;
      }
   }
   return !invalidChar;
}

/**
 * Verifica se o endereço de email informado é válido ou não.
 */
function isValidEmail(address) {
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(address) == false) {
		return true;
	} else {
		return false;
	}
}

/**
 * Recupera o valor do parâmetro da query string informado no parâmetro key;
 */
function getQuerystring(key, default_) {
  if (default_ == null) default_= "";
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}
