function validateForm(form) {
  var txtName = form.txtName.value;
  var txtEmail = form.txtEmail.value;
  var txaMessage = form.txaMessage.value;
  var nameRegex = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/;
  var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
  var messageRegex = new RegExp(/<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\/?>/gim);
  if(txtName == "") {
    showMessage('txtName','Musíte vyplnit Vaše jméno.',2);
    return false;
  }
  /* if(!txtName.match(nameRegex)) {
    showMessage('txtName','Zadali jste nekorektní jméno.',2);
    return false;
  } */
  if(txtEmail == "") {
    showMessage('txtEmail','Musíte zadat Váš e-mail.',2);
    return false;
  }
  if(!txtEmail.match(emailRegex)) {
    showMessage('txtEmail','Zadali jste neplatný e-mail.',2);
    return false;
  }
  if(txaMessage == "") {
    showMessage('txaMessage','Musíte zadat text Vaši zpávy.');
    return false;
  }
  if(txtQuestion == "") {
    showMessage('txtQuestion','Nevyplněna kontrolní otázka.');
    return false;
  }
  if(txtQuestion != 5) {
    showMessage('txtQuestion','Chybná odpoved na kontrolní otázku.');
    return false;
  }
  /* if(txaMessage.match(messageRegex)) {
    showMessage('txaMessage','Zadali jste neplatný text zprávy.');
    return false;
  } */
  return true;
}


var MSGTIMER = 20;
var MSGSPEED = 5;
var MSGOFFSET = 3;
var MSGHIDE = 3;

function showMessage(target,string,autohide) {
  var divMessage;
  var divMessageContent;
  if(!document.getElementById('divMessage')) {
    divMessage = document.createElement('div');
    divMessage.id = 'divMessage';
    divMessageContent = document.createElement('div');
    divMessageContent.id = 'divMessageContent';
    document.body.appendChild(divMessage);
    divMessage.appendChild(divMessageContent);
    divMessage.style.filter = 'alpha(opacity=0)';
    divMessage.style.opacity = 0;
    divMessage.alpha = 0;
  } else { 
    divMessage= document.getElementById('divMessage');
    divMessageContent = document.getElementById('divMessageContent');
  }
 
  divMessageContent.innerHTML = string;
  divMessage.style.display = 'block';
  var divMessageHeight = divMessage.offsetHeight;
  var targetDiv = document.getElementById(target);
  targetDiv.focus();
  var targetHeight = targetDiv.offsetHeight;
  var targetWidth = targetDiv.offsetWidth;
  var topPosition = getTopPosition(targetDiv) - ((divMessageHeight - targetHeight) / 2);
  var leftPosition = getLeftPosition(targetDiv) + targetWidth + MSGOFFSET;
  divMessage.style.top = topPosition + 'px';
  divMessage.style.left = leftPosition + 'px';
  
  clearInterval(divMessage.timer);
  divMessage.timer = setInterval("fadeMessage(1)", MSGTIMER);
  if(!autohide) {
    autohide = MSGHIDE;  
  }
  window.setTimeout("hideMessage()", (autohide * 1000));
}

function hideMessage(msg) {
  var divMessage = document.getElementById('divMessage');
  if(!divMessage.timer) {
    divMessage.timer = setInterval("fadeMessage(0)", MSGTIMER);
  }
}

function fadeMessage(flag) {
  if(flag == null) {
    flag = 1;
  }
  var divMessage = document.getElementById('divMessage');
  var value;
  if(flag == 1) {
    value = divMessage.alpha + MSGSPEED;
  } else {
    value = divMessage.alpha - MSGSPEED;
  }
  divMessage.alpha = value;
  divMessage.style.opacity = (value / 100);
  divMessage.style.filter = 'alpha(opacity=' + value + ')';
  if(value >= 99) {
    clearInterval(divMessage.timer);
    divMessage.timer = null;
  } else if(value <= 1) {
    divMessage.style.display = "none";
    clearInterval(divMessage.timer);
  }
}

function getLeftPosition(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;
}


function getTopPosition(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/form/msg_arrow.gif"; 
}*/

