├── 404.html ├── 500.html ├── README.md ├── badges_labels.html ├── basic_gallery.html ├── buttons.html ├── calendar.html ├── carousel.html ├── chat_view.html ├── code_editor.html ├── contacts.html ├── css ├── animate.css ├── bootstrap-rtl.css ├── bootstrap.min.css ├── demo │ └── webuploader-demo.css ├── patterns │ ├── header-profile-skin-1.png │ ├── header-profile-skin-2.png │ ├── header-profile-skin-3.png │ ├── header-profile.png │ └── shattered.png ├── plugins │ ├── chosen │ │ ├── chosen-sprite.png │ │ ├── chosen-sprite@2x.png │ │ └── chosen.css │ ├── codemirror │ │ ├── ambiance.css │ │ └── codemirror.css │ ├── colorpicker │ │ ├── css │ │ │ └── bootstrap-colorpicker.min.css │ │ └── img │ │ │ └── bootstrap-colorpicker │ │ │ ├── alpha-horizontal.png │ │ │ ├── alpha.png │ │ │ ├── hue-horizontal.png │ │ │ ├── hue.png │ │ │ └── saturation.png │ ├── dataTables │ │ └── dataTables.bootstrap.css │ ├── datapicker │ │ └── datepicker3.css │ ├── dropzone │ │ ├── basic.css │ │ └── dropzone.css │ ├── fullcalendar │ │ ├── fullcalendar.css │ │ └── fullcalendar.print.css │ ├── iCheck │ │ ├── custom.css │ │ ├── green.png │ │ └── green@2x.png │ ├── images │ │ ├── sort_asc.png │ │ ├── sort_desc.png │ │ ├── sprite-skin-flat.png │ │ ├── spritemap.png │ │ └── spritemap@2x.png │ ├── ionRangeSlider │ │ ├── ion.rangeSlider.css │ │ └── ion.rangeSlider.skinFlat.css │ ├── jQueryUI │ │ ├── images │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ ├── ui-bg_flat_75_ffffff_40x100.png │ │ │ ├── ui-icons_222222_256x240.png │ │ │ ├── ui-icons_454545_256x240.png │ │ │ └── ui-icons_888888_256x240.png │ │ └── jquery-ui-1.10.4.custom.min.css │ ├── jasny │ │ └── jasny-bootstrap.min.css │ ├── jqgrid │ │ └── ui.jqgrid.css │ ├── jsTree │ │ ├── 32px.png │ │ └── style.min.css │ ├── markdown │ │ └── bootstrap-markdown.min.css │ ├── morris │ │ └── morris-0.4.3.min.css │ ├── nouslider │ │ └── jquery.nouislider.css │ ├── simditor │ │ └── simditor.css │ ├── steps │ │ └── jquery.steps.css │ ├── summernote │ │ ├── summernote-bs3.css │ │ └── summernote.css │ ├── switchery │ │ └── switchery.css │ ├── toastr │ │ └── toastr.min.css │ ├── treeview │ │ └── bootstrap-treeview.css │ └── webuploader │ │ └── webuploader.css └── style.css ├── css_animation.html ├── draggable_panels.html ├── empty_page.html ├── faq.html ├── file_manager.html ├── font-awesome ├── css │ └── font-awesome.css └── fonts │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.eot_v=4.3.0 │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.svg_v=4.3.0 │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.ttf_v=4.3.0 │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2_v=4.3.0 │ └── fontawesome-webfont.woff_v=4.3.0 ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff ├── form_advanced.html ├── form_avatar.html ├── form_basic.html ├── form_builder.html ├── form_editors.html ├── form_file_upload.html ├── form_markdown.html ├── form_simditor.html ├── form_validate.html ├── form_webuploader.html ├── form_wizard.html ├── forum_main.html ├── graph_echarts.html ├── graph_flot.html ├── graph_morris.html ├── graph_peity.html ├── graph_rickshaw.html ├── graph_sparkline.html ├── grid_options.html ├── iconfont.html ├── icons.html ├── img ├── a1.jpg ├── a2.jpg ├── a3.jpg ├── a4.jpg ├── a5.jpg ├── a6.jpg ├── a7.jpg ├── a8.jpg ├── a9.jpg ├── alipay_qr_code.png ├── bg.png ├── iconfont-logo.png ├── icons.png ├── index.jpg ├── index_4.jpg ├── loading-upload.gif ├── p1.jpg ├── p2.jpg ├── p3.jpg ├── p4.jpg ├── p5.jpg ├── p6.jpg ├── p7.jpg ├── p8.jpg ├── p_big1.jpg ├── p_big2.jpg ├── p_big3.jpg ├── profile.jpg ├── profile_big.jpg ├── profile_small.jpg ├── progress.png ├── qr_code.png ├── success.png └── wenku_logo.png ├── index.html ├── index_1.html ├── index_2.html ├── index_3.html ├── index_4.html ├── invoice.html ├── invoice_print.html ├── js ├── bootstrap.min.js ├── demo │ ├── echarts-demo.js │ ├── flot-demo.js │ ├── layer-demo.js │ ├── morris-demo.js │ ├── peity-demo.js │ ├── rickshaw-demo.js │ ├── sparkline-demo.js │ ├── treeview-demo.js │ └── webuploader-demo.js ├── hplus.js ├── jquery-2.1.1.min.js ├── jquery-ui-1.10.4.min.js ├── jquery-ui.custom.min.js └── plugins │ ├── chartJs │ └── Chart.min.js │ ├── chosen │ └── chosen.jquery.js │ ├── codemirror │ ├── codemirror.js │ └── mode │ │ └── javascript │ │ └── javascript.js │ ├── colorpicker │ └── bootstrap-colorpicker.min.js │ ├── dataTables │ ├── dataTables.bootstrap.js │ └── jquery.dataTables.js │ ├── datapicker │ └── bootstrap-datepicker.js │ ├── dropzone │ └── dropzone.js │ ├── easypiechart │ └── jquery.easypiechart.js │ ├── echarts │ └── echarts-all.js │ ├── fancybox │ ├── blank.gif │ ├── fancybox_loading.gif │ ├── fancybox_loading@2x.gif │ ├── fancybox_overlay.png │ ├── fancybox_sprite.png │ ├── fancybox_sprite@2x.png │ ├── jquery.fancybox.css │ └── jquery.fancybox.js │ ├── flot │ ├── curvedLines.js │ ├── jquery.flot.js │ ├── jquery.flot.pie.js │ ├── jquery.flot.resize.js │ ├── jquery.flot.spline.js │ ├── jquery.flot.symbol.js │ └── jquery.flot.tooltip.min.js │ ├── fullcalendar │ └── fullcalendar.min.js │ ├── gritter │ ├── images │ │ ├── gritter-light.png │ │ ├── gritter.png │ │ └── ie-spacer.gif │ ├── jquery.gritter.css │ └── jquery.gritter.min.js │ ├── iCheck │ └── icheck.min.js │ ├── ionRangeSlider │ └── ion.rangeSlider.min.js │ ├── jasny │ └── jasny-bootstrap.min.js │ ├── jeditable │ └── jquery.jeditable.js │ ├── jqgrid │ ├── i18n │ │ └── grid.locale-cn.js │ └── jquery.jqGrid.min.js │ ├── jquery-ui │ └── jquery-ui.min.js │ ├── jsKnob │ └── jquery.knob.js │ ├── jsTree │ └── jstree.min.js │ ├── jvectormap │ ├── jquery-jvectormap-1.2.2.min.js │ └── jquery-jvectormap-world-mill-en.js │ ├── layer │ ├── extend │ │ └── layer.ext.js │ ├── laydate │ │ ├── laydate.js │ │ ├── need │ │ │ └── laydate.css │ │ └── skins │ │ │ └── default │ │ │ ├── icon.png │ │ │ └── laydate.css │ ├── layer.min.js │ ├── layim │ │ ├── data │ │ │ ├── chatlog.json │ │ │ ├── friend.json │ │ │ └── group.json │ │ ├── layim.css │ │ ├── layim.js │ │ └── loading.gif │ └── skin │ │ ├── default │ │ ├── xubox_ico0.png │ │ ├── xubox_loading0.gif │ │ ├── xubox_loading1.gif │ │ ├── xubox_loading2.gif │ │ ├── xubox_loading3.gif │ │ └── xubox_title0.png │ │ ├── layer.css │ │ └── layer.ext.css │ ├── markdown │ ├── bootstrap-markdown.js │ ├── bootstrap-markdown.zh.js │ ├── markdown.js │ └── to-markdown.js │ ├── metisMenu │ └── jquery.metisMenu.js │ ├── morris │ ├── morris.js │ └── raphael-2.1.0.min.js │ ├── nestable │ └── jquery.nestable.js │ ├── nouslider │ └── jquery.nouislider.min.js │ ├── pace │ └── pace.min.js │ ├── peity │ └── jquery.peity.min.js │ ├── rickshaw │ ├── rickshaw.min.js │ └── vendor │ │ └── d3.v3.js │ ├── simditor │ ├── hotkeys.js │ ├── module.js │ ├── simditor.js │ └── uploader.js │ ├── slimscroll │ └── jquery.slimscroll.min.js │ ├── sparkline │ └── jquery.sparkline.min.js │ ├── staps │ └── jquery.steps.min.js │ ├── summernote │ ├── summernote-zh-CN.js │ └── summernote.min.js │ ├── switchery │ └── switchery.js │ ├── toastr │ └── toastr.min.js │ ├── treeview │ └── bootstrap-treeview.js │ ├── validate │ ├── jquery.validate.min.js │ └── messages_zh.min.js │ └── webuploader │ └── webuploader.min.js ├── layer.html ├── layerdate.html ├── layouts.html ├── lockscreen.html ├── login.html ├── mail_compose.html ├── mail_detail.html ├── mailbox.html ├── modal_window.html ├── nestable_list.html ├── notifications.html ├── pin_board.html ├── plugins └── fullavatareditor │ ├── fullAvatarEditor.swf │ └── scripts │ ├── fullAvatarEditor.js │ ├── jQuery.Cookie.js │ ├── swfobject.js │ └── test.js ├── profile.html ├── project_detail.html ├── projects.html ├── register.html ├── search_results.html ├── skin-config.html ├── table_basic.html ├── table_data_tables.html ├── table_jqgrid.html ├── tabs_panels.html ├── timeline.html ├── timeline_v2.html ├── toastr_notifications.html ├── tools └── form-builder │ └── beautifyhtml.js ├── tree_view.html ├── tree_view_v2.html ├── typography.html ├── validation.html ├── webim.html └── widgets.html /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 |42 | 日期: 2014-11-11 43 |
44 |清单 | 52 |数量 | 53 |单价 | 54 |税率 | 55 |总价 | 56 |
---|---|---|---|---|
61 | 尚都比拉2013冬装新款女装 韩版修身呢子大衣 秋冬气质羊毛呢外套
62 |
63 | |
64 | 1 | 65 |¥26.00 | 66 |¥1.20 | 67 |¥31,98 | 68 |
71 | 11*11夏娜 新款斗篷毛呢外套 女秋冬呢子大衣 韩版大码宽松呢大衣
72 |
73 | 双十一特价
74 |
75 | |
76 | 2 | 77 |¥80.00 | 78 |¥1.20 | 79 |¥196.80 | 80 |
83 | 2013秋装 新款女装韩版学生秋冬加厚加绒保暖开衫卫衣 百搭女外套
84 |
85 | |
86 | 3 | 87 |¥420.00 | 88 |¥1.20 | 89 |¥1033.20 | 90 |
总价: 101 | | 102 |¥1026.00 | 103 |
税: 106 | | 107 |¥235.98 | 108 |
总计 111 | | 112 |¥1261.98 | 113 |
您单击了 ' + node.text + '
'); 228 | } 229 | }); 230 | 231 | // $('#treeview11').on('nodeSelected', function (event, node) { 232 | // $('#event_output').prepend('您单击了 ' + node.text + '
'); 233 | // }); 234 | 235 | 236 | $('#treeview12').treeview({ 237 | data: json 238 | }); 239 | 240 | }); -------------------------------------------------------------------------------- /js/hplus.js: -------------------------------------------------------------------------------- 1 | // Custom scripts 2 | $(document).ready(function () { 3 | 4 | // MetsiMenu 5 | $('#side-menu').metisMenu(); 6 | 7 | // Collapse ibox function 8 | $('.collapse-link').click( function() { 9 | var ibox = $(this).closest('div.ibox'); 10 | var button = $(this).find('i'); 11 | var content = ibox.find('div.ibox-content'); 12 | content.slideToggle(200); 13 | button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down'); 14 | ibox.toggleClass('').toggleClass('border-bottom'); 15 | setTimeout(function () { 16 | ibox.resize(); 17 | ibox.find('[id^=map-]').resize(); 18 | }, 50); 19 | }); 20 | 21 | // Close ibox function 22 | $('.close-link').click( function() { 23 | var content = $(this).closest('div.ibox'); 24 | content.remove(); 25 | }); 26 | 27 | // Small todo handler 28 | $('.check-link').click( function(){ 29 | var button = $(this).find('i'); 30 | var label = $(this).next('span'); 31 | button.toggleClass('fa-check-square').toggleClass('fa-square-o'); 32 | label.toggleClass('todo-completed'); 33 | return false; 34 | }); 35 | 36 | // Append config box / Only for demo purpose 37 | $.get("skin-config.html", function (data) { 38 | $('body').append(data); 39 | }); 40 | 41 | // minimalize menu 42 | $('.navbar-minimalize').click(function () { 43 | $("body").toggleClass("mini-navbar"); 44 | SmoothlyMenu(); 45 | }) 46 | 47 | // tooltips 48 | $('.tooltip-demo').tooltip({ 49 | selector: "[data-toggle=tooltip]", 50 | container: "body" 51 | }) 52 | 53 | // Move modal to body 54 | // Fix Bootstrap backdrop issu with animation.css 55 | $('.modal').appendTo("body") 56 | 57 | // Full height of sidebar 58 | function fix_height() { 59 | var heightWithoutNavbar = $("body > #wrapper").height() - 61; 60 | $(".sidebard-panel").css("min-height", heightWithoutNavbar + "px"); 61 | } 62 | fix_height(); 63 | 64 | // Fixed Sidebar 65 | // unComment this only whe you have a fixed-sidebar 66 | // $(window).bind("load", function() { 67 | // if($("body").hasClass('fixed-sidebar')) { 68 | // $('.sidebar-collapse').slimScroll({ 69 | // height: '100%', 70 | // railOpacity: 0.9, 71 | // }); 72 | // } 73 | // }) 74 | 75 | $(window).bind("load resize click scroll", function() { 76 | if(!$("body").hasClass('body-small')) { 77 | fix_height(); 78 | } 79 | }) 80 | 81 | $("[data-toggle=popover]") 82 | .popover(); 83 | }); 84 | 85 | 86 | // For demo purpose - animation css script 87 | function animationHover(element, animation){ 88 | element = $(element); 89 | element.hover( 90 | function() { 91 | element.addClass('animated ' + animation); 92 | }, 93 | function(){ 94 | //wait for animation to finish before removing classes 95 | window.setTimeout( function(){ 96 | element.removeClass('animated ' + animation); 97 | }, 2000); 98 | }); 99 | } 100 | 101 | // Minimalize menu when screen is less than 768px 102 | $(function() { 103 | $(window).bind("load resize", function() { 104 | if ($(this).width() < 769) { 105 | $('body').addClass('body-small') 106 | } else { 107 | $('body').removeClass('body-small') 108 | } 109 | }) 110 | }) 111 | 112 | function SmoothlyMenu() { 113 | if (!$('body').hasClass('mini-navbar') || $('body').hasClass('body-small')) { 114 | // Hide menu in order to smoothly turn on when maximize menu 115 | $('#side-menu').hide(); 116 | // For smoothly turn on menu 117 | setTimeout( 118 | function () { 119 | $('#side-menu').fadeIn(500); 120 | }, 100); 121 | } else if ($('body').hasClass('fixed-sidebar')){ 122 | $('#side-menu').hide(); 123 | setTimeout( 124 | function () { 125 | $('#side-menu').fadeIn(500); 126 | }, 300); 127 | } else { 128 | // Remove all inline style from jquery fadeIn function to reset menu state 129 | $('#side-menu').removeAttr('style'); 130 | } 131 | } 132 | 133 | // Dragable panels 134 | function WinMove() { 135 | var element = "[class*=col]"; 136 | var handle = ".ibox-title"; 137 | var connect = "[class*=col]"; 138 | $(element).sortable( 139 | { 140 | handle: handle, 141 | connectWith: connect, 142 | tolerance: 'pointer', 143 | forcePlaceholderSize: true, 144 | opacity: 0.8, 145 | }) 146 | .disableSelection(); 147 | }; 148 | 149 | -------------------------------------------------------------------------------- /js/plugins/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/fancybox/blank.gif -------------------------------------------------------------------------------- /js/plugins/fancybox/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/fancybox/fancybox_loading.gif -------------------------------------------------------------------------------- /js/plugins/fancybox/fancybox_loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/fancybox/fancybox_loading@2x.gif -------------------------------------------------------------------------------- /js/plugins/fancybox/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/fancybox/fancybox_overlay.png -------------------------------------------------------------------------------- /js/plugins/fancybox/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/fancybox/fancybox_sprite.png -------------------------------------------------------------------------------- /js/plugins/fancybox/fancybox_sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/fancybox/fancybox_sprite@2x.png -------------------------------------------------------------------------------- /js/plugins/fancybox/jquery.fancybox.css: -------------------------------------------------------------------------------- 1 | /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ 2 | .fancybox-wrap, 3 | .fancybox-skin, 4 | .fancybox-outer, 5 | .fancybox-inner, 6 | .fancybox-image, 7 | .fancybox-wrap iframe, 8 | .fancybox-wrap object, 9 | .fancybox-nav, 10 | .fancybox-nav span, 11 | .fancybox-tmp 12 | { 13 | padding: 0; 14 | margin: 0; 15 | border: 0; 16 | outline: none; 17 | vertical-align: top; 18 | } 19 | 20 | .fancybox-wrap { 21 | position: absolute; 22 | top: 0; 23 | left: 0; 24 | z-index: 8020; 25 | } 26 | 27 | .fancybox-skin { 28 | position: relative; 29 | background: #f9f9f9; 30 | color: #444; 31 | text-shadow: none; 32 | -webkit-border-radius: 4px; 33 | -moz-border-radius: 4px; 34 | border-radius: 4px; 35 | } 36 | 37 | .fancybox-opened { 38 | z-index: 8030; 39 | } 40 | 41 | .fancybox-opened .fancybox-skin { 42 | -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 43 | -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 44 | box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); 45 | } 46 | 47 | .fancybox-outer, .fancybox-inner { 48 | position: relative; 49 | } 50 | 51 | .fancybox-inner { 52 | overflow: hidden; 53 | } 54 | 55 | .fancybox-type-iframe .fancybox-inner { 56 | -webkit-overflow-scrolling: touch; 57 | } 58 | 59 | .fancybox-error { 60 | color: #444; 61 | font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 62 | margin: 0; 63 | padding: 15px; 64 | white-space: nowrap; 65 | } 66 | 67 | .fancybox-image, .fancybox-iframe { 68 | display: block; 69 | width: 100%; 70 | height: 100%; 71 | } 72 | 73 | .fancybox-image { 74 | max-width: 100%; 75 | max-height: 100%; 76 | } 77 | 78 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 79 | background-image: url('fancybox_sprite.png'); 80 | } 81 | 82 | #fancybox-loading { 83 | position: fixed; 84 | top: 50%; 85 | left: 50%; 86 | margin-top: -22px; 87 | margin-left: -22px; 88 | background-position: 0 -108px; 89 | opacity: 0.8; 90 | cursor: pointer; 91 | z-index: 8060; 92 | } 93 | 94 | #fancybox-loading div { 95 | width: 44px; 96 | height: 44px; 97 | background: url('fancybox_loading.gif') center center no-repeat; 98 | } 99 | 100 | .fancybox-close { 101 | position: absolute; 102 | top: -18px; 103 | right: -18px; 104 | width: 36px; 105 | height: 36px; 106 | cursor: pointer; 107 | z-index: 8040; 108 | } 109 | 110 | .fancybox-nav { 111 | position: absolute; 112 | top: 0; 113 | width: 40%; 114 | height: 100%; 115 | cursor: pointer; 116 | text-decoration: none; 117 | background: transparent url('blank.gif'); /* helps IE */ 118 | -webkit-tap-highlight-color: rgba(0,0,0,0); 119 | z-index: 8040; 120 | } 121 | 122 | .fancybox-prev { 123 | left: 0; 124 | } 125 | 126 | .fancybox-next { 127 | right: 0; 128 | } 129 | 130 | .fancybox-nav span { 131 | position: absolute; 132 | top: 50%; 133 | width: 36px; 134 | height: 34px; 135 | margin-top: -18px; 136 | cursor: pointer; 137 | z-index: 8040; 138 | visibility: hidden; 139 | } 140 | 141 | .fancybox-prev span { 142 | left: 10px; 143 | background-position: 0 -36px; 144 | } 145 | 146 | .fancybox-next span { 147 | right: 10px; 148 | background-position: 0 -72px; 149 | } 150 | 151 | .fancybox-nav:hover span { 152 | visibility: visible; 153 | } 154 | 155 | .fancybox-tmp { 156 | position: absolute; 157 | top: -99999px; 158 | left: -99999px; 159 | visibility: hidden; 160 | max-width: 99999px; 161 | max-height: 99999px; 162 | overflow: visible !important; 163 | } 164 | 165 | /* Overlay helper */ 166 | 167 | .fancybox-lock { 168 | overflow: hidden !important; 169 | width: auto; 170 | } 171 | 172 | .fancybox-lock body { 173 | overflow: hidden !important; 174 | } 175 | 176 | .fancybox-lock-test { 177 | overflow-y: hidden !important; 178 | } 179 | 180 | .fancybox-overlay { 181 | position: absolute; 182 | top: 0; 183 | left: 0; 184 | overflow: hidden; 185 | display: none; 186 | z-index: 8010; 187 | background: url('fancybox_overlay.png'); 188 | } 189 | 190 | .fancybox-overlay-fixed { 191 | position: fixed; 192 | bottom: 0; 193 | right: 0; 194 | } 195 | 196 | .fancybox-lock .fancybox-overlay { 197 | overflow: auto; 198 | overflow-y: scroll; 199 | } 200 | 201 | /* Title helper */ 202 | 203 | .fancybox-title { 204 | visibility: hidden; 205 | font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; 206 | position: relative; 207 | text-shadow: none; 208 | z-index: 8050; 209 | } 210 | 211 | .fancybox-opened .fancybox-title { 212 | visibility: visible; 213 | } 214 | 215 | .fancybox-title-float-wrap { 216 | position: absolute; 217 | bottom: 0; 218 | right: 50%; 219 | margin-bottom: -35px; 220 | z-index: 8050; 221 | text-align: center; 222 | } 223 | 224 | .fancybox-title-float-wrap .child { 225 | display: inline-block; 226 | margin-right: -100%; 227 | padding: 2px 20px; 228 | background: transparent; /* Fallback for web browsers that doesn't support RGBa */ 229 | background: rgba(0, 0, 0, 0.8); 230 | -webkit-border-radius: 15px; 231 | -moz-border-radius: 15px; 232 | border-radius: 15px; 233 | text-shadow: 0 1px 2px #222; 234 | color: #FFF; 235 | font-weight: bold; 236 | line-height: 24px; 237 | white-space: nowrap; 238 | } 239 | 240 | .fancybox-title-outside-wrap { 241 | position: relative; 242 | margin-top: 10px; 243 | color: #fff; 244 | } 245 | 246 | .fancybox-title-inside-wrap { 247 | padding-top: 10px; 248 | } 249 | 250 | .fancybox-title-over-wrap { 251 | position: absolute; 252 | bottom: 0; 253 | left: 0; 254 | color: #fff; 255 | padding: 10px; 256 | background: #000; 257 | background: rgba(0, 0, 0, .8); 258 | } 259 | 260 | /*Retina graphics!*/ 261 | @media only screen and (-webkit-min-device-pixel-ratio: 1.5), 262 | only screen and (min--moz-device-pixel-ratio: 1.5), 263 | only screen and (min-device-pixel-ratio: 1.5){ 264 | 265 | #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { 266 | background-image: url('fancybox_sprite@2x.png'); 267 | background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ 268 | } 269 | 270 | #fancybox-loading div { 271 | background-image: url('fancybox_loading@2x.gif'); 272 | background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ 273 | } 274 | } -------------------------------------------------------------------------------- /js/plugins/flot/jquery.flot.resize.js: -------------------------------------------------------------------------------- 1 | /* Flot plugin for automatically redrawing plots as the placeholder resizes. 2 | 3 | Copyright (c) 2007-2013 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | It works by listening for changes on the placeholder div (through the jQuery 7 | resize event plugin) - if the size changes, it will redraw the plot. 8 | 9 | There are no options. If you need to disable the plugin for some plots, you 10 | can just fix the size of their placeholders. 11 | 12 | */ 13 | 14 | /* Inline dependency: 15 | * jQuery resize event - v1.1 - 3/14/2010 16 | * http://benalman.com/projects/jquery-resize-plugin/ 17 | * 18 | * Copyright (c) 2010 "Cowboy" Ben Alman 19 | * Dual licensed under the MIT and GPL licenses. 20 | * http://benalman.com/about/license/ 21 | */ 22 | 23 | (function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this); 24 | 25 | (function ($) { 26 | var options = { }; // no options 27 | 28 | function init(plot) { 29 | function onResize() { 30 | var placeholder = plot.getPlaceholder(); 31 | 32 | // somebody might have hidden us and we can't plot 33 | // when we don't have the dimensions 34 | if (placeholder.width() == 0 || placeholder.height() == 0) 35 | return; 36 | 37 | plot.resize(); 38 | plot.setupGrid(); 39 | plot.draw(); 40 | } 41 | 42 | function bindEvents(plot, eventHolder) { 43 | plot.getPlaceholder().resize(onResize); 44 | } 45 | 46 | function shutdown(plot, eventHolder) { 47 | plot.getPlaceholder().unbind("resize", onResize); 48 | } 49 | 50 | plot.hooks.bindEvents.push(bindEvents); 51 | plot.hooks.shutdown.push(shutdown); 52 | } 53 | 54 | $.plot.plugins.push({ 55 | init: init, 56 | options: options, 57 | name: 'resize', 58 | version: '1.0' 59 | }); 60 | })(jQuery); -------------------------------------------------------------------------------- /js/plugins/flot/jquery.flot.spline.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Flot plugin that provides spline interpolation for line graphs 3 | * author: Alex Bardas < alex.bardas@gmail.com > 4 | * modified by: Avi Kohn https://github.com/AMKohn 5 | * based on the spline interpolation described at: 6 | * http://scaledinnovation.com/analytics/splines/aboutSplines.html 7 | * 8 | * Example usage: (add in plot options series object) 9 | * for linespline: 10 | * series: { 11 | * ... 12 | * lines: { 13 | * show: false 14 | * }, 15 | * splines: { 16 | * show: true, 17 | * tension: x, (float between 0 and 1, defaults to 0.5), 18 | * lineWidth: y (number, defaults to 2), 19 | * fill: z (float between 0 .. 1 or false, as in flot documentation) 20 | * }, 21 | * ... 22 | * } 23 | * areaspline: 24 | * series: { 25 | * ... 26 | * lines: { 27 | * show: true, 28 | * lineWidth: 0, (line drawing will not execute) 29 | * fill: x, (float between 0 .. 1, as in flot documentation) 30 | * ... 31 | * }, 32 | * splines: { 33 | * show: true, 34 | * tension: 0.5 (float between 0 and 1) 35 | * }, 36 | * ... 37 | * } 38 | * 39 | */ 40 | 41 | (function($) { 42 | 'use strict' 43 | 44 | /** 45 | * @param {Number} x0, y0, x1, y1: coordinates of the end (knot) points of the segment 46 | * @param {Number} x2, y2: the next knot (not connected, but needed to calculate p2) 47 | * @param {Number} tension: control how far the control points spread 48 | * @return {Array}: p1 -> control point, from x1 back toward x0 49 | * p2 -> the next control point, returned to become the next segment's p1 50 | * 51 | * @api private 52 | */ 53 | function getControlPoints(x0, y0, x1, y1, x2, y2, tension) { 54 | 55 | var pow = Math.pow, 56 | sqrt = Math.sqrt, 57 | d01, d12, fa, fb, p1x, p1y, p2x, p2y; 58 | 59 | // Scaling factors: distances from this knot to the previous and following knots. 60 | d01 = sqrt(pow(x1 - x0, 2) + pow(y1 - y0, 2)); 61 | d12 = sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2)); 62 | 63 | fa = tension * d01 / (d01 + d12); 64 | fb = tension - fa; 65 | 66 | p1x = x1 + fa * (x0 - x2); 67 | p1y = y1 + fa * (y0 - y2); 68 | 69 | p2x = x1 - fb * (x0 - x2); 70 | p2y = y1 - fb * (y0 - y2); 71 | 72 | return [p1x, p1y, p2x, p2y]; 73 | } 74 | 75 | var line = []; 76 | 77 | function drawLine(points, ctx, height, fill, seriesColor) { 78 | var c = $.color.parse(seriesColor); 79 | 80 | c.a = typeof fill == "number" ? fill : .3; 81 | c.normalize(); 82 | c = c.toString(); 83 | 84 | ctx.beginPath(); 85 | ctx.moveTo(points[0][0], points[0][1]); 86 | 87 | var plength = points.length; 88 | 89 | for (var i = 0; i < plength; i++) { 90 | ctx[points[i][3]].apply(ctx, points[i][2]); 91 | } 92 | 93 | ctx.stroke(); 94 | 95 | ctx.lineWidth = 0; 96 | ctx.lineTo(points[plength - 1][0], height); 97 | ctx.lineTo(points[0][0], height); 98 | 99 | ctx.closePath(); 100 | 101 | if (fill !== false) { 102 | ctx.fillStyle = c; 103 | ctx.fill(); 104 | } 105 | } 106 | 107 | /** 108 | * @param {Object} ctx: canvas context 109 | * @param {String} type: accepted strings: 'bezier' or 'quadratic' (defaults to quadratic) 110 | * @param {Array} points: 2 points for which to draw the interpolation 111 | * @param {Array} cpoints: control points for those segment points 112 | * 113 | * @api private 114 | */ 115 | function queue(ctx, type, points, cpoints) { 116 | if (type === void 0 || (type !== 'bezier' && type !== 'quadratic')) { 117 | type = 'quadratic'; 118 | } 119 | type = type + 'CurveTo'; 120 | 121 | if (line.length == 0) line.push([points[0], points[1], cpoints.concat(points.slice(2)), type]); 122 | else if (type == "quadraticCurveTo" && points.length == 2) { 123 | cpoints = cpoints.slice(0, 2).concat(points); 124 | 125 | line.push([points[0], points[1], cpoints, type]); 126 | } 127 | else line.push([points[2], points[3], cpoints.concat(points.slice(2)), type]); 128 | } 129 | 130 | /** 131 | * @param {Object} plot 132 | * @param {Object} ctx: canvas context 133 | * @param {Object} series 134 | * 135 | * @api private 136 | */ 137 | 138 | function drawSpline(plot, ctx, series) { 139 | // Not interested if spline is not requested 140 | if (series.splines.show !== true) { 141 | return; 142 | } 143 | 144 | var cp = [], 145 | // array of control points 146 | tension = series.splines.tension || 0.5, 147 | idx, x, y, points = series.datapoints.points, 148 | ps = series.datapoints.pointsize, 149 | plotOffset = plot.getPlotOffset(), 150 | len = points.length, 151 | pts = []; 152 | 153 | line = []; 154 | 155 | // Cannot display a linespline/areaspline if there are less than 3 points 156 | if (len / ps < 4) { 157 | $.extend(series.lines, series.splines); 158 | return; 159 | } 160 | 161 | for (idx = 0; idx < len; idx += ps) { 162 | x = points[idx]; 163 | y = points[idx + 1]; 164 | if (x == null || x < series.xaxis.min || x > series.xaxis.max || y < series.yaxis.min || y > series.yaxis.max) { 165 | continue; 166 | } 167 | 168 | pts.push(series.xaxis.p2c(x) + plotOffset.left, series.yaxis.p2c(y) + plotOffset.top); 169 | } 170 | 171 | len = pts.length; 172 | 173 | // Draw an open curve, not connected at the ends 174 | for (idx = 0; idx < len - 2; idx += 2) { 175 | cp = cp.concat(getControlPoints.apply(this, pts.slice(idx, idx + 6).concat([tension]))); 176 | } 177 | 178 | ctx.save(); 179 | ctx.strokeStyle = series.color; 180 | ctx.lineWidth = series.splines.lineWidth; 181 | 182 | queue(ctx, 'quadratic', pts.slice(0, 4), cp.slice(0, 2)); 183 | 184 | for (idx = 2; idx < len - 3; idx += 2) { 185 | queue(ctx, 'bezier', pts.slice(idx, idx + 4), cp.slice(2 * idx - 2, 2 * idx + 2)); 186 | } 187 | 188 | queue(ctx, 'quadratic', pts.slice(len - 2, len), [cp[2 * len - 10], cp[2 * len - 9], pts[len - 4], pts[len - 3]]); 189 | 190 | drawLine(line, ctx, plot.height() + 10, series.splines.fill, series.color); 191 | 192 | ctx.restore(); 193 | } 194 | 195 | $.plot.plugins.push({ 196 | init: function(plot) { 197 | plot.hooks.drawSeries.push(drawSpline); 198 | }, 199 | options: { 200 | series: { 201 | splines: { 202 | show: false, 203 | lineWidth: 2, 204 | tension: 0.5, 205 | fill: false 206 | } 207 | } 208 | }, 209 | name: 'spline', 210 | version: '0.8.2' 211 | }); 212 | })(jQuery); 213 | -------------------------------------------------------------------------------- /js/plugins/flot/jquery.flot.symbol.js: -------------------------------------------------------------------------------- 1 | /* Flot plugin that adds some extra symbols for plotting points. 2 | 3 | Copyright (c) 2007-2014 IOLA and Ole Laursen. 4 | Licensed under the MIT license. 5 | 6 | The symbols are accessed as strings through the standard symbol options: 7 | 8 | series: { 9 | points: { 10 | symbol: "square" // or "diamond", "triangle", "cross" 11 | } 12 | } 13 | 14 | */ 15 | 16 | (function ($) { 17 | function processRawData(plot, series, datapoints) { 18 | // we normalize the area of each symbol so it is approximately the 19 | // same as a circle of the given radius 20 | 21 | var handlers = { 22 | square: function (ctx, x, y, radius, shadow) { 23 | // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 24 | var size = radius * Math.sqrt(Math.PI) / 2; 25 | ctx.rect(x - size, y - size, size + size, size + size); 26 | }, 27 | diamond: function (ctx, x, y, radius, shadow) { 28 | // pi * r^2 = 2s^2 => s = r * sqrt(pi/2) 29 | var size = radius * Math.sqrt(Math.PI / 2); 30 | ctx.moveTo(x - size, y); 31 | ctx.lineTo(x, y - size); 32 | ctx.lineTo(x + size, y); 33 | ctx.lineTo(x, y + size); 34 | ctx.lineTo(x - size, y); 35 | }, 36 | triangle: function (ctx, x, y, radius, shadow) { 37 | // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3)) 38 | var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3)); 39 | var height = size * Math.sin(Math.PI / 3); 40 | ctx.moveTo(x - size/2, y + height/2); 41 | ctx.lineTo(x + size/2, y + height/2); 42 | if (!shadow) { 43 | ctx.lineTo(x, y - height/2); 44 | ctx.lineTo(x - size/2, y + height/2); 45 | } 46 | }, 47 | cross: function (ctx, x, y, radius, shadow) { 48 | // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2 49 | var size = radius * Math.sqrt(Math.PI) / 2; 50 | ctx.moveTo(x - size, y - size); 51 | ctx.lineTo(x + size, y + size); 52 | ctx.moveTo(x - size, y + size); 53 | ctx.lineTo(x + size, y - size); 54 | } 55 | }; 56 | 57 | var s = series.points.symbol; 58 | if (handlers[s]) 59 | series.points.symbol = handlers[s]; 60 | } 61 | 62 | function init(plot) { 63 | plot.hooks.processDatapoints.push(processRawData); 64 | } 65 | 66 | $.plot.plugins.push({ 67 | init: init, 68 | name: 'symbols', 69 | version: '1.0' 70 | }); 71 | })(jQuery); 72 | -------------------------------------------------------------------------------- /js/plugins/flot/jquery.flot.tooltip.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jquery.flot.tooltip 3 | * 4 | * description: easy-to-use tooltips for Flot charts 5 | * version: 0.6.2 6 | * author: Krzysztof Urbas @krzysu [myviews.pl] 7 | * website: https://github.com/krzysu/flot.tooltip 8 | * 9 | * build on 2013-09-30 10 | * released under MIT License, 2012 11 | */ 12 | (function(t){var o={tooltip:!1,tooltipOpts:{content:"%s | X: %x | Y: %y",xDateFormat:null,yDateFormat:null,shifts:{x:10,y:20},defaultTheme:!0,onHover:function(){}}},i=function(t){this.tipPosition={x:0,y:0},this.init(t)};i.prototype.init=function(o){function i(t){var o={};o.x=t.pageX,o.y=t.pageY,s.updateTooltipPosition(o)}function e(t,o,i){var e=s.getDomElement();if(i){var n;n=s.stringFormat(s.tooltipOptions.content,i),e.html(n),s.updateTooltipPosition({x:o.pageX,y:o.pageY}),e.css({left:s.tipPosition.x+s.tooltipOptions.shifts.x,top:s.tipPosition.y+s.tooltipOptions.shifts.y}).show(),"function"==typeof s.tooltipOptions.onHover&&s.tooltipOptions.onHover(i,e)}else e.hide().html("")}var s=this;o.hooks.bindEvents.push(function(o,n){s.plotOptions=o.getOptions(),s.plotOptions.tooltip!==!1&&void 0!==s.plotOptions.tooltip&&(s.tooltipOptions=s.plotOptions.tooltipOpts,s.getDomElement(),t(o.getPlaceholder()).bind("plothover",e),t(n).bind("mousemove",i))}),o.hooks.shutdown.push(function(o,s){t(o.getPlaceholder()).unbind("plothover",e),t(s).unbind("mousemove",i)})},i.prototype.getDomElement=function(){var o;return t("#flotTip").length>0?o=t("#flotTip"):(o=t("").attr("id","flotTip"),o.appendTo("body").hide().css({position:"absolute"}),this.tooltipOptions.defaultTheme&&o.css({background:"#fff","z-index":"100",padding:"0.4em 0.6em","border-radius":"0.5em","font-size":"0.8em",border:"1px solid #111",display:"none","white-space":"nowrap"})),o},i.prototype.updateTooltipPosition=function(o){var i=t("#flotTip").outerWidth()+this.tooltipOptions.shifts.x,e=t("#flotTip").outerHeight()+this.tooltipOptions.shifts.y;o.x-t(window).scrollLeft()>t(window).innerWidth()-i&&(o.x-=i),o.y-t(window).scrollTop()>t(window).innerHeight()-e&&(o.y-=e),this.tipPosition.x=o.x,this.tipPosition.y=o.y},i.prototype.stringFormat=function(t,o){var i=/%p\.{0,1}(\d{0,})/,e=/%s/,s=/%x\.{0,1}(?:\d{0,})/,n=/%y\.{0,1}(?:\d{0,})/;return"function"==typeof t&&(t=t(o.series.label,o.series.data[o.dataIndex][0],o.series.data[o.dataIndex][1],o)),o.series.percent!==void 0&&(t=this.adjustValPrecision(i,t,o.series.percent)),o.series.label!==void 0&&(t=t.replace(e,o.series.label)),this.isTimeMode("xaxis",o)&&this.isXDateFormat(o)&&(t=t.replace(s,this.timestampToDate(o.series.data[o.dataIndex][0],this.tooltipOptions.xDateFormat))),this.isTimeMode("yaxis",o)&&this.isYDateFormat(o)&&(t=t.replace(n,this.timestampToDate(o.series.data[o.dataIndex][1],this.tooltipOptions.yDateFormat))),"number"==typeof o.series.data[o.dataIndex][0]&&(t=this.adjustValPrecision(s,t,o.series.data[o.dataIndex][0])),"number"==typeof o.series.data[o.dataIndex][1]&&(t=this.adjustValPrecision(n,t,o.series.data[o.dataIndex][1])),o.series.xaxis.tickFormatter!==void 0&&(t=t.replace(s,o.series.xaxis.tickFormatter(o.series.data[o.dataIndex][0],o.series.xaxis))),o.series.yaxis.tickFormatter!==void 0&&(t=t.replace(n,o.series.yaxis.tickFormatter(o.series.data[o.dataIndex][1],o.series.yaxis))),t},i.prototype.isTimeMode=function(t,o){return o.series[t].options.mode!==void 0&&"time"===o.series[t].options.mode},i.prototype.isXDateFormat=function(){return this.tooltipOptions.xDateFormat!==void 0&&null!==this.tooltipOptions.xDateFormat},i.prototype.isYDateFormat=function(){return this.tooltipOptions.yDateFormat!==void 0&&null!==this.tooltipOptions.yDateFormat},i.prototype.timestampToDate=function(o,i){var e=new Date(o);return t.plot.formatDate(e,i)},i.prototype.adjustValPrecision=function(t,o,i){var e,s=o.match(t);return null!==s&&""!==RegExp.$1&&(e=RegExp.$1,i=i.toFixed(e),o=o.replace(t,i)),o};var e=function(t){new i(t)};t.plot.plugins.push({init:e,options:o,name:"tooltip",version:"0.6.1"})})(jQuery); -------------------------------------------------------------------------------- /js/plugins/gritter/images/gritter-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/gritter/images/gritter-light.png -------------------------------------------------------------------------------- /js/plugins/gritter/images/gritter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/gritter/images/gritter.png -------------------------------------------------------------------------------- /js/plugins/gritter/images/ie-spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/js/plugins/gritter/images/ie-spacer.gif -------------------------------------------------------------------------------- /js/plugins/gritter/jquery.gritter.css: -------------------------------------------------------------------------------- 1 | /* the norm */ 2 | #gritter-notice-wrapper { 3 | position:fixed; 4 | top:40px; 5 | right:20px; 6 | width:301px; 7 | z-index:9999; 8 | 9 | -webkit-animation-duration: 1s; 10 | animation-duration: 1s; 11 | -webkit-animation-fill-mode: both; 12 | animation-fill-mode: both; 13 | 14 | -webkit-animation-name: bounceIn; 15 | animation-name: bounceIn; 16 | } 17 | @keyframes bounceIn { 18 | 0% { 19 | opacity: 0; 20 | -webkit-transform: scale(.3); 21 | -ms-transform: scale(.3); 22 | transform: scale(.3); 23 | } 24 | 25 | 50% { 26 | opacity: 1; 27 | -webkit-transform: scale(1.05); 28 | -ms-transform: scale(1.05); 29 | transform: scale(1.05); 30 | } 31 | 32 | 70% { 33 | -webkit-transform: scale(.9); 34 | -ms-transform: scale(.9); 35 | transform: scale(.9); 36 | } 37 | 38 | 100% { 39 | opacity: 1; 40 | -webkit-transform: scale(1); 41 | -ms-transform: scale(1); 42 | transform: scale(1); 43 | } 44 | } 45 | #gritter-notice-wrapper.top-left { 46 | left: 20px; 47 | right: auto; 48 | } 49 | #gritter-notice-wrapper.bottom-right { 50 | top: auto; 51 | left: auto; 52 | bottom: 20px; 53 | right: 20px; 54 | } 55 | #gritter-notice-wrapper.bottom-left { 56 | top: auto; 57 | right: auto; 58 | bottom: 20px; 59 | left: 20px; 60 | } 61 | .gritter-item-wrapper { 62 | position:relative; 63 | margin:0 0 10px 0; 64 | background:url('images/ie-spacer.gif'); /* ie7/8 fix */ 65 | } 66 | 67 | .hover .gritter-top { 68 | /*background-position:right -30px;*/ 69 | } 70 | .gritter-bottom { 71 | height:8px; 72 | margin:0; 73 | } 74 | 75 | .gritter-item { 76 | display:block; 77 | background-color: rgba(39,58,75,0.8); 78 | border-radius: 4px; 79 | color:#eee; 80 | padding:10px 11px 10px 11px; 81 | font-size: 11px; 82 | font-family:verdana; 83 | } 84 | .hover .gritter-item { 85 | background-position:right -40px; 86 | } 87 | .gritter-item p { 88 | padding:0; 89 | margin:0; 90 | word-wrap:break-word; 91 | } 92 | 93 | .gritter-item a:hover { 94 | color: #f8ac59; 95 | text-decoration: underline; 96 | } 97 | .gritter-close { 98 | display:none; 99 | position:absolute; 100 | top:5px; 101 | right:3px; 102 | background:url(images/gritter.png) no-repeat left top; 103 | cursor:pointer; 104 | width:30px; 105 | height:30px; 106 | text-indent:-9999em; 107 | } 108 | .gritter-title { 109 | font-size:12px; 110 | font-weight:bold; 111 | padding:0 0 7px 0; 112 | display:block; 113 | text-transform: uppercase; 114 | } 115 | .gritter-image { 116 | width:48px; 117 | height:48px; 118 | float:left; 119 | } 120 | .gritter-with-image, 121 | .gritter-without-image { 122 | padding:0; 123 | } 124 | .gritter-with-image { 125 | width:220px; 126 | float:right; 127 | } 128 | /* for the light (white) version of the gritter notice */ 129 | .gritter-light .gritter-item, 130 | .gritter-light .gritter-bottom, 131 | .gritter-light .gritter-top, 132 | .gritter-light .gritter-close { 133 | background-image: url(images/gritter-light.png); 134 | color: #222; 135 | } 136 | .gritter-light .gritter-title { 137 | text-shadow: none; 138 | } 139 | -------------------------------------------------------------------------------- /js/plugins/gritter/jquery.gritter.min.js: -------------------------------------------------------------------------------- 1 | (function(b){b.gritter={};b.gritter.options={position:"",class_name:"",fade_in_speed:"medium",fade_out_speed:1000,time:6000};b.gritter.add=function(f){try{return a.add(f||{})}catch(d){var c="Gritter Error: "+d;(typeof(console)!="undefined"&&console.error)?console.error(c,f):alert(c)}};b.gritter.remove=function(d,c){a.removeSpecific(d,c||{})};b.gritter.removeAll=function(c){a.stop(c||{})};var a={position:"",fade_in_speed:"",fade_out_speed:"",time:"",_custom_timer:0,_item_count:0,_is_setup:0,_tpl_close:'Close Notification',_tpl_title:'[[title]]',_tpl_item:' ',_tpl_wrap:'',add:function(g){if(typeof(g)=="string"){g={text:g}}if(g.text===null){throw'You must supply "text" parameter.'}if(!this._is_setup){this._runSetup()}var k=g.title,n=g.text,e=g.image||"",l=g.sticky||false,m=g.class_name||b.gritter.options.class_name,j=b.gritter.options.position,d=g.time||"";this._verifyWrapper();this._item_count++;var f=this._item_count,i=this._tpl_item;b(["before_open","after_open","before_close","after_close"]).each(function(p,q){a["_"+q+"_"+f]=(b.isFunction(g[q]))?g[q]:function(){}});this._custom_timer=0;if(d){this._custom_timer=d}var c=(e!="")?']*>`([\s\S]*)`<\/pre>/gi, function(str, innerHTML) { 109 | innerHTML = innerHTML.replace(/^\t+/g, ' '); // convert tabs to spaces (you know it makes sense) 110 | innerHTML = innerHTML.replace(/\n/g, '\n '); 111 | return '\n\n ' + innerHTML + '\n'; 112 | }); 113 | 114 | // Lists 115 | 116 | // Escape numbers that could trigger an ol 117 | // If there are more than three spaces before the code, it would be in a pre tag 118 | // Make sure we are escaping the period not matching any character 119 | string = string.replace(/^(\s{0,3}\d+)\. /g, '$1\\. '); 120 | 121 | // Converts lists that have no child lists (of same type) first, then works it's way up 122 | var noChildrenRegex = /<(ul|ol)\b[^>]*>(?:(?!
]*>((?:(?!/gi; 155 | while(string.match(deepest)) { 156 | string = string.replace(deepest, function(str) { 157 | return replaceBlockquotes(str); 158 | }); 159 | } 160 | 161 | function replaceBlockquotes(html) { 162 | html = html.replace(/]*>([\s\S]*?)<\/blockquote>/gi, function(str, inner) { 163 | inner = inner.replace(/^\s+|\s+$/g, ''); 164 | inner = cleanUp(inner); 165 | inner = inner.replace(/^/gm, '> '); 166 | inner = inner.replace(/^(>([ \t]{2,}>)+)/gm, '> >'); 167 | return inner; 168 | }); 169 | return html; 170 | } 171 | 172 | function cleanUp(string) { 173 | string = string.replace(/^[\t\r\n]+|[\t\r\n]+$/g, ''); // trim leading/trailing whitespace 174 | string = string.replace(/\n\s+\n/g, '\n\n'); 175 | string = string.replace(/\n{3,}/g, '\n\n'); // limit consecutive linebreaks to 2 176 | return string; 177 | } 178 | 179 | return cleanUp(string); 180 | }; 181 | 182 | if (typeof exports === 'object') { 183 | exports.toMarkdown = toMarkdown; 184 | } -------------------------------------------------------------------------------- /js/plugins/metisMenu/jquery.metisMenu.js: -------------------------------------------------------------------------------- 1 | /* 2 | * metismenu - v1.1.3 3 | * Easy menu jQuery plugin for Twitter Bootstrap 3 4 | * https://github.com/onokumus/metisMenu 5 | * 6 | * Made by Osman Nuri Okumus 7 | * Under MIT License 8 | */ 9 | ;(function($, window, document, undefined) { 10 | 11 | var pluginName = "metisMenu", 12 | defaults = { 13 | toggle: true, 14 | doubleTapToGo: false 15 | }; 16 | 17 | function Plugin(element, options) { 18 | this.element = $(element); 19 | this.settings = $.extend({}, defaults, options); 20 | this._defaults = defaults; 21 | this._name = pluginName; 22 | this.init(); 23 | } 24 | 25 | Plugin.prototype = { 26 | init: function() { 27 | 28 | var $this = this.element, 29 | $toggle = this.settings.toggle, 30 | obj = this; 31 | 32 | if (this.isIE() <= 9) { 33 | $this.find("li.active").has("ul").children("ul").collapse("show"); 34 | $this.find("li").not(".active").has("ul").children("ul").collapse("hide"); 35 | } else { 36 | $this.find("li.active").has("ul").children("ul").addClass("collapse in"); 37 | $this.find("li").not(".active").has("ul").children("ul").addClass("collapse"); 38 | } 39 | 40 | //add the "doubleTapToGo" class to active items if needed 41 | if (obj.settings.doubleTapToGo) { 42 | $this.find("li.active").has("ul").children("a").addClass("doubleTapToGo"); 43 | } 44 | 45 | $this.find("li").has("ul").children("a").on("click" + "." + pluginName, function(e) { 46 | e.preventDefault(); 47 | 48 | //Do we need to enable the double tap 49 | if (obj.settings.doubleTapToGo) { 50 | 51 | //if we hit a second time on the link and the href is valid, navigate to that url 52 | if (obj.doubleTapToGo($(this)) && $(this).attr("href") !== "#" && $(this).attr("href") !== "") { 53 | e.stopPropagation(); 54 | document.location = $(this).attr("href"); 55 | return; 56 | } 57 | } 58 | 59 | $(this).parent("li").toggleClass("active").children("ul").collapse("toggle"); 60 | 61 | if ($toggle) { 62 | $(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide"); 63 | } 64 | 65 | }); 66 | }, 67 | 68 | isIE: function() { //https://gist.github.com/padolsey/527683 69 | var undef, 70 | v = 3, 71 | div = document.createElement("div"), 72 | all = div.getElementsByTagName("i"); 73 | 74 | while ( 75 | div.innerHTML = "", 76 | all[0] 77 | ) { 78 | return v > 4 ? v : undef; 79 | } 80 | }, 81 | 82 | //Enable the link on the second click. 83 | doubleTapToGo: function(elem) { 84 | var $this = this.element; 85 | 86 | //if the class "doubleTapToGo" exists, remove it and return 87 | if (elem.hasClass("doubleTapToGo")) { 88 | elem.removeClass("doubleTapToGo"); 89 | return true; 90 | } 91 | 92 | //does not exists, add a new class and return false 93 | if (elem.parent().children("ul").length) { 94 | //first remove all other class 95 | $this.find(".doubleTapToGo").removeClass("doubleTapToGo"); 96 | //add the class on the current element 97 | elem.addClass("doubleTapToGo"); 98 | return false; 99 | } 100 | }, 101 | 102 | remove: function() { 103 | this.element.off("." + pluginName); 104 | this.element.removeData(pluginName); 105 | } 106 | 107 | }; 108 | 109 | $.fn[pluginName] = function(options) { 110 | this.each(function () { 111 | var el = $(this); 112 | if (el.data(pluginName)) { 113 | el.data(pluginName).remove(); 114 | } 115 | el.data(pluginName, new Plugin(this, options)); 116 | }); 117 | return this; 118 | }; 119 | 120 | })(jQuery, window, document); -------------------------------------------------------------------------------- /js/plugins/peity/jquery.peity.min.js: -------------------------------------------------------------------------------- 1 | // Peity jQuery plugin version 2.0.3 2 | // (c) 2014 Ben Pickles 3 | // 4 | // http://benpickles.github.io/peity 5 | // 6 | // Released under MIT license. 7 | (function(e,q,h){var o=function(a,b){var c=q.createElementNS("http://www.w3.org/2000/svg",a);e.each(b,function(a,b){c.setAttribute(a,b)});return c},t="createElementNS"in q&&o("svg",{}).createSVGRect,r=1/(window.devicePixelRatio||1),j=e.fn.peity=function(a,b){t&&this.each(function(){var c=e(this),d=c.data("peity");if(d)a&&(d.type=a),e.extend(d.opts,b);else{var f=j.defaults[a],g={};e.each(c.data(),function(a,b){a in f&&(g[a]=b)});var h=e.extend({},f,g,b),d=new s(c,a,h);c.change(function(){d.draw()}).data("peity", 8 | d)}d.draw()});return this},s=function(a,b,c){this.$el=a;this.type=b;this.opts=c},m=s.prototype;m.draw=function(){j.graphers[this.type].call(this,this.opts)};m.fill=function(){var a=this.opts.fill,b=a;e.isFunction(b)||(b=function(b,d){return a[d%a.length]});return b};m.prepare=function(a,b){var c;this.svg?c=e(this.svg).empty():(this.svg=o("svg",{"class":"peity"}),this.$el.hide().after(this.svg),c=e(this.svg).data("peity",this));this.svg.setAttribute("height",b);this.svg.setAttribute("width",a);return c}; 9 | m.values=function(){return e.map(this.$el.text().split(this.opts.delimiter),function(a){return parseFloat(a)})};j.defaults={};j.graphers={};j.register=function(a,b,c){this.defaults[a]=b;this.graphers[a]=c};j.register("pie",{delimiter:null,diameter:16,fill:["#ff9900","#fff4dd","#ffc66e"]},function(a){if(!a.delimiter){var b=this.$el.text().match(/[^0-9\.]/);a.delimiter=b?b[0]:","}b=this.values();if("/"==a.delimiter)var c=b[0],b=[c,h.max(0,b[1]-c)];for(var d=0,c=b.length,f=0;de?1:0,1,q,r,"Z"].join(" ")});i=l}k.setAttribute("fill",j.call(this,n,d,b));this.svg.appendChild(k)}}});j.register("line",{delimiter:",",fill:"#c6d9fd",height:16,max:null, 11 | min:0,stroke:"#4d89f9",strokeWidth:1,width:32},function(a){var b=this.values();1==b.length&&b.push(b[0]);for(var c=h.max.apply(h,b.concat([a.max])),d=h.min.apply(h,b.concat([a.min])),f=this.prepare(a.width,a.height),g=f.width(),f=f.height()-a.strokeWidth,e=g/(b.length-1),c=c-d,j=0==c?f:f/c,m=f+d*j,c=[0,m],i=0;i =d&&0 k&&(l+=k,k=-k);n=o("rect",{fill:m.call(this,n,i,b),x:i*g,y:l,width:g-a,height:k});this.svg.appendChild(n)}})})(jQuery,document,Math); 14 | -------------------------------------------------------------------------------- /js/plugins/simditor/hotkeys.js: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | // AMD. Register as an anonymous module. 4 | define('simple-hotkeys', ["jquery", 5 | "simple-module"], function ($, SimpleModule) { 6 | return (root.returnExportsGlobal = factory($, SimpleModule)); 7 | }); 8 | } else if (typeof exports === 'object') { 9 | // Node. Does not work with strict CommonJS, but 10 | // only CommonJS-like enviroments that support module.exports, 11 | // like Node. 12 | module.exports = factory(require("jquery"), 13 | require("simple-module")); 14 | } else { 15 | root.simple = root.simple || {}; 16 | root.simple['hotkeys'] = factory(jQuery, 17 | SimpleModule); 18 | } 19 | }(this, function ($, SimpleModule) { 20 | 21 | var Hotkeys, hotkeys, 22 | __hasProp = {}.hasOwnProperty, 23 | __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; 24 | 25 | Hotkeys = (function(_super) { 26 | __extends(Hotkeys, _super); 27 | 28 | function Hotkeys() { 29 | return Hotkeys.__super__.constructor.apply(this, arguments); 30 | } 31 | 32 | Hotkeys.count = 0; 33 | 34 | Hotkeys.keyNameMap = { 35 | 8: "Backspace", 36 | 9: "Tab", 37 | 13: "Enter", 38 | 16: "Shift", 39 | 17: "Control", 40 | 18: "Alt", 41 | 19: "Pause", 42 | 20: "CapsLock", 43 | 27: "Esc", 44 | 32: "Spacebar", 45 | 33: "PageUp", 46 | 34: "PageDown", 47 | 35: "End", 48 | 36: "Home", 49 | 37: "Left", 50 | 38: "Up", 51 | 39: "Right", 52 | 40: "Down", 53 | 45: "Insert", 54 | 46: "Del", 55 | 91: "Meta", 56 | 93: "Meta", 57 | 48: "0", 58 | 49: "1", 59 | 50: "2", 60 | 51: "3", 61 | 52: "4", 62 | 53: "5", 63 | 54: "6", 64 | 55: "7", 65 | 56: "8", 66 | 57: "9", 67 | 65: "A", 68 | 66: "B", 69 | 67: "C", 70 | 68: "D", 71 | 69: "E", 72 | 70: "F", 73 | 71: "G", 74 | 72: "H", 75 | 73: "I", 76 | 74: "J", 77 | 75: "K", 78 | 76: "L", 79 | 77: "M", 80 | 78: "N", 81 | 79: "O", 82 | 80: "P", 83 | 81: "Q", 84 | 82: "R", 85 | 83: "S", 86 | 84: "T", 87 | 85: "U", 88 | 86: "V", 89 | 87: "W", 90 | 88: "X", 91 | 89: "Y", 92 | 90: "Z", 93 | 96: "0", 94 | 97: "1", 95 | 98: "2", 96 | 99: "3", 97 | 100: "4", 98 | 101: "5", 99 | 102: "6", 100 | 103: "7", 101 | 104: "8", 102 | 105: "9", 103 | 106: "Multiply", 104 | 107: "Add", 105 | 109: "Subtract", 106 | 110: "Decimal", 107 | 111: "Divide", 108 | 112: "F1", 109 | 113: "F2", 110 | 114: "F3", 111 | 115: "F4", 112 | 116: "F5", 113 | 117: "F6", 114 | 118: "F7", 115 | 119: "F8", 116 | 120: "F9", 117 | 121: "F10", 118 | 122: "F11", 119 | 123: "F12", 120 | 124: "F13", 121 | 125: "F14", 122 | 126: "F15", 123 | 127: "F16", 124 | 128: "F17", 125 | 129: "F18", 126 | 130: "F19", 127 | 131: "F20", 128 | 132: "F21", 129 | 133: "F22", 130 | 134: "F23", 131 | 135: "F24", 132 | 59: ";", 133 | 61: "=", 134 | 186: ";", 135 | 187: "=", 136 | 188: ",", 137 | 190: ".", 138 | 191: "/", 139 | 192: "`", 140 | 219: "[", 141 | 220: "\\", 142 | 221: "]", 143 | 222: "'" 144 | }; 145 | 146 | Hotkeys.aliases = { 147 | "escape": "esc", 148 | "delete": "del", 149 | "return": "enter", 150 | "ctrl": "control", 151 | "space": "spacebar", 152 | "ins": "insert", 153 | "cmd": "meta", 154 | "command": "meta", 155 | "wins": "meta", 156 | "windows": "meta" 157 | }; 158 | 159 | Hotkeys.normalize = function(shortcut) { 160 | var i, key, keyname, keys, _i, _len; 161 | keys = shortcut.toLowerCase().replace(/\s+/gi, "").split("+"); 162 | for (i = _i = 0, _len = keys.length; _i < _len; i = ++_i) { 163 | key = keys[i]; 164 | keys[i] = this.aliases[key] || key; 165 | } 166 | keyname = keys.pop(); 167 | keys.sort().push(keyname); 168 | return keys.join("_"); 169 | }; 170 | 171 | Hotkeys.prototype.opts = { 172 | el: document 173 | }; 174 | 175 | Hotkeys.prototype._init = function() { 176 | this.id = ++this.constructor.count; 177 | this._map = {}; 178 | this._delegate = typeof this.opts.el === "string" ? document : this.opts.el; 179 | return $(this._delegate).on("keydown.simple-hotkeys-" + this.id, this.opts.el, (function(_this) { 180 | return function(e) { 181 | var _ref; 182 | return (_ref = _this._getHander(e)) != null ? _ref.call(_this, e) : void 0; 183 | }; 184 | })(this)); 185 | }; 186 | 187 | Hotkeys.prototype._getHander = function(e) { 188 | var keyname, shortcut; 189 | if (!(keyname = this.constructor.keyNameMap[e.which])) { 190 | return; 191 | } 192 | shortcut = ""; 193 | if (e.altKey) { 194 | shortcut += "alt_"; 195 | } 196 | if (e.ctrlKey) { 197 | shortcut += "control_"; 198 | } 199 | if (e.metaKey) { 200 | shortcut += "meta_"; 201 | } 202 | if (e.shiftKey) { 203 | shortcut += "shift_"; 204 | } 205 | shortcut += keyname.toLowerCase(); 206 | return this._map[shortcut]; 207 | }; 208 | 209 | Hotkeys.prototype.respondTo = function(subject) { 210 | if (typeof subject === 'string') { 211 | return this._map[this.constructor.normalize(subject)] != null; 212 | } else { 213 | return this._getHander(subject) != null; 214 | } 215 | }; 216 | 217 | Hotkeys.prototype.add = function(shortcut, handler) { 218 | this._map[this.constructor.normalize(shortcut)] = handler; 219 | return this; 220 | }; 221 | 222 | Hotkeys.prototype.remove = function(shortcut) { 223 | delete this._map[this.constructor.normalize(shortcut)]; 224 | return this; 225 | }; 226 | 227 | Hotkeys.prototype.destroy = function() { 228 | $(this._delegate).off(".simple-hotkeys-" + this.id); 229 | this._map = {}; 230 | return this; 231 | }; 232 | 233 | return Hotkeys; 234 | 235 | })(SimpleModule); 236 | 237 | hotkeys = function(opts) { 238 | return new Hotkeys(opts); 239 | }; 240 | 241 | 242 | return hotkeys; 243 | 244 | 245 | })); 246 | 247 | -------------------------------------------------------------------------------- /js/plugins/simditor/module.js: -------------------------------------------------------------------------------- 1 | (function (root, factory) { 2 | if (typeof define === 'function' && define.amd) { 3 | // AMD. Register as an anonymous module. 4 | define('simple-module', ["jquery"], function ($) { 5 | return (root.returnExportsGlobal = factory($)); 6 | }); 7 | } else if (typeof exports === 'object') { 8 | // Node. Does not work with strict CommonJS, but 9 | // only CommonJS-like enviroments that support module.exports, 10 | // like Node. 11 | module.exports = factory(require("jquery")); 12 | } else { 13 | root['SimpleModule'] = factory(jQuery); 14 | } 15 | }(this, function ($) { 16 | 17 | var Module, 18 | __slice = [].slice; 19 | 20 | Module = (function() { 21 | Module.extend = function(obj) { 22 | var key, val, _ref; 23 | if (!((obj != null) && typeof obj === 'object')) { 24 | return; 25 | } 26 | for (key in obj) { 27 | val = obj[key]; 28 | if (key !== 'included' && key !== 'extended') { 29 | this[key] = val; 30 | } 31 | } 32 | return (_ref = obj.extended) != null ? _ref.call(this) : void 0; 33 | }; 34 | 35 | Module.include = function(obj) { 36 | var key, val, _ref; 37 | if (!((obj != null) && typeof obj === 'object')) { 38 | return; 39 | } 40 | for (key in obj) { 41 | val = obj[key]; 42 | if (key !== 'included' && key !== 'extended') { 43 | this.prototype[key] = val; 44 | } 45 | } 46 | return (_ref = obj.included) != null ? _ref.call(this) : void 0; 47 | }; 48 | 49 | Module.connect = function(cls) { 50 | if (typeof cls !== 'function') { 51 | return; 52 | } 53 | if (!cls.pluginName) { 54 | throw new Error('Module.connect: cannot connect plugin without pluginName'); 55 | return; 56 | } 57 | cls.prototype._connected = true; 58 | if (!this._connectedClasses) { 59 | this._connectedClasses = []; 60 | } 61 | this._connectedClasses.push(cls); 62 | if (cls.pluginName) { 63 | return this[cls.pluginName] = cls; 64 | } 65 | }; 66 | 67 | Module.prototype.opts = {}; 68 | 69 | function Module(opts) { 70 | var cls, instance, instances, name, _base, _i, _len; 71 | this.opts = $.extend({}, this.opts, opts); 72 | (_base = this.constructor)._connectedClasses || (_base._connectedClasses = []); 73 | instances = (function() { 74 | var _i, _len, _ref, _results; 75 | _ref = this.constructor._connectedClasses; 76 | _results = []; 77 | for (_i = 0, _len = _ref.length; _i < _len; _i++) { 78 | cls = _ref[_i]; 79 | name = cls.pluginName.charAt(0).toLowerCase() + cls.pluginName.slice(1); 80 | if (cls.prototype._connected) { 81 | cls.prototype._module = this; 82 | } 83 | _results.push(this[name] = new cls()); 84 | } 85 | return _results; 86 | }).call(this); 87 | if (this._connected) { 88 | this.opts = $.extend({}, this.opts, this._module.opts); 89 | } else { 90 | this._init(); 91 | for (_i = 0, _len = instances.length; _i < _len; _i++) { 92 | instance = instances[_i]; 93 | if (typeof instance._init === "function") { 94 | instance._init(); 95 | } 96 | } 97 | } 98 | this.trigger('initialized'); 99 | } 100 | 101 | Module.prototype._init = function() {}; 102 | 103 | Module.prototype.on = function() { 104 | var args, _ref; 105 | args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 106 | (_ref = $(this)).on.apply(_ref, args); 107 | return this; 108 | }; 109 | 110 | Module.prototype.one = function() { 111 | var args, _ref; 112 | args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 113 | (_ref = $(this)).one.apply(_ref, args); 114 | return this; 115 | }; 116 | 117 | Module.prototype.off = function() { 118 | var args, _ref; 119 | args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 120 | (_ref = $(this)).off.apply(_ref, args); 121 | return this; 122 | }; 123 | 124 | Module.prototype.trigger = function() { 125 | var args, _ref; 126 | args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 127 | (_ref = $(this)).trigger.apply(_ref, args); 128 | return this; 129 | }; 130 | 131 | Module.prototype.triggerHandler = function() { 132 | var args, _ref; 133 | args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 134 | return (_ref = $(this)).triggerHandler.apply(_ref, args); 135 | }; 136 | 137 | Module.prototype._t = function() { 138 | var args, _ref; 139 | args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; 140 | return (_ref = this.constructor)._t.apply(_ref, args); 141 | }; 142 | 143 | Module._t = function() { 144 | var args, key, result, _ref; 145 | key = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; 146 | result = ((_ref = this.i18n[this.locale]) != null ? _ref[key] : void 0) || ''; 147 | if (!(args.length > 0)) { 148 | return result; 149 | } 150 | result = result.replace(/([^%]|^)%(?:(\d+)\$)?s/g, function(p0, p, position) { 151 | if (position) { 152 | return p + args[parseInt(position) - 1]; 153 | } else { 154 | return p + args.shift(); 155 | } 156 | }); 157 | return result.replace(/%%s/g, '%s'); 158 | }; 159 | 160 | Module.i18n = { 161 | 'zh-CN': {} 162 | }; 163 | 164 | Module.locale = 'zh-CN'; 165 | 166 | return Module; 167 | 168 | })(); 169 | 170 | 171 | return Module; 172 | 173 | 174 | })); 175 | -------------------------------------------------------------------------------- /js/plugins/slimscroll/jquery.slimscroll.min.js: -------------------------------------------------------------------------------- 1 | /*! Copyright (c) 2011 Piotr Rochala (http://rocha.la) 2 | * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 3 | * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 4 | * 5 | * Version: 1.3.0 6 | * 7 | */ 8 | (function(f){jQuery.fn.extend({slimScroll:function(h){var a=f.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:0.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},h);this.each(function(){function r(d){if(s){d=d|| 9 | window.event;var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);f(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&m(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function m(d,f,h){k=!1;var e=d,g=b.outerHeight()-c.outerHeight();f&&(e=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),e=Math.min(Math.max(e,0),g),e=0 =b.outerHeight()?k=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&g.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(A=setTimeout(function(){a.disableFadeOut&&s||(x||y)||(c.fadeOut("slow"),g.fadeOut("slow"))},1E3))}var s,x,y,A,z,u,l,B,D=30,k=!1,b=f(this);if(b.parent().hasClass(a.wrapperClass)){var n=b.scrollTop(), 12 | c=b.parent().find("."+a.barClass),g=b.parent().find("."+a.railClass);w();if(f.isPlainObject(h)){if("height"in h&&"auto"==h.height){b.parent().css("height","auto");b.css("height","auto");var q=b.parent().parent().height();b.parent().css("height",q);b.css("height",q)}if("scrollTo"in h)n=parseInt(a.scrollTo);else if("scrollBy"in h)n+=parseInt(a.scrollBy);else if("destroy"in h){c.remove();g.remove();b.unwrap();return}m(n,!1,!0)}}else{a.height="auto"==a.height?b.parent().height():a.height;n=f("").addClass(a.wrapperClass).css({position:"relative", 13 | overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",width:a.width,height:a.height});var g=f("").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=f("").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible? 14 | "block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,WebkitBorderRadius:a.borderRadius,zIndex:99}),q="right"==a.position?{right:a.distance}:{left:a.distance};g.css(q);c.css(q);b.wrap(n);b.parent().append(c);b.parent().append(g);a.railDraggable&&c.bind("mousedown",function(a){var b=f(document);y=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);m(0,c.position().top,!1)}); 15 | b.bind("mouseup.slimscroll",function(a){y=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",function(a){a.stopPropagation();a.preventDefault();return!1});g.hover(function(){v()},function(){p()});c.hover(function(){x=!0},function(){x=!1});b.hover(function(){s=!0;v();p()},function(){s=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(z=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&& 16 | (m((z-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),z=b.originalEvent.touches[0].pageY)});w();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),m(0,!0)):"top"!==a.start&&(m(f(a.start).position().top,null,!0),a.alwaysVisible||c.hide());C()}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery); -------------------------------------------------------------------------------- /js/plugins/summernote/summernote-zh-CN.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | $.extend($.summernote.lang, { 3 | 'zh-CN': { 4 | font: { 5 | bold: '粗体', 6 | italic: '斜体', 7 | underline: '下划线', 8 | strikethrough: '删除线', 9 | clear: '清除格式', 10 | height: '行高', 11 | name: '字体', 12 | size: '字号' 13 | }, 14 | image: { 15 | image: '图片', 16 | insert: '插入图片', 17 | resizeFull: '调整至 100%', 18 | resizeHalf: '调整至 50%', 19 | resizeQuarter: '调整至 25%', 20 | floatLeft: '左浮动', 21 | floatRight: '右浮动', 22 | floatNone: '不浮动', 23 | dragImageHere: '将图片拖至此处', 24 | selectFromFiles: '从本地上传', 25 | url: '图片地址' 26 | }, 27 | link: { 28 | link: '链接', 29 | insert: '插入链接', 30 | unlink: '去除链接', 31 | edit: '编辑链接', 32 | textToDisplay: '显示文本', 33 | url: '链接地址', 34 | openInNewWindow: '在新窗口打开' 35 | }, 36 | video: { 37 | video: '视频', 38 | videoLink: '视频链接', 39 | insert: '插入视频', 40 | url: '视频地址', 41 | providers: '(优酷, Instagram, DailyMotion, Youtube等)' 42 | }, 43 | table: { 44 | table: '表格' 45 | }, 46 | hr: { 47 | insert: '水平线' 48 | }, 49 | style: { 50 | style: '样式', 51 | normal: '普通', 52 | blockquote: '引用', 53 | pre: '代码', 54 | h1: '标题 1', 55 | h2: '标题 2', 56 | h3: '标题 3', 57 | h4: '标题 4', 58 | h5: '标题 5', 59 | h6: '标题 6' 60 | }, 61 | lists: { 62 | unordered: '无序列表', 63 | ordered: '有序列表' 64 | }, 65 | options: { 66 | help: '帮助', 67 | fullscreen: '全屏', 68 | codeview: '源代码' 69 | }, 70 | paragraph: { 71 | paragraph: '段落', 72 | outdent: '减少缩进', 73 | indent: '增加缩进', 74 | left: '左对齐', 75 | center: '居中对齐', 76 | right: '右对齐', 77 | justify: '两端对齐' 78 | }, 79 | color: { 80 | recent: '最近使用', 81 | more: '更多', 82 | background: '背景', 83 | foreground: '前景', 84 | transparent: '透明', 85 | setTransparent: '透明', 86 | reset: '重置', 87 | resetToDefault: '默认' 88 | }, 89 | shortcut: { 90 | shortcuts: '快捷键', 91 | close: '关闭', 92 | textFormatting: '文本格式', 93 | action: '动作', 94 | paragraphFormatting: '段落格式', 95 | documentStyle: '文档样式' 96 | }, 97 | history: { 98 | undo: '撤销', 99 | redo: '重做' 100 | } 101 | } 102 | }); 103 | })(jQuery); 104 | -------------------------------------------------------------------------------- /js/plugins/toastr/toastr.min.js: -------------------------------------------------------------------------------- 1 | !function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e(""),c=e(""),p=e(""),f=e(""),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); 2 | //# sourceMappingURL=/toastr.js.map -------------------------------------------------------------------------------- /js/plugins/validate/messages_zh.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery Validation Plugin - v1.13.1 - 10/14/2014 2 | * http://jqueryvalidation.org/ 3 | * Copyright (c) 2014 Jörn Zaefferer; Licensed MIT */ 4 | ! function (a) { 5 | "function" == typeof define && define.amd ? define(["jquery", "jquery.validate.min"], a) : a(jQuery) 6 | }(function (a) { 7 | a.extend(a.validator.messages, { 8 | required: "必填", 9 | remote: "请修正此栏位", 10 | email: "请输入有效的电子邮件", 11 | url: "请输入有效的网址", 12 | date: "请输入有效的日期", 13 | dateISO: "请输入有效的日期 (YYYY-MM-DD)", 14 | number: "请输入正确的数字", 15 | digits: "只能输入数字", 16 | creditcard: "请输入有效的信用卡号码", 17 | equalTo: "你的输入不相同", 18 | extension: "请输入有效的后缀", 19 | maxlength: a.validator.format("最多 {0} 个字"), 20 | minlength: a.validator.format("最少 {0} 个字"), 21 | rangelength: a.validator.format("请输入长度为 {0} 至 {1} 之间的字串"), 22 | range: a.validator.format("请输入 {0} 至 {1} 之间的数值"), 23 | max: a.validator.format("请输入不大于 {0} 的数值"), 24 | min: a.validator.format("请输入不小于 {0} 的数值") 25 | }) 26 | }); -------------------------------------------------------------------------------- /lockscreen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 素材火www.sucaihuo.com - 登录超时 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |24 |25 |26 |40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |27 |39 |28 |30 |29 |
Beaut-zihan
31 |您需要再次输入密码
32 | 38 |素材火www.sucaihuo.com - 登录 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |24 |48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /plugins/fullavatareditor/fullAvatarEditor.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XinLiangCoder/H-background-theme/ac8950fa694a03b52d308300f152790123a2d4d7/plugins/fullavatareditor/fullAvatarEditor.swf -------------------------------------------------------------------------------- /plugins/fullavatareditor/scripts/fullAvatarEditor.js: -------------------------------------------------------------------------------- 1 | function fullAvatarEditor() { 2 | var id = 'fullAvatarEditor' //flash文件的ID 3 | var file = 'plugins/fullavatareditor/fullAvatarEditor.swf'; //flash文件的路径 4 | var version = "10.1.0"; //播放该flash所需的最低版本 5 | var expressInstall = 'expressInstall.swf'; //expressInstall.swf的路径 6 | var width = 600; //flash文件的宽度 7 | var height = 430; //flash文件的高度 8 | var container = id; //装载flash文件的容器(如div)的id 9 | var flashvars = {}; 10 | var callback = function(){}; 11 | var heightChanged = false; 12 | //智能获取参数,字符类型为装载flash文件的容器(如div)的id,第一个数字类型的为高度,第二个为宽度,第一个object类型的为参数对象,如此4个参数的顺序可随意。 13 | for(var i = 0; i < arguments.length; i++) 14 | { 15 | if(typeof arguments[i] == 'string') 16 | { 17 | container = arguments[i]; 18 | } 19 | else if(typeof arguments[i] == 'number') 20 | { 21 | if(heightChanged) 22 | { 23 | width = arguments[i]; 24 | } 25 | else 26 | { 27 | height = arguments[i]; 28 | heightChanged = true; 29 | } 30 | } 31 | else if(typeof arguments[i] == 'function') 32 | { 33 | callback = arguments[i]; 34 | } 35 | else 36 | { 37 | flashvars = arguments[i]; 38 | } 39 | } 40 | var vars = { 41 | id : id 42 | }; 43 | //合并参数 44 | for (var name in flashvars) 45 | { 46 | if(flashvars[name] != null) 47 | { 48 | if(name == 'upload_url' || name == 'src_url') 49 | { 50 | vars[name] = encodeURIComponent(flashvars[name]); 51 | } 52 | else 53 | { 54 | vars[name] = flashvars[name]; 55 | } 56 | } 57 | } 58 | var params = { 59 | menu : 'true', 60 | scale : 'noScale', 61 | allowFullscreen : 'true', 62 | allowScriptAccess : 'always', 63 | wmode : 'transparent' 64 | }; 65 | var attributes = { 66 | id : vars.id, 67 | name: vars.id 68 | }; 69 | var swf = null; 70 | var callbackFn = function (e) { 71 | swf = e.ref; 72 | swf.eventHandler = function(json){ 73 | callback.call(swf, json); 74 | }; 75 | }; 76 | swfobject.embedSWF( 77 | file, 78 | container, 79 | width, 80 | height, 81 | version, 82 | expressInstall, 83 | vars, 84 | params, 85 | attributes, 86 | callbackFn 87 | ); 88 | return swf; 89 | } -------------------------------------------------------------------------------- /plugins/fullavatareditor/scripts/jQuery.Cookie.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Cookie plugin 3 | * 4 | * Copyright (c) 2006 Klaus Hartl (stilbuero.de) 5 | * Dual licensed under the MIT and GPL licenses: 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * http://www.gnu.org/licenses/gpl.html 8 | * 9 | */ 10 | 11 | /** 12 | * Create a Cookie with the given name and value and other optional parameters. 13 | * 14 | * @example $.Cookie('the_cookie', 'the_value'); 15 | * @desc Set the value of a Cookie. 16 | * @example $.Cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); 17 | * @desc Create a Cookie with all available options. 18 | * @example $.Cookie('the_cookie', 'the_value'); 19 | * @desc Create a session Cookie. 20 | * @example $.Cookie('the_cookie', null); 21 | * @desc Delete a Cookie by passing null as value. Keep in mind that you have to use the same path and domain 22 | * used when the Cookie was set. 23 | * 24 | * @param String name The name of the Cookie. 25 | * @param String value The value of the Cookie. 26 | * @param Object options An object literal containing key/value pairs to provide optional Cookie attributes. 27 | * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. 28 | * If a negative value is specified (e.g. a date in the past), the Cookie will be deleted. 29 | * If set to null or omitted, the Cookie will be a session Cookie and will not be retained 30 | * when the the browser exits. 31 | * @option String path The value of the path atribute of the Cookie (default: path of page that created the Cookie). 32 | * @option String domain The value of the domain attribute of the Cookie (default: domain of page that created the Cookie). 33 | * @option Boolean secure If true, the secure attribute of the Cookie will be set and the Cookie transmission will 34 | * require a secure protocol (like HTTPS). 35 | * @type undefined 36 | * 37 | * @name $.Cookie 38 | * @cat Plugins/Cookie 39 | * @author Klaus Hartl/klaus.hartl@stilbuero.de 40 | */ 41 | 42 | /** 43 | * Get the value of a Cookie with the given name. 44 | * 45 | * @example $.Cookie('the_cookie'); 46 | * @desc Get the value of a Cookie. 47 | * 48 | * @param String name The name of the Cookie. 49 | * @return The value of the Cookie. 50 | * @type String 51 | * 52 | * @name $.Cookie 53 | * @cat Plugins/Cookie 54 | * @author Klaus Hartl/klaus.hartl@stilbuero.de 55 | */ 56 | $.Cookie = function(name, value, options) { 57 | if (typeof value != 'undefined') { // name and value given, set Cookie 58 | options = options || {}; 59 | if (value === null) { 60 | value = ''; 61 | options.expires = -1; 62 | } 63 | var expires = ''; 64 | if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { 65 | var date; 66 | if (typeof options.expires == 'number') { 67 | date = new Date(); 68 | date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); 69 | } else { 70 | date = options.expires; 71 | } 72 | expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE 73 | } 74 | // CAUTION: Needed to parenthesize options.path and options.domain 75 | // in the following expressions, otherwise they evaluate to undefined 76 | // in the packed version for some reason... 77 | var path = options.path ? '; path=' + (options.path) : ''; 78 | var domain = options.domain ? '; domain=' + (options.domain) : ''; 79 | var secure = options.secure ? '; secure' : ''; 80 | document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); 81 | } else { // only name given, get Cookie 82 | var cookieValue = null; 83 | if (document.cookie && document.cookie != '') { 84 | var cookies = document.cookie.split(';'); 85 | for (var i = 0; i < cookies.length; i++) { 86 | var cookie = jQuery.trim(cookies[i]); 87 | // Does this cookie string begin with the name we want? 88 | if (cookie.substring(0, name.length + 1) == (name + '=')) { 89 | cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 90 | break; 91 | } 92 | } 93 | } 94 | return cookieValue; 95 | } 96 | }; -------------------------------------------------------------------------------- /register.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |25 |47 |26 | 27 |30 |H+
28 | 29 |欢迎使用 H+
31 | 32 | 46 |素材火www.sucaihuo.com - 注册 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |24 |56 | 57 | 58 | 59 | 60 | 61 | 62 | 70 | 71 | 72 | 73 | 74 | 75 | --------------------------------------------------------------------------------25 |55 |26 | 27 |30 |H+
28 | 29 |欢迎注册 H+
31 |创建一个H+新账户
32 | 54 |