// form Registar Utilizador //
function validateFormRegistoUser(form) {
  var nome = form.nome.value;
  var apelido = form.apelido.value;
  var rua = form.rua.value;
  var codpostal = form.codpostal.value;
  var cidade = form.cidade.value;
  var distrito = form.distrito.value;
  var pais = form.pais.value;
  var email = form.email.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var password = form.password.value;
  var confpass = form.confpass.value;
  var cod = form.cod.value;
  var termos = form.termos.checked;
  
  if(nome == "") {
    inlineMsg('nome','Campo obrigatório!',2);
    return false;
  }
  if(apelido == "") {
    inlineMsg('apelido','Campo obrigatório!',2);
    return false;
  }
  if(rua == "") {
    inlineMsg('rua','Campo obrigatório!',2);
    return false;
  }
  if(codpostal == "") {
    inlineMsg('codpostal','Campo obrigatório!',2);
    return false;
  }
  if(cidade == "") {
    inlineMsg('cidade','Campo obrigatório!',2);
    return false;
  }
  if(distrito == "") {
    inlineMsg('distrito','Campo obrigatório!',2);
    return false;
  }
  if(pais == "") {
    inlineMsg('pais','Campo obrigatório!',2);
    return false;
  }
  if(email == "") {
    inlineMsg('email','Campo obrigatório!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('email','<strong>Erro</strong><br />O e-mail introduzido está incorrecto!',2);
    return false;
  }
  if(password == "") {
    inlineMsg('password','Campo obrigatório!',2);
    return false;
  }
  if(confpass == "") {
    inlineMsg('confpass','Campo obrigatório!',2);
    return false;
  }
  if(confpass != password) {
    inlineMsg('confpass','Erro<br>Password e/ou confirmação incorrecta(s)!',2);
    return false;
  }
  if(cod == "") {
    inlineMsg('cod','Campo obrigatório!',2);
    return false;
  }
  if(termos == false) {
    inlineMsg('termos','Deverá ler e aceitar os <b>Termos e Condições</b> gerais de utilização!',2);
    return false;
  }
  return true;
}
// form recuperar password Utilizador //
function validateFormRecuperarPassword(form) {
  var email = form.emailr.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

  if(email == "") {
    inlineMsg('emailr','Campo obrigatório!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('emailr','<strong>Erro</strong><br />O e-mail introduzido está incorrecto!',2);
    return false;
  }
  return true;
}
// form de login do utilizador //
function validateFormLoginUser(form) {
  var email = form.email.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var password = form.password.value;

  if(email == "") {
    inlineMsg('email','Campo obrigatório!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('email','<strong>Erro</strong><br />O e-mail introduzido está incorrecto!',2);
    return false;
  }
  if(password == "") {
    inlineMsg('password','Campo obrigatório!',2);
    return false;
  }
  return true;
}
// form de contactos do frontoffice do site //
function validateFormContactoFrontoffice(form) {
  var nome = form.nome.value;
  var apelido = form.apelido.value;
  var email = form.email.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var assunto = form.assunto.value;
  var mensagem = form.mensagem.value;
  
  if(nome == "") {
    inlineMsg('nome','Campo obrigatório!',2);
    return false;
  }
  if(apelido == "") {
    inlineMsg('apelido','Campo obrigatório!',2);
    return false;
  }
  if(email == "") {
    inlineMsg('email','Campo obrigatório!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('email','<strong>Erro</strong><br />O e-mail introduzido está incorrecto!',2);
    return false;
  }
  if(assunto == "") {
    inlineMsg('assunto','Campo obrigatório!',2);
    return false;
  }
  if(mensagem == "") {
    inlineMsg('mensagem','Campo obrigatório!',2);
    return false;
  }
  return true;
}
// form de adicionar e editar registo da empresa no frontoffice do site //
function validateFormRegistoEmpresaUser(form) {
  var nomeempresa = form.nomeempresa.value;
  var distrito = form.distrito.value;
  var email = form.emailempresa.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

  if(nomeempresa == "") {
    inlineMsg('nomeempresa','Campo obrigatório!',2);
    return false;
  }
  if(distrito == "") {
    inlineMsg('distrito','Campo obrigatório!',2);
    return false;
  }
  if(email != "") {
		  if(!email.match(emailRegex)) {
		    inlineMsg('emailempresa','<strong>Erro</strong><br />O e-mail introduzido está incorrecto!',2);
		    return false;
		  }
  }
  return true;
}
// form de inserir criterio de pesquisa nas pesquisas de frontoffice //
function validateFormSearchEnginePublicaNaWeb(form) {
  var textfieldpesquisa = form.textfieldpesquisa.value;

  if(textfieldpesquisa == "") {
    inlineMsg('textfieldpesquisa','Insira a palavra ou expressão a pesquisar!',2);
    return false;
  }
  return true;
}
// form de inserir criterio de pesquisa nas pesquisas de frontoffice //
function validateFormSearchEnginePublicaNaWebConcelho(form) {
  var textfieldpesquisa = form.textfieldpesquisa2.value;
  var distrito = form.distrito.value;

  if(textfieldpesquisa == "") {
    inlineMsg('textfieldpesquisa2','Insira a palavra ou expressão a pesquisar!',2);
    return false;
  }
  if(distrito == "") {
    inlineMsg('distrito','Seleccione o distrito pretendido!',2);
    return false;
  }
  return true;
}
// form editar dados pessoais Utilizador pelo proprio user//
function validateFormEditUser(form) {
  var nome = form.nome.value;
  var apelido = form.apelido.value;
  var rua = form.rua.value;
  var codpostal = form.codpostal.value;
  var cidade = form.cidade.value;
  var distrito = form.distrito.value;
  var pais = form.pais.value;
  var email = form.email.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var password = form.password.value;
  var confpass = form.confpass.value;
  
  if(nome == "") {
    inlineMsg('nome','Campo obrigatório!',2);
    return false;
  }
  if(apelido == "") {
    inlineMsg('apelido','Campo obrigatório!',2);
    return false;
  }
  if(rua == "") {
    inlineMsg('rua','Campo obrigatório!',2);
    return false;
  }
  if(codpostal == "") {
    inlineMsg('codpostal','Campo obrigatório!',2);
    return false;
  }
  if(cidade == "") {
    inlineMsg('cidade','Campo obrigatório!',2);
    return false;
  }
  if(distrito == "") {
    inlineMsg('distrito','Campo obrigatório!',2);
    return false;
  }
  if(pais == "") {
    inlineMsg('pais','Campo obrigatório!',2);
    return false;
  }
  if(email == "") {
    inlineMsg('email','Campo obrigatório!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('email','<strong>Erro</strong><br />O e-mail introduzido está incorrecto!',2);
    return false;
  }
  if(password == "") {
    inlineMsg('password','Campo obrigatório!',2);
    return false;
  }
  if(confpass == "") {
    inlineMsg('confpass','Campo obrigatório!',2);
    return false;
  }
  if(confpass != password) {
    inlineMsg('confpass','Erro<br>Password e/ou confirmação incorrecta(s)!',2);
    return false;
  }
  return true;
}

















// form de adicionar e editar empresas ao directorio em backoffice //
function validateFormRegistoEmpresaAdmin(form) {
  var nomeuser = form.nomeuser.value;
  var nomeempresa = form.nomeempresa.value;
 
  if(nomeuser == "") {
    inlineMsg('nomeuser','Deve seleccionar o <b>utilizador</b> administrador do registo!',2);
    return false;
  }
  if(nomeempresa == "") {
    inlineMsg('nomeempresa','Deve inserir o nome da <b>empresa</b> pretendido!',2);
    return false;
  }
  return true;
}
// form de adicionar actividades ao directorio //
function validateFormAddActividade(form) {
  var tabela = form.tabela.value;
  var actividade = form.actividade.value;
 
  if(tabela == "") {
    inlineMsg('tabela','Deve inserir a <b>tabela</b> para criação em Base de Dados!',2);
    return false;
  }
  if(actividade == "") {
    inlineMsg('actividade','Deve inserir uma <b>actividade</b> válida!',2);
    return false;
  }
  return true;
}
// form de efectuar login Administrador //
function validateFormEfectLogin(form) {
  var username = form.username.value;
  var password = form.password.value;
 
  if(username== "") {
    inlineMsg('username','Deve inserir o seu <b>Username</b>!',2);
    return false;
  }
  if(password == "") {
    inlineMsg('password','Deve inserir a sua <b>Password</b>!',2);
    return false;
  }
  return true;
}
// form Adicionar pasta //
function validateFormAddPasta(form) {
  var pasta = form.pasta.value;
  if(pasta == "") {
    inlineMsg('pasta','Deve inserir um nome para a pasta!',2);
    return false;
  }
  return true;
}
// form Adicionar grupo //
function validateFormAddGrupoUser(form) {
  var grupo = form.grupo.value;
  if(grupo == "") {
    inlineMsg('grupo','Deve inserir um nome para o grupo!',2);
    return false;
  }
  return true;
}
// form de upload de ficheiro //
function validateFormAddFile(form) {
  var ficheiro = form.ficheiro.value;
  var file = form.file.value;
 
  if(ficheiro == "") {
    inlineMsg('ficheiro','Deve inserir um nome para o ficheiro!',2);
    return false;
  }
  if(file == "") {
    inlineMsg('file','Seleccione um ficheiro válido!',2);
    return false;
  }
  return true;
}
// form de upload de ficheiro //
function validateFormAddImage(form) {
  var ficheiro = form.ficheiro.value;
  var file = form.file.value;
 
  if(ficheiro == "") {
    inlineMsg('ficheiro','Deve inserir um nome para a imagem!',2);
    return false;
  }
  if(file == "") {
    inlineMsg('file','Seleccione uma imagem válida!',2);
    return false;
  }
  return true;
}
// form de edição de imagem//
function validateFormAddNewImage(form) {
  var nomeimagem = form.nomeimagem.value;
 
  if(nomeimagem=="" || nomeimagem=="Insira aqui o nome para a nova imagem...") {
    inlineMsg('nomeimagem','Deve inserir um nome para a imagem!',2);
    return false;
  }
  return true;
}
// form Adicionar Admin //
function validateFormAddAdmin(form) {
  var nome = form.nome.value;
  var username = form.username.value;
  var password = form.password.value;
  var confpass = form.confpass.value;
  var empresa = form.empresa.value;
  var site = form.site.value;
  var info = form.info.value;
  var infoRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var news = form.news.value;
  var newsRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var suporte = form.suporte.value;
  var suporteRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  
  if(nome == "") {
    inlineMsg('nome','Deve inserir um nome de Administrador!',2);
    return false;
  }
  if(username == "") {
    inlineMsg('username','Deve inserir um username!',2);
    return false;
  }
  if(password == "") {
    inlineMsg('password','Deve inserir uma password!',2);
    return false;
  }
  if(confpass == "") {
    inlineMsg('confpass','Confirme a password escolhida!',2);
    return false;
  }
  if(confpass != password) {
    inlineMsg('confpass','Erro<br>Password e/ou confirmação incorrecta(s)!',2);
    return false;
  }
  if(empresa == "") {
    inlineMsg('empresa','Deve inserir um nome para a empresa!',2);
    return false;
  }
  if(site== "") {
    inlineMsg('site','Deve inserir o endereço do site!',2);
    return false;
  }
  if(info == "") {
    inlineMsg('info','Deve inserir um e-mail!',2);
    return false;
  }
  if(!info.match(infoRegex)) {
    inlineMsg('info','<strong>Erro</strong><br />O e-mail que introduziu está incorrecto!',2);
    return false;
  }
  if(news == "") {
    inlineMsg('news','Deve inserir um e-mail!',2);
    return false;
  }
  if(!news.match(newsRegex)) {
    inlineMsg('news','<strong>Erro</strong><br />O e-mail que introduziu está incorrecto!',2);
    return false;
  }
  if(suporte == "") {
    inlineMsg('suporte','Deve inserir um e-mail!',2);
    return false;
  }
  if(!suporte.match(suporteRegex)) {
    inlineMsg('suporte','<strong>Erro</strong><br />O e-mail que introduziu está incorrecto!',2);
    return false;
  }
  return true;
}
// form de adicionar idioma//
function validateFormAddIdioma(form) {
  var abreviatura = form.abreviatura.value;
  var idioma = form.idioma.value;
 
  if(abreviatura == "") {
    inlineMsg('abreviatura','Insira a abreviatura do idioma!',2);
    return false;
  }
  if(idioma == "") {
    inlineMsg('idioma','Insira o idioma pretendido!',2);
    return false;
  }
  return true;
}
// form de adicionar pagina//
function validateFormAddPagina(form) {
  var menu = form.menu.value;
 
  if(menu == "") {
    inlineMsg('menu','Insira o nome do menu<br>ao qual a página estará associada!',2);
    return false;
  }
  return true;
}
// form de adicionar subpagina//
function validateFormAddSubPagina(form) {
  var menu = form.menu.value;
 
  if(menu == "") {
    inlineMsg('menu','Insira o nome do submenu<br>ao qual a página estará associada!',2);
    return false;
  }
  return true;
}
// form de adicionar grupo//
function validateFormAddGrupo(form) {
  var grupo = form.grupo.value;
 
  if(grupo == "") {
    inlineMsg('grupo','Insira o nome do grupo!',2);
    return false;
  }
  return true;
}
// form de adicionar user//
function validateFormAddUtilizadorSimples(form2) {
  var nome = form2.nome.value;
  var apelido = form2.apelido.value;
  var email = form2.email.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
 
  if(nome == "") {
    inlineMsg('nome','Insira o nome do utilizador!',2);
    return false;
  }
  if(apelido == "") {
    inlineMsg('apelido','Insira o apelido do utilizador!',2);
    return false;
  }
  if(email == "") {
    inlineMsg('email','Deve inserir um e-mail!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('email','<strong>Erro</strong><br />O e-mail que introduziu está incorrecto!',2);
    return false;
  }
  return true;
}
// form de adicionar user//
function validateFormAddUtilizador(form) {
  var nome = form.nome.value;
  var apelido = form.apelido.value;
  var rua = form.rua.value;
  var cod = form.cod.value;
  var cidade = form.cidade.value;
  var distrito = form.distrito.value;
  var pais = form.pais.value;
  var email = form.email.value;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var pass = form.pass.value;
  var confpass = form.confpass.value;
 
  if(nome == "") {
    inlineMsg('nome','Insira o nome do utilizador!',2);
    return false;
  }
  if(apelido == "") {
    inlineMsg('apelido','Insira o apelido do utilizador!',2);
    return false;
  }
  if(rua == "") {
    inlineMsg('rua','Insira a rua do utilizador!',2);
    return false;
  }
  if(cod == "") {
    inlineMsg('cod','Insira o código postal do utilizador!',2);
    return false;
  }
  if(cidade == "") {
    inlineMsg('cidade','Insira o concelho do utilizador!',2);
    return false;
  }
  if(distrito == "") {
    inlineMsg('distrito','Insira o distrito do utilizador!',2);
    return false;
  }
  if(pais == "") {
    inlineMsg('pais','Insira o país do utilizador!',2);
    return false;
  }
  if(email == "") {
    inlineMsg('email','Deve inserir um e-mail!',2);
    return false;
  }
  if(!email.match(emailRegex)) {
    inlineMsg('email','<strong>Erro</strong><br />O e-mail que introduziu está incorrecto!',2);
    return false;
  }
  if(pass == "") {
    inlineMsg('pass','Insira uma password para utilizador!',2);
    return false;
  }
  if(confpass == "") {
    inlineMsg('confpass','Confirme a password escolhida!',2);
    return false;
  }
  if(confpass != pass) {
    inlineMsg('confpass','Password e/ou confirmação incorrecta(s)!',2);
    return false
  }
  return true;
}
// form de adicionar newsletter//
function validateFormAddNewsletter(form) {
  var titulo = form.titulo.value;
 
  if(titulo == "") {
    inlineMsg('titulo','Insira o título para a Newsletter!',2);
    return false;
  }
  return true;
}
// form de adicionar newsletter//
function validateFormAddExpressao(form) {
  var expressao = form.expressao.value;
 
  if(expressao == "") {
    inlineMsg('expressao','Insira uma expressão válida!',2);
    return false;
  }
  return true;
}
// form Adicionar fabricante //
function validateFormAddFabricante(form) {
  var fabricante = form.fabricante.value;
  if(fabricante == "") {
    inlineMsg('fabricante','Deve inserir um nome para o fabricante!',2);
    return false;
  }
  return true;
}
// form Adicionar categoria //
function validateFormAddCategoria(form) {
  var categoria = form.categoria.value;
  if(categoria == "") {
    inlineMsg('categoria','Deve inserir um nome para a categoria!',2);
    return false;
  }
  return true;
}

// form Adicionar subcategoria //
function validateFormAddSubcategoria(form) {
  var subcategoria = form.subcategoria.value;
  if(subcategoria == "") {
    inlineMsg('subcategoria','Deve inserir um nome para a subcategoria!',2);
    return false;
  }
  return true;
}

// form Adicionar artigo //
function validateFormAddArtigo1(form) {
  var nome = form.nome.value;
  var cod = form.cod.value;
  var descricao = form.descricao.value;
  var imagem = form.imagem.value;
  
  if(nome == "") {
    inlineMsg('nome','Deve inserir um nome para o artigo!',2);
    return false;
  }
  if(cod == "") {
    inlineMsg('cod','Deve inserir um código para o artigo!',2);
    return false;
  }
  if(descricao == "") {
    inlineMsg('descricao','Deve inserir uma breve descrição do artigo!',2);
    return false;
  }
  if(imagem == "") {
    inlineMsg('imagem','Deve inserir uma foto para o artigo!',2);
    return false;
  }
  return true;
}

// form Editar artigo //
function validateFormEditArtigo1(form) {
  var categoria = form.categoria.value;
  var subcategoria = form.subcategoria.value;
  var nome = form.nome.value;
  var cod = form.cod.value;
  var descricao = form.descricao.value;
  var imagem = form.imagem.value;
  
  if(categoria == "") {
    inlineMsg('categoria','O artigo deverá pertencer a uma categoria!',2);
    return false;
  }
  if(subcategoria == "") {
    inlineMsg('subcategoria','O artigo deverá pertencer a uma subcategoria!',2);
    return false;
  }
  if(nome == "") {
    inlineMsg('nome','Deve inserir um nome para o artigo!',2);
    return false;
  }
  if(cod == "") {
    inlineMsg('cod','Deve inserir um código para o artigo!',2);
    return false;
  }
  if(descricao == "") {
    inlineMsg('descricao','Deve inserir uma breve descrição do artigo!',2);
    return false;
  }
  if(imagem == "") {
    inlineMsg('imagem','Deve inserir uma foto para o artigo!',2);
    return false;
  }
  return true;
}

// form Add/edit roda da vida //
function validateFormRodaVida(form) {
  var pergunta = form.pergunta.value;
  var resposta1 = form.resposta1.value;
  var resposta2 = form.resposta2.value;
  var resposta3 = form.resposta3.value;
  var resposta4 = form.resposta4.value;
  var resposta5 = form.resposta5.value;
  
  if(pergunta == "") {
    inlineMsg('pergunta','Deve inserir uma pergunta!',2);
    return false;
  }
  if(resposta1 == "") {
    inlineMsg('resposta1','Insira uma opção de resposta!',2);
    return false;
  }
  if(resposta2 == "") {
    inlineMsg('resposta2','Insira uma opção de resposta!',2);
    return false;
  }
  if(resposta3 == "") {
    inlineMsg('resposta3','Insira uma opção de resposta!',2);
    return false;
  }
  if(resposta4 == "") {
    inlineMsg('resposta4','Insira uma opção de resposta!',2);
    return false;
  }
  if(resposta5 == "") {
    inlineMsg('resposta5','Insira uma opção de resposta!',2);
    return false;
  }
  return true;
}
// form de seo em paginas//
function validateFormAddSeo(form) {
  var titulo = form.titulo.value;
  var keywords = document.getElementById('keywords').value;
  var descricao = document.getElementById('descricao').value;

  if(titulo == "") {
    inlineMsg('titulo','Deve inserir um <b>título</b> para esta página!',2);
    return false;
  }
  if(keywords == "") {
    inlineMsg('keywords','Deve inserir as <b>keywords</b> para esta página!',2);
    return false;
  }
  if(descricao == "") {
    inlineMsg('descricao','Deve inserir uma <b>descrição</b> para esta página!',2);
    return false;
  }
  return true;
}




// START OF MESSAGE SCRIPT //

var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

// build out the divs, set attributes and call the fade function //
function inlineMsg(target,string,autohide) {
  var msg;
  var msgcontent;
  if(!document.getElementById('msg')) {
    msg = document.createElement('div');
    msg.id = 'msg';
    msgcontent = document.createElement('div');
    msgcontent.id = 'msgcontent';
    document.body.appendChild(msg);
    msg.appendChild(msgcontent);
    msg.style.filter = 'alpha(opacity=0)';
    msg.style.opacity = 0;
    msg.alpha = 0;
  } else {
    msg = document.getElementById('msg');
    msgcontent = document.getElementById('msgcontent');
  }
  msgcontent.innerHTML = string;
  msg.style.display = 'block';
  var msgheight = msg.offsetHeight;
  var targetdiv = document.getElementById(target);
  targetdiv.focus();
  var targetheight = targetdiv.offsetHeight;
  var targetwidth = targetdiv.offsetWidth;
  var topposition = topPosition(targetdiv) - ((msgheight - targetheight) / 2);
  var leftposition = leftPosition(targetdiv) + targetwidth + MSGOFFSET;
  msg.style.top = topposition + 'px';
  msg.style.left = leftposition + 'px';
  clearInterval(msg.timer);
  msg.timer = setInterval("fadeMsg(1)", MSGTIMER);
  if(!autohide) {
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMsg()", (autohide * 1000));
}

// hide the form alert //
function hideMsg(msg) {
  var msg = document.getElementById('msg');
  if(!msg.timer) {
    msg.timer = setInterval("fadeMsg(0)", MSGTIMER);
  }
}

// face the message box //
function fadeMsg(flag) {
  if(flag == null) {
    flag = 1;
  }
  var msg = document.getElementById('msg');
  var value;
  if(flag == 1) {
    value = msg.alpha + MSGSPEED;
  } else {
    value = msg.alpha - MSGSPEED;
  }
  msg.alpha = value;
  msg.style.opacity = (value / 100);
  msg.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(msg.timer);
    msg.timer = null;
  } else if(value <= 1) {
    msg.style.display = "none";
    clearInterval(msg.timer);
  }
}

// calculate the position of the element in relation to the left of the browser //
function leftPosition(target) {
  var left = 0;
  if(target.offsetParent) {
    while(1) {
      left += target.offsetLeft;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.x) {
    left += target.x;
  }
  return left;
}

// calculate the position of the element in relation to the top of the browser window //
function topPosition(target) {
  var top = 0;
  if(target.offsetParent) {
    while(1) {
      top += target.offsetTop;
      if(!target.offsetParent) {
        break;
      }
      target = target.offsetParent;
    }
  } else if(target.y) {
    top += target.y;
  }
  return top;
}

// preload the arrow //
if(document.images) {
  arrow = new Image(7,80); 
  arrow.src = "../img/msg_arrow.gif"; 
}