/**
  * increment file id, or create file id, windows style
  * 
  * "file" will become "file(2)"
  * "file(2)" will become "file(3)" etc.
  *
  * @return string
  */
 public static function name_unique($name, $path)
 {
     $extension = FS::name_extension($name);
     $body = FS::name_body($name);
     while (file_exists($path . $name)) {
         if (substr($body, -1) == ')') {
             // if the body ends in ')'
             // strip the trailing ')' and explode on '('
             $bodyParts = explode('(', substr($body, 0, strlen($body) - 1));
             if (is_numeric($bodyParts[count($bodyParts) - 1])) {
                 // if the last part of the explode is numeric, it means
                 // the last part was '('numeric')'
                 // get the number as int
                 $number = (int) $bodyParts[count($bodyParts) - 1];
                 // increment
                 $number++;
                 //remove last part of the name bodyparts
                 array_pop($bodyParts);
                 // stick it back on
                 // implode on '(' because we explode on '(' before
                 // so this way we reinsert '(' elsewhere in the body name
                 $body = implode('(', $bodyParts) . '(' . $number . ')';
             } else {
                 // last part was not (numeric)
                 // just stick (2) on it
                 $body = $body . '(2)';
             }
         } else {
             // last part was not (numeric)
             // just stick (2) on it
             $body = $body . '(2)';
         }
         // reassemble name
         $name = $body . '.' . $extension;
     }
     return $name;
 }