var global_email_regexp  = /^((([a-zA-Z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-zA-Z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-zA-Z]|[0-9])([a-zA-Z]|[0-9]|\-){0,61}([a-zA-Z]|[0-9])\.))*([a-zA-Z]|[0-9])([a-zA-Z]|[0-9]|\-){0,61}([a-zA-Z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/;
var global_url_regexp    = /^((([fF][tT][pP]|[hH][tT][tT][pP]|[hH][tT][tT][pP][sS])+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
var global_number_regexp = /^-?[0-9]*\\.[0-9]*$/;
var global_phone_regexp  = /^([\(]+[0-9]+[\)])?([\ ]{0,1})+(((([0-9]){1,24}([\.\ ](([0-9]){1,8})){0,1})){1,8})$/;
var global_mobile_regexp = /^(([0-9]){4}([\ ]{0,1}))+(((([0-9]){1,24}([\.\ ](([0-9]){1,8})){0,1})){1,8})$/;

String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
  return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
  return this.replace(/\s+$/,"");
}
String.prototype.isEmpty = function() {
  return (this.length == 0);
}
String.prototype.firstWhitechar = function(pos) {
  if (this.isEmpty) return -1;
  var whitespace = "\n\r\t ";
  while (pos < this.length) {
    if (whitespace.indexOf(this.charAt(pos)) != -1) { return pos; }
    else { pos++; }
  }
  return this.length;
}

function reg_match(text, pattern) {
  if (text == "") { return false; }
  if (text.match(pattern)) { return true; }
  return false;
}

function check_email(value) {
  return reg_match(value, global_email_regexp);
}

function checkForm(formObj) {
  if (formObj == null) return false;
  var numeStr = formObj.nume.value;
  var emailStr = formObj.email.value;
  var subiectStr = formObj.subiect.value;
  var mesajStr = formObj.mesaj.value;
  var msg = 'Nu ai completat corect formularul de contact!  \n';
  var obj = null;
  formObj.nume.value = numeStr.trim();
  formObj.email.value = emailStr.trim();
  formObj.subiect.value = subiectStr.trim();
  formObj.mesaj.value = mesajStr.trim();
  if (formObj.nume.value == '') {
    msg += '\n- Nu ai introdus numele si prenumele.  ';
    if (obj == null) { obj = formObj.nume; }
  }
  if (formObj.email.value == '') {
    msg += '\n- Nu ai introdus adresa de email.  ';
    if (obj == null) { obj = formObj.email; }
  } else if (!check_email(formObj.email.value)) {
    msg += '\n- Adresa de email este incorecta.  ';
    if (obj == null) { obj = formObj.email; }
  }
  if (formObj.subiect.value == '') {
    msg += '\n- Nu ai introdus subiectul mesajului.  ';
    if (obj == null) { obj = formObj.subiect; }
  }
  if (formObj.mesaj.value == '') {
    msg += '\n- Nu ai introdus continutul mesajului.  ';
    if (obj == null) { obj = formObj.mesaj; }
  }
  if (obj == null) return true;
  obj.focus();
  alert(msg);
  return false;
}

function doResetContact() {
  var numeObj = document.getElementById('e1');
  var emailObj = document.getElementById('e2');
  var subiectObj = document.getElementById('e3');
  var mesajObj = document.getElementById('e4');
  if (numeObj != null) numeObj.value = '';
  if (emailObj != null) emailObj.value = '';
  if (subiectObj != null) subiectObj.value = '';
  if (mesajObj != null) mesajObj.value = '';
}
