").data("index",b).append($("").text(c.connector)).append($(" ").html(UI.format.status(c))).append($(" ").html(a(c))).append($(" ").css("text-align",
"right").html($("").text("Edit").click(function(){UI.navto("Edit Protocol",$(this).closest("tr").data("index"))})).append($("").text("Delete").click(function(){var a=$(this).closest("tr").data("index");if(confirm('Are you sure you want to delete the protocol "'+mist.data.config.protocols[a].connector+'"?')){mist.data.config.protocols.splice(a,1);mist.send(function(){UI.navto("Protocols")},{config:mist.data.config})}}))))}};i();UI.interval.set(function(){mist.send(function(){i()})},
-3E4);break;case "Edit Protocol":if("undefined"==typeof mist.data.capabilities){mist.send(function(){UI.navto(a,c)},{capabilities:!0});b.append("Loading..");break}var l=!1;""!=c&&0<=c&&(l=!0);var k={},q;for(q in mist.data.config.protocols)k[mist.data.config.protocols[q].connector]=1;var S=function(a){var b=mist.data.capabilities.connectors[a],d=mist.convertBuildOptions(b,o);d.push({type:"hidden",pointer:{main:o,index:"connector"},value:a});d.push({type:"buttons",buttons:[{type:"save",label:"Save",
+3E4);break;case "Edit Protocol":if("undefined"==typeof mist.data.capabilities){mist.send(function(){UI.navto(a,c)},{capabilities:!0});b.append("Loading..");break}var l=!1;""!=c&&0<=c&&(l=!0);var k={},q;for(q in mist.data.config.protocols)k[mist.data.config.protocols[q].connector]=1;var T=function(a){var b=mist.data.capabilities.connectors[a],d=mist.convertBuildOptions(b,o);d.push({type:"hidden",pointer:{main:o,index:"connector"},value:a});d.push({type:"buttons",buttons:[{type:"save",label:"Save",
"function":function(){if(l)mist.data.config.protocols[c]=o;else{if(!mist.data.config.protocols)mist.data.config.protocols=[];mist.data.config.protocols.push(o)}mist.send(function(){UI.navto("Protocols")},{config:mist.data.config})}},{type:"cancel",label:"Cancel","function":function(){UI.navto("Protocols")}}]});if("deps"in b&&b.deps!=""){$t=$("").text("Dependencies:");$ul=$("");$t.append($ul);if(typeof b.deps=="string")b.deps=b.deps.split(", ");for(var e in b.deps){a=$("").text(b.deps[e]+
-" ");$ul.append(a);typeof k[b.deps[e]]!="undefined"||typeof k[b.deps[e]+".exe"]!="undefined"?a.append($("").addClass("green").text("(Configured)")):a.append($("").addClass("red").text("(Not yet configured)"))}d.unshift({type:"text",text:$t[0].innerHTML})}return UI.buildUI(d)},k={};for(q in mist.data.config.protocols)k[mist.data.config.protocols[q].connector]=1;if(l){var r=mist.data.config.protocols[c],o=r;b.find("h2").append(' "'+r.connector+'"');b.append(S(r.connector))}else{b.html($("").text("New Protocol"));
-var o={},v=[];for(q in mist.data.capabilities.connectors)v.push([q,q]);var T=$("");b.append(UI.buildUI([{label:"Protocol",type:"select",select:v,"function":function(){T.html(S($(this).getval()))}}])).append(T)}break;case "Streams":if(!("capabilities"in mist.data)){b.html("Loading..");mist.send(function(){UI.navto(a)},{capabilities:!0});break}f=$("").append($("").append("").attr("colspan",6).text("Loading.."));d=$("").html($("").html($("").html($("").text("Stream name").attr("data-sort-type",
+" ");$ul.append(a);typeof k[b.deps[e]]!="undefined"||typeof k[b.deps[e]+".exe"]!="undefined"?a.append($("").addClass("green").text("(Configured)")):a.append($("").addClass("red").text("(Not yet configured)"))}d.unshift({type:"text",text:$t[0].innerHTML})}return UI.buildUI(d)},k={};for(q in mist.data.config.protocols)k[mist.data.config.protocols[q].connector]=1;if(l){var r=mist.data.config.protocols[c],o=r;b.find("h2").append(' "'+r.connector+'"');b.append(T(r.connector))}else{b.html($("").text("New Protocol"));
+var o={},v=[];for(q in mist.data.capabilities.connectors)v.push([q,q]);var U=$("");b.append(UI.buildUI([{label:"Protocol",type:"select",select:v,"function":function(){U.html(T($(this).getval()))}}])).append(U)}break;case "Streams":if(!("capabilities"in mist.data)){b.html("Loading..");mist.send(function(){UI.navto(a)},{capabilities:!0});break}f=$("").append($("").append("").attr("colspan",6).text("Loading.."));d=$("").html($("").html($("").html($("").text("Stream name").attr("data-sort-type",
"string").addClass("sorting-asc")).append($(" ").text("Source").attr("data-sort-type","string")).append($(" ").text("Status").attr("data-sort-type","int")).append($(" ").css("text-align","right").text("Connections").attr("data-sort-type","int")).append($(" ")).append($(" ")))).append(f);b.append(UI.buildUI([{type:"help",help:"Here you can create, edit or delete new and existing streams. Immidiately go to the stream preview or view the information available about the stream with the info button."}])).append($("").text("New stream").click(function(){UI.navto("Edit Stream")})).append(d);
-d.stupidtable();var E=function(){var a=[],b;for(b in mist.data.active_streams)a.push({streams:[mist.data.active_streams[b]],fields:["clients"],start:-2});mist.send(function(){$.extend(true,x,mist.data.streams);var a=0;f.html("");if(mist.data.LTS)for(a in mist.data.active_streams){var b=mist.data.active_streams[a].split("+");if(!(b.length<2)&&b[0]in mist.data.streams){b=U(mist.data.active_streams[a],mist.data.streams[b[0]]);b.online=1;x[mist.data.active_streams[a]]=b}}b=Object.keys(x);b.sort();for(var c in b){var d=
+d.stupidtable();var E=function(){var a=[],b;for(b in mist.data.active_streams)a.push({streams:[mist.data.active_streams[b]],fields:["clients"],start:-2});mist.send(function(){$.extend(true,x,mist.data.streams);var a=0;f.html("");if(mist.data.LTS)for(a in mist.data.active_streams){var b=mist.data.active_streams[a].split("+");if(!(b.length<2)&&b[0]in mist.data.streams){b=V(mist.data.active_streams[a],mist.data.streams[b[0]]);b.online=1;x[mist.data.active_streams[a]]=b}}b=Object.keys(x);b.sort();for(var c in b){var d=
b[c],e;e=d in mist.data.streams?mist.data.streams[d]:x[d];var g=$("").css("text-align","right").html($("").addClass("description").text("Loading..")),h=0;if(typeof mist.data.totals!="undefined"&&typeof mist.data.totals[d]!="undefined"){var C=mist.data.totals[d].all_protocols.clients,h=0;if(C.length){for(a in C)h=h+C[a][1];h=Math.round(h/C.length)}}g.html(UI.format.number(h));if(h==0&&e.online==1)e.online=2;h=$(" ").css("text-align","right").css("white-space","nowrap");(!("ischild"in e)||
!e.ischild)&&h.html($("").text("Edit").click(function(){UI.navto("Edit Stream",$(this).closest("tr").data("index"))})).append($("").text("Delete").click(function(){var a=$(this).closest("tr").data("index");if(confirm('Are you sure you want to delete the stream "'+a+'"?')){delete mist.data.streams[a];var b={};mist.data.LTS?b.deletestream=[a]:b.streams=mist.data.streams;mist.send(function(){UI.navto("Streams")},b)}}));C=$("").text(d);e.ischild&&C.css("padding-left","1em");var i=
UI.format.status(e),j=$("").text("Preview").click(function(){UI.navto("Preview",$(this).closest("tr").data("index"))});if(e.filesfound){i.html("");j="";g.html("")}f.append($("").data("index",d).html($("").html(C).attr("title",d).addClass("overflow_ellipsis")).append($(" ").text(e.source).attr("title",e.source).addClass("description").addClass("overflow_ellipsis").css("max-width","20em")).append($(" ").data("sort-value",e.online).html(i)).append(g).append($(" ").html(j)).append(h));
-a++}},{totals:a,active_streams:true})},x=$.extend(!0,{},mist.data.streams),U=function(a,b){var c=$.extend({},b);delete c.meta;delete c.error;c.online=2;c.name=a;c.ischild=true;return c};if(mist.data.LTS){var B=0,F=0;for(h in mist.data.streams)r=mist.data.capabilities.inputs.Folder||mist.data.capabilities.inputs["Folder.exe"],mist.inputMatch(r.source_match,mist.data.streams[h].source)&&(x[h].source+="*",mist.send(function(a,b){var c=b.stream,d;for(d in a.browse.files)for(var e in mist.data.capabilities.inputs)if(!(e.indexOf("Buffer")>=
-0||e.indexOf("Folder")>=0)&&mist.inputMatch(mist.data.capabilities.inputs[e].source_match,"/"+a.browse.files[d])){var g=c+"+"+a.browse.files[d];x[g]=U(g,mist.data.streams[c]);x[g].source=mist.data.streams[c].source+a.browse.files[d]}"files"in a.browse&&a.browse.files.length?x[c].filesfound=true:mist.data.streams[c].filesfound=false;F++;if(B==F){mist.send(function(){E()},{active_streams:true});UI.interval.set(function(){E()},1E4)}},{browse:mist.data.streams[h].source},{stream:h}),B++);0==B&&(mist.send(function(){E()},
+a++}},{totals:a,active_streams:true})},x=$.extend(!0,{},mist.data.streams),V=function(a,b){var c=$.extend({},b);delete c.meta;delete c.error;c.online=2;c.name=a;c.ischild=true;return c};if(mist.data.LTS){var B=0,F=0;for(h in mist.data.streams)r=mist.data.capabilities.inputs.Folder||mist.data.capabilities.inputs["Folder.exe"],mist.inputMatch(r.source_match,mist.data.streams[h].source)&&(x[h].source+="*",mist.send(function(a,b){var c=b.stream,d;for(d in a.browse.files)for(var e in mist.data.capabilities.inputs)if(!(e.indexOf("Buffer")>=
+0||e.indexOf("Folder")>=0)&&mist.inputMatch(mist.data.capabilities.inputs[e].source_match,"/"+a.browse.files[d])){var g=c+"+"+a.browse.files[d];x[g]=V(g,mist.data.streams[c]);x[g].source=mist.data.streams[c].source+a.browse.files[d]}"files"in a.browse&&a.browse.files.length?x[c].filesfound=true:mist.data.streams[c].filesfound=false;F++;if(B==F){mist.send(function(){E()},{active_streams:true});UI.interval.set(function(){E()},1E4)}},{browse:mist.data.streams[h].source},{stream:h}),B++);0==B&&(mist.send(function(){E()},
{active_streams:!0}),UI.interval.set(function(){E()},3E4))}else mist.send(function(){E()},{active_streams:!0}),UI.interval.set(function(){E()},1E4);break;case "Edit Stream":if("undefined"==typeof mist.data.capabilities){mist.send(function(){UI.navto(a,c)},{capabilities:!0});b.append("Loading..");break}l=!1;""!=c&&(l=!0);l?(h=c,o=mist.data.streams[h],b.find("h2").append(' "'+h+'"')):(b.html($("