var FormValidation =
{
  init: function()
  {
    var forms = document.getElementsByTagName("form");
    
    for (var i = 0; i < forms.length; i++)
    {
      Core.addEventListener(forms[i], "submit", FormValidation.submitListener);
    }
  },

  rules:
  {
    required: /./,
    requiredNotWhitespace: /\S/,
    positiveInteger: /^\d*[1-9]\d*$/,
    positiveOrZeroInteger: /^\d+$/,
    integer: /^-?\d+$/,
    decimal: /^-?\d+(\.\d+)?$/,
    email: /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/,
    telephone: /^(\+\d+)?( |\-)?(\(?\d+\)?)?( |\-)?(\d+( |\-)?)*\d+$/,
  },

  errors:
  {
    required: "Compilare correttamente i campi specificati.",
    requiredNotWhitespace: "Compilare correttamente i campi specificati.",
    positiveInteger: "Questo campo puņ contenere solo numeri interi positivi.",
    positiveOrZeroInteger: "Questo campo puņ contenere solo numeri interi positivi.",
    integer: "Questo campo puņ contenere solo numeri interi positivi.",
    decimal: "Questo campo puņ contenere solo numeri.",
    email: "Inserire una e-mail valida.",
    telephone: "Inserire un numero di telefono valido."
  },
  
  submitListener: function(event)
  {
    var fields = this.elements;
    
    for (var i = 0; i < fields.length; i++)
    {
      var className = fields[i].className;
      var classRegExp = /(^| )(\S+)( |$)/g;
      var classResult;
      
	  if(className == "delete_item"){
		if(!confirm("Sei sicuro di volerlo eliminare?") == true){
			Core.preventDefault(event);
        	return;
		}
	  }
	  
      while (classResult = classRegExp.exec(className))
      {
        var oneClass = classResult[2];
        var rule = FormValidation.rules[oneClass];
		Core.removeClass(fields[i], "compile_error");
        if (typeof rule != "undefined")
        {
          if (!rule.test(fields[i].value))
          {
            Core.addClass(fields[i], "compile_error");
			fields[i].focus();
            alert(FormValidation.errors[oneClass]);
            Core.preventDefault(event);
            return;
          }
        }
      }
    }
  }
};

Core.start(FormValidation);
