///Open by linked, selected or clipboard text: file (supported the opening of scripts from AkalPad directory), folder; url, ets...
// http://akelpad.sourceforge.net/forum/viewtopic.php?p=5598#5598
// Version: 1.8 (2010.10.28)

var tObject;

if (WScript.Arguments.length && WScript.Arguments(0) != "")
   tObject = WScript.Arguments(0);               //1. Проверяем в аргументах (L- Link)
else
{
   tObject = AkelPad.GetSelText();               //2. Берём выделенный текст    (S- Selected)
   if (tObject == '')
      tObject = AkelPad.GetClipboardText();      //3. Берём содержимое буфера обмена (C - Clipboard)
}

if (tObject != '')
{
   var poz = tObject.indexOf('\\\\AkelFiles')
   if (poz != -1 && poz <= 2)
   {
      tObject = AkelPad.GetAkelDir() + tObject;

      if (tObject.charAt(tObject.length-1) != "\\")
      {
         //Подгружаемый в программном коде с помощью eval файл скрипта
         openFile(tObject);
      }
      else
      {
         //Папка из дирректории AkelPad'а
         openbyDefault(tObject);
      }
   }
   else
   {
      if (tObject.indexOf("\\") == -1 && tObject.indexOf("//") == -1)
      {
         //Например, в буфер было скопировано имя файла скрипта из ContextMenu-плагина
         openFile(AkelPad.GetAkelDir(5) + '\\' + tObject);
         //AkelPad.Call("Scripts::Main", 2, tObject);
      }
      else
      {
         //URL или полное имя файла (возможно сетевое)
         openbyDefault(tObject);
      }
   }
}

function openbyDefault(tObject)
{
   var WshShell = new ActiveXObject("WScript.Shell");
   WshShell.Exec('rundll32.exe shell32, ShellExec_RunDLL "' + tObject + '"');
}

function openFile(tObject)
{
   var fso = new ActiveXObject("Scripting.FileSystemObject");

   tObject = tObject.replace(/\\\\/g, "\\");

   if (fso.FileExists(tObject) == true)
      AkelPad.OpenFile(tObject);
   else
      openbyDefault(tObject);
}