// JavaScript Document
function pathinfo(path, options)
{
  var re = /(([^\\/]*?)(?:\.([^.]*))?)$/;
  var re2 = /(.*)[\\/]/;
  
  var path_arr = re.exec(path);
  var dir_arr = re2.exec(path);
  
  // To be PHP compatible, no directory becomes "."
  if (dir_arr == null || dir_arr == "") dir_arr = ["","."];
  
  var path_obj = {dirname:dir_arr[1],basename:path_arr[0],extension:path_arr[3],filename:path_arr[2]};
  
  if (typeof options == "undefined") {
    if (path_obj.extension == "" && path_obj.filename.slice(-1) != ".") {
      // To be PHP compatible, if there is no dot (.) in the name, the extension value is not set.
      delete path_obj.extension;
    }
    return path_obj;
  } else {
    switch (options) {
      case "PATHINFO_DIRNAME": return path_obj.dirname;
      case "PATHINFO_BASENAME": return path_obj.basename;
      case "PATHINFO_EXTENSION": return path_obj.extension;
      case "PATHINFO_FILENAME": return path_obj.filename;
    }
  }
}