#!/mod/bin/jimsh

package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size

jqplugin progressbar
jscss crop.js
header

set rfile [cgi_get file]
set ts [ts fetch $rfile]
set dir [file dirname $rfile]

set len [$ts duration 1]

puts "
<fieldset class=cleft>
<legend>Crop recording</legend>

<table class=keyval cellpadding=5>
<tr><th>File:</th><td>$rfile</td></tr>
<tr><th>Length:</th><td>[clock format $len -format \"%T\"]</td></tr>
<tr><th>Size:</th><td>[pretty_size [$ts size]] ([$ts get definition])</td></tr>
<tr><th>Bookmarks:</th><td>[$ts get bookmarks] @ "

set flag 0
foreach b [$ts bookmarks] {
	if $flag { puts -nonewline ", " }
	incr flag
	puts -nonewline [clock format $b -format "%T"]
}

puts "</td></tr><tr><th>File</th><td>"

puts "<div style=\"position: relative; top: -10px\">"

proc div {type left right} {
	set width $($right - $left)
	puts "<div class=$type style=\"left: ${left}px; width: ${width}px\">
	    $type</div>"
}

set keeping 0
set last 0
set start -1
foreach b [$ts bookmarks] {
	if {$start < 0} {
		set start $b
		continue
	}
	set end $b

	incr keeping $($end - $start)

	set left $($start * 500 / $len)
	set right $($end * 500 / $len)

	div cut $last $($left - 1)
	div keep $left $($right - 1)

	set last $right

	set start -1
}

if {$start > 0} {
	incr keeping $($len - $start)
	set left $($start * 500 / $len)
	div cut $last $($left - 1)
	div keep $left 500
} else {
	div cut $last 500
}

set keepperc $($keeping * 100.0 / $len)
set esttime $(int($keeping * 0.025))
if {[$ts get definition] eq "HD"} { set esttime $($esttime * 4) }

puts "
</div>
</td></tr>
<tr><th>Keeping:</th><td>
[clock format $keeping -format "%T"] ([format "%.2f" $keepperc]%)
</td></tr>
<tr><th>Time:</th>
<td>Cropping will take around [clock format $esttime -format "%T"]</td></tr>
</table>

<span class=hidden id=params
    file=\"[cgi_quote_url $rfile]\"
    perc=\"$keepperc\"
    dir=\"[cgi_quote_url $dir]\"
></span>

<div id=cropdiv style=\"padding: 1em\">
<button id=cropit>Perform crop operation</button>
</div>

<div id=progressdiv class=hidden>
Cropping: <div id=progressbar></div>
</div>

<button id=back class=hidden>Back to media list</button>

<div id=output class=pre style=\"margin-top: 10px\"></div>
</fieldset>

"