Here you go
// PlayfulGo
//
//
// This is a script for Directory Opus.
// See http://www.gpsoft.com.au/DScripts/redirect.asp?page=scripts for development information.
//
//
//
// Called by Directory Opus to initialize the script
function OnInit(initData)
{
initData.name = "PlayfulGo";
initData.desc = "";
initData.copyright = "";
initData.version = "1.0";
initData.default_enable = false;
var cmd = initData.AddCommand();
cmd.name = "PlayfulGo";
cmd.method = "OnPlayfulGo";
cmd.desc = "Equivalent of Go NEWTAB=findexistingdual";
cmd.label = "PlayfulGo";
cmd.template = "PATH";
}
// Implement the PlayfulGo command
function OnPlayfulGo(scriptCmdData)
{
if (scriptCmdData.func.sourcetab.lister.dual == 0)
scriptCmdData.func.command.RunCommand('Go "' + scriptCmdData.func.args.path + '" NEWTAB=findexisting');
else
if (!DoPlayfulGo(scriptCmdData, scriptCmdData.func.sourcetab.lister.tabs))
scriptCmdData.func.command.RunCommand('Go "' + scriptCmdData.func.args.path + '" NEWTAB');
}
function DoPlayfulGo(scriptCmdData, tabs)
{
var FSUtil = DOpus.FSUtil();
var e = new Enumerator(tabs);
var index = new Array(0, 0);
e.moveFirst();
while (!e.atEnd())
{
if (FSUtil.ComparePath(e.item().path, scriptCmdData.func.args.path))
{
if (scriptCmdData.func.sourcetab.right != e.item().right)
scriptCmdData.func.command.AddLine('Set FOCUS=toggle');
scriptCmdData.func.command.AddLine('Go TABSELECT ' + index[e.item().right ? 1 : 0]);
scriptCmdData.func.command.Run();
return true;
}
++index[e.item().right ? 1 : 0];
e.moveNext();
}
return false;
}