function qf_errorHandler(element, _qfMsg) {
  // klasa bledu - display: block;
  //var classname_err_msg = "error";
  // klasa inputa - zmieniany border
  var classname_err_inp = "error-inp";
  var err_inp_length = (classname_err_inp.length+1);

  tr = element.parentNode;
  
  while (tr && tr.nodeName != "SPAN") {
    tr = tr.parentNode;
  }
  if (_qfMsg != '') {
    var msgDiv = document.getElementById('err_'+element.name);
    if (!msgDiv) {
      msgDiv = document.createElement("SPAN");
      msgDiv.id = 'err_'+element.name;
      msgDiv.className = classname_err_msg;
      if (classname_err_msg == "error-block") {
        element.parentNode.insertBefore(msgDiv, element.parentNode.firstChild);
      } else {
        element.parentNode.appendChild(msgDiv);
        //element.parentNode.insertAfter(msgDiv, element.parentNode.firstChild);
      }
      
    }
    while (msgDiv.firstChild) {
      msgDiv.removeChild(msgDiv.firstChild);
    }
    msgDiv.appendChild(document.createTextNode(_qfMsg.substring(3)));
    //alert(tr.className.length+":"+ tr.className + "::"+tr.className.substr(tr.className.length - 10, 10));
    if (tr.className.substr(tr.className.length - err_inp_length, err_inp_length) != " "+classname_err_inp
        && tr.className != classname_err_inp) {
      tr.className += " "+classname_err_inp;
    }
    return false;
  } else {
    var msgDiv = document.getElementById('err_'+element.name);
    if (msgDiv) {
      msgDiv.parentNode.removeChild(msgDiv);
    }
    if (tr.className.substr(tr.className.length - err_inp_length, err_inp_length) == " "+classname_err_inp) {
      tr.className = tr.className.substr(0, tr.className.length - err_inp_length);
    } else if (tr.className == classname_err_inp) {
      tr.className = "";
    }
    return true;
  }
}
function validate_client_email(element) {
  var value = '';
  var errFlag = new Array();
  var _qfGroups = {};
  var _qfMsg = '';
  var frm = element.parentNode;
  while (frm && frm.nodeName != "FORM") {
    frm = frm.parentNode;
  }
  value = frm.elements['email'].value;
  if (value == '' && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - field is required';
  }

  value = frm.elements['email'].value;
  var regex = /^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;
  if (value != '' && !regex.test(value) && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - incorect email';
  }

  value = frm.elements['email'].value;
  if (value != '' && value.length > 255 && !errFlag['email']) {
    errFlag['email'] = true;
    _qfMsg = _qfMsg + '\n - to much chars (max: 255)';
  }

  return qf_errorHandler(element, _qfMsg);
}

function validate_client_name(element) {
  var value = '';
  var errFlag = new Array();
  var _qfGroups = {};
  var _qfMsg = '';
  var frm = element.parentNode;
  while (frm && frm.nodeName != "FORM") {
    frm = frm.parentNode;
  }
  value = frm.elements['name'].value;
  if (value == '' && !errFlag['name']) {
    errFlag['name'] = true;
    _qfMsg = _qfMsg + '\n - field is required';
  }

  value = frm.elements['name'].value;
  if (value != '' && value.length > 128 && !errFlag['name']) {
    errFlag['name'] = true;
    _qfMsg = _qfMsg + '\n - to much chars  (max: 128)';
  }

  return qf_errorHandler(element, _qfMsg);
}

function validate_client_content(element) {
  var value = '';
  var errFlag = new Array();
  var _qfGroups = {};
  var _qfMsg = '';
  var frm = element.parentNode;
  while (frm && frm.nodeName != "FORM") {
    frm = frm.parentNode;
  }
  value = frm.elements['content'].value;
  if (value == '' && !errFlag['content']) {
    errFlag['content'] = true;
    _qfMsg = _qfMsg + '\n - field is required';
  }

  return qf_errorHandler(element, _qfMsg);
}

function validate_client(frm) {
  var ret = true;

  ret = validate_client_email(frm.elements['email']) && ret;
  ret = validate_client_name(frm.elements['name']) && ret;
  ret = validate_client_content(frm.elements['content']) && ret;;
  return ret;
}