public static function run($input)
 {
     if (!$input) {
         $input = $_REQUEST;
     }
     if (!count($input)) {
         return false;
     }
     self::$input = $input;
     //die(print_r(self::$data));
     $passed = true;
     foreach (self::$data as $fieldName => &$field) {
         foreach ($field['rules'] as &$rule) {
             $func = $rule['rule'];
             if (method_exists(__CLASS__, $func)) {
                 if (isset($rule['vars'])) {
                     $rule['passed'] = (int) call_user_func(array('MG_Validation', $func), $fieldName, $rule['vars']);
                 } else {
                     $rule['passed'] = (int) call_user_func(array('MG_Validation', $func), $fieldName);
                 }
             } else {
                 $rule['passed'] = (int) call_user_func($func, self::$input[$fieldName]);
             }
             if (!$rule['passed']) {
                 addError(str_replace("%", $field['friendlyName'], MG_Lang::translate('validation_' . $rule['rule'])));
                 $passed = 0;
                 $field['passed'] = 0;
             }
         }
     }
     return $passed;
 }