function GetFileNameFromURL(file_url)
{
  var path_fragment = file_url.split("/");
  var len = path_fragment.length;
  var file_name = path_fragment[len - 1];

  return file_name;
}

function GetURLFromFilePath(file_path)
{
  var url_string = "";
  var index = 0;
  var ch;

  while((ch = file_path.charAt(index++)) != "")
  {
    if(ch == '\\')
      url_string += '/';
    else
      url_string += ch;
  }
  
  return url_string;
}

function GetFileNameFromPath(file_path)
{
  var path_fragment = file_path.split("\\");
  var len = path_fragment.length;
  var file_name = path_fragment[len - 1];

  return file_name;
}

// retrieves name-value pairs of options attached
// at 'search' portion of url (attached after '?')
function GetURLOptions(file_url)
{
  var options_array = new Array();
  
  // get search portion of url string
  // '?' at the end of url is attached
  //var url_search_str = unescape(file_url.search);
  var url_search_str = file_url.search;
  if(url_search_str == "")
    return options_array;

  // get name-value pairs portion of search string
  var search_str = url_search_str.substring(1);
  if(search_str == "")
    return options_array;
	
  // populate options_array with name-value pairs
  var search_array = search_str.split("&");
  for(var i = 0; i < search_array.length; i++)
  {
    var name_value_str = search_array[i].split("=");
    var name = unescape(name_value_str[0]);
	var value = unescape(name_value_str[1]);
	
	options_array[name] = value;
  }  
  return options_array;
}

// find out a specified character is
// illegal for a part of file name or not
// (assumes specified char. is printable char.)
function IsIllegalFileNameChar(ch)
{
  switch(ch)
  {
    case '\\':
	case '/':
	case ':':
	case '*':
	case '?':
	case '"':
	case '<':
	case '>':
	case '|':
	  return true;
	default:
	  return false;
  } 
}

// find out a specified character is
// illegal for a part of path name or not
// (assumes specified char. is printable char.)
function IsIllegalPathNameChar(ch)
{
  switch(ch)
  {
	case ':':
	case '*':
	case '?':
	case '"':
	case '<':
	case '>':
	case '|':
	  return true;
	default:
	  return false;
  } 
}