gbreplayer的副本.js 66.3 KB
$(function(){function e(t,r){for(var i=0;i<r.text.length;i++)"HTMLplayer"===t.getTextArea().id?(null!==l&&t.clearMarker(l),l=t.setMarker(r.from.line+i,'<span class="text-primary glyphicon glyphicon-pencil"></span>')):"CSSplayer"===t.getTextArea().id?(null!==s&&t.clearMarker(s),s=t.setMarker(r.from.line+i,'<span class="text-primary glyphicon glyphicon-pencil"></span>')):"JSplayer"===t.getTextArea().id&&(null!==n&&t.clearMarker(n),n=t.setMarker(r.from.line+i,'<span class="text-primary glyphicon glyphicon-pencil"></span>')),t.setCursor({line:r.from.line+i,ch:r.from.ch}),3===r.text.length&&""!==r.text[1]&&1===i?t.setSelection({line:r.from.line+i,ch:0}):3===r.text.length&&""!==r.text[2]&&2===i?t.setSelection({line:r.from.line+i,ch:0}):2===r.text.length&&""===r.text[i]&&1===i?t.setSelection({line:r.from.line+i,ch:0}):0==i?t.setSelection({line:r.from.line+i,ch:r.from.ch},{line:r.to.line+i,ch:r.to.ch}):t.setSelection({line:r.from.line+i,ch:0},{line:r.from.line+i,ch:0}),i!==r.text.length-1?t.replaceSelection(r.text[i]+"\n"):t.replaceSelection(r.text[i]);r.next&&e(t,r.next),o.autorun&&o.generateResult(o.htmlplayereditor.getValue(),o.cssplayereditor.getValue(),o.jsplayereditor.getValue())}function t(e){var t=e.length,r=1500*Math.ceil(t/5);return r<3e3&&(r=3e3),r}function r(e){$("#saveModal").tooltip(),$.jStorage.set("gb_autosave_recording",e)}function a(){var e=$("#startRecordModal");if(e.length){var t=$.jStorage.get("gb_autosave_recording")||[];t.length&&(e.find(".modal-footer").append('<button id="continue_recording" class="btn btn-success"><span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;继续录制</button>'),e.find("#startrecord_desc").html('<small class="text-primary"><i class="glyphicon glyphicon-exclamation-sign"></i>&nbsp;发现尚未保存的代码录制,需继续录制请点击“继续录制”按钮</div>'))}$("#continue_recording").click(function(){var e=$.jStorage.get("gb_autosave_langid")||0;0!==e&&(1===e?($("#htmlbutton").data("languageid",1).html("JAVA").trigger("click"),o.htmleditor.setOption("mode","text/x-java"),o.htmlplayereditor.setOption("mode","text/x-java")):2===e?($("#htmlbutton").data("languageid",2).html("Objective-c").trigger("click"),o.htmleditor.setOption("mode","text/x-csrc"),o.htmlplayereditor.setOption("mode","text/x-csrc")):3===e?($("#htmlbutton").data("languageid",3).html("C").trigger("click"),o.htmleditor.setOption("mode","text/x-csrc"),o.htmlplayereditor.setOption("mode","text/x-csrc")):4===e?($("#htmlbutton").data("languageid",4).html("C++").trigger("click"),o.htmleditor.setOption("mode","text/x-c++src"),o.htmlplayereditor.setOption("mode","text/x-c++src")):5===e&&($("#htmlbutton").data("languageid",5).html("PHP").trigger("click"),o.htmleditor.setOption("mode","application/x-httpd-php"),o.htmlplayereditor.setOption("mode","application/x-httpd-php")),$("#fontendrun").addClass("hidden"),$("#comprunbtngrp").html('<button id="comprun" type="button" data-style="expand-right" class="btn btn-primary ladda-button" title="编译并运行代码"><span class="glyphicon glyphicon-cog"></span>&nbsp;编译&运行</button>'),$("#ifrcontainer").addClass("hidden"),$("#cmprun-output").removeClass("hidden"),$("#frontenttools").remove(),$("#allbutton").remove(),$("#cssbutton").remove(),$("#jsbutton").remove(),o.autorun=0);var t=$.jStorage.get("gb_autosave_recording")||[];o.records=t,o.continue_recording=1,o.speed=8,$("#autorun").data("autorun")&&$("#autorun").trigger("click"),$("#gbloading").removeClass("hidden"),$("#startRecordModal").modal("hide"),$("#replay").trigger("click")}),$("#select_type_btn").click(function(){$.jStorage.deleteKey("gb_autosave_recording"),setInterval(function(){r(o.records)},5e3)})}var o={records:[],excercise_records:[],autorun:1,triggertotal:0,triggeroffset:0,excercise_triggertotal:0,replay_enhancement:1,replay_enhancement_value:250,recordtimeoutcontrolls:[],excercise_recordtimeoutcontrolls:[],isgblibreplay:0,continue_recording:0,recording_status:1,recordinit:function(e,r){function a(e,t){var r=document.createElement("audio");return"src"in r?(r.autoplay=!1,r.id=e):(r=document.createElement("bgsound"),r.volume=-1e4),r.src=t,document.body.appendChild(r),r}function l(e){var t,r,i=Math.ceil(e.length*o.replay_enhancement_value/(1e3*o.speed));i>60?(t=Math.floor(i/60),r=i-60*t):(t="0",r=i),r<10&&(r="0"+r),$("#totaltime").html(t+":"+r),$("#totaltimebar").removeClass("hidden")}function s(){$(window).width()>992&&($("#editorpanel").hasClass("col-md-8")?($("#playcontrolls").children("button").clone(!0).removeClass("hidden").appendTo($("#editorcontrolls")),$("#playcontrolls").find("button").remove()):($("#editorcontrolls").children("button").clone(!0).removeClass("hidden").appendTo($("#playcontrolls")),$("#editorcontrolls").find("button").remove()),$("#playrecord").hasClass("hidden")?($("#playcontrolls").children("button").removeClass("hidden"),$("#editorcontrolls").children("button").removeClass("hidden")):($("#playcontrolls").children("button").addClass("hidden"),$("#editorcontrolls").children("button").addClass("hidden")))}function n(e,t,r){var a={title:"代码录播:"+e.replaytitle,body:e.replaydesc,demourl:"#",demoimg:e.image,link:global_contextPath+"/rtreplayerpreview/"+t+".htm",deleted:0},o=[],l={pgid:0};identityService.findAllTagsByUID(global_onlineuser.uid,{async:!1,callback:function(e){var t=0;for(i=0;i<e.length;i++)if(6===e[i].tid){t=1,o.push(e[i].utid);break}if(!t){var s={uid:global_onlineuser.uid,tagid:6};identityService.addUserTag(s,{async:!1,callback:function(e){o.push(e)}})}if(r){for(i=0;i<e.length;i++)if(e[i].tid===r){t=1,o.push(e[i].utid);break}if(!t){var s={uid:global_onlineuser.uid,tagid:r};identityService.addUserTag(s,{async:!1,callback:function(e){o.push(e)}})}}identityService.addPost(a,o,l,{callback:function(e){}})}})}e&&(o.isgblibreplay=1);var d=document.getElementById("HTMLeditor"),c=document.getElementById("CSSeditor"),p=document.getElementById("JSeditor");if(d&&c&&p){this.htmleditor=CodeMirror.fromTextArea(d,{value:"输入HTML代码",mode:"text/html",lineNumbers:!0,smartIndent:!1,onChange:function(e,t){o.recording_status&&o.onChange("html",t),o.autorun&&o.generateResult(o.htmleditor.getValue(),o.csseditor.getValue(),o.jseditor.getValue())},onFocus:function(e){var t=e.getTextArea().id;"HTMLeditor"===t?t="html":"CSSeditor"===t?t="css":"JSeditor"===t&&(t="js"),$("#transcript_editor").text("编辑器:"+t).data("editor",t);var r=e.getCursor(!1),i=$("#linenum"),a=$("#charnum"),o=$("#linechardisplay");i.val(r.line),a.val(r.ch),o.val(r.line+","+r.ch)},onCursorActivity:function(e){var t=e.getTextArea().id;"HTMLeditor"===t?t="html":"CSSeditor"===t?t="css":"JSeditor"===t&&(t="js"),$("#transcript_editor").text("编辑器:"+t).data("editor",t);var r=e.getCursor(!1),i=$("#linenum"),a=$("#charnum"),o=$("#linechardisplay");i.val(r.line),a.val(r.ch),o.val(r.line+","+r.ch)}}),this.csseditor=CodeMirror.fromTextArea(c,{value:"输入CSS代码",mode:"text/css",lineNumbers:!0,smartIndent:!1,onChange:function(e,t){o.recording_status&&o.onChange("css",t),o.autorun&&o.generateResult(o.htmleditor.getValue(),o.csseditor.getValue(),o.jseditor.getValue())},onFocus:function(e){var t=e.getTextArea().id;"HTMLeditor"===t?t="html":"CSSeditor"===t?t="css":"JSeditor"===t&&(t="js"),$("#transcript_editor").text("编辑器:"+t).data("editor",t);var r=e.getCursor(!1),i=$("#linenum"),a=$("#charnum"),o=$("#linechardisplay");i.val(r.line),a.val(r.ch),o.val(r.line+","+r.ch)},onCursorActivity:function(e){var t=e.getTextArea().id;"HTMLeditor"===t?t="html":"CSSeditor"===t?t="css":"JSeditor"===t&&(t="js"),$("#transcript_editor").text("编辑器:"+t).data("editor",t);var r=e.getCursor(!1),i=$("#linenum"),a=$("#charnum"),o=$("#linechardisplay");i.val(r.line),a.val(r.ch),o.val(r.line+","+r.ch)}}),this.jseditor=CodeMirror.fromTextArea(p,{value:"输入Javascript代码",mode:"text/javascript",lineNumbers:!0,smartIndent:!1,matchBrackets:!0,onChange:function(e,t){o.recording_status&&o.onChange("js",t),o.autorun&&o.generateResult(o.htmleditor.getValue(),o.csseditor.getValue(),o.jseditor.getValue())},onFocus:function(e){var t=e.getTextArea().id;"HTMLeditor"===t?t="html":"CSSeditor"===t?t="css":"JSeditor"===t&&(t="js"),$("#transcript_editor").text("编辑器:"+t).data("editor",t);var r=e.getCursor(!1),i=$("#linenum"),a=$("#charnum"),o=$("#linechardisplay");i.val(r.line),a.val(r.ch),o.val(r.line+","+r.ch)},onCursorActivity:function(e){var t=e.getTextArea().id;"HTMLeditor"===t?t="html":"CSSeditor"===t?t="css":"JSeditor"===t&&(t="js"),$("#transcript_editor").text("编辑器:"+t).data("editor",t);var r=e.getCursor(!1),i=$("#linenum"),a=$("#charnum"),o=$("#linechardisplay");i.val(r.line),a.val(r.ch),o.val(r.line+","+r.ch)}}),r&&identityService.findTutorialReplayByCRPID(global_tutorialid,{callback:function(e){o.jseditor.setValue(e.javascript),o.csseditor.setValue(e.css),o.htmleditor.setValue(e.html),o.jseditor.refresh(),o.csseditor.refresh(),o.htmleditor.refresh()}});var g=$("#htmlbutton").data("languageid");1===g?this.htmleditor.setOption("mode","text/x-java"):2===g?this.htmleditor.setOption("mode","text/x-csrc"):3===g?this.htmleditor.setOption("mode","text/x-csrc"):4===g?this.htmleditor.setOption("mode","text/x-c++src"):5===g&&this.htmleditor.setOption("mode","application/x-httpd-php"),g>0&&(o.autorun=0)}var h=document.getElementById("HTMLplayer"),u=document.getElementById("CSSplayer"),m=document.getElementById("JSplayer"),y=1;if(h&&u&&m){this.htmlplayereditor=CodeMirror.fromTextArea(h,{mode:"text/html",lineNumbers:!0,readOnly:!0,onChange:function(e,t){0===$("#play").data("status")&&o.autorun&&o.generateResult(o.htmlplayereditor.getValue(),o.cssplayereditor.getValue(),o.jsplayereditor.getValue())},onKeyEvent:function(e,t){var r=$("#recordertab").find("li").not(".clearfix");y&&"keypress"===t.type&&o.htmlplayereditor.getOption("readOnly")&&(r.popover({placement:"right",container:"body",html:!0,content:'<div class="text-primary"><span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;播放编辑器只读,无法输入字符</div>'}).popover("show"),y=0,setTimeout(function(){r.popover("destroy"),y=1},1500))}}),this.cssplayereditor=CodeMirror.fromTextArea(u,{mode:"text/css",lineNumbers:!0,readOnly:!0,theme:"default gbtags",onChange:function(e,t){0===$("#play").data("status")&&o.autorun&&o.generateResult(o.htmlplayereditor.getValue(),o.cssplayereditor.getValue(),o.jsplayereditor.getValue())},onKeyEvent:function(e,t){var r=$("#recordertab").find("li").not(".clearfix");y&&"keypress"===t.type&&o.htmlplayereditor.getOption("readOnly")&&(r.popover({placement:"right",container:"body",html:!0,content:'<div class="text-primary"><span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;播放编辑器只读,无法输入字符</div>'}).popover("show"),y=0,setTimeout(function(){r.popover("destroy"),y=1},1500))}}),this.jsplayereditor=CodeMirror.fromTextArea(m,{mode:"text/javascript",lineNumbers:!0,readOnly:!0,matchBrackets:!0,theme:"default gbtags-dark",onChange:function(e,t){0===$("#play").data("status")&&o.autorun&&o.generateResult(o.htmlplayereditor.getValue(),o.cssplayereditor.getValue(),o.jsplayereditor.getValue())},onKeyEvent:function(e,t){var r=$("#recordertab").find("li").not(".clearfix");y&&"keypress"===t.type&&o.htmlplayereditor.getOption("readOnly")&&(r.popover({placement:"right",container:"body",html:!0,content:'<div class="text-primary"><span class="glyphicon glyphicon-exclamation-sign"></span>&nbsp;播放编辑器只读,无法输入字符</div>'}).popover("show"),y=0,setTimeout(function(){r.popover("destroy"),y=1},1500))}});var g=$("#htmlbutton").data("languageid");1===g?this.htmlplayereditor.setOption("mode","text/x-java"):2===g?this.htmlplayereditor.setOption("mode","text/x-csrc"):3===g?this.htmlplayereditor.setOption("mode","text/x-csrc"):4===g?this.htmlplayereditor.setOption("mode","text/x-c++src"):5===g&&this.htmlplayereditor.setOption("mode","application/x-httpd-php"),g>0&&(o.autorun=0)}var v=null;$("#runjshint").click(function(){jseditor=o.jseditor||o.jsplayereditor,null!==v&&jseditor.clearMarker(v),$("#jsbutton").trigger("click");var e=JSHINT(jseditor.getValue(),{},{});if(e)$("#errheader").addClass("text-success").removeClass("text-danger").html('<i class="glyphicon glyphicon-exclamation-sign"></i>&nbsp;JS语法完全正确'),$("#errcontent").html("").hide();else{var t=JSHINT.errors;$("#errheader").addClass("text-danger").removeClass("text-success").html('<i class="glyphicon glyphicon-exclamation-sign"></i>&nbsp;JS语法错误/警告:'+t.length+"个"),$("#errcontent").html("");for(var r=0;r<t.length;r++)$("#errcontent").append('<li class="small" data-linenum="'+t[r].line+'" style="cursor:pointer;">行号&nbsp;'+t[r].line+"&nbsp;:&nbsp;"+t[r].evidence+"&nbsp;---&nbsp;"+t[r].reason+"</li>");$("#errcontent").show()}$("#errpanel").slideDown()}),$("#errpanelclose").click(function(){$("#errpanel").slideUp()}),$("#errcontent").on("click","li",function(e,t){var r=$(this).data("linenum")-1,i={line:r,char:0},a=o.jseditor||o.jsplayereditor;$("#jsbutton").trigger("click");var l=a.charCoords(i,"local").y,s=a.charCoords(i,"local").x;a.scrollTo(s,l),null!==v&&a.clearMarker(v),v=a.setMarker(r,'<span class="text-primary glyphicon glyphicon-hand-right"></span>')}),$("#selecttype").find("button").click(function(){$(this).addClass("btn-primary").data("selected",1).siblings().data("selected",0).removeClass("btn-primary")}),$("#selecttype button").tooltip({placement:"top"}),$("#recordornot button").tooltip({placement:"top"}),$("#select_type_btn").click(function(){$("#selecttype").find("button").each(function(e,t){if(1===$(t).data("selected")){var r=$(t).data("type");"empty"===r||("fullhtml"===r?(o.htmleditor.setValue('<!-- HTML5基本文档结构 //-->\n<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<meta charset="UTF-8">\n\t\t<title>标题</title>\n\t\t<!-- 引用外部CSS,使用http://cdn.gbtags.com来选择需要引用的外部CSS //-->\n\t\t<link rel="stylesheet" href=""/>\n\t\t<!-- 请勿修改以下代码,文件内容来自CSS代码编辑器 //-->\n\t\t<link rel="stylesheet" href="style.css"/>\n\t</head>\n\t<body>\n\t\t\n\t\t\n\t\t\n\t<!-- 引用Javascript类库,使用http://cdn.gbtags.com来选择需要引用的JS //-->\n\t<script type="text/javascript" src=""></script>\n\t<!-- 请勿修改以下代码 ,文件内容来自JS代码编辑器//-->\n\t<script src="script.js"></script>\n\t</body>\n</html>'),o.csseditor.setValue("/*CSS源代码*/\nbody{\n\tbackground:#CFCFCF;\n}\n"),o.jseditor.setValue("/*Javascript源代码*/")):"fragmenthtml"===r?(o.htmleditor.setValue('<!-- HTML代码片段中请勿添加<body>标签 //-->\n<div id="container">\n\t\n</div>\n\n\n\n<!-- 推荐开源CDN来选取需引用的外部JS //-->\n<script type="text/javascript" src="http://cdn.gbtags.com/jquery/1.11.1/jquery.min.js"></script>\n'),o.csseditor.setValue("/*CSS源代码*/\nbody{\n\tbackground:#CFCFCF;\n}\n"),o.jseditor.setValue("/*Javascript代码片段*/")):"java"===r?(o.htmleditor.setValue("/* Java基础代码 */\nimport java.io.*;\n\nclass GBHelloWorld{\n\tpublic static void main (String[] args) throws java.lang.Exception{\n\t\t\n\t}\n}"),$("#htmlbutton").data("languageid",1).html("java").trigger("click"),o.htmleditor.setOption("mode","text/x-java")):"objective-c"===r?(o.htmleditor.setValue('/* Objective-c基础代码 */\n\n#import <objc/objc.h>\n#import <objc/Object.h>\n\n@interface HelloObj : Object\n{\n\tint num;\n}\n- (void)foo;\n@end\n\n@implementation HelloObj\n- (void)foo {\n\tprintf("Hello gbtags.com\\n");\n}\n\nint main()\n{\n\tid obj = [[HelloObj alloc] init];\n\t[obj foo];\n\treturn 0;\n}\n@end\n'),$("#htmlbutton").data("languageid",2).html("Objective-c").trigger("click"),o.htmleditor.setOption("mode","text/x-csrc")):"c"===r?(o.htmleditor.setValue("/* c基础代码 */"),$("#htmlbutton").data("languageid",3).html("C").trigger("click"),o.htmleditor.setOption("mode","text/x-csrc")):"cpp"===r?(o.htmleditor.setValue("/* cpp基础代码 */"),$("#htmlbutton").data("languageid",4).html("CPP").trigger("click"),o.htmleditor.setOption("mode","text/x-c++src")):"php"===r&&(o.htmleditor.setValue("<?php\n/* php基础代码 */\n\necho '<p>Hello gbtags.com</p>';"),$("#htmlbutton").data("languageid",5).html("PHP").trigger("click"),o.htmleditor.setOption("mode","application/x-httpd-php")));var i=$("#htmlbutton").data("languageid");$.jStorage.set("gb_autosave_langid",i),"empty"!==r&&"fragmenthtml"!==r&&"fullhtml"!==r&&($("#fontendrun").addClass("hidden"),$("#comprunbtngrp").html('<button id="comprun" type="button" data-style="expand-right" class="btn btn-primary ladda-button" title="编译并运行代码"><span class="glyphicon glyphicon-cog"></span>&nbsp;编译&运行</button>'),$("#ifrcontainer").addClass("hidden"),$("#cmprun-output").removeClass("hidden"),$("#frontenttools").remove(),$("#allbutton").remove(),$("#cssbutton").remove(),$("#jsbutton").remove(),o.autorun=0)}}),o.jseditor.refresh(),o.csseditor.refresh(),o.htmleditor.refresh(),$("#startRecordModal").modal("hide")}),$("#transcript_position_options").find("li").click(function(){var e=$(this);e.addClass("selected").siblings().removeClass("selected"),$("#transcript_position").html('<i class="glyphicon glyphicon-comment"></i>&nbsp;讲解提示位置:'+$(this).text()),0===e.data("position")?($("#position_img_desc").hide().attr("src",global_contextPath+"/networks/themes/img/defaulttip.png").fadeIn(),$("#editoroption_position").slideUp()):1===e.data("position")?($("#position_img_desc").hide().attr("src",global_contextPath+"/networks/themes/img/inlinetip.png").fadeIn(),$("#editoroption_position").slideDown()):2===e.data("position")&&($("#position_img_desc").hide().attr("src",global_contextPath+"/networks/themes/img/demotip.png").fadeIn(),$("#editoroption_position").slideUp())}),$("#transcript_pause_options").find("li").click(function(){var e=$(this);e.addClass("selected").siblings().removeClass("selected"),$("#transcript_pause").html('<i class="glyphicon glyphicon-cog"></i>&nbsp;暂停播放:'+$(this).text())});var b=function(e){var t=e;t.val().length<=50?$("#transcripts_limitation").html("还能输入<b>"+(50-t.val().length)+"</b>字符").parent().addClass("label-default").removeClass("label-danger"):$("#transcripts_limitation").html("超过<b>"+(t.val().length-50)+"</b>字符").parent().removeClass("label-default").addClass("label-danger")};$("#transcripts").keyup(function(){b($(this))}),$("#transcripts").change(function(){b($(this))}),$("#addtranscript").click(function(){var e=$("#transcripts").val(),t=$("#transcript_position_options").find("li.selected").data("position"),r=$("#transcript_pause_options").find("li.selected").data("pause"),i=$("#transcript_editor").data("editor");if(pos={line:$("#linenum").val(),ch:$("#charnum").val()},!e.length)return $("#transcript_msgbox").html('<i class="glyphicon glyphicon-exclamation-sign"></i>&nbsp;请输入代码讲解'),!1;if(e.length>50)return $("#transcript_msgbox").html('<i class="glyphicon glyphicon-exclamation-sign"></i>&nbsp;代码讲解超过50个字符'),!1;if(1===t&&!i.length)return $("#editoroption_position").addClass("animated flash"),setTimeout(function(){$("#editoroption_position").removeClass("animated flash")},2e3),$("#transcript_msgbox").html('<i class="glyphicon glyphicon-exclamation-sign"></i>&nbsp;请点击录制区获取对应编辑器及其坐标'),!1;if(""!==$.trim(e)){var a={transcripts:e};t>0&&(a.target=t),1===t&&(a.pos=pos,a.editor=i,a.pause=r),o.onChange("transcripts",a)}$("#transcriptModal").modal("hide"),$("#transcripts").val("")}),$("#play").click(function(){$("#replaydone").data("readonly")||$("#replaydone").trigger("click"),$("#editor-popover").removeClass("in"),$(this).removeClass("animated flash infinite"),l(o.records),$("#recordertab a:eq(1)").tab("show");var e=$(this).data("status");if(o.triggertotal===o.records.length)return $("#replay").trigger("click"),!1;if(e?$(this).attr("title","播放").addClass("btn-success").removeClass("btn-danger").find("span").addClass("glyphicon-play").removeClass("glyphicon-pause"):$(this).attr("title","暂停").addClass("btn-danger").removeClass("btn-success").find("span").addClass("glyphicon-pause").removeClass("glyphicon-play"),e){for(var r=o.recordtimeoutcontrolls,i=0;i<r.length;i++)clearTimeout(r[i]);o.recordtimeouts=[]}else for(var a=o.records,s=0,n="",i=0;i<a.length;i++){if(0===a[i].trigger){0===i&&"transcripts"===a[i].editor&&(s=3e3);var d=null;if(o.triggeroffset>0&&i<=o.triggeroffset)d=setTimeout(o.changeValueCallback(a[i],0,1),15),s+=15;else{d=setTimeout(o.changeValueCallback(a[i]),s/o.speed);var c=a[i].intervaltime,p=o.replay_enhancement_value;n.length&&a[i].editor!==n&&(p+=500),s+=o.replay_enhancement?p:c,"transcripts"===a[i].editor&&(s=s+t(a[i].changeobj.transcripts)+300)}o.recordtimeoutcontrolls.push(d)}n=a[i].editor}$(this).data("status",!e)}),$("#startRecordModal").length>0&&$("#startRecordModal").modal({backdrop:"static",keyboard:!1}),$("#replay").click(function(){var e=$("#play"),t=o.records;o.triggertotal=0;for(var r=0;r<t.length;r++)t[r].trigger=0;for(var r=0;r<o.recordtimeoutcontrolls.length;r++)clearTimeout(o.recordtimeoutcontrolls[r]);o.recordtimeoutcontrolls=[],o.htmlplayereditor.setValue(""),o.cssplayereditor.setValue(""),o.jsplayereditor.setValue(""),e.data("status",0),$("#play").trigger("click")}),$("#selectedspeed").text("x"+o.speed).data("speed",o.speed),$(".speed").click(function(){var e=$(this),t=e.data("speed");e.addClass("btn-primary").siblings().removeClass("btn-primary"),o.speed=t,1==$("#play").data("status")&&$("#play").trigger("click")}),$("#preparespeed").click(function(){1==$("#play").data("status")&&$("#play").trigger("click")}),$("#speedlist a").click(function(e){e.preventDefault();var t=$(this).data("speed");$("#selectedspeed").text("x"+t).data("speed",t),o.speed=t,$("#playrecord").hasClass("hidden")&&0==$("#play").data("status")&&$("#play").trigger("click"),$.cookie("gb.replay.speed",t,{expires:30,path:"/"})}),$("#playrecord").click(function(){if($(window).width()>992){var e=$("#tutorialinfopanel"),t=($("#editorpanel"),e.data("size"));t?($("#resizetutorial").trigger("click"),$("#resizeeditors").trigger("click")):t||$("#resizeeditors").trigger("click")}f.slider("option","disabled",!1),$(this).popover("destroy"),$(this).find("span").toggleClass("glyphicon-cloud-download").toggleClass("glyphicon-play"),o.isgblibreplay?(identityService.findAllTutorialRecordsByCRID(global_jsreplayerid,{callback:function(e){for(var t=0;t<e.length;t++)if("transcripts"===e[t].editor){var r=jQuery.parseJSON(e[t].changeobj),i="http://www.voicerss.org/controls/speech.ashx?r="+o.speed+"&hl=zh-cn&c=mp3&src="+r.transcripts;a("transcriptid"+t,i)}o.htmlplayereditor.setValue(""),o.cssplayereditor.setValue(""),o.jsplayereditor.setValue("");for(var t=0;t<e.length;t++)e[t].trigger||(e[t].trigger=0),e[t].changeobj=jQuery.parseJSON(e[t].changeobj);o.records=e,$("#playrecord").addClass("hidden").parent().addClass("hidden"),$("#play").removeClass("hidden").trigger("click"),$("#replay").removeClass("hidden")}}),identityService.saveTutorialReplayViewCountByCRPID(global_jsreplayerid)):(identityService.findAllCodeRecordsByCRID(global_jsreplayerid,{callback:function(e){for(var t=0;t<e.length;t++)if("transcripts"===e[t].editor){var r=jQuery.parseJSON(e[t].changeobj),i="http://www.voicerss.org/controls/speech.ashx?r="+o.speed+"&hl=zh-cn&c=mp3&src="+r.transcripts;a("transcriptid"+t,i)}o.htmlplayereditor.setValue(""),o.cssplayereditor.setValue(""),o.jsplayereditor.setValue("");for(var t=0;t<e.length;t++)e[t].trigger||(e[t].trigger=0),e[t].changeobj=jQuery.parseJSON(e[t].changeobj);o.records=e,$("#playrecord").addClass("hidden").parent().addClass("hidden"),$("#play").removeClass("hidden").trigger("click"),$("#replay").removeClass("hidden")}}),identityService.saveCodeReplayViewCountByCRPID(global_jsreplayerid))}),$("#resizeprevieweditor").click(function(){$("#editorpanel").toggleClass("col-md-8").toggleClass("col-md-12"),$("#previewpanel").toggleClass("col-md-4").toggleClass("hidden"),$(this).find("span").toggleClass("glyphicon-resize-full").toggleClass("glyphicon-resize-small")}),$("#resizepreview").click(function(){$("#previewpanel").toggleClass("col-md-4").toggleClass("col-md-12"),$("#editorpanel").toggleClass("col-md-4").toggleClass("hidden"),$(this).find("span").toggleClass("glyphicon-resize-full").toggleClass("glyphicon-resize-small")}),$("#resizetutorialpreview").click(function(){var e=$("#previewpanel"),t=$("#tutorialinfopanel"),r=$("#editorpanel"),i=t.data("size"),a=r.data("size");e.hasClass("col-md-4")?(t.addClass("hidden"),r.addClass("hidden")):e.hasClass("col-md-12")&&(i?(t.removeClass("hidden").removeClass("col-md-3").addClass("col-md-8"),r.addClass("hidden")):i||(t.removeClass("hidden").removeClass("col-md-8").addClass("col-md-3"),r.removeClass("hidden").removeClass("col-md-8").addClass("col-md-5")),a&&(r.removeClass("hidden").removeClass("col-md-5").addClass("col-md-8"),t.addClass("hidden"))),e.toggleClass("col-md-4").toggleClass("col-md-12"),$(this).find("span").toggleClass("glyphicon-resize-full").toggleClass("glyphicon-resize-small"),s()}),$("#resizetutorial").click(function(){var e=$("#tutorialinfopanel"),t=$("#editorpanel"),r=e.data("size");t.data("size");r?(e.remove("hidden").removeClass("col-md-8").addClass("col-md-3"),t.addClass("col-md-5").removeClass("hidden").removeClass("col-md-8"),e.data("size",0),t.data("size",0)):r||(e.remove("hidden").addClass("col-md-8").removeClass("col-md-3"),t.removeClass("col-md-5").addClass("hidden").removeClass("col-md-8"),e.data("size",1),t.data("size",0)),$(this).find("span").toggleClass("glyphicon-resize-full").toggleClass("glyphicon-resize-small")}),$("#resizeeditors").click(function(){var e=$("#tutorialinfopanel"),t=$("#editorpanel"),r=(e.data("size"),t.data("size"));r?(t.remove("hidden").removeClass("col-md-8").addClass("col-md-5"),e.addClass("col-md-3").removeClass("hidden").removeClass("col-md-8"),t.data("size",0),e.data("size",0)):r||(t.remove("hidden").addClass("col-md-8").removeClass("col-md-5"),e.removeClass("col-md-3").addClass("hidden").removeClass("col-md-8"),t.data("size",1),e.data("size",0)),$(this).find("span").toggleClass("glyphicon-resize-full").toggleClass("glyphicon-resize-small"),s(),$("#playrecord").popover("hide")}),$("#editorwrapper").find("button").click(function(){$this=$(this),$this.addClass("btn-primary").siblings().removeClass("btn-primary");var e=$this.data("editorname");if("html"===e){$("#recordertab a#relatedcode").trigger("click");var t=$("#HTMLeditor").next(".CodeMirror");t.find(".CodeMirror-gutter-text").addClass("cmgutter"),t.height(o.codemirrorheight).siblings().height(0);var t=$("#HTMLplayer").next(".CodeMirror");t.height(o.codemirrorheight).siblings().height(0),$("#transcript_editor").text("编辑器:"+e).data("editor",e)}else if("css"===e){$("#recordertab a#relatedcode").trigger("click");var t=$("#CSSeditor").next(".CodeMirror");t.find(".CodeMirror-gutter-text").addClass("cmgutter"),t.height(o.codemirrorheight).siblings().height(0);var t=$("#CSSplayer").next(".CodeMirror");t.height(o.codemirrorheight).siblings().height(0),$("#transcript_editor").text("编辑器:"+e).data("editor",e)}else if("js"===e){$("#recordertab a#relatedcode").trigger("click");var t=$("#JSeditor").next(".CodeMirror");t.find(".CodeMirror-gutter-text").addClass("cmgutter"),t.height(o.codemirrorheight).siblings().height(0);var t=$("#JSplayer").next(".CodeMirror");t.height(o.codemirrorheight).siblings().height(0),$("#transcript_editor").text("编辑器:"+e).data("editor",e)}else $("#recordertab a#relatedcode").trigger("click"),$(window).width()>992?($("#recordzone").find(".CodeMirror").height(o.codemirrorheight/3).find(".CodeMirror-gutter-text").removeClass("cmgutter"),$("#replayzone").find(".CodeMirror").height(o.codemirrorheight/3).find(".CodeMirror-gutter-text").removeClass("cmgutter")):($("#recordzone").find(".CodeMirror").height(o.codemirrorheight).find(".CodeMirror-gutter-text").removeClass("cmgutter"),$("#replayzone").find(".CodeMirror").height(o.codemirrorheight).find(".CodeMirror-gutter-text").removeClass("cmgutter"));"undefined"!=typeof o.htmleditor&&"undefined"!=typeof o.csseditor&&"undefined"!=typeof o.jseditor&&(o.htmleditor.refresh(),o.csseditor.refresh(),o.jseditor.refresh()),document.URL.indexOf("rtreplayerpreview")<0?document.URL.indexOf("index.htm")>=0||document.URL.indexOf("rtrecordtutorial.htm")>=0||$("#recordertab a:first").tab("show"):$("#recordertab a:eq(1)").tab("show"),(document.URL.indexOf("rtwidget-replayerpreview")>0||document.URL.indexOf("rtwidgetinterview-replayerpreview")>0)&&$("#recordertab a:eq(1)").tab("show")}),$("#saverecordfrm").validationEngine("attach",{promptPosition:"bottomLeft",scroll:!1,autoHidePrompt:!0,autoHideDelay:2e3}),$("#saverecordnow").click(function(){if($("#saverecordfrm").validationEngine("validate")){$("#savemsg").addClass("hidden"),$(this).prop("disable",!0);var e=Ladda.create(this);e.start();var t=$("#replaytitle").val(),r=$("#replaydesc").val(),i=$(".gbeditor").code(),a=$("#htmlbutton").data("languageid")||0;saveformat=$("#saveformat").find(".active").data("saveformat")||0,pickup=0,$("#replaydesc").length||(r=i,pickup=-1);var l={replaytitle:t,replaydesc:r,pickup:pickup,languageid:a,saveformat:saveformat},s=$("#previewcoverimg").data("demoimg");void 0===s&&(s="placeholder.png"),l.image=s,l.userid=global_onlineuser.uid,$("#publishnow").is(":checked")?l.deleted=0:l.deleted=-1,$("#interviewtool").is(":checked")&&(l.deleted=-2);var d=0;$("#eventtagid").is(":checked")&&(d=$("#eventtagid").data("tagid")),l.html=o.htmleditor.getValue(),l.css=o.csseditor.getValue(),l.javascript=o.jseditor.getValue(),e.setProgress(.1);for(var c=[],p=0;p<o.records.length;p++){var g={intervaltime:o.records[p].intervaltime,editor:o.records[p].editor,changeobj:JSON.stringify(o.records[p].changeobj)};c.push(g)}e.setProgress(.35),console.log(l),console.log(c),identityService.addCodeReplay(l,c,{callback:function(t){console.log(t),e.setProgress(.95),t>0||(e.stop(),$("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden")),$("#saverecordnow").prop("disable",!1),l.deleted||n(l,t,d),$.jStorage.deleteKey("gb_autosave_recording"),$.jStorage.deleteKey("gb_autosave_langid")},exceptionHandler:function(t,r){e.stop(),$("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden"),$.gberror("error"+t+"exception"+r)}})}}),$("#savetutorialfrm").validationEngine("attach",{promptPosition:"bottomLeft",scroll:!1,autoHidePrompt:!0,autoHideDelay:2e3}),$("#savetutorialnow").click(function(){if($("#savetutorialfrm").validationEngine("validate")){$("#savemsg").addClass("hidden"),$(this).prop("disable",!0);var e=Ladda.create(this);e.start();var t=$("#replaytitle").val(),r=$("#replaydesc").val(),i=$(".gbeditor").code(),a=$("#htmlbutton").data("languageid")||0,l=$("#saveformat").find(".btn-primary").data("saveformat")||0,s=0;$("#replaydesc").length||(r=i.replace(/\<pre\>/g,'<pre class="prettyprint linenums">'),s=-1);var d={replaytitle:t,replaydesc:r,pickup:s,languageid:a},c={libid:global_libid,itemsort:global_sort,itemtype:l},p=$("#previewcoverimg").data("demoimg");void 0===p&&(p="placeholder.png"),d.image=p,d.userid=global_onlineuser.uid,$("#publishnow").is(":checked")?d.deleted=0:d.deleted=-1,d.html=o.htmleditor.getValue(),d.css=o.csseditor.getValue(),d.javascript=o.jseditor.getValue(),e.setProgress(.1);for(var g=[],h=0;h<o.records.length;h++){var u={intervaltime:o.records[h].intervaltime,editor:o.records[h].editor,changeobj:JSON.stringify(o.records[h].changeobj)};g.push(u)}e.setProgress(.35),identityService.addGBTutorial(d,g,c,{callback:function(t){e.setProgress(.95),t>0?($("#savemsg").addClass("alert-success").html("成功保存,加载代码回放页面,请稍后&hellip;").removeClass("hidden"),$(window).unbind("beforeunload"),e.stop(),setTimeout(function(){window.location.href=global_contextPath+"/mygbliblist/"+c.libid+".htm"},800)):(e.stop(),$("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden")),$("#saverecordnow").prop("disable",!1),$("#sharetogbtags").is(":checked")&&n(d,t),$.jStorage.deleteKey("gb_autosave_recording"),$.jStorage.deleteKey("gb_autosave_langid")},exceptionHandler:function(t,r){e.stop(),$("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden"),$.gberror("error"+t+"exception"+r)}})}}),$("#savetutorialexcercisefrm").validationEngine("attach",{promptPosition:"bottomLeft",scroll:!1,autoHidePrompt:!0,autoHideDelay:2e3}),$("#savetutorialexcercisenow").click(function(){if($("#savetutorialexcercisefrm").validationEngine("validate")){$("#savemsg").addClass("hidden"),$(this).prop("disable",!0);var e=Ladda.create(this);e.start();var t=$(".gbeditor").eq(0).code(),r=$("#replaydesc").val(),i=$(".gbeditor").eq(1).code(),a=$("#libid").val(),l=0;
$("#replaydesc").length||(r=i.replace(/\<pre\>/g,'<pre class="prettyprint linenums">'),l=-2);var s={replaytitle:t,replaydesc:r,pickup:l},d={tutorialid:global_tutorialid},c=$("#previewcoverimg").data("demoimg");void 0===c&&(c="placeholder.png"),s.image=c,s.userid=global_onlineuser.uid,$("#publishnow").is(":checked")?s.deleted=0:s.deleted=-1,s.html=o.htmleditor.getValue(),s.css=o.csseditor.getValue(),s.javascript=o.jseditor.getValue(),e.setProgress(.1);for(var p=[],g=0;g<o.records.length;g++){var h={intervaltime:o.records[g].intervaltime,editor:o.records[g].editor,changeobj:JSON.stringify(o.records[g].changeobj)};p.push(h)}e.setProgress(.35),identityService.addGBTutorialExcercise(s,p,d,{callback:function(t){e.setProgress(.95),t>0?($("#savemsg").addClass("alert-success").html("成功保存,加载代码回放页面,请稍后&hellip;").removeClass("hidden"),$(window).unbind("beforeunload"),e.stop(),setTimeout(function(){window.location.href=global_contextPath+"/mygbliblist/"+a+".htm"},800)):(e.stop(),$("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden")),$("#saverecordnow").prop("disable",!1),$("#sharetogbtags").is(":checked")&&n(s,t)},exceptionHandler:function(t,r){e.stop(),$("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden"),$.gberror("error"+t+"exception"+r)}})}}),$("#savereplayinfofrm").validationEngine("attach",{promptPosition:"bottomLeft",scroll:!1,autoHidePrompt:!0,autoHideDelay:2e3}),$("#savereplayinfonow").click(function(){if($("#savereplayinfofrm").validationEngine("validate")){$(this).prop("disable",!0);var e=Ladda.create(this);e.start();var t=$("#replaytitle").val(),r=$("#replaydesc").val(),i={replaytitle:t,replaydesc:r};$("#publishnow").is(":checked")?i.deleted=0:i.deleted=-1,$("#interviewtool").is(":checked")&&(i.deleted=-2);var a=$("#previewcoverimg").data("demoimg");void 0===a&&(a="placeholder.png"),i.image=a,i.userid=global_onlineuser.uid,i.crpid=global_jsreplayerid,e.setProgress(.35),identityService.saveCodeReplayByCRPID(i,{callback:function(t){if(e.setProgress(.95),t>0){$("#savemsg").addClass("alert-success").html("成功保存,重新加载中,请稍后&hellip;").removeClass("hidden");var r=global_contextPath+"/rtreplayerpreview/"+i.crpid+".htm";i.deleted===-2&&(r=global_contextPath+"/rtwidgetinterview-replayerpreview/"+i.crpid+".htm"),setTimeout(function(){window.location.href=r},800)}else $("#savemsg").addClass("alert-danger").html("保存失败,请重试").removeClass("hidden");e.stop()}})}}),$("#toggle_replay_enhancement").click(function(){$(this).toggleClass("btn-primary").toggleClass("btn-default"),o.replay_enhancement=!o.replay_enhancement}),$("#rtreplayerqrcode").popover({html:!0,placement:"bottom",template:'<div class="popover" role="tooltip"><h3 class="popover-title text-primary"></h3><div class="popover-content"></div></div>'}),$("#rtreplayerqrcode").on("shown.bs.popover",function(){var e=$(this).data("replayerid"),t=$(this).data("tutorialid");void 0!==e?$("#rtreplayerqrcode").parent().find(".popover-content").html('<img width="100%" src="http://qrcoder.sinaapp.com?t=http://www.gbtags.com/gb/rtreplayerpreview-standalone/'+e+'.htm"><p class="text-primary text-center pad20">扫一扫在移动端预览代码运行效果</p>'):$("#rtreplayerqrcode").parent().find(".popover-content").html('<img width="100%" src="http://qrcoder.sinaapp.com?t=http://www.gbtags.com/gb/gbtutorialpreview/'+t+'.htm"><p class="text-primary text-center pad20">扫一扫在移动端预览代码运行效果</p>')}),$("#autorun").click(function(){var e=$(this),t=e.data("autorun");1===t?$("#runnow").prop("disabled",!1).toggleClass("btn-success").toggleClass("btn-default"):$("#runnow").prop("disabled",!0).toggleClass("btn-success").toggleClass("btn-default"),e.data("autorun",t?0:1),o.autorun=!o.autorun,$("#runnow").trigger("click")}),1===o.autorun?$("#runnow").prop("disabled",!0).removeClass("btn-success").addClass("btn-default"):$("#runnow").prop("disabled",!1).addClass("btn-success").removeClass("btn-default"),$("#runnow").click(function(){return"undefined"!=typeof o.htmleditor&&"undefined"!=typeof o.csseditor&&"undefined"!=typeof o.jseditor?(o.generateResult(o.htmleditor.getValue(),o.csseditor.getValue(),o.jseditor.getValue()),!1):void("undefined"!=typeof o.htmlplayereditor&&"undefined"!=typeof o.cssplayereditor&&"undefined"!=typeof o.jsplayereditor&&o.generateResult(o.htmlplayereditor.getValue(),o.cssplayereditor.getValue(),o.jsplayereditor.getValue()))}),$("#comprunbtngrp").on("click","#comprun",function(){var e=Ladda.create(this);e.start();var t="undefined"!=typeof o.htmleditor&&o.htmleditor.getValue()||"undefined"!=typeof o.htmlplayereditor&&o.htmlplayereditor.getValue(),r=$("#htmlbutton").data("languageid"),i=$("#input").val()||"";return 0===global_onlineuser.uid?($("#cmpinfo").html('<p class="alert alert-warning"><i class="glyphicon glyphicon-exclamation-sign"></i> 编译运行前请确认已登录本站</p>'),$('#cmprun-tabs a[href="#cmpinfo"]').tab("show"),void e.stop()):void $.post(global_contextPath+"/webrun",{code:t,input:i,langid:r},function(t){t.result?($("#cmpinfo").html('<p class="text-warning">'+t.cmpinfo.replace(/\n/g,"<br />")+"</p>"),$("#stderr").html('<p class="text-danger">'+t.stderr.replace(/\n/g,"<br />")+"</p>"),$("#output").html('<p class="text-success">'+t.output.replace(/\n/g,"<br />")+"</p>"),t.cmpinfo.length?$('#cmprun-tabs a[href="#cmpinfo"]').tab("show"):t.stderr.length?$('#cmprun-tabs a[href="#stderr"]').tab("show"):t.output.length&&$('#cmprun-tabs a[href="#output"]').tab("show"),t.cmpinfo.length||$("#cmpinfo").prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 编译已成功</p>'),t.stderr.length||$("#stderr").prepend('<p class="alert alert-success"><i class="glyphicon glyphicon-ok-sign"></i> 无输出错误</p>'),t.output.length||$("#output").prepend('<p class="alert alert-warning"><i class="glyphicon glyphicon-exclamation-sign"></i> 代码编译错误或者运行相关功能受限制</p>')):($("#cmpinfo").html('<p class="alert alert-danger"><i class="glyphicon glyphicon-exclamation-sign"></i> 云端编译超时,请稍后重新尝试</p>'),$('#cmprun-tabs a[href="#cmpinfo"]').tab("show")),e.stop()})});var f=$(".replayprogress");f.slider({}).slider("option","disabled",!0),f.on("sliderstop",function(e,t){if($("#playrecord").hasClass("hidden")){f.slider("option","disabled",!1);var r=Math.ceil(t.value),i=Math.ceil(o.records.length*(r/100));o.triggeroffset=i,$("#speedlist a").first().trigger("click"),$("#autorun").data("autorun")&&$("#autorun").trigger("click"),$("#replay").trigger("click")}}),$("#listtranscripts").click(function(){var e=o.records;$("#transcriptslist").html("");for(var t=0;t<e.length;t++)if(e[t].changeobj.transcripts){var r=e[t].changeobj.target,i="";0!==r&&r?1===r?i="位置:编辑器":2===r&&(i="位置:预览窗口"):i="位置:缺省";var a="";(document.URL.indexOf("recorder")>=0||document.URL.indexOf("rtrecordtutorial")>=0)&&(a='<button class="remove_transcript_confirm btn btn-primary btn-xs pull-right fade in"><span class="glyphicon glyphicon-remove-sign"></span></button><div class="btn-group pull-right fade"><button class="btn btn-danger btn-xs remove_transcript">确认删除</button><button class="btn btn-xs btn-default remove_transcript_cancel">取消</button></div>'),$("#transcriptslist").append('<li class="list-group-item" data-index="'+t+'"><div><span class="glyphicon glyphicon-volume-up"></span>&nbsp;'+e[t].changeobj.transcripts+'</div><div class="pad10"><button class="btn btn-info btn-xs pull-left" disabled="disabled">'+i+"</button>"+a+'</div><div class="clearfix"></div></li>')}}),$("#transcriptslist").on("click",".remove_transcript_confirm",function(){var e=$(this);e.removeClass("in").next().addClass("in")}),$("#transcriptslist").on("click",".remove_transcript_cancel",function(){var e=$(this);e.parent().removeClass("in").prev().addClass("in")}),$("#transcriptslist").on("click",".remove_transcript",function(){var e=$(this),t=e.closest("li"),r=t.data("index");r>-1&&(o.records.remove(r),o.triggertotal!==o.records.length&&(o.triggertotal=o.records.length),t.slideUp())}),$("#readonly").click(function(){var e=$(this),t=$(this).data("readonly"),r=$("#recordertab").find("li").first();e.addClass("disabled"),t?(r.popover({placement:"right",container:"body",html:!0,content:'<div class="text-success"><span class="glyphicon glyphicon-hand-left"></span>&nbsp;代码播放编辑器“<b>已启用</b>”</div>'}).popover("show"),o.htmlplayereditor.setOption("readOnly",!1),o.cssplayereditor.setOption("readOnly",!1),o.jsplayereditor.setOption("readOnly",!1),e.data("readonly",0).find("span").toggleClass("glyphicon-ban-circle").toggleClass("glyphicon-pencil").end().toggleClass("btn-danger").toggleClass("btn-success")):(r.popover({placement:"right",container:"body",html:!0,content:'<div class="text-success"><span class="glyphicon glyphicon-hand-left"></span>&nbsp;代码播放编辑器“<b>目前只读</b>”</div>'}).popover("show"),o.htmlplayereditor.setOption("readOnly",!0),o.cssplayereditor.setOption("readOnly",!0),o.jsplayereditor.setOption("readOnly",!0),e.data("readonly",1).find("span").toggleClass("glyphicon-ban-circle").toggleClass("glyphicon-pencil").end().toggleClass("btn-danger").toggleClass("btn-success")),setTimeout(function(){r.popover("destroy"),e.removeClass("disabled")},1500)}),$("#mobilereplaydone").click(function(){$("#replaydone").trigger("click")}),$("#mobiledonenext").click(function(){$("#donenext").trigger("click")}),$("#showtutorialinfo").click(function(){$("#mobiletutorialdetails").slideToggle()}),$("#replaydone").click(function(){var e=$(this),t=$(this).data("readonly"),r=$("#codechallenges"),i=$("#recordertab").find("li").first();e.addClass("disabled"),t?i.popover({placement:"right",container:"body",html:!0,content:'<div class="text-success"><span class="glyphicon glyphicon-hand-left"></span>&nbsp;代码播放编辑器“<b>已启用</b>”</div>'}).popover("show"):i.popover({placement:"right",container:"body",html:!0,content:'<div class="text-primary"><span class="glyphicon glyphicon-hand-left"></span>&nbsp;代码播放编辑器“<b>目前只读</b>”</div>'}).popover("show"),setTimeout(function(){i.popover("destroy"),e.removeClass("disabled")},1500),t?(o.htmlplayereditor.setOption("readOnly",!1),o.cssplayereditor.setOption("readOnly",!1),o.jsplayereditor.setOption("readOnly",!1),e.data("readonly",0).find("span").toggleClass("glyphicon-ban-circle").toggleClass("glyphicon-pencil").end().toggleClass("btn-success").toggleClass("btn-primary")):(o.htmlplayereditor.setOption("readOnly",!0),o.cssplayereditor.setOption("readOnly",!0),o.jsplayereditor.setOption("readOnly",!0),e.data("readonly",1).find("span").toggleClass("glyphicon-ban-circle").toggleClass("glyphicon-pencil").end().toggleClass("btn-success").toggleClass("btn-primary")),r.toggleClass("tutorialexcercise_hide").toggleClass("tutorialexcercise_show");$("#trybymyselfttips").closest(".panel-body")}),$("#readcode").click(function(){$("#donenext").removeClass("disabled");var e=$("#trybymyselfttips").closest(".panel-body");if($("#trybymyselfttips").removeClass("tutorialexcercise_hide").addClass("tutorialexcercise_show"),$("#replaydone").length&&scrollToElement(e,$("#donenext")),$("#replaydone").trigger("click"),$(window).width()>992&&$("#resizetutorial").trigger("click"),$(this).removeClass("btn-success").addClass("btn-default").addClass("disabled"),$("#resizetutorial").removeClass("hidden"),0!==$("#htmlbutton").data("languageid")){var t=$("#HTMLeditor").next(".CodeMirror");t.find(".CodeMirror-gutter-text").addClass("cmgutter"),t.height(o.codemirrorheight).siblings().height(0);var t=$("#HTMLplayer").next(".CodeMirror");t.height(o.codemirrorheight).siblings().height(0)}o.htmlplayereditor.refresh(),o.cssplayereditor.refresh(),o.jsplayereditor.refresh()}),$("#readanswer").click(function(){$("#donenext").removeClass("disabled");var e=$("#trybymyselfttips").closest(".panel-body");if($("#trybymyselfttips").removeClass("tutorialexcercise_hide").addClass("tutorialexcercise_show"),$("#replaydone").length&&scrollToElement(e,$("#donenext")),$("#replaydone").trigger("click"),$(window).width()>992&&$("#resizetutorial").trigger("click"),$(this).removeClass("btn-success").addClass("btn-default").addClass("disabled").addClass("hidden"),$("#resizetutorial").removeClass("hidden"),$("#playpanel").removeClass("hidden"),0!==$("#htmlbutton").data("languageid")){var t=$("#HTMLeditor").next(".CodeMirror");t.find(".CodeMirror-gutter-text").addClass("cmgutter"),t.height(o.codemirrorheight).siblings().height(0);var t=$("#HTMLplayer").next(".CodeMirror");t.height(o.codemirrorheight).siblings().height(0)}o.htmlplayereditor.refresh(),o.cssplayereditor.refresh(),o.jsplayereditor.refresh()}),$("#excerciselist").on("click",".ineedautocodehelp",function(){var e=$(this);f.slider("option","disabled",!0),o.jsplayereditor.setValue(""),o.jsplayereditor.refresh(),o.cssplayereditor.setValue(""),o.cssplayereditor.refresh(),o.htmlplayereditor.setValue(""),o.htmlplayereditor.refresh(),o.excercise_triggertotal=0;var t=e.data("autoexcerciseid");$(this).find("span").toggleClass("glyphicon-cloud-pause").toggleClass("glyphicon-circle-play"),identityService.findAllTutorialRecordsByCRID(t,{callback:function(t){for(var r=0,i=0;i<t.length;i++)t[i].trigger||(t[i].trigger=0),t[i].changeobj=jQuery.parseJSON(t[i].changeobj);o.excercise_records=t;var a=e.data("status");if(o.excercise_triggertotal===o.excercise_records.length)return $("#replayprogressbar").css({width:"0%"}).find("span").html("0%"),!1;if(a?e.attr("title","播放").find("span").addClass("glyphicon-play-circle").removeClass("glyphicon-stop"):e.attr("title","停止").find("span").addClass("glyphicon-stop").removeClass("glyphicon-play-circle"),a){for(var l=o.excercise_recordtimeoutcontrolls,i=0;i<l.length;i++)clearTimeout(l[i]);o.recordtimeouts=[]}else for(var s=o.excercise_records,r=0,i=0;i<s.length;i++)if(0===s[i].trigger){0===i&&"transcripts"===s[i].editor&&(r=3e3);var n=setTimeout(o.changeValueCallback(s[i],1),r/o.speed);o.excercise_recordtimeoutcontrolls.push(n),r+=s[i].intervaltime}e.data("status",!a)}})}),this.resizeWindow($("#ifrcontainer").find("#resultiframe")),$(window).bind("beforeunload",function(){return"确认立刻退出?  请确保已录制的代码回放以保存,以防回放数据丢失"}),function(){function e(e){var r="visible",i="hidden",a={focus:r,focusin:r,pageshow:r,blur:i,focusout:i,pagehide:i};e=e||window.event,e.type in a?document.body.className=a[e.type]:document.body.className=this[t]?"hidden":"visible","hidden"===document.body.className&&1==$("#play").data("status")&&$("#play").trigger("click")}var t="hidden";t in document?document.addEventListener("visibilitychange",e):(t="mozHidden")in document?document.addEventListener("mozvisibilitychange",e):(t="webkitHidden")in document?document.addEventListener("webkitvisibilitychange",e):(t="msHidden")in document?document.addEventListener("msvisibilitychange",e):"onfocusin"in document?document.onfocusin=document.onfocusout=e:window.onpageshow=window.onpagehide=window.onfocus=window.onblur=e}(),setTimeout(function(){$(window).width()>992&&$("#resizetutorial").trigger("click"),$("#gbloading").addClass("hidden")},600)},resizeWindow:function(e){var t=function(){if($(window).width()>992){$("#tutorialpanel").css({height:""}).find(".panel-body").css({"overflow-y":"scroll"});var t=$("#resultpanel").offset();$("#recordpanel").height($(window).height()-t.top-22),$("#resultpanel").height($(window).height()-t.top-22),$("#tutorialpanel").height($(window).height()-t.top-22),$("#tutorialpanel > .panel-body").height($(window).height()-t.top-22-2*$("#tutorialpanel > .panel-heading").outerHeight()-4),t=$("#resultpanel").find(".panel-body:not(.hidden)").offset(),e.height($(window).height()-t.top-22-30),$("#resultoutput").height($(window).height()-t.top-22-30);var r=$("#recordzone").offset(),i=$("#replayzone").offset(),a="";a=i.top?i.top:null!=r?r.top:0;var l=$("#htmlbutton").data("languageid")||0;0===l&&$(".CodeMirror").height(($(window).height()-a-24-15)/3),o.codemirrorheight=$(window).height()-a-24-15}else $("#tutorialpanel").css({height:"100%"}).find(".panel-body").css({height:"100%","overflow-y":"visible"}),$("#playrecord").popover("destroy"),$("#recordpanel").css({height:""}),$("#resultpanel").css({height:""}),e.height(200),o.codemirrorheight=200;"undefined"!=typeof o.htmleditor&&"undefined"!=typeof o.csseditor&&"undefined"!=typeof o.jseditor&&(o.htmleditor.refresh(),o.csseditor.refresh(),o.jseditor.refresh())};$(window).resize(function(){$("#editorwrapper").find("button").removeClass("btn-primary").find("#allbutton").addClass("btn-primary"),t(),$("#playrecord").popover("hide")}).load(function(){t()})},onChange:function(e,r){var i=0,a=(new Date).getTime();o.record_startime||(o.record_startime=a),i=a-o.record_startime,i>2e3&&(i=1500),"transcripts"===e&&(i=t(r.transcripts));var l={intervaltime:i,editor:e,changeobj:r,trigger:0};o.records.push(l),o.record_startime=a},changeValueCallback:function(i,a,l){var s=i.changeobj,n=i.editor;return function(){if(o.active_editor!==n?$("#"+n+"button").trigger("click"):o.active_editor=n,"html"===n)e(o.htmlplayereditor,s);else if("css"===n)e(o.cssplayereditor,s);else if("js"===n)e(o.jsplayereditor,s);else if("transcripts"===n&&!l){var d=$("#codetips");if($(window).width()>992){var c="auto bottom",p=s.target,g=0;if(p&&(d=$(s.target),c="auto left"),1===p){$("#editor-popover").css({"z-index":"10000"}).find(".popover-content").html('<i id="codetipsicon" class="text-primary glyphicon glyphicon-volume-down"></i>&nbsp;'+s.transcripts),$("#"+s.editor+"button").trigger("click");var h=o.htmlplayereditor;"css"===s.editor?h=o.cssplayereditor:"js"===s.editor&&(h=o.jsplayereditor);var u=h.charCoords(s.pos,"local").y,m=h.getScrollerElement().offsetHeight/2,y=h.charCoords(s.pos,"local").x,v=h.getScrollerElement().offsetWidth/2;h.scrollTo(y-v-5,u-m-5),s.pause&&1==$("#play").data("status")&&!o.continue_recording&&$("#play").trigger("click").addClass("animated flash infinite"),setTimeout(function(){var e=h.charCoords(s.pos),t=$("#editor-popover").outerWidth(),r=$("#editor-popover").outerHeight();$("#editor-popover").addClass("fade in").animate({left:e.x-t/5,top:e.y-r},250)},200)}else 2===p&&(d=$("#resultpanel"),g=1),$("#autorun").data("autorun")||$("#runnow").trigger("click"),d.popover({trigger:"manual",placement:c,container:"body",html:!0,content:'<i id="codetipsicon" class="text-info glyphicon glyphicon-volume-down"></i>&nbsp;<span class="text-primary">'+s.transcripts+"</span>"}).popover("show");1==$("#play").data("status")&&g&&($("body").prepend('<div class="tour-backdrop"></div>').find(".popover").addClass("tour-gbtagstour"),d.addClass("tour-step-backdrop"),o.continue_recording||$("#play").trigger("click").addClass("animated flash infinite"))}else d.addClass("tour-step-backdrop").popover({trigger:"manual",placement:"left",container:"body",html:!0,content:'<i id="codetipsicon" class="text-info glyphicon glyphicon-volume-down"></i>&nbsp;<span class="text-primary">'+s.transcripts+"</span>"}).popover("show");var b=function(){$(".tour-backdrop").remove(),s.pause||$("#editor-popover").css({"z-index":"-1000"}).removeClass("in"),d.removeClass("tour-step-backdrop").popover("destroy")};if($("#saverecord").length)setTimeout(b,t(s.transcripts)/o.speed);else if(1===o.speed){var f=document.getElementById("transcriptid"+o.triggertotal);f.addEventListener("ended",function(){$("#codetipsicon").addClass("glyphicon-volume-down").removeClass("glyphicon-volume-up").removeClass("animated flash infinite")},!1),f.addEventListener("error",function(){setTimeout(b,4e3/o.speed)},!1),f.load(),f.play(),setTimeout(function(){b(),$("#transcriptid"+o.triggertotal).animate({volume:0},2e3)},t(s.transcripts)/o.speed),$("#codetipsicon").removeClass("glyphicon-volume-down").addClass("glyphicon-volume-up").addClass("animated flash infinite")}else setTimeout(b,t(s.transcripts)/o.speed)}i.trigger=1,a?o.excercise_triggertotal+=1:o.triggertotal+=1;var C="0%",x=0;if(a?(x=Math.ceil(o.excercise_triggertotal/o.excercise_records.length*100),C=x+"%"):l||(x=Math.ceil(o.triggertotal/o.records.length*100),C=x+"%",$("#replayprogressbar").css({width:C}).find("span").html(C),$(".slider").slider("option","now",x)),o.triggertotal===o.records.length&&!a){if($("#play").data("status",0).attr("title","播放").addClass("btn-success").removeClass("btn-danger").removeClass("infinite").find("span").addClass("glyphicon-play").removeClass("glyphicon-pause"),$("#recordertab a:first").tab("show"),$("#donenext").removeClass("disabled"),global_onlineuser.uid&&"undefined"!=typeof global_tutorial_id){var w={itemid:global_tutorial_id,uid:global_onlineuser.uid};identityService.addLibraryProgress(w,{callback:function(e){}})}$("#mobiledonenext").removeClass("disabled"),$(window).width()>992&&$("#editorpanel").hasClass("col-md-8")&&$("#resizeeditors").trigger("click"),$("#replayprogressbar").addClass("animated flash");var k=$("#trybymyselfttips").closest(".panel-body");if($("#trybymyselfttips").removeClass("tutorialexcercise_hide").addClass("tutorialexcercise_show"),$("#replaydone").length&&scrollToElement(k,$("#donenext")),$("#replaydone").addClass("animated bounce"),$("#replaydone").data("readonly")&&$("#replaydone").trigger("click"),o.triggeroffset=0,$("#readonly").length>0&&setTimeout(function(){$("#readonly").trigger("click")},1500),o.continue_recording){var _=o.jsplayereditor.getValue(),j=o.cssplayereditor.getValue(),S=o.htmlplayereditor.getValue();o.recording_status=0,o.htmleditor.setValue(S),o.csseditor.setValue(j),o.jseditor.setValue(_),o.jseditor.refresh(),o.csseditor.refresh(),o.htmleditor.refresh(),o.recording_status=1,o.continue_recording=0,o.speed=1,$("#gbloading").addClass("hidden"),$("#autorun").data("autorun")||$("#autorun").trigger("click"),setInterval(function(){r(o.records)},5e3)}}if(o.excercise_triggertotal===o.excercise_records.length){var O=$(".replayprogress");O.slider("option","disabled",!1),$("#excerciselist .ineedautocodehelp").data("status",0).attr("title","播放").find("span").addClass("glyphicon-play-circle").removeClass("glyphicon-stop")}}},generateResult:function(e,t,r){$("#ifrcontainer").html($("<iframe />",{id:"resultiframe",frameBorder:"0",style:"width:100%","z-index":"-1000"}));var i=$("#ifrcontainer").find("#resultiframe");if($(window).width()>992){var a=$("#resultpanel").find(".panel-body:not(.hidden)").offset();i.height($(window).height()-a.top-22-30),$("#resultoutput").height($(window).height()-a.top-22-30)}else i.height(450);var o,l=$("#resultiframe")[0];o=l.contentDocument?l.contentDocument:l.contentWindow?l.contentWindow.document:l.document;var s=0,n=e.toLowerCase();n.toLowerCase().indexOf("</body>")>=0&&n.toLowerCase().indexOf("<body>")>=0&&(s=1),s?(e=e.replace(/\<link href="style.css" rel="stylesheet"\/>/g,"<style>"+t+"</style>"),e=e.replace(/\<link rel="stylesheet" href="style.css"\/>/g,"<style>"+t+"</style>"),e=e.replace(/\<script src="script.js"\>\<\/script\>/g,"<script>"+r+"</script>"),result=e):result="<!DOCTYPE HTML><html><head><style>"+t+"</style></head><body>"+e+'<script type="text/javascript">'+r+"</script></body></html>",o.open(),o.writeln(result),o.close()}};"undefined"!=typeof global_trigger_record&&global_trigger_record&&(document.URL.indexOf("rtrecordtutorialexcercise")>=0?o.recordinit(0,1):document.URL.indexOf("gbtutorials")>=0||document.URL.indexOf("gb3rdtutorials")>=0?o.recordinit(1,0):o.recordinit(),a());var l=null,s=null,n=null;if($("button").tooltip({container:"body"}),$(".linkbutton").tooltip({container:"body",placement:"top"}),$("#coverpreview").on("click",".removeimg",function(){$(this).hide().next().remove()}),document.URL.indexOf("index.htm")>=0||document.URL.indexOf("rtrecordtutorial.htm")>=0||$(window).unbind("beforeunload"),document.URL.indexOf("gbtutorials")>0||document.URL.indexOf("gb3rdtutorials")>0){if(!global_jsreplayerid)return;identityService.findTutorialReplayByCRPID(global_jsreplayerid,{callback:function(e){o.htmlplayereditor.setValue(e.html),o.cssplayereditor.setValue(e.css),o.jsplayereditor.setValue(e.javascript)}})}if(document.URL.indexOf("listcodereplay.htm")<0&&document.URL.indexOf("index.htm")<0&&o.htmleditor&&o.csseditor&&o.jseditor){if(!global_jsreplayerid)return;identityService.findCodeReplayByCRPID(global_jsreplayerid,{callback:function(e){o.htmleditor.setValue(e.html),o.csseditor.setValue(e.css),o.jseditor.setValue(e.javascript)}}),$("#recordertab a#relatedcode").click(function(e){if(e.preventDefault(),$(this).tab("show"),0!==$("#htmlbutton").data("languageid")){var t=$("#HTMLeditor").next(".CodeMirror");t.find(".CodeMirror-gutter-text").addClass("cmgutter"),t.height(o.codemirrorheight).siblings().height(0);var t=$("#HTMLplayer").next(".CodeMirror");t.height(o.codemirrorheight).siblings().height(0)}o.htmleditor.refresh(),o.csseditor.refresh(),o.jseditor.refresh()})}}),$(function(){$("#replaylist").on("click",".deletecode",function(){var e=$(this),t=$(this).data("crpid");$.msg({buttons:[{"确定":function(){identityService.saveCodeReplayDeletedByCRPID({crpid:t},{callback:function(t){e.closest(".isotope-item").fadeOut()},exceptionHandler:function(t,r){e.popover({placement:"top",container:"body",html:!0,content:"系统错误,请刷新重试"}).popover("show")}})}},{"取消":function(){}}],msg:"确定删除?"})}),$("#replaylist").on("click",".addtostar",function(){var e=$(this),t=e.data("star"),r=e.data("uid"),i=$(this).data("crpid");global_onlineuser.roleid<0&&identityService.saveCodeReplayPickupByCRPID({pickup:+!t,crpid:i,userid:r},{callback:function(r){r>0?e.toggleClass("btn-default").toggleClass("btn-primary").popover({placement:"top",container:"body",html:!0,content:'<span class="text-primary">'+(1===t?"取消":"添加")+"</span>原创推荐操作已成功"}).popover("show"):e.popover({placement:"top",container:"body",html:!0,content:"此操作受限,请退出"}).popover("show"),setTimeout(function(){e.popover("destroy")},1500),e.data("star",+!t)},exceptionHandler:function(t,r){e.popover({placement:"top",container:"body",html:!0,content:"系统错误,请刷新重试"}).popover("show")}})});var e=$("#replaylist"),t=0,r=12,i="panel-primary";e.isotope({itemSelector:".item",layoutMode:"sloppyMasonry"}),$("#showmore").click(function(){var a=Ladda.create(this),o=$("#cpcategory");a.start(),a.setProgress(.1);var l={start:t,offset:r};o.html("最近作品").siblings().removeClass().addClass("glyphicon glyphicon-time"),global_keyword.length>0&&(l.replaytitle=global_keyword),"1"===global_pickup?(l.pickup=global_pickup,i="panel-primary",o.html("推荐作品").siblings().removeClass().addClass("glyphicon glyphicon-star")):"2"===global_pickup&&(l.viewcount=0,i="panel-primary",o.html("人气作品").siblings().removeClass().addClass("glyphicon glyphicon-eye-open")),"0"!==global_userid&&(l.userid=global_userid,l.pickup=null,o.html("我的作品").siblings().removeClass().addClass("glyphicon glyphicon-user")),identityService.findAllCodeReplaysByKeyword(l,{callback:function(o){if(a.setProgress(.8),o.length>0){for(var l="",s=0;s<o.length;s++){var n="placeholder.png";o[s].image&&(n=o[s].image);var d="HTML",c="",p="";1===o[s].languageid?d="JAVA":2===o[s].languageid?d="OBJECTIVE-C":3===o[s].languageid?d="C":4===o[s].languageid?d="C++":5===o[s].languageid&&(d="PHP"),c=o[s].saveformat?'<a class="btn btn-success btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayer/"+o[s].crpid+'.htm" data-toggle="tooltip" title="相关代码可供播放"><i class="glyphicon glyphicon-play"></i></a>':'<a class="btn btn-primary btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayerpreview/"+o[s].crpid+'.htm" data-toggle="tooltip" title="相关代码仅供查看"><i class="glyphicon glyphicon-th-list"></i></a>',o[s].userid===global_onlineuser.uid&&(p='<a class="deletecode btn btn-danger btn-sm linkbutton pull-right" role="button" title="删除作品" data-crpid='+o[s].crpid+'><i class="glyphicon glyphicon-remove"></i></a>'),"0"!==global_userid?l+='<div class="item col-md-3 col-sm-6 col-xs-12"><div class="panel '+i+'"><div class="panel-heading"><h5 class="codereplaytitle"><span style="font-weight:400;" class="label label-info">'+(o[s].deleted===-1?"草稿":"")+'</span>&nbsp;<span class="badge pull-right" style="font-weight:normal;background:#888;">'+d+'</span><a target="_blank" href="'+global_contextPath+"/rtreplayerpreview/"+o[s].crpid+'.htm">'+o[s].replaytitle+'</a></h5></div><div class="panel-body"><img class="img-responsive center-block" src="'+global_contextPath+"/networks/uploadimgthumb/"+n+'"/><div class="replaydesc">'+o[s].replaydesc+'</div></div><div class="panel-footer">'+(global_onlineuser.roleid<0?'<button class="linkbutton btn btn-sm btn-'+(1==o[s].pickup?"primary":"default")+' addtostar" data-uid="'+o[s].userid+'" data-crpid="'+o[s].crpid+'" data-star="'+o[s].pickup+'" title="'+(1==o[s].pickup?"原创推荐代码":"非原创推荐代码")+'"><span class="glyphicon glyphicon-star"></span></button>':"")+'<div class="btn-group">'+(1===o[s].saveformat?' <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayer/"+o[s].crpid+'.htm" data-toggle="tooltip" title="播放次数"><span class="glyphicon glyphicon-eye-open"></span>&nbsp;'+o[s].viewcount+"</a>":"")+' <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayerpreview/"+o[s].crpid+'.htm#comments" data-toggle="tooltip" title="评论次数"><span class="glyphicon glyphicon-comment"></span>&nbsp;'+o[s].commentcount+'</a></div><div class="btn-group pull-right">'+c+"</div>"+p+'<div class="clearfix"></div></div></div></div>':"0"===global_userid&&o[s].deleted!==-1&&(l+='<div class="item col-md-3 col-sm-6 col-xs-12"><div class="panel '+i+'"><div class="panel-heading"><h5 class="codereplaytitle"><span class="badge pull-right" style="font-weight:normal;background:#888;">'+d+'</span><a target="_blank" href="'+global_contextPath+"/rtreplayerpreview/"+o[s].crpid+'.htm">'+o[s].replaytitle+'</a></h5></div><div class="panel-body"><img class="img-responsive center-block" src="'+global_contextPath+"/networks/uploadimgthumb/"+n+'"/><div class="replaydesc">'+o[s].replaydesc+'</div></div><div class="panel-footer">'+(global_onlineuser.roleid<0?'<button class="linkbutton btn btn-sm btn-'+(1==o[s].pickup?"primary":"default")+' addtostar" data-uid="'+o[s].userid+'" data-crpid="'+o[s].crpid+'" data-star="'+o[s].pickup+'" title="'+(1==o[s].pickup?"原创推荐代码":"非原创推荐代码")+'"><span class="glyphicon glyphicon-star"></span></button>':"")+'<div class="btn-group">'+(1===o[s].saveformat?' <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayer/"+o[s].crpid+'.htm" data-toggle="tooltip" title="播放次数"><span class="glyphicon glyphicon-eye-open"></span>&nbsp;'+o[s].viewcount+"</a>":"")+' <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayerpreview/"+o[s].crpid+'.htm#comments" data-toggle="tooltip" title="评论次数"><span class="glyphicon glyphicon-comment"></span>&nbsp;'+o[s].commentcount+'</a></div><div class="btn-group pull-right">'+c+"</div>"+p+'</div><div class="clearfix"></div></div></div></div>')}var g=$(l);if(e.append(g),e.imagesLoaded(function(){e.isotope("appended",g).isotope("reLayout")}),e.find(".linkbutton").tooltip({container:"body",placement:"bottom"}),!t){var h=$('<div class="item col-md-4 col-sm-6 col-xs-12 hidden"></div>');e.append(h),e.isotope("appended",h).isotope("reLayout")}}else{var u="没有找到更多作品";$("#showmore").html(u).addClass("btn-danger")}a.setProgress(1),a.stop(),$("#keyword").val(global_keyword),t+=r}})}),$("#showmore").trigger("click");var a=$("#replayfavlist"),t=0,r=12,o="panel-primary";a.isotope({itemSelector:".item",layoutMode:"sloppyMasonry"}),$("#showmorefav").click(function(){var e=Ladda.create(this);e.start(),e.setProgress(.1);var i={start:t,offset:r,userid:global_onlineuser.uid};identityService.findMyFavCodeReplays(i,{callback:function(i){if(e.setProgress(.8),i.length>0){for(var l="",s=0;s<i.length;s++){var n="placeholder.png";i[s].image&&(n=i[s].image);var d="HTML";1===i[s].languageid?d="JAVA":2===i[s].languageid?d="OBJECTIVE-C":3===i[s].languageid?d="C":4===i[s].languageid?d="C++":5===i[s].languageid&&(d="PHP"),l+='<div class="item col-md-3 col-sm-6 col-xs-12"><div class="panel '+o+'"><div class="panel-heading"><h5 class="codereplaytitle"><span class="badge pull-right" style="font-weight:normal;background:#888;">'+d+'</span><a target="_blank" href="'+global_contextPath+"/rtreplayerpreview/"+i[s].crpid+'.htm">'+i[s].replaytitle+'</a></h5></div><div class="panel-body"><img class="img-responsive center-block" src="'+global_contextPath+"/networks/uploadimgthumb/"+n+'"/><div class="replaydesc">'+i[s].replaydesc+'</div></div><div class="panel-footer">'+(global_onlineuser.roleid<0?'<button class="linkbutton btn btn-sm btn-'+(1==i[s].pickup?"primary":"default")+' addtostar" data-crpid="'+i[s].crpid+'" data-star="'+i[s].pickup+'" title="'+(1==i[s].pickup?"原创推荐代码":"非原创推荐代码")+'"><span class="glyphicon glyphicon-star"></span></button>':"")+'<div class="btn-group"> <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayer/"+i[s].crpid+'.htm" data-toggle="tooltip" title="回放次数"><span class="glyphicon glyphicon-eye-open"></span>&nbsp;'+i[s].viewcount+'</a> <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayerpreview/"+i[s].crpid+'.htm#comments" data-toggle="tooltip" title="评论次数"><span class="glyphicon glyphicon-comment"></span>&nbsp;'+i[s].commentcount+'</a></div><div class="btn-group pull-right"> <a class="btn btn-default btn-sm linkbutton" role="button" href="'+global_contextPath+"/rtreplayer/"+i[s].crpid+'.htm" data-toggle="tooltip" title="播放代码"><span class="glyphicon glyphicon-play"></span></a></div><div class="clearfix"></div></div></div></div>';
}var c=$(l);if(a.append(c),a.imagesLoaded(function(){a.isotope("appended",c).isotope("reLayout")}),a.find(".linkbutton").tooltip({container:"body",placement:"bottom"}),!t){var p=$('<div class="item col-md-4 col-sm-6 col-xs-12 hidden"></div>');a.append(p),a.isotope("appended",p).isotope("reLayout")}}else{var g="没有找到更多代码";$("#showmorefav").html(g).addClass("btn-danger")}e.setProgress(1),e.stop(),t+=r}})}),$("#showmorefav").trigger("click"),$("#replaycontainer").on("click",".addtoreplayfav",function(){var e=$(this),t=e.data("replayerid"),r={typeid:2,pid:t},i=Ladda.create(this);i.start(),identityService.addToFavorite(r,{callback:function(t){i.stop(),t?e.html('<i class="glyphicon glyphicon-bookmark"></i> 取消收藏').removeClass("btn-warning").addClass("btn-info"):e.html('<i class="glyphicon glyphicon-plus"></i> 立刻收藏').addClass("btn-warning").removeClass("btn-info")}})})});