<?xml version="1.0"?>
<button backcol="none" display="both" label_pos="right" textcol="none">
	<label>InstallViewer</label>
	<icon1>#newcommand</icon1>
	<function type="script">
		<instruction>@script JScript</instruction>
		<instruction>String.prototype.lTrim = function(chr){chr=chr||&quot;\\s&quot;;return new String(this.replace(new RegExp(&quot;^&quot;+chr+&quot;*&quot;,&quot;i&quot;),&apos;&apos;));}</instruction>
		<instruction>String.prototype.rTrim = function(chr){chr=chr||&quot;\\s&quot;;return new String(this.replace(new RegExp(chr+&quot;*$&quot;,&quot;i&quot;),&apos;&apos;));}</instruction>
		<instruction>String.prototype.trim = function(chr){return this.lTrim(chr).rTrim(chr);}</instruction>
		<instruction>String.prototype.left = function(chrs){return this.substring(0,chrs);}</instruction>
		<instruction>String.prototype.right = function(chrs){return this.substring(this.length-chrs);}</instruction>
		<instruction>////////////////////////////////////////////////////////////////////////////////</instruction>
		<instruction>function OnClick(data){</instruction>
		<instruction>	var isOpus13 = DOpus.version.AtLeast(&quot;13.0&quot;);</instruction>
		<instruction>	var zipFileName = &quot;dosv_0_0_0_4.zip&quot;;</instruction>
		<instruction>	var f = data.func, cmd = f.command, tab = f.sourcetab;</instruction>
		<instruction>	var is64Bit = isOpus13 || DOpus.FSUtil.Exists(&apos;/home\\x86&apos;);</instruction>
		<instruction>	var options = &quot;WHENEXISTS=replace COPYFILETIMES=yes COPYDIRTIMES=yes COPYATTR=yes&quot;;</instruction>
		<instruction>	////////////////////////////////////////////////////////////////////////////</instruction>
		<instruction>	function GetNameOfFirstSubFolder(path){</instruction>
		<instruction>		var folderEnum = DOpus.FSUtil.ReadDir(path);</instruction>
		<instruction>		return folderEnum.Close(), folderEnum.Next().name;</instruction>
		<instruction>	}</instruction>
		<instruction>	////////////////////////////////////////////////////////////////////////////</instruction>
		<instruction>	function Run(s){</instruction>
		<instruction>		DOpus.Output(&quot;    Run Command    : &quot; + s);</instruction>
		<instruction>		cmd.RunCommand(s);</instruction>
		<instruction>	}</instruction>
		<instruction>	////////////////////////////////////////////////////////////////////////////</instruction>
		<instruction>	DOpus.Output(&quot;Plugin Installer..&quot;);</instruction>
		<instruction>	</instruction>
		<instruction>	var tabPath = (&quot;&quot;+tab.path).rTrim(&apos;\\\\&apos;);</instruction>
		<instruction>	var tmpDirPath = tabPath+&apos;\\&apos;+zipFileName+&apos;.tmp&apos;;</instruction>
		<instruction>	var zipFilePath = tabPath + &apos;\\&apos; + zipFileName;</instruction>
		<instruction>	if (!DOpus.FSUtil.Exists(zipFilePath)){</instruction>
		<instruction>		DOpus.Output(&quot;E   Zipfile [&quot;+zipFilePath+&quot;] not found, aborting.&quot;, true);</instruction>
		<instruction>		return false;		</instruction>
		<instruction>	}</instruction>
		<instruction>	</instruction>
		<instruction>	DOpus.Output(&quot;    TabPath        : &quot; + tabPath);</instruction>
		<instruction>	DOpus.Output(&quot;    TmpDirPath     : &quot; + tmpDirPath);</instruction>
		<instruction>	DOpus.Output(&quot;    64bit          : &quot; + is64Bit);</instruction>
		<instruction>	</instruction>
		<instruction>	Run(&apos;COPY EXTRACT &apos;+options+&apos; FILE=&quot;&apos;+zipFilePath+&apos;&quot; TO=&quot;&apos;+tmpDirPath+&apos;&quot;&apos;);</instruction>
		<instruction>	var zipInnerDirName = GetNameOfFirstSubFolder(tmpDirPath);</instruction>
		<instruction>	DOpus.Output(&quot;    ZipInnerDirName: &quot; + zipInnerDirName);</instruction>
		<instruction />
		<instruction>	if (is64Bit){</instruction>
		<instruction>		if (!isOpus13){</instruction>
		<instruction>			Run(&apos;COPY &apos;+options+&apos; EXTRACT FILE=&quot;&apos;+tmpDirPath+&apos;\\&apos;+zipInnerDirName+&apos;\\x86&quot; TO=&quot;/home\\x86\\viewers&quot;&apos;);</instruction>
		<instruction>		}</instruction>
		<instruction>		Run(&apos;COPY &apos;+options+&apos; EXTRACT FILE=&quot;&apos;+tmpDirPath+&apos;\\&apos;+zipInnerDirName+&apos;\\x64&quot; TO=&quot;/home\\viewers&quot;&apos;);</instruction>
		<instruction>	} else {</instruction>
		<instruction>		Run(&apos;COPY &apos;+options+&apos; EXTRACT FILE=&quot;&apos;+tmpDirPath+&apos;\\&apos;+zipInnerDirName+&apos;\\x86&quot; TO=&quot;/home\\viewers&quot;&apos;);</instruction>
		<instruction>		Run(&apos;COPY &apos;+options+&apos; EXTRACT FILE=&quot;&apos;+tmpDirPath+&apos;\\&apos;+zipInnerDirName+&apos;\\x64&quot; TO=&quot;/home\\x64\\viewers&quot;&apos;);</instruction>
		<instruction>	}</instruction>
		<instruction>	Run(&apos;COPY &apos;+options+&apos; FILE=&quot;&apos;+tmpDirPath+&apos;\\&apos;+zipInnerDirName+&apos;\\dosv.config.xml&quot; TO=&quot;/dopusdata\\configfiles\\plugins&quot;&apos;);</instruction>
		<instruction>	Run(&apos;DELETE NOFROMFOCUS QUIET FILE=&quot;&apos;+tmpDirPath+&apos;&quot;&apos;);</instruction>
		<instruction>	</instruction>
		<instruction>	DOpus.Output(&quot;Done!&quot;);</instruction>
		<instruction>}</instruction>
	</function>
</button>
