/*!
* jQuery TS3 Viewer v1.0.0
* https://www.planetteamspeak.com
*
* Copyright (c) Planet TeamSpeak. All rights reserved.
* Released under the MIT license.
*
* Date: 2015-06-26
*/
!function(e){e.fn.tsviewer=function(s){e.fn.tsviewer.element=this,e.fn.tsviewer.options=e.extend({},e.fn.tsviewer.options,s),e.fn.tsviewer.init(),e.fn.tsviewer.hook()},e.fn.tsviewer.element=null,e.fn.tsviewer.options={host:null,port:null,iconUrl:"https://api.planetteamspeak.com/servericon/$host:$port/?id=$icon&img=1",dataUrl:"https://api.planetteamspeak.com/servernodes/$host:$port/",serverTip:"",channelTip:"",clientTip:"",onNode:function(){},onReady:function(){},onError:function(){}},e.fn.tsviewer.init=function(){e.fn.tsviewer.element.html('
'),e.fn.tsviewer.options.iconUrl=e.fn.tsviewer.options.iconUrl.replace("$host",e.fn.tsviewer.options.host).replace("$port",e.fn.tsviewer.options.port),e.fn.tsviewer.options.dataUrl=e.fn.tsviewer.options.dataUrl.replace("$host",e.fn.tsviewer.options.host).replace("$port",e.fn.tsviewer.options.port),e.fn.tsviewer.refresh(!0)},e.fn.tsviewer.refresh=function(s){var t=e.ajax(e.fn.tsviewer.options.dataUrl);s===!0&&e("#tsv-container-ts3").html('Loading ...'),t.done(function(s,t,n){if("success"!==s.status||!e.isArray(s.result.data))return e.fn.tsviewer.error(n,s.result.message);e("#tsv-container-ts3").html("");for(var i=0;i');e("#tsv-container-"+s.parent).append(n);var i=e(''),r=e(''),a=e(''),o=e(''),l="";n.append(i),n.append(''),i.append(r),r.append(a),r.append(o);for(var p=0;p');if(s.level>1&&a.append('0?" expanded":"")+'">
'),"spacer"!==s["class"].substr(0,6)&&("channel"===s["class"]&&64&s.props.flags&&(s.image+="-subscribed"),a.append('')),"server"===s["class"])l+=e.fn.tsviewer.options.serverTip;else if("channel"===s["class"])1&s.props.flags&&o.append(''),2&s.props.flags&&o.append(''),16&s.props.flags&&o.append(''),32&s.props.flags&&o.append(''),s.props.codec=e.fn.tsviewer.codec(s.props.codec),l+=e.fn.tsviewer.options.channelTip;else if("client"===s["class"]){8&s.props.flags&&o.append(''),4&s.props.flags&&o.append(''),16&s.props.flags&&o.append(''),32&s.props.flags&&o.append('');for(var p=0;p").text(s.props.memberof[p].name).html()+" ["+(32&s.props.memberof[p].flags?"Server":"Channel")+" Group]"));l+=e.fn.tsviewer.options.clientTip}if(l.length)for(var v in s.props)l=l.replace("$"+v,s.props[v]);o.append(e.fn.tsviewer.icon(s.props.icon,s["class"].charAt(0).toUpperCase()+s["class"].slice(1)+" Icon")),a.append('"+(s.name?e("").text(s.name).html():" ")+""),e.fn.tsviewer.width(r,o),e.fn.tsviewer.options.onNode.call(this,n,s),s.children>0&&n.append('')},e.fn.tsviewer.base=function(){},e.fn.tsviewer.icon=function(s,t){return s>0?1e3>s?'':'':""},e.fn.tsviewer.codec=function(e){return 0===e?"Speex Narrowband":1===e?"Speex Wideband":2===e?"Speex Ultra-Wideband":3===e?"CELT Mono":4===e?"Opus Voice":5===e?"Opus Music":e},e.fn.tsviewer.width=function(e,s){var t=s.width();e.css({marginRight:t}),s.css({marginRight:-t,width:t})},e.fn.tsviewer.error=function(s,t){e.fn.tsviewer.options.onError.call(this,t),e("#tsv-container-ts3").html(''+e.fn.tsviewer.options.host+":"+e.fn.tsviewer.options.port+"")},e.fn.tsviewerRefresh=function(s){e.fn.tsviewer.element&&e.fn.tsviewer.refresh(s)},e.fn.tsviewerExpand=function(){e.fn.tsviewer.element&&e.fn.tsviewer.expand()},e.fn.tsviewerCollapse=function(){e.fn.tsviewer.element&&e.fn.tsviewer.collapse()}}(jQuery);