#!/mod/bin/jimsh

package require cgi
source /mod/webif/lib/setup
require pretty_size

httpheader

set file [cgi_get file]
set type [cgi_get type]

if {$file == 0} exit

file stat $file st
set sz [pretty_size $st(size)]

if {$type eq "ts"} {
	require epg.class ts.class

	set ts [ts fetch $file]

	puts "
<table class=keyval>
<tr>
	<th>Title</th>
	<td class=va>
	"
	if {[file exists "[file rootname $file].thm"]} {
		puts "<img class=\"bmp va\" width=70 height=39 src=\"bmp.jim?file=$file\">"
	}
	puts "[$ts get title]</td>
</tr><tr>
	<th>Synopsis</th>
	<td>[$ts get synopsis]</td>
</tr><tr>
	"

	if {[$ts flag "Guidance"] > 0} {
		puts "
			<th>Guidance</th>
			<td><img class=va
			    src=/images/174_1_26_GuidancePolicy.png height=21>
			    [$ts get guidance]
			</td>
			</tr><tr>
		"
	}

	puts "
	<th>Definition</th>
	<td>
	"
	if {[$ts get definition] eq "HD"} {
		puts "<img class=va src=/images/172_1_00_HD.png height=21>"
	} else {
		puts "<img class=va src=/images/172_1_26_SD.png height=21>"
	}
	puts "</td>
</tr><tr>
	<th>Channel</th>
	<td>[epg channelicon [$ts get channel_name] 50 "vertical-align: middle"]
	    [$ts get channel_num] - [$ts get channel_name]</td>
</tr><tr>
	<th>Start Time</th>
	<td>"
	puts [clock format [$ts get start] -format "%c %Z"]
	puts "<font class=also>(Scheduled: [
	    clock format [$ts get schedstart] -format "%c %Z"])</font>"
	puts "</td>
</tr><tr>
	<th>End Time</th>
	<td>"
	puts [clock format [$ts get end] -format "%c %Z"]
	puts "<font class=also>(Scheduled: [clock format \
	    [expr [$ts get schedstart] + [$ts get scheddur]] \
	    -format "%c %Z"])</font>"
	puts "</td>
</tr><tr>
	<th>Duration</th>
	<td>[$ts duration] minute(s).
	    <font class=also>(Scheduled: [expr [$ts get scheddur] / 60])
	    </font></td>
</tr><tr>
	<th>Size</th>
	<td>$sz</td>
"
lassign [$ts dlnaloc] url
if {$url ne ""} {
	puts "</tr><tr><th>DLNA&nbsp;URL</th>
	   <td><a href=\"$url\">$url</a></td>"
}
puts "
</tr><tr>
	<th>Files</th>
	<td>
"

set fileset [$ts fileset]
puts -nonewline "<img id=xfileset class=va src=/img/tree/plusonly.png>"
puts -nonewline "[llength $fileset] file"
if {[llength $fileset] != 1} { puts -nonewline "s" }
puts -nonewline " in set."
puts "<div id=fileset class=hidden><ul>"
foreach f $fileset {
	puts "<li>[file tail $f] ([pretty_size [file size $f]])</li>" 
}
puts "</ul></div>"

puts "</td>
</tr><tr>
	<th>Flags</th>
	<td>[$ts get flags]
"
if {[$ts get bookmarks]} {
		puts " \[Bookmarks: [$ts get bookmarks]\]"
}

	puts "</tr>"
	puts "</table>"
	puts {
<script type=text/javascript>
$('#xfileset').click(function() {
	$('#fileset').slideToggle('slow', function() {
		if ($('#fileset').is(':visible'))
			$('#xfileset').attr('src', '/img/tree/minustop.png');
		else
			$('#xfileset').attr('src', '/img/tree/plusonly.png');
	});
});
</script>
	}
	exit
}

# Otherwise, for a general file.

puts "
<table class=keyval>
<tr>
	<th>File</th>
	<td>$file</td>
</tr><tr>
	<th>Size</th>
	<td>$sz</td>
</tr><tr>
	<th>Info</th>
	<td class=pre id=ffmpeg>
		<img src=/img/loading.gif><i>Loading...</i>
	</td>
</tr>
</table>
"

set url "/browse/ffmpeg.jim?file=[cgi_quote_url $file]"
puts { <script type="text/javascript"> }
puts "var url = \"$url\";"
puts {
	$('#ffmpeg').load(url);
</script>
}