WordPress File Upload - Version 4.6.0

Version Description

  • corrected slash (/) parse Javascript error near 'fakepath' appearring on some situations
  • added nonces in Maintenance Actions to increase security
  • improved code in View Log so that no links appear to invalid files
  • improved code in View Log so that when the admin opens a file link to view file details, 'go back' button will lead back to the View Log page and not to File Browser
  • improved code in 'Clean Log' button in Maintenance Actions in Dashboard area of the plugin, so that the admin can select the period of clean-up
Download this release

Release Info

Developer nickboss
Plugin Icon 128x128 WordPress File Upload
Version 4.6.0
Comparing to
See all releases

Code changes from version 4.5.1 to 4.6.0

css/wordpress_file_upload_adminstyle.css CHANGED
@@ -1 +1 @@
1
- div.wfu_help_container,div.wfu_restore_container,div.wfu_shortcode_container,div.wfu_td_div{background:0 0;border:none;padding:0;position:relative}select.wfu_variable,span.wfu_variable{font-size:smaller;color:#333;-webkit-touch-callout:none;-khtml-user-select:none;cursor:default}.wfu_conquestions_optable,.wfu_logactions_table,.wfu_permissions_table{border-collapse:collapse}div.wfu_shortcode_container{display:inline-block;width:50%;margin:0}div.wfu_container input.wfu_long_text,textarea.wfu_shortcode{width:100%}div.wfu_container{margin-top:10px}div.wfu_help_container{display:inline-block;top:4px;margin:0}div.wfu_help_container img{visibility:hidden}table.wfu_inner_table th:hover div.wfu_help_container img,table.wfu_main_table th:hover div.wfu_help_container img{visibility:visible}div.wfu_restore_container{display:inline-block;top:4px;margin:0}div.wfu_restore_container img{visibility:hidden}div.wfu_mchecklist_item:hover img,table.wfu_inner_table th:hover div.wfu_restore_container img,table.wfu_main_table th:hover div.wfu_restore_container img{visibility:visible}div.wfu_td_div{display:block;width:100%;height:100%;margin:0}div.wfu_container input.wfu_short_text{width:60px}div.wfu_container input{width:200px}div.wfu_container input[type=checkbox]{width:auto}div.wfu_container textarea{width:100%}table.wfu_main_table{table-layout:fixed}table.wfu_main_table tr:nth-child(odd){background-color:#f4f4f4}table.wfu_main_table table.wfu_inner_table tr,table.wfu_main_table tr:nth-child(even){background-color:transparent}select.wfu_variable,span.wfu_variable,table.wfu_main_table tr.wfu_subcategory{background-color:#ddd}table.wfu_main_table th{width:17%}table.wfu_main_table td:nth-child(2){width:33%}table.wfu_main_table td:nth-child(3){width:50%}table.wfu_main_table table.wfu_inner_table th{width:34%}table.wfu_main_table table.wfu_inner_table td:nth-child(2){width:66%}table.wfu_main_table tr.wfu_subcategory>th{padding-top:0;padding-bottom:0}select.wfu_variable{padding:0;margin:0;height:auto;border:1px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;-khtml-border-radius:5px;border-radius:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}span.wfu_variable{padding:1px;margin:0;border:1px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;-khtml-border-radius:5px;border-radius:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.wfu_date_container{display:inline-block;position:relative;width:auto;height:100%;padding:0;margin:0;background:0 0;border:none}.wfu_datereset_button{position:absolute;right:4px;top:0;bottom:0;margin:auto 0;opacity:.5}.wfu_datereset_button:hover{opacity:1}span.wfu_ptext_span{display:inline-block;width:60px}select.wfu_select_folders{height:auto;min-width:75%}select.wfu_select_folders_empty{font-style:italic;color:silver}div.wfu_subfolders_inner_shadow{position:absolute;width:100%;height:100%;padding:0;margin:0;border:none;background-color:rgba(255,255,255,.8)}div.wfu_subfolder_nav_container,table.wfu_subfolder_nav,table.wfu_subfolder_nav td,table.wfu_subfolder_nav tr{background:0 0;margin:0;padding:0;border:none}option.wfu_select_folders_option_default{color:#00f}div.wfu_subfolder_nav_container{width:40px;display:inline-block;vertical-align:top}table.wfu_subfolder_nav{table-layout:fixed;width:100%;border-spacing:1px}table.wfu_subfolder_nav td{font-size:small;line-height:1;text-align:center}table.wfu_subfolder_nav button.button{margin:0;padding:0;width:17px;font-size:smaller;height:18px;line-height:1;color:#000;font-weight:700}.wfu_subfolder_tools_disabled,table.wfu_subfolder_nav button.button:disabled,table.wfu_subfolder_tools button.button:disabled{color:silver}.button.wfu_subfolder_nav_pressed,.button.wfu_subfolder_nav_pressed:focus,.button.wfu_subfolder_nav_pressed:hover{background:#4169e1}div.wfu_subfolder_tools_container{width:75%;margin:0;padding:0;border:none;background:0 0}table.wfu_subfolder_tools,table.wfu_subfolder_tools input{width:100%;padding:0;margin:0}table.wfu_subfolder_tools{table-layout:fixed;border:none;background:0 0}table.wfu_subfolder_tools tr{margin:0;padding:0;border:none;background:0 0}table.wfu_subfolder_tools td{margin:0;padding:0;border:none;background:0 0;font-size:smaller}table.wfu_subfolder_tools td div{margin:0;padding:0;border:none;background:0 0;position:relative}table.wfu_subfolder_tools label{display:block;padding:0;margin:0;line-height:1}table.wfu_subfolder_tools input:disabled{width:100%;padding:0;margin:0;color:silver}table.wfu_subfolder_tools button.button{margin:0;padding:1px 0 0;width:17px;font-size:smaller;height:17px;line-height:1;position:absolute;bottom:2px}table.wfu_subfolder_tools button.button:disabled img{opacity:.4}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container{position:absolute;width:150px;height:150px;margin:0;padding:0;z-index:100;border:1px solid silver;box-shadow:1px 1px 2px;background-color:#fff;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container table{table-layout:fixed;width:100%;height:100%;border:none;background:#eee;margin:0;padding:0;border-spacing:0;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container tr{border:none;background:0 0;margin:0;padding:0;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td{border:none;background:0 0;margin:0;padding:2px;line-height:0;overflow:hidden;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div{position:relative;border:none;background:0 0;margin:0;padding:0;width:100%;height:100%;display:inline-block;line-height:1}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div button.button{font-size:inherit;line-height:1;height:17px;padding:4px;position:relative;width:auto;margin:0;bottom:auto}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container select{width:100%;height:100%;top:0;bottom:0;position:absolute;margin:0}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container label{color:#222;font-weight:700;position:absolute;top:0;bottom:0;height:10px;margin:auto}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div button.button.wfu_folder_browser_cancel{width:17px;height:17px;position:absolute;right:0;top:0;margin:0;padding:0}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div div.wfu_folder_browser_loading_container{position:absolute;width:100%;height:100%;top:0;bottom:0;margin:0;padding:0;background-color:rgba(255,255,255,.9);text-align:center}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div div.wfu_folder_browser_loading_container label{position:relative;display:block}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div div.wfu_folder_browser_loading_container img{position:relative}.button.wfu_folder_browser_cancel img{vertical-align:top;margin-top:2px}div.wfu_mchecklist_container{display:inline-block;border:1px solid #ddd;border-radius:4px;padding:4px}div.wfu_mchecklist_item{display:inline-block}div.wfu_mchecklist_item label{vertical-align:baseline;margin-left:4px;cursor:default}div.wfu_mchecklist_item input:disabled+label{color:gray}div.wfu_mchecklist_item div{margin-left:4px}div.wfu_bloglist_checkbtn,div.wfu_mchecklist_checkall,div.wfu_postlist_checkbtn,div.wfu_rolelist_checkbtn,div.wfu_userlist_checkbtn{display:inline-block;vertical-align:top;margin:0 0 0 10px}table.wfu_bloglist_container,table.wfu_postlist_container,table.wfu_rolelist_container,table.wfu_stringmatch_container,table.wfu_userlist_container{border:none;background:0 0;margin:0;padding:0;border-spacing:0}table.wfu_bloglist_container tr:nth-child(odd),table.wfu_postlist_container tr:nth-child(odd),table.wfu_rolelist_container tr:nth-child(odd),table.wfu_userlist_container tr:nth-child(odd){border:none;background:0 0;margin:0;padding:0}table.wfu_bloglist_container td,table.wfu_postlist_container td,table.wfu_rolelist_container td,table.wfu_stringmatch_container td,table.wfu_userlist_container td{width:1%;border:none;background:0 0;margin:0;padding:0;vertical-align:top}table.wfu_postlist_container td{padding-right:20px}table.wfu_postlist_container td:last-child{padding-right:0}div.wfu_postlist_header{padding:0 10px}div.wfu_postlist_selectall{float:right}div.wfu_shadow{position:absolute;width:100%;height:100%;left:0;top:0;margin:0;padding:0;background-color:#fff;z-index:10;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}table.wfu_main_table tr:nth-child(odd) div.wfu_shadow{background-color:#f4f4f4}div.wfu_onoff_container_off,div.wfu_onoff_container_on{display:inline-block;position:relative;padding:2px;border:1px solid #aaa;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;background:#066dab;background:-moz-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(6,109,171,1)),color-stop(100%,rgba(197,222,234,1)));background:-webkit-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:-o-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:-ms-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:linear-gradient(to bottom,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#066dab', endColorstr='#c5deea', GradientType=0 )}span.wfu_onoff_text{width:30px;display:inline-block;text-align:center;color:#FFF}div.wfu_onoff_slider{position:absolute;margin:0;width:31px;top:0;bottom:0;border:1px solid #fff;-webkit-border-radius:2px;-moz-border-radius:2px;-khtml-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 2px;-webkit-box-shadow:0 0 2px;box-shadow:0 0 2px;background:#ccc;background:-moz-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(204,204,204,1)),color-stop(100%,rgba(255,255,255,1)));background:-webkit-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:-o-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:-ms-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:linear-gradient(to bottom,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#ffffff', GradientType=0 )}div.wfu_onoff_container_on div.wfu_onoff_slider{left:50%}div.wfu_onoff_container_off div.wfu_onoff_slider{left:0}@-webkit-keyframes set_on{from{left:0}to{left:50%}}@-moz-keyframes set_on{from{left:0}to{left:50%}}@-o-keyframes set_on{from{left:0}to{left:50%}}@keyframes set_on{from{left:0}to{left:50%}}div.wfu_placements_wrapper{display:block;position:relative;margin:0;padding:0;background:0 0;border:none}div.wfu_placements_container{display:inline-block;position:relative;width:100%;height:300px;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;padding:0;overflow:scroll;font-size:0;line-height:0;white-space:nowrap}div.wfu_componentlist_container{display:inline-block;position:absolute;width:auto;height:auto;top:0;left:100%;background:0 0;border:none;margin:0 0 0 20px;padding:0;z-index:1;white-space:nowrap}div.wfu_component_box_container{display:inline-block;position:relative;width:80px;height:30px;background-color:transparent;border:1px solid transparent;padding:4px;margin:0;cursor:default}div.wfu_component_box,div.wfu_component_box_base{width:80px;height:30px;background-color:#ddd;padding:4px;cursor:default;font-size:12px;line-height:1;white-space:normal}div.wfu_component_box_base{display:block;position:absolute;left:-1px;top:-1px;border:1px solid #bbb;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:.4;-khtml-opacity:.4;opacity:.4}div.wfu_component_box{display:inline-block;position:relative;border:1px solid #bbb;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;z-index:1}div.wfu_component_box_inner{display:table;width:100%;height:100%}div.wfu_component_box_label{display:table-cell;text-align:center;vertical-align:middle}div.wfu_component_box_index{background-color:coral;padding:1px;float:right;border-radius:10px}div.wfu_inbase{display:block;position:absolute;left:-1px;top:-1px}div.wfu_component_box:hover{background-color:#eee;border:1px solid #bbb}div.wfu_component_box_selected{background-color:#aaa;border:1px solid #bbb}div.wfu_component_separator_hor,div.wfu_component_separator_ver{position:relative;background-color:transparent;border:1px solid transparent;z-index:1;cursor:default}div.wfu_component_box_dragged{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:.4;-khtml-opacity:.4;opacity:.4}div.wfu_component_separator_ver{display:inline-block;width:8px;height:26px;margin:6px -8px;padding:0 8px}div.wfu_component_separator_hor{display:block;width:100%;height:8px;margin:-8px 0;padding:8px 0}div.wfu_component_bar_hor,div.wfu_component_bar_ver{background-color:silver;border:none;display:none;position:absolute}div.wfu_component_bar_hor{width:auto;height:4px;left:10px;right:0;margin:11px 0 0;padding:0}div.wfu_component_bar_ver{width:4px;height:40px;margin:-6px 0 0 11px;padding:0}div.wfu_componentlist_dragdrop{position:absolute;width:100%;height:100%;left:0;top:0;background-color:#f8f8f8;border:4px dashed #aaa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;z-index:2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);-moz-opacity:.7;-khtml-opacity:.7;opacity:.7}div.wfu_componentlist_dragdrop_dragover{border:4px dashed #555}div.wfu_formdata_container,div.wfu_userdata_container{display:block;position:relative;width:100%;height:100%;padding:0;margin:0;background:0 0;border:none}label.wfu_formdata_label{margin-right:6px}.wfu_formdata_props{padding-left:20px}div.wfu_formdata_action,div.wfu_userdata_action{display:inline-block;position:relative;top:2px;width:16px;height:16px;padding:0;margin:0;background:0 0;text-align:center;border:1px solid transparent;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}div.wfu_formdata_action:hover,div.wfu_userdata_action:hover{border:1px solid #aaa}div.wfu_formdata_action.wfu_formdata_action_disabled:hover,div.wfu_userdata_action.wfu_userdata_action_disabled:hover{border:1px solid transparent}div.wfu_formdata_action>img,div.wfu_userdata_action>img{width:12px;height:12px}div.wfu_formdata_action_disabled>img,div.wfu_userdata_action_disabled>img{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:.4;-khtml-opacity:.4;opacity:.4}div.wfu_formdata_line_container,div.wfu_userdata_line{display:block;position:relative;padding:0;margin:0;background:0 0;border:none;white-space:nowrap}table.wfu_formdata_props_table{background:0 0;border:none;padding:0}table.wfu_formdata_props_table td,table.wfu_main_table table.wfu_inner_table table.wfu_formdata_props_table td{background:0 0;border:none;padding:0;width:auto}table.wfu_formdata_props_table td.wfu_formdata_props,table.wfu_main_table table.wfu_inner_table table.wfu_formdata_props_table td.wfu_formdata_props{padding-left:20px}div.wfu_color_container{display:block;position:relative;padding:0;margin:0;background:0 0;border:none;white-space:nowrap;z-index:1}span.wfu_save_label,span.wfu_save_label_fail{border-radius:6px;padding:1px 2px;box-shadow:1px 1px 1px;opacity:0;font-size:smaller}input[type=text].wp-color-picker{width:75px}input[type=button].wp-picker-clear{width:62px}span.wfu_save_label{background-color:#f0f8ff;color:#32cd32}span.wfu_save_label_fail{background-color:beige;color:#f08080}.wfu_conquestion_itemcontainer,.wfu_conquestions_opsel.wfu_forced_selection{opacity:.5}div.wfu_global_dialog_container{position:fixed;width:100%;height:100%;top:0;left:0;margin:0;padding:0;border:none;background:0 0;z-index:1;display:none}table.wfu_main_table table.wfu_columns_container{border:none;background:0 0;margin:0;padding:0;border-spacing:0}table.wfu_main_table table.wfu_columns_container tr{background:0 0}table.wfu_main_table table.wfu_columns_container td{border:none;background:0 0;margin:0;padding:0;vertical-align:top;width:auto}table.wfu_main_table table.wfu_columnprops_container{border:none;background:0 0;margin:0;padding:6px;border-spacing:0;width:100%;box-shadow:0 0 1px #aaa}table.wfu_main_table table.wfu_columnprops_container tr{background:0 0}table.wfu_main_table table.wfu_columnprops_container td{border:none;background:0 0;margin:0;padding:0;vertical-align:middle;width:auto}table.wfu_main_table table.wfu_columnprops_container label.wfu_columnprops_label_disabled,table.wfu_main_table table.wfu_columnprops_container_disabled label{color:#ccc}button.wfu_columns_addbutton{font-size:smaller}option.wfu_columns_item_required{color:gray}.wfu_conop_header,.wfu_pdop_header{transition:.4s;padding:6px}.wfu_conop_header label,.wfu_pdop_header label{font-weight:700;cursor:default}.wfu_conop_button,.wfu_pdheader_button,.wfu_pdop_button{color:#777;width:1em;height:1em;cursor:pointer;text-align:center}.wfu_conop_header.atomic label,.wfu_pdop_header.atomic label{font-weight:400}.wfu_consent_logactions,.wfu_consent_operations,.wfu_consent_permissions,.wfu_consent_questions,.wfu_consent_users,.wfu_plugin_operations{display:none}.wfu_pdheader_button{padding:2px;border:1px solid gray;border-radius:1em;vertical-align:middle;position:relative;display:inline-block;font-size:smaller}.wfu_pdheader_button:after{content:'\02795';position:absolute;left:0;right:0;top:0;bottom:0;margin:auto}.wfu_conop_panel,.wfu_conop_topmost_panel,.wfu_pdop_panel,.wfu_pdop_topmost_panel{margin-left:40px;overflow:hidden}.wfu_pdheader_button.expanded:after{content:'\02796'}.wfu_conop_panel,.wfu_pdop_panel{display:none}.wfu_conop_level_1,.wfu_pdop_level_1{padding:10px;font-size:larger}.wfu_conop_level_2,.wfu_pdop_level_2{padding:6px;font-size:smaller}.wfu_conop_level_3,.wfu_conop_level_4,.wfu_conop_level_5,.wfu_pdop_level_3,.wfu_pdop_level_4,.wfu_pdop_level_5{padding:2px}.wfu_conop_header:hover,.wfu_pdop_header:hover{background-color:rgba(0,0,0,.2)}.wfu_conop_button,.wfu_pdop_button{float:right;padding:2px;border:1px solid gray;border-radius:4px;position:relative;display:none}.wfu_conop_button:after,.wfu_pdop_button:after{content:'\02795';position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;font-size:smaller}.wfu_conop_button.expanded:after,.wfu_pdop_button.expanded:after{content:'\02796'}.wfu_conop_header:hover .wfu_conop_button,.wfu_pdop_header:hover .wfu_pdop_button{display:block}input[type=checkbox].wfu_conop_selector,input[type=checkbox].wfu_pdop_selector{-webkit-appearance:checkbox;margin:0 0 0 4px}.wfu_conquestions_operations{margin-top:20px;margin-left:40px}.wfu_conquestions_operations label{display:block;font-size:larger;font-weight:700}.wfu_conquestions_oppanel{background-color:#fff;padding:10px;display:inline-block;margin-top:10px}.wfu_conquestions_optable tbody tr:hover{background-color:rgba(0,0,0,.1)}.wfu_conquestions_optable td{cursor:default}.wfu_conquestions_optable td:not(:first-child){text-align:center}.wfu_op_unassigned{background-color:#ffdb99}.wfu_conquestions_optable tbody tr.wfu_op_unassigned:hover{background-color:#e6c58a}.wfu_op_unassigned .wfu_conquestions_opinv,.wfu_op_unassigned .wfu_conquestions_opsel{background-color:#ffdb99}.wfu_conquestions_optable tbody tr.wfu_op_unassigned:hover .wfu_conquestions_opinv,.wfu_conquestions_optable tbody tr.wfu_op_unassigned:hover .wfu_conquestions_opsel{background-color:#e6c58a}.wfu_frozen{pointer-events:none}.wfu_conquestions_container{margin-top:20px;margin-left:40px}.wfu_conquestion_header{font-size:larger}.wfu_conquestion_subcontainer{padding:10px}.wfu_conquestion_headerlabel{font-weight:700}.wfu_conquestion_tools{float:right}.wfu_conquestion_itemprops,.wfu_conquestion_itemspreview,.wfu_conquestion_mainprops{display:table-cell;position:relative;border:1px solid silver;padding:4ex 10px 10px;vertical-align:top;min-width:10em;min-height:4ex;resize:both;overflow:auto}.wfu_conquestion_itempropstitle,.wfu_conquestion_itemspreviewtitle,.wfu_conquestion_mainpropstitle{position:absolute;top:0;left:0;height:3ex;font-size:inherit;text-align:center;width:100%;background-color:rgba(0,0,0,.1)}.wfu_conquestion_displayedtitle,.wfu_conquestion_groupedlabel,.wfu_conquestion_labellabel,.wfu_conquestion_labellocationlabel,.wfu_conquestion_matrixlabel,.wfu_conquestion_preselectedlabel,.wfu_conquestion_titlelabel,.wfu_conquestion_titlelocationlabel,.wfu_conquestion_typelabel,.wfu_conquestion_visiblelabel{display:block}.wfu_conquestion_labeltext,.wfu_conquestion_titletext{width:100%}.wfu_conquestion_matrix_x,.wfu_conquestion_matrix_y{width:4em;text-align:center}.wfu_conquestion_matrixsep{width:1em;display:inline-block;text-align:center}.wfu_empty_label{font-style:italic}.wfu_conquestion_itemtable td:hover{background-color:rgba(0,0,0,.1)}.wfu_item_selected{background-color:rgba(0,0,0,.2)}.wfu_item_assigned{color:#00f}.wfu_item_visible{opacity:1}.wfu_conquestion_btn{display:inline-block;position:relative;width:16px;height:16px;padding:0;margin:0;background:0 0;text-align:center;border:1px solid transparent;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}div.wfu_conquestion_btn:hover{border:1px solid #aaa}.wfu_conquestion_btn>img{width:12px;height:12px;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto}.wfu_log_button,.wfu_perm_button{width:1.5ex;height:1.5ex;cursor:pointer;display:inline-block;vertical-align:middle;text-align:center}div.wfu_conquestion_btn.wfu_tool_disabled:hover{border:1px solid transparent}.wfu_conquestion_btn.wfu_tool_disabled>img{opacity:.4}.wfu_permissions_topmost_panel{margin-left:40px}.wfu_permissions_panel{background-color:#fff;padding:10px;display:inline-block;margin-top:20px}.wfu_perm_container{padding-right:20px}.wfu_location_cell{text-align:center}.wfu_perm_level_1{padding-left:0}.wfu_perm_level_2{padding-left:20px}.wfu_perm_level_3{padding-left:40px}.wfu_permissions_table td:nth-child(n+2),.wfu_permissions_table tr:nth-child(2) th{border-left:1px solid rgba(0,0,0,.1)}.wfu_perm_row:hover{background-color:rgba(0,0,0,.1)}.wfu_perm_button{color:#777;border:1px solid gray;position:relative}.wfu_perm_button:after{content:'+';position:absolute;left:0;right:0;top:-.75ex;bottom:0;margin:auto}.wfu_perm_button:hover{color:#000}.wfu_perm_button.expanded:after{content:'-'}input[type=checkbox].wfu_location_selector{-webkit-appearance:checkbox;margin:0}.wfu_logactions_topmost_panel{margin-left:40px}.wfu_logactions_panel{background-color:#fff;padding:10px;display:inline-block;margin-top:20px}.wfu_log_container{padding-right:20px}.wfu_entity_cell{text-align:center}.wfu_log_level_1{padding-left:0}.wfu_log_level_2{padding-left:20px}.wfu_log_level_3{padding-left:40px}.wfu_logactions_table td:nth-child(n+2),.wfu_logactions_table tr:nth-child(2) th{border-left:1px solid rgba(0,0,0,.1)}.wfu_log_row:hover{background-color:rgba(0,0,0,.1)}.wfu_log_button{color:#777;border:1px solid gray;position:relative}.wfu_log_button:after{content:'+';position:absolute;left:0;right:0;top:-.75ex;bottom:0;margin:auto}.wfu_log_button:hover{color:#000}.wfu_log_button.expanded:after{content:'-'}input[type=checkbox].wfu_entity_selector{-webkit-appearance:checkbox;margin:0}.wfu_pdusers_topmost_panel{margin-top:20px;margin-left:40px}.wfu_pdusers_topmost_panel>label{display:block;font-size:larger;font-weight:700}.wfu_pdusers_rolepanel,.wfu_pdusers_userpanel{margin-top:20px;margin-bottom:20px}.wfu_pdusers_roles_container,.wfu_pdusers_users_container{display:inline-block}.wfu_pdusers_roles_leftpanel,.wfu_pdusers_roles_midpanel,.wfu_pdusers_roles_rightpanel,.wfu_pdusers_users_leftpanel,.wfu_pdusers_users_midpanel,.wfu_pdusers_users_rightpanel{display:table-cell;position:relative}.wfu_pdusers_roles_leftpanel,.wfu_pdusers_roles_rightpanel{height:200px;min-width:100px}.wfu_pdusers_users_leftpanel,.wfu_pdusers_users_rightpanel{height:100px;min-width:100px}.wfu_pdusers_roles_leftpanel,.wfu_pdusers_users_leftpanel{padding:10px 10px 10px 0}.wfu_pdusers_roles_midpanel,.wfu_pdusers_users_midpanel{padding:10px 0;vertical-align:top}.wfu_pdusers_roles_rightpanel,.wfu_pdusers_users_rightpanel{padding:20px;vertical-align:top}.wfu_pdusers_roles_container>label,.wfu_pdusers_users_container>label{font-weight:700}.wfu_pdusers_users_leftpanel label{display:block}.wfu_pdusers_users_midpanel label,.wfu_pdusers_users_rightpanel label{display:block;visibility:hidden}.wfu_pdusers_users_leftpanel input[type=text]{width:100%;display:block}.wfu_pdusers_roles_leftpanel select{height:100%!important;line-height:100%!important}.wfu_pdusers_roles_leftpanel select,.wfu_pdusers_users_leftpanel select{min-width:100px;min-height:100px}.wfu_pdusers_roles_show,.wfu_pdusers_users_show{overflow-x:visible;overflow-y:scroll;height:100%}.wfu_pdusers_roles_back,.wfu_pdusers_users_back{border:1px solid gray;position:absolute;left:10px;top:10px;bottom:10px;right:10px;pointer-events:none},.wfu_pdusers_roles_back.active{background-color:rgba(255,255,255,.7)}.wfu_pdusers_roles_role,.wfu_pdusers_users_user{border:1px solid gray;text-align:center;padding:2px 24px 2px 4px;border-radius:1em;cursor:default;background-color:rgba(0,0,0,.05);position:relative;display:inline-block;white-space:nowrap}.wfu_pdusers_roles_all{text-align:center;padding:2px 20px;font-weight:700}.wfu_pdusers_roles_role span,.wfu_pdusers_users_user span{width:14px;height:14px;position:absolute;display:inline-block;right:3px;top:0;bottom:0;margin:auto;border:1px solid #888;border-radius:1em}.wfu_pdusers_roles_role span:after,.wfu_pdusers_roles_role span:before,.wfu_pdusers_users_user span:after,.wfu_pdusers_users_user span:before{content:'';height:1px;margin-top:0;position:absolute;width:10px;top:50%;right:2px;background:#888}.wfu_pdusers_roles_role span:before,.wfu_pdusers_users_user span:before{transform:rotate(45deg)}.wfu_pdusers_roles_role span:after,.wfu_pdusers_users_user span:after{transform:rotate(-45deg)}.wfu_pdusers_roles_role span:hover,.wfu_pdusers_users_user span:hover{background-color:rgba(0,0,0,.1);border:1px solid #1ebcc5}.wfu_pdusers_roles_role span:hover:after,.wfu_pdusers_roles_role span:hover:before,.wfu_pdusers_users_user span:hover:after,.wfu_pdusers_users_user span:hover:before{background:#1ebcc5}.wfu_pdusers_roles_add,.wfu_pdusers_users_add{width:20px;height:18px;display:inline-block;border:1px solid #888;border-radius:4px}.wfu_pdusers_roles_add:after,.wfu_pdusers_users_add:after{border:solid #555;border-width:0 3px 3px 0;display:inline-block;padding:3px;vertical-align:middle;transform:rotate(-45deg);content:'';margin-left:4px;margin-top:-2px}.wfu_pdusers_roles_add:hover,.wfu_pdusers_users_add:hover{border:1px solid #444;background-color:rgba(0,0,0,.1)}.wfu_pd_user_box0{width:100%}.wfu_pd_user_select0,.wfu_pdusers_users_leftpanel select{width:100%;height:100px!important;line-height:100px!important;min-width:100px;min-height:100px}
1
+ div.wfu_help_container,div.wfu_restore_container,div.wfu_shortcode_container,div.wfu_td_div{background:0 0;border:none;padding:0;position:relative}select.wfu_variable,span.wfu_variable{font-size:smaller;color:#333;-webkit-touch-callout:none;-khtml-user-select:none;cursor:default}.wfu_conquestions_optable,.wfu_logactions_table,.wfu_permissions_table{border-collapse:collapse}.wfu_cleanlog_proceed.disabled,.wfu_frozen{pointer-events:none}div.wfu_shortcode_container{display:inline-block;width:50%;margin:0}div.wfu_container input.wfu_long_text,textarea.wfu_shortcode{width:100%}div.wfu_container{margin-top:10px}div.wfu_help_container{display:inline-block;top:4px;margin:0}div.wfu_help_container img{visibility:hidden}table.wfu_inner_table th:hover div.wfu_help_container img,table.wfu_main_table th:hover div.wfu_help_container img{visibility:visible}div.wfu_restore_container{display:inline-block;top:4px;margin:0}div.wfu_restore_container img{visibility:hidden}div.wfu_mchecklist_item:hover img,table.wfu_inner_table th:hover div.wfu_restore_container img,table.wfu_main_table th:hover div.wfu_restore_container img{visibility:visible}div.wfu_td_div{display:block;width:100%;height:100%;margin:0}div.wfu_container input.wfu_short_text{width:60px}div.wfu_container input{width:200px}div.wfu_container input[type=checkbox]{width:auto}div.wfu_container textarea{width:100%}table.wfu_main_table{table-layout:fixed}table.wfu_main_table tr:nth-child(odd){background-color:#f4f4f4}table.wfu_main_table table.wfu_inner_table tr,table.wfu_main_table tr:nth-child(even){background-color:transparent}select.wfu_variable,span.wfu_variable,table.wfu_main_table tr.wfu_subcategory{background-color:#ddd}table.wfu_main_table th{width:17%}table.wfu_main_table td:nth-child(2){width:33%}table.wfu_main_table td:nth-child(3){width:50%}table.wfu_main_table table.wfu_inner_table th{width:34%}table.wfu_main_table table.wfu_inner_table td:nth-child(2){width:66%}table.wfu_main_table tr.wfu_subcategory>th{padding-top:0;padding-bottom:0}select.wfu_variable{padding:0;margin:0;height:auto;border:1px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;-khtml-border-radius:5px;border-radius:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}span.wfu_variable{padding:1px;margin:0;border:1px solid #ccc;-webkit-border-radius:5px;-moz-border-radius:5px;-khtml-border-radius:5px;border-radius:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.wfu_date_container{display:inline-block;position:relative;width:auto;height:100%;padding:0;margin:0;background:0 0;border:none}.wfu_datereset_button{position:absolute;right:4px;top:0;bottom:0;margin:auto 0;opacity:.5}.wfu_datereset_button:hover{opacity:1}span.wfu_ptext_span{display:inline-block;width:60px}select.wfu_select_folders{height:auto;min-width:75%}select.wfu_select_folders_empty{font-style:italic;color:silver}div.wfu_subfolders_inner_shadow{position:absolute;width:100%;height:100%;padding:0;margin:0;border:none;background-color:rgba(255,255,255,.8)}div.wfu_subfolder_nav_container,table.wfu_subfolder_nav,table.wfu_subfolder_nav td,table.wfu_subfolder_nav tr{background:0 0;margin:0;padding:0;border:none}option.wfu_select_folders_option_default{color:#00f}div.wfu_subfolder_nav_container{width:40px;display:inline-block;vertical-align:top}table.wfu_subfolder_nav{table-layout:fixed;width:100%;border-spacing:1px}table.wfu_subfolder_nav td{font-size:small;line-height:1;text-align:center}table.wfu_subfolder_nav button.button{margin:0;padding:0;width:17px;font-size:smaller;height:18px;line-height:1;color:#000;font-weight:700}.wfu_subfolder_tools_disabled,table.wfu_subfolder_nav button.button:disabled,table.wfu_subfolder_tools button.button:disabled{color:silver}.button.wfu_subfolder_nav_pressed,.button.wfu_subfolder_nav_pressed:focus,.button.wfu_subfolder_nav_pressed:hover{background:#4169e1}div.wfu_subfolder_tools_container{width:75%;margin:0;padding:0;border:none;background:0 0}table.wfu_subfolder_tools,table.wfu_subfolder_tools input{width:100%;padding:0;margin:0}table.wfu_subfolder_tools{table-layout:fixed;border:none;background:0 0}table.wfu_subfolder_tools tr{margin:0;padding:0;border:none;background:0 0}table.wfu_subfolder_tools td{margin:0;padding:0;border:none;background:0 0;font-size:smaller}table.wfu_subfolder_tools td div{margin:0;padding:0;border:none;background:0 0;position:relative}table.wfu_subfolder_tools label{display:block;padding:0;margin:0;line-height:1}table.wfu_subfolder_tools input:disabled{width:100%;padding:0;margin:0;color:silver}table.wfu_subfolder_tools button.button{margin:0;padding:1px 0 0;width:17px;font-size:smaller;height:17px;line-height:1;position:absolute;bottom:2px}table.wfu_subfolder_tools button.button:disabled img{opacity:.4}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container{position:absolute;width:150px;height:150px;margin:0;padding:0;z-index:100;border:1px solid silver;box-shadow:1px 1px 2px;background-color:#fff;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container table{table-layout:fixed;width:100%;height:100%;border:none;background:#eee;margin:0;padding:0;border-spacing:0;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container tr{border:none;background:0 0;margin:0;padding:0;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td{border:none;background:0 0;margin:0;padding:2px;line-height:0;overflow:hidden;font-size:inherit}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div{position:relative;border:none;background:0 0;margin:0;padding:0;width:100%;height:100%;display:inline-block;line-height:1}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div button.button{font-size:inherit;line-height:1;height:17px;padding:4px;position:relative;width:auto;margin:0;bottom:auto}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container select{width:100%;height:100%;top:0;bottom:0;position:absolute;margin:0}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container label{color:#222;font-weight:700;position:absolute;top:0;bottom:0;height:10px;margin:auto}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div button.button.wfu_folder_browser_cancel{width:17px;height:17px;position:absolute;right:0;top:0;margin:0;padding:0}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div div.wfu_folder_browser_loading_container{position:absolute;width:100%;height:100%;top:0;bottom:0;margin:0;padding:0;background-color:rgba(255,255,255,.9);text-align:center}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div div.wfu_folder_browser_loading_container label{position:relative;display:block}table.wfu_subfolder_tools td div.wfu_subfolders_browser_container td div div.wfu_folder_browser_loading_container img{position:relative}.button.wfu_folder_browser_cancel img{vertical-align:top;margin-top:2px}div.wfu_mchecklist_container{display:inline-block;border:1px solid #ddd;border-radius:4px;padding:4px}div.wfu_mchecklist_item{display:inline-block}div.wfu_mchecklist_item label{vertical-align:baseline;margin-left:4px;cursor:default}div.wfu_mchecklist_item input:disabled+label{color:gray}div.wfu_mchecklist_item div{margin-left:4px}div.wfu_bloglist_checkbtn,div.wfu_mchecklist_checkall,div.wfu_postlist_checkbtn,div.wfu_rolelist_checkbtn,div.wfu_userlist_checkbtn{display:inline-block;vertical-align:top;margin:0 0 0 10px}table.wfu_bloglist_container,table.wfu_postlist_container,table.wfu_rolelist_container,table.wfu_stringmatch_container,table.wfu_userlist_container{border:none;background:0 0;margin:0;padding:0;border-spacing:0}table.wfu_bloglist_container tr:nth-child(odd),table.wfu_postlist_container tr:nth-child(odd),table.wfu_rolelist_container tr:nth-child(odd),table.wfu_userlist_container tr:nth-child(odd){border:none;background:0 0;margin:0;padding:0}table.wfu_bloglist_container td,table.wfu_postlist_container td,table.wfu_rolelist_container td,table.wfu_stringmatch_container td,table.wfu_userlist_container td{width:1%;border:none;background:0 0;margin:0;padding:0;vertical-align:top}table.wfu_postlist_container td{padding-right:20px}table.wfu_postlist_container td:last-child{padding-right:0}div.wfu_postlist_header{padding:0 10px}div.wfu_postlist_selectall{float:right}div.wfu_shadow{position:absolute;width:100%;height:100%;left:0;top:0;margin:0;padding:0;background-color:#fff;z-index:10;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";filter:alpha(opacity=60);-moz-opacity:.6;-khtml-opacity:.6;opacity:.6}table.wfu_main_table tr:nth-child(odd) div.wfu_shadow{background-color:#f4f4f4}div.wfu_onoff_container_off,div.wfu_onoff_container_on{display:inline-block;position:relative;padding:2px;border:1px solid #aaa;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;background:#066dab;background:-moz-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(6,109,171,1)),color-stop(100%,rgba(197,222,234,1)));background:-webkit-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:-o-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:-ms-linear-gradient(top,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);background:linear-gradient(to bottom,rgba(6,109,171,1) 0,rgba(197,222,234,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#066dab', endColorstr='#c5deea', GradientType=0 )}span.wfu_onoff_text{width:30px;display:inline-block;text-align:center;color:#FFF}div.wfu_onoff_slider{position:absolute;margin:0;width:31px;top:0;bottom:0;border:1px solid #fff;-webkit-border-radius:2px;-moz-border-radius:2px;-khtml-border-radius:2px;border-radius:2px;-moz-box-shadow:0 0 2px;-webkit-box-shadow:0 0 2px;box-shadow:0 0 2px;background:#ccc;background:-moz-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(204,204,204,1)),color-stop(100%,rgba(255,255,255,1)));background:-webkit-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:-o-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:-ms-linear-gradient(top,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);background:linear-gradient(to bottom,rgba(204,204,204,1) 0,rgba(255,255,255,1) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#ffffff', GradientType=0 )}div.wfu_onoff_container_on div.wfu_onoff_slider{left:50%}div.wfu_onoff_container_off div.wfu_onoff_slider{left:0}@-webkit-keyframes set_on{from{left:0}to{left:50%}}@-moz-keyframes set_on{from{left:0}to{left:50%}}@-o-keyframes set_on{from{left:0}to{left:50%}}@keyframes set_on{from{left:0}to{left:50%}}div.wfu_placements_wrapper{display:block;position:relative;margin:0;padding:0;background:0 0;border:none}div.wfu_placements_container{display:inline-block;position:relative;width:100%;height:300px;background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;padding:0;overflow:scroll;font-size:0;line-height:0;white-space:nowrap}div.wfu_componentlist_container{display:inline-block;position:absolute;width:auto;height:auto;top:0;left:100%;background:0 0;border:none;margin:0 0 0 20px;padding:0;z-index:1;white-space:nowrap}div.wfu_component_box_container{display:inline-block;position:relative;width:80px;height:30px;background-color:transparent;border:1px solid transparent;padding:4px;margin:0;cursor:default}div.wfu_component_box,div.wfu_component_box_base{width:80px;height:30px;background-color:#ddd;padding:4px;cursor:default;font-size:12px;line-height:1;white-space:normal}div.wfu_component_box_base{display:block;position:absolute;left:-1px;top:-1px;border:1px solid #bbb;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:.4;-khtml-opacity:.4;opacity:.4}div.wfu_component_box{display:inline-block;position:relative;border:1px solid #bbb;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;z-index:1}div.wfu_component_box_inner{display:table;width:100%;height:100%}div.wfu_component_box_label{display:table-cell;text-align:center;vertical-align:middle}div.wfu_component_box_index{background-color:coral;padding:1px;float:right;border-radius:10px}div.wfu_inbase{display:block;position:absolute;left:-1px;top:-1px}div.wfu_component_box:hover{background-color:#eee;border:1px solid #bbb}div.wfu_component_box_selected{background-color:#aaa;border:1px solid #bbb}div.wfu_component_separator_hor,div.wfu_component_separator_ver{position:relative;background-color:transparent;border:1px solid transparent;z-index:1;cursor:default}div.wfu_component_box_dragged{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:.4;-khtml-opacity:.4;opacity:.4}div.wfu_component_separator_ver{display:inline-block;width:8px;height:26px;margin:6px -8px;padding:0 8px}div.wfu_component_separator_hor{display:block;width:100%;height:8px;margin:-8px 0;padding:8px 0}div.wfu_component_bar_hor,div.wfu_component_bar_ver{background-color:silver;border:none;display:none;position:absolute}div.wfu_component_bar_hor{width:auto;height:4px;left:10px;right:0;margin:11px 0 0;padding:0}div.wfu_component_bar_ver{width:4px;height:40px;margin:-6px 0 0 11px;padding:0}div.wfu_componentlist_dragdrop{position:absolute;width:100%;height:100%;left:0;top:0;background-color:#f8f8f8;border:4px dashed #aaa;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;z-index:2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";filter:alpha(opacity=70);-moz-opacity:.7;-khtml-opacity:.7;opacity:.7}div.wfu_componentlist_dragdrop_dragover{border:4px dashed #555}div.wfu_formdata_container,div.wfu_userdata_container{display:block;position:relative;width:100%;height:100%;padding:0;margin:0;background:0 0;border:none}label.wfu_formdata_label{margin-right:6px}.wfu_formdata_props{padding-left:20px}div.wfu_formdata_action,div.wfu_userdata_action{display:inline-block;position:relative;top:2px;width:16px;height:16px;padding:0;margin:0;background:0 0;text-align:center;border:1px solid transparent;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}div.wfu_formdata_action:hover,div.wfu_userdata_action:hover{border:1px solid #aaa}div.wfu_formdata_action.wfu_formdata_action_disabled:hover,div.wfu_userdata_action.wfu_userdata_action_disabled:hover{border:1px solid transparent}div.wfu_formdata_action>img,div.wfu_userdata_action>img{width:12px;height:12px}div.wfu_formdata_action_disabled>img,div.wfu_userdata_action_disabled>img{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";filter:alpha(opacity=40);-moz-opacity:.4;-khtml-opacity:.4;opacity:.4}div.wfu_formdata_line_container,div.wfu_userdata_line{display:block;position:relative;padding:0;margin:0;background:0 0;border:none;white-space:nowrap}table.wfu_formdata_props_table{background:0 0;border:none;padding:0}table.wfu_formdata_props_table td,table.wfu_main_table table.wfu_inner_table table.wfu_formdata_props_table td{background:0 0;border:none;padding:0;width:auto}table.wfu_formdata_props_table td.wfu_formdata_props,table.wfu_main_table table.wfu_inner_table table.wfu_formdata_props_table td.wfu_formdata_props{padding-left:20px}div.wfu_color_container{display:block;position:relative;padding:0;margin:0;background:0 0;border:none;white-space:nowrap;z-index:1}.wfu_cleanlog_error.hidden,.wfu_cleanlog_tr,.wfu_consent_logactions,.wfu_consent_operations,.wfu_consent_permissions,.wfu_consent_questions,.wfu_consent_users,.wfu_plugin_operations,.wfu_selectdate_container,.wfu_selectdates_container,.wfu_selectperiod_container{display:none}span.wfu_save_label,span.wfu_save_label_fail{border-radius:6px;padding:1px 2px;box-shadow:1px 1px 1px;opacity:0;font-size:smaller}input[type=text].wp-color-picker{width:75px}input[type=button].wp-picker-clear{width:62px}span.wfu_save_label{background-color:#f0f8ff;color:#32cd32}span.wfu_save_label_fail{background-color:beige;color:#f08080}.wfu_conquestion_itemcontainer,.wfu_conquestions_opsel.wfu_forced_selection{opacity:.5}div.wfu_global_dialog_container{position:fixed;width:100%;height:100%;top:0;left:0;margin:0;padding:0;border:none;background:0 0;z-index:1;display:none}table.wfu_main_table table.wfu_columns_container{border:none;background:0 0;margin:0;padding:0;border-spacing:0}table.wfu_main_table table.wfu_columns_container tr{background:0 0}table.wfu_main_table table.wfu_columns_container td{border:none;background:0 0;margin:0;padding:0;vertical-align:top;width:auto}.wfu_buttons_container .button,.wfu_buttons_container .wfu_cleanlog_error,.wfu_pdheader_button,.wfu_selectdate_container input[type=text],.wfu_selectdate_container label,.wfu_selectdates_container input[type=text],.wfu_selectdates_container label,.wfu_selectperiod_container input[type=number],.wfu_selectperiod_container label,.wfu_selectperiod_container select{vertical-align:middle}table.wfu_main_table table.wfu_columnprops_container{border:none;background:0 0;margin:0;padding:6px;border-spacing:0;width:100%;box-shadow:0 0 1px #aaa}table.wfu_main_table table.wfu_columnprops_container tr{background:0 0}table.wfu_main_table table.wfu_columnprops_container td{border:none;background:0 0;margin:0;padding:0;vertical-align:middle;width:auto}table.wfu_main_table table.wfu_columnprops_container label.wfu_columnprops_label_disabled,table.wfu_main_table table.wfu_columnprops_container_disabled label{color:#ccc}button.wfu_columns_addbutton{font-size:smaller}option.wfu_columns_item_required{color:gray}.wfu_cleanlog_tr td{margin-top:0;padding-top:0}.wfu_buttons_container,.wfu_selectdate_container,.wfu_selectdates_container,.wfu_selectperiod_container{margin-top:10px}.wfu_selectdate_container input[type=text],.wfu_selectdates_container input[type=text]{width:8em;text-align:center}.wfu_selectperiod_container input[type=number]{width:4em}.wfu_cleanlog_error{color:red;font-size:small}.wfu_cleanlog_error:before{content:'!';font-weight:700;margin-right:2px}.wfu_conop_header,.wfu_pdop_header{transition:.4s;padding:6px}.wfu_conop_header label,.wfu_pdop_header label{font-weight:700;cursor:default}.wfu_conop_button,.wfu_pdheader_button,.wfu_pdop_button{color:#777;width:1em;height:1em;cursor:pointer;text-align:center}.wfu_conop_header.atomic label,.wfu_pdop_header.atomic label{font-weight:400}.wfu_pdheader_button{padding:2px;border:1px solid gray;border-radius:1em;position:relative;display:inline-block;font-size:smaller}.wfu_pdheader_button:after{content:'\02795';position:absolute;left:0;right:0;top:0;bottom:0;margin:auto}.wfu_conop_panel,.wfu_conop_topmost_panel,.wfu_pdop_panel,.wfu_pdop_topmost_panel{margin-left:40px;overflow:hidden}.wfu_pdheader_button.expanded:after{content:'\02796'}.wfu_conop_panel,.wfu_pdop_panel{display:none}.wfu_conop_level_1,.wfu_pdop_level_1{padding:10px;font-size:larger}.wfu_conop_level_2,.wfu_pdop_level_2{padding:6px;font-size:smaller}.wfu_conop_level_3,.wfu_conop_level_4,.wfu_conop_level_5,.wfu_pdop_level_3,.wfu_pdop_level_4,.wfu_pdop_level_5{padding:2px}.wfu_conop_header:hover,.wfu_pdop_header:hover{background-color:rgba(0,0,0,.2)}.wfu_conop_button,.wfu_pdop_button{float:right;padding:2px;border:1px solid gray;border-radius:4px;position:relative;display:none}.wfu_conop_button:after,.wfu_pdop_button:after{content:'\02795';position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;font-size:smaller}.wfu_conop_button.expanded:after,.wfu_pdop_button.expanded:after{content:'\02796'}.wfu_conop_header:hover .wfu_conop_button,.wfu_pdop_header:hover .wfu_pdop_button{display:block}input[type=checkbox].wfu_conop_selector,input[type=checkbox].wfu_pdop_selector{-webkit-appearance:checkbox;margin:0 0 0 4px}.wfu_conquestions_operations{margin-top:20px;margin-left:40px}.wfu_conquestions_operations label{display:block;font-size:larger;font-weight:700}.wfu_conquestions_oppanel{background-color:#fff;padding:10px;display:inline-block;margin-top:10px}.wfu_conquestions_optable tbody tr:hover{background-color:rgba(0,0,0,.1)}.wfu_conquestions_optable td{cursor:default}.wfu_conquestions_optable td:not(:first-child){text-align:center}.wfu_op_unassigned{background-color:#ffdb99}.wfu_conquestions_optable tbody tr.wfu_op_unassigned:hover{background-color:#e6c58a}.wfu_op_unassigned .wfu_conquestions_opinv,.wfu_op_unassigned .wfu_conquestions_opsel{background-color:#ffdb99}.wfu_conquestions_optable tbody tr.wfu_op_unassigned:hover .wfu_conquestions_opinv,.wfu_conquestions_optable tbody tr.wfu_op_unassigned:hover .wfu_conquestions_opsel{background-color:#e6c58a}.wfu_conquestions_container{margin-top:20px;margin-left:40px}.wfu_conquestion_header{font-size:larger}.wfu_conquestion_subcontainer{padding:10px}.wfu_conquestion_headerlabel{font-weight:700}.wfu_conquestion_tools{float:right}.wfu_conquestion_itemprops,.wfu_conquestion_itemspreview,.wfu_conquestion_mainprops{display:table-cell;position:relative;border:1px solid silver;padding:4ex 10px 10px;vertical-align:top;min-width:10em;min-height:4ex;resize:both;overflow:auto}.wfu_conquestion_itempropstitle,.wfu_conquestion_itemspreviewtitle,.wfu_conquestion_mainpropstitle{position:absolute;top:0;left:0;height:3ex;font-size:inherit;text-align:center;width:100%;background-color:rgba(0,0,0,.1)}.wfu_conquestion_displayedtitle,.wfu_conquestion_groupedlabel,.wfu_conquestion_labellabel,.wfu_conquestion_labellocationlabel,.wfu_conquestion_matrixlabel,.wfu_conquestion_preselectedlabel,.wfu_conquestion_titlelabel,.wfu_conquestion_titlelocationlabel,.wfu_conquestion_typelabel,.wfu_conquestion_visiblelabel{display:block}.wfu_conquestion_labeltext,.wfu_conquestion_titletext{width:100%}.wfu_conquestion_matrix_x,.wfu_conquestion_matrix_y{width:4em;text-align:center}.wfu_conquestion_matrixsep{width:1em;display:inline-block;text-align:center}.wfu_empty_label{font-style:italic}.wfu_conquestion_itemtable td:hover{background-color:rgba(0,0,0,.1)}.wfu_item_selected{background-color:rgba(0,0,0,.2)}.wfu_item_assigned{color:#00f}.wfu_item_visible{opacity:1}.wfu_conquestion_btn{display:inline-block;position:relative;width:16px;height:16px;padding:0;margin:0;background:0 0;text-align:center;border:1px solid transparent;-webkit-border-radius:3px;-moz-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}div.wfu_conquestion_btn:hover{border:1px solid #aaa}.wfu_conquestion_btn>img{width:12px;height:12px;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto}.wfu_log_button,.wfu_perm_button{width:1.5ex;height:1.5ex;cursor:pointer;display:inline-block;vertical-align:middle;text-align:center}div.wfu_conquestion_btn.wfu_tool_disabled:hover{border:1px solid transparent}.wfu_conquestion_btn.wfu_tool_disabled>img{opacity:.4}.wfu_permissions_topmost_panel{margin-left:40px}.wfu_permissions_panel{background-color:#fff;padding:10px;display:inline-block;margin-top:20px}.wfu_perm_container{padding-right:20px}.wfu_location_cell{text-align:center}.wfu_perm_level_1{padding-left:0}.wfu_perm_level_2{padding-left:20px}.wfu_perm_level_3{padding-left:40px}.wfu_permissions_table td:nth-child(n+2),.wfu_permissions_table tr:nth-child(2) th{border-left:1px solid rgba(0,0,0,.1)}.wfu_perm_row:hover{background-color:rgba(0,0,0,.1)}.wfu_perm_button{color:#777;border:1px solid gray;position:relative}.wfu_perm_button:after{content:'+';position:absolute;left:0;right:0;top:-.75ex;bottom:0;margin:auto}.wfu_perm_button:hover{color:#000}.wfu_perm_button.expanded:after{content:'-'}input[type=checkbox].wfu_location_selector{-webkit-appearance:checkbox;margin:0}.wfu_logactions_topmost_panel{margin-left:40px}.wfu_logactions_panel{background-color:#fff;padding:10px;display:inline-block;margin-top:20px}.wfu_log_container{padding-right:20px}.wfu_entity_cell{text-align:center}.wfu_log_level_1{padding-left:0}.wfu_log_level_2{padding-left:20px}.wfu_log_level_3{padding-left:40px}.wfu_logactions_table td:nth-child(n+2),.wfu_logactions_table tr:nth-child(2) th{border-left:1px solid rgba(0,0,0,.1)}.wfu_log_row:hover{background-color:rgba(0,0,0,.1)}.wfu_log_button{color:#777;border:1px solid gray;position:relative}.wfu_log_button:after{content:'+';position:absolute;left:0;right:0;top:-.75ex;bottom:0;margin:auto}.wfu_log_button:hover{color:#000}.wfu_log_button.expanded:after{content:'-'}input[type=checkbox].wfu_entity_selector{-webkit-appearance:checkbox;margin:0}.wfu_pdusers_topmost_panel{margin-top:20px;margin-left:40px}.wfu_pdusers_topmost_panel>label{display:block;font-size:larger;font-weight:700}.wfu_pdusers_rolepanel,.wfu_pdusers_userpanel{margin-top:20px;margin-bottom:20px}.wfu_pdusers_roles_container,.wfu_pdusers_users_container{display:inline-block}.wfu_pdusers_roles_leftpanel,.wfu_pdusers_roles_midpanel,.wfu_pdusers_roles_rightpanel,.wfu_pdusers_users_leftpanel,.wfu_pdusers_users_midpanel,.wfu_pdusers_users_rightpanel{display:table-cell;position:relative}.wfu_pdusers_roles_leftpanel,.wfu_pdusers_roles_rightpanel{height:200px;min-width:100px}.wfu_pdusers_users_leftpanel,.wfu_pdusers_users_rightpanel{height:100px;min-width:100px}.wfu_pdusers_roles_leftpanel,.wfu_pdusers_users_leftpanel{padding:10px 10px 10px 0}.wfu_pdusers_roles_midpanel,.wfu_pdusers_users_midpanel{padding:10px 0;vertical-align:top}.wfu_pdusers_roles_rightpanel,.wfu_pdusers_users_rightpanel{padding:20px;vertical-align:top}.wfu_pdusers_roles_container>label,.wfu_pdusers_users_container>label{font-weight:700}.wfu_pdusers_users_leftpanel label{display:block}.wfu_pdusers_users_midpanel label,.wfu_pdusers_users_rightpanel label{display:block;visibility:hidden}.wfu_pdusers_users_leftpanel input[type=text]{width:100%;display:block}.wfu_pdusers_roles_leftpanel select{height:100%!important;line-height:100%!important}.wfu_pdusers_roles_leftpanel select,.wfu_pdusers_users_leftpanel select{min-width:100px;min-height:100px}.wfu_pdusers_roles_show,.wfu_pdusers_users_show{overflow-x:visible;overflow-y:scroll;height:100%}.wfu_pdusers_roles_back,.wfu_pdusers_users_back{border:1px solid gray;position:absolute;left:10px;top:10px;bottom:10px;right:10px;pointer-events:none},.wfu_pdusers_roles_back.active{background-color:rgba(255,255,255,.7)}.wfu_pdusers_roles_role,.wfu_pdusers_users_user{border:1px solid gray;text-align:center;padding:2px 24px 2px 4px;border-radius:1em;cursor:default;background-color:rgba(0,0,0,.05);position:relative;display:inline-block;white-space:nowrap}.wfu_pdusers_roles_all{text-align:center;padding:2px 20px;font-weight:700}.wfu_pdusers_roles_role span,.wfu_pdusers_users_user span{width:14px;height:14px;position:absolute;display:inline-block;right:3px;top:0;bottom:0;margin:auto;border:1px solid #888;border-radius:1em}.wfu_pdusers_roles_role span:after,.wfu_pdusers_roles_role span:before,.wfu_pdusers_users_user span:after,.wfu_pdusers_users_user span:before{content:'';height:1px;margin-top:0;position:absolute;width:10px;top:50%;right:2px;background:#888}.wfu_pdusers_roles_role span:before,.wfu_pdusers_users_user span:before{transform:rotate(45deg)}.wfu_pdusers_roles_role span:after,.wfu_pdusers_users_user span:after{transform:rotate(-45deg)}.wfu_pdusers_roles_role span:hover,.wfu_pdusers_users_user span:hover{background-color:rgba(0,0,0,.1);border:1px solid #1ebcc5}.wfu_pdusers_roles_role span:hover:after,.wfu_pdusers_roles_role span:hover:before,.wfu_pdusers_users_user span:hover:after,.wfu_pdusers_users_user span:hover:before{background:#1ebcc5}.wfu_pdusers_roles_add,.wfu_pdusers_users_add{width:20px;height:18px;display:inline-block;border:1px solid #888;border-radius:4px}.wfu_pdusers_roles_add:after,.wfu_pdusers_users_add:after{border:solid #555;border-width:0 3px 3px 0;display:inline-block;padding:3px;vertical-align:middle;transform:rotate(-45deg);content:'';margin-left:4px;margin-top:-2px}.wfu_pdusers_roles_add:hover,.wfu_pdusers_users_add:hover{border:1px solid #444;background-color:rgba(0,0,0,.1)}.wfu_pd_user_box0{width:100%}.wfu_pd_user_select0,.wfu_pdusers_users_leftpanel select{width:100%;height:100px!important;line-height:100px!important;min-width:100px;min-height:100px}
images/Version Comparison.png CHANGED
Binary file
images/open-iconic.svg CHANGED
@@ -1,452 +1,452 @@
1
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 8 8" style="display:none;">
2
- <symbol viewBox="0 0 8 8" id="account-login">
3
- <path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z" id="account-login"></path>
4
- </symbol>
5
- <defs>
6
-
7
-
8
- <path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z" id="account-logout"></path>
9
-
10
- <path d="M3.5 1c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-redo"></path>
11
-
12
- <path d="M4.5 1c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-undo"></path>
13
-
14
- <path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="align-center"></path>
15
-
16
- <path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="align-left"></path>
17
-
18
- <path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="align-right"></path>
19
-
20
- <path d="M4 0c-.69 0-1.336.19-1.906.5l3.219 2.344.719-2.25c-.59-.36-1.281-.594-2.031-.594zm-2.75 1.125c-.76.73-1.25 1.735-1.25 2.875 0 .25.022.489.063.719l3.094-2.219-1.906-1.375zm5.625.125l-1.219 3.75h2.219c.08-.32.125-.65.125-1 0-1.07-.435-2.03-1.125-2.75zm-4.719 3.188l-1.75 1.281c.55 1.13 1.595 1.989 2.875 2.219l-1.125-3.5zm1.563 1.563l.625 1.969c1.33-.11 2.454-.879 3.094-1.969h-3.719z" id="aperture"></path>
21
-
22
- <path d="M3 0v5h-2l2.531 3 2.469-3h-2v-5h-1z" id="arrow-bottom"></path>
23
-
24
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z" id="arrow-circle-bottom"></path>
25
-
26
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z" id="arrow-circle-left"></path>
27
-
28
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z" id="arrow-circle-right"></path>
29
-
30
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z" id="arrow-circle-top"></path>
31
-
32
- <path d="M3 1l-3 2.531 3 2.469v-2h5v-1h-5v-2z" id="arrow-left"></path>
33
-
34
- <path d="M5 1v2h-5v1h5v2l3-2.531-3-2.469z" id="arrow-right"></path>
35
-
36
- <path d="M3 0v5h-2l3.031 3 2.969-3h-2v-5h-2z" id="arrow-thick-bottom"></path>
37
-
38
- <path d="M3 1l-3 3.031 3 2.969v-2h5v-2h-5v-2z" id="arrow-thick-left"></path>
39
-
40
- <path d="M5 1v2h-5v2h5v2l3-3.031-3-2.969z" id="arrow-thick-right"></path>
41
-
42
- <path d="M3.969 0l-2.969 3h2v5h2v-5h2l-3.031-3z" id="arrow-thick-top"></path>
43
-
44
- <path d="M3.469 0l-2.469 3h2v5h1v-5h2l-2.531-3z" id="arrow-top"></path>
45
-
46
- <path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z" id="audio-spectrum"></path>
47
-
48
- <path d="M1.188 1c-.734.722-1.188 1.748-1.188 2.844 0 1.095.454 2.09 1.188 2.813l.688-.719c-.546-.538-.875-1.269-.875-2.094s.329-1.587.875-2.125l-.688-.719zm5.625 0l-.688.719c.552.552.875 1.289.875 2.125 0 .836-.327 1.554-.875 2.094l.688.719c.732-.72 1.188-1.708 1.188-2.813 0-1.104-.459-2.115-1.188-2.844zm-4.219 1.406c-.362.362-.594.889-.594 1.438 0 .548.232 1.045.594 1.406l.688-.719c-.178-.178-.281-.416-.281-.688 0-.272.103-.54.281-.719l-.688-.719zm2.813 0l-.688.719c.183.183.281.434.281.719s-.099.505-.281.688l.688.719c.357-.357.594-.851.594-1.406 0-.555-.236-1.08-.594-1.438z" id="audio"></path>
49
-
50
- <path d="M4 0c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-1 4.813v3.188l1-1 1 1v-3.188c-.31.11-.65.188-1 .188s-.69-.077-1-.188z" id="badge"></path>
51
-
52
- <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c.655 0 1.258.209 1.75.563l-4.188 4.188c-.353-.492-.563-1.095-.563-1.75 0-1.663 1.337-3 3-3zm2.438 1.25c.353.492.563 1.095.563 1.75 0 1.663-1.337 3-3 3-.655 0-1.258-.209-1.75-.563l4.188-4.188z" id="ban"></path>
53
-
54
- <path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z" id="bar-chart"></path>
55
-
56
- <path d="M3.969 0c-.127.011-.259.083-.344.188l-2.344 2.813h-1.281v1h1v3.656c0 .18.164.344.344.344h5.313c.18 0 .344-.164.344-.344v-3.656h1v-1h-1.281c-.274-.329-2.387-2.866-2.406-2.875-.105-.09-.216-.136-.344-.125zm.031 1.281l1.438 1.719h-2.875l1.438-1.719zm-1.5 3.719c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z" id="basket"></path>
57
-
58
- <path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v4h-5v-4z" id="battery-empty"></path>
59
-
60
- <path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813z" id="battery-full"></path>
61
-
62
- <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v1.406c-.088.172-1.194 2.313-1.656 3.094-.153.268-.344.612-.344 1.063 0 .383.139.764.406 1.031.26.26.643.406 1.031.406h5.125c.383 0 .764-.139 1.031-.406.26-.26.406-.643.406-1.031 0-.452-.194-.801-.344-1.063-.463-.78-1.568-2.922-1.656-3.094v-1.406h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm1.656 1h2v1.625l.063.094s.652 1.233 1.219 2.281h-4.563c.567-1.049 1.219-2.281 1.219-2.281l.063-.094v-1.625z" id="beaker"></path>
63
-
64
- <path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.524 1.976-1.344 2.656-.42.34-.656.824-.656 1.344h8c0-.52-.236-1.004-.656-1.344-.82-.68-1.344-1.616-1.344-2.656 0-1.1-.9-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z" id="bell"></path>
65
-
66
- <path d="M2.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.531 2.25-1.469-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" id="bluetooth"></path>
67
-
68
- <path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.588-1.85-1.438-2.25.27-.34.438-.78.438-1.25 0-1.1-.9-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z" id="bold"></path>
69
-
70
- <path d="M4 0l-3 5h2v3l3-5h-2v-3z" id="bolt"></path>
71
-
72
- <path d="M1 0l-.188.031c-.39.08-.701.391-.781.781l-.031.188v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z" id="book"></path>
73
-
74
- <path d="M2 0v8l2-2 2 2v-8h-4z" id="bookmark"></path>
75
-
76
- <path d="M0 0v1h8v-1h-8zm0 2v5.906c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.906h-2.969v1.031h-2.031v-1.031h-3z" id="box"></path>
77
-
78
- <path d="M3 0c-.554 0-1 .458-1 1v1h-1.906c-.06 0-.094.034-.094.094v2.406c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.406c0-.06-.034-.094-.094-.094h-1.906v-1c0-.542-.446-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.906v2c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-2c-.16.05-.32.094-.5.094h-7c-.18 0-.34-.044-.5-.094z" id="briefcase"></path>
79
-
80
- <path d="M4 0c-.619 0-1.159.262-1.5.688-.341.426-.5.986-.5 1.563 0 .692.165 1.245.25 1.75h-1.25v1h1.219c-.112.448-.37.964-1.063 1.656l-.156.125v1.219h6v-1h-4.906c.641-.729.982-1.397 1.125-2h1.781v-1h-1.719c-.078-.683-.281-1.242-.281-1.75 0-.394.115-.731.281-.938.166-.207.368-.313.719-.313.394 0 .609.109.75.25.141.141.25.356.25.75h1c0-.576-.165-1.102-.531-1.469-.366-.366-.893-.531-1.469-.531z" id="british-pound"></path>
81
-
82
- <path d="M.344 0a.5.5 0 0 0-.344.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm1.156 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z" id="browser"></path>
83
-
84
- <path d="M7.438.031l-.063.031-3.75 2.656-.125.156-.125.25c.719.229 1.271.781 1.5 1.5l.25-.125c.05-.02.126-.075.156-.125l2.656-3.75c.03-.04.04-.116 0-.156l-.406-.406-.094-.031zm-4.781 3.969c-.73 0-1.313.614-1.313 1.344 0 .99-.544 1.821-1.344 2.281.4.23.864.375 1.344.375 1.48 0 2.656-1.176 2.656-2.656 0-.73-.604-1.344-1.344-1.344z" id="brush"></path>
85
-
86
- <path d="M3.5 0c-1.19 0-1.978 1.69-1.188 2.5l-.281.219-1.313-.656a.5.5 0 0 0-.344-.063.5.5 0 0 0-.094.938l1.156.563c-.09.156-.186.328-.25.5h-.688a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h.5c0 .227.023.445.063.656l-.781.406a.5.5 0 1 0 .438.875l.656-.344c.245.46.59.844 1 1.094.35-.19.625-.439.625-.719v-1.438a.5.5 0 0 0 0-.094v-.813a.5.5 0 0 0 0-.219c.045-.231.254-.406.5-.406.28 0 .5.22.5.5v.875a.5.5 0 0 0 0 .094v.063a.5.5 0 0 0 0 .094v1.344c0 .27.275.497.625.688.41-.245.755-.604 1-1.063l.656.344a.5.5 0 1 0 .438-.875l-.781-.406c.04-.211.063-.429.063-.656h.5a.5.5 0 1 0 0-1h-.688c-.064-.172-.16-.344-.25-.5l1.156-.563a.5.5 0 0 0-.313-.938.5.5 0 0 0-.125.063l-1.313.656-.281-.219c.78-.83.003-2.5-1.188-2.5z" id="bug"></path>
87
-
88
- <path d="M6.094 0l-.094.031v5.969h.907c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813zm-1.094.5l-2.906 1.469-.188.031h-1.813c-.06 0-.094.034-.094.094v1.813c0 .06.034.094.094.094h.906l1.031 2.719c.11.25.406.36.656.25.25-.11.36-.406.25-.656l-.719-1.781c.033-.136.136-.25.281-.25v-.031l2.5 1.25v-5z" id="bullhorn"></path>
89
-
90
- <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calculator"></path>
91
-
92
- <path d="M0 0v2h7v-2h-7zm0 3v4.906c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-4.906h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calendar"></path>
93
-
94
- <path d="M4.094 0c-.06 0-.105.044-.125.094l-.938 1.813c-.02.05-.065.094-.125.094h-1.406c-.83 0-1.5.67-1.5 1.5v4.406c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813c-.06 0-.105-.044-.125-.094l-.938-1.813c-.02-.05-.065-.094-.125-.094h-1.813zm-2.594 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z" id="camera-slr"></path>
95
-
96
- <path d="M0 2l4 4 4-4h-8z" id="caret-bottom"></path>
97
-
98
- <path d="M6 0l-4 4 4 4v-8z" id="caret-left"></path>
99
-
100
- <path d="M2 0v8l4-4-4-4z" id="caret-right"></path>
101
-
102
- <path d="M4 2l-4 4h8l-4-4z" id="caret-top"></path>
103
-
104
- <path d="M.344 0a.502.502 0 0 0 .156 1h1.5l.094.25.406 1.25.406 1.25c.04.13.204.25.344.25h3.5c.14 0 .304-.12.344-.25l.813-2.531c.04-.12-.016-.219-.156-.219h-4.438l-.375-.719a.5.5 0 0 0-.438-.281h-2a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm3.156 5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm3 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" transform="translate(0 1)" id="cart"></path>
105
-
106
- <path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z" id="chat"></path>
107
-
108
- <path d="M6.406 1l-.719.688-2.781 2.781-.781-.781-.719-.688-1.406 1.406.688.719 1.5 1.5.719.688.719-.688 3.5-3.5.688-.719-1.406-1.406z" id="check"></path>
109
-
110
- <path d="M1.5 1l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" id="chevron-bottom"></path>
111
-
112
- <path d="M5 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" id="chevron-left"></path>
113
-
114
- <path d="M2.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" id="chevron-right"></path>
115
-
116
- <path d="M4 1l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" id="chevron-top"></path>
117
-
118
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.781l.719.719-3.219 3.219-1.719-1.719.719-.719 1 1 2.5-2.5z" id="circle-check"></path>
119
-
120
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="circle-x"></path>
121
-
122
- <path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z" id="clipboard"></path>
123
-
124
- <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm-.5 1v2.219l.156.125.5.5.344.375.719-.719-.375-.344-.344-.344v-1.813h-1z" id="clock"></path>
125
-
126
- <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.719v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.906c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.156 4a.5.5 0 0 0-.344.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="cloud-download"></path>
127
-
128
- <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.219l2-2 2 2h1.406c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z" id="cloud-upload"></path>
129
-
130
- <path d="M4.5 1c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloud"></path>
131
-
132
- <path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.743.25 1.063.3-.21.63-.379 1-.469.55-1.25 1.82-2.084 3.25-2.094-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloudy"></path>
133
-
134
- <path d="M5 1l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" id="code"></path>
135
-
136
- <path d="M3.5 0l-.5 1.188-.281.125-1.188-.5-.719.719.5 1.188-.125.281-1.188.5v1l1.188.5.125.313-.5 1.156.719.719 1.188-.5.281.125.5 1.188h1l.5-1.188.281-.125 1.188.5.719-.719-.5-1.188.125-.281 1.188-.5v-1l-1.188-.5-.125-.281.469-1.188-.688-.719-1.188.5-.281-.125-.5-1.188h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z" id="cog"></path>
137
-
138
- <path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z" id="collapse-down"></path>
139
-
140
- <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z" id="collapse-left"></path>
141
-
142
- <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z" id="collapse-right"></path>
143
-
144
- <path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z" id="collapse-up"></path>
145
-
146
- <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z" id="command"></path>
147
-
148
- <path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h5.906l2 2v-7.906c0-.06-.034-.094-.094-.094h-7.813z" id="comment-square"></path>
149
-
150
- <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="compass"></path>
151
-
152
- <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3v-6z" id="contrast"></path>
153
-
154
- <path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="copywriting"></path>
155
-
156
- <path d="M.25 1c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="credit-card"></path>
157
-
158
- <path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z" id="crop"></path>
159
-
160
- <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-1.656 1a.5.5 0 0 0-.188.844l.906.906-.063.25c0 .552.448 1 1 1s1-.448 1-1-.448-1-1-1l-.25.063-.906-.906a.5.5 0 0 0-.438-.156.5.5 0 0 0-.063 0zm3.156 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="dashboard"></path>
161
-
162
- <path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z" id="data-transfer-download"></path>
163
-
164
- <path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z" id="data-transfer-upload"></path>
165
-
166
- <path d="M2 1l-2 3 2 3h6v-6h-6zm1.5.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="delete"></path>
167
-
168
- <path d="M4 1c-2.201 0-4 1.799-4 4h1c0-1.659 1.341-3 3-3s3 1.341 3 3h1c0-2.201-1.799-4-4-4zm-.594 2.094c-.82.25-1.406 1.006-1.406 1.906 0 1.1.9 2 2 2s2-.9 2-2c0-.9-.586-1.656-1.406-1.906l-.594.875-.594-.875z" id="dial"></path>
169
-
170
- <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z" id="document"></path>
171
-
172
- <path d="M3 0v1h-.75c-.686 0-1.25.564-1.25 1.25v.5c0 .678.437 1.242 1.094 1.406l2.563.656c.143.036.344.296.344.438v.5c0 .134-.116.25-.25.25h-2.5c-.116 0-.212-.037-.25-.063v-.938h-1v1c0 .342.203.627.438.781.234.155.518.219.813.219h.75v1h1v-1h.75c.686 0 1.25-.564 1.25-1.25v-.5c0-.678-.437-1.242-1.094-1.406l-2.563-.656c-.143-.036-.344-.296-.344-.438v-.5c0-.134.116-.25.25-.25h2.5c.116 0 .212.037.25.063v.938h1v-1c0-.342-.203-.627-.438-.781-.234-.155-.518-.219-.813-.219h-.75v-1h-1z" id="dollar"></path>
173
-
174
- <path d="M0 1v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" id="double-quote-sans-left"></path>
175
-
176
- <path d="M3 1l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" id="double-quote-sans-right"></path>
177
-
178
- <path d="M3 1c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1zm5 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1z" id="double-quote-serif-left"></path>
179
-
180
- <path d="M0 1v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3zm5 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3z" id="double-quote-serif-right"></path>
181
-
182
- <path d="M4 0l-.344.344c-.11.11-2.656 2.685-2.656 4.875 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.19-2.546-4.765-2.656-4.875l-.344-.344zm-1.5 4.719c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" id="droplet"></path>
183
-
184
- <path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z" id="eject"></path>
185
-
186
- <path d="M4 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" id="elevator"></path>
187
-
188
- <path d="M0 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="ellipses"></path>
189
-
190
- <path d="M0 1v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" id="envelope-closed"></path>
191
-
192
- <path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.125l3 1.5v1.875l-3 1.5-3-1.5v-1.875l3-1.5zm-2 1.875v1l2 1 2-1v-1h-4z" id="envelope-open"></path>
193
-
194
- <path d="M5 0c-1.858 0-3.398 1.278-3.844 3h-1.906l-.25 1h2c0 .345.073.68.156 1h-1.969l-.188 1h2.563c.696 1.185 1.969 2 3.438 2 .734 0 1.407-.215 2-.563v-1.219c-.531.479-1.225.781-2 .781-.888 0-1.671-.392-2.219-1h2.219l.156-1h-2.969c-.113-.317-.188-.643-.188-1h3.344l.156-1h-3.313c.414-1.16 1.507-2 2.813-2 .655 0 1.258.209 1.75.563l.156-1.063c-.57-.313-1.213-.5-1.906-.5z" id="euro"></path>
195
-
196
- <path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="excerpt"></path>
197
-
198
- <path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z" id="expand-down"></path>
199
-
200
- <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z" id="expand-left"></path>
201
-
202
- <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z" id="expand-right"></path>
203
-
204
- <path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z" id="expand-up"></path>
205
-
206
- <path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z" id="external-link"></path>
207
-
208
- <path d="M4.031 1c-2.53 0-4.031 3-4.031 3s1.501 3 4.031 3c2.47 0 3.969-3 3.969-3s-1.499-3-3.969-3zm-.031 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.032-.191-.063-.281-.08.16-.237.281-.438.281-.28 0-.5-.22-.5-.5 0-.2.121-.357.281-.438-.09-.03-.181-.063-.281-.063z" id="eye"></path>
209
-
210
- <path d="M3.313 0a.5.5 0 0 0-.188.844l.625.625-3.594 3.656-.156.156v2.719h2.719l.125-.156 3.656-3.656.625.656a.5.5 0 1 0 .719-.688l-.938-.938.656-.656c.59-.58.59-1.545 0-2.125-.56-.57-1.555-.57-2.125 0l-.656.656-.938-.938a.5.5 0 0 0-.469-.156.5.5 0 0 0-.063 0zm1.156 2.188l1.313 1.313-3.156 3.156-1.281-1.313 3.125-3.156z" id="eyedropper"></path>
211
-
212
- <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z" id="file"></path>
213
-
214
- <path d="M2 0c1 2-2 3-2 5l2 3c-.98-1.98 2-3 2-5l-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z" id="fire"></path>
215
-
216
- <path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.969 2-2.031h-3v-1h-3z" id="flag"></path>
217
-
218
- <path d="M3.5 0l-1.5 3h2l-.656 2h-1.344l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" id="flash"></path>
219
-
220
- <path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z" id="folder"></path>
221
-
222
- <path d="M1.5 0c-.828 0-1.5.672-1.5 1.5 0 .656.414 1.202 1 1.406v2.188c-.586.204-1 .75-1 1.406 0 .828.672 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.595-.341-1.101-.844-1.344.09-.09.205-.156.344-.156h2c.823 0 1.5-.677 1.5-1.5v-.594c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5c0 .656.414 1.202 1 1.406v.594c0 .277-.223.5-.5.5h-2c-.171 0-.346.04-.5.094v-1.188c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5z" id="fork"></path>
223
-
224
- <path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z" id="fullscreen-enter"></path>
225
-
226
- <path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z" id="fullscreen-exit"></path>
227
-
228
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.333 0 .637.086.938.188-.214.197-.45.383-.406.563.04.18.688.13.688.5 0 .27-.425.346-.125.656.35.35-.636.978-.656 1.438-.03.83.841.969 1.531.969.424 0 .503.195.469.438-.546.758-1.438 1.25-2.438 1.25-.378 0-.729-.09-1.063-.219.224-.442-.313-1.344-.781-1.625-.226-.226-.689-.114-.969-.219-.092-.271-.178-.545-.188-.844.031-.05.081-.094.156-.094.19 0 .454.374.594.344.18-.04-.742-1.313-.313-1.563.2-.12.609.394.469-.156-.12-.51.366-.276.656-.406.26-.11.455-.414.125-.594l-.219-.188c.45-.27.972-.438 1.531-.438zm2.313 1.094c.184.222.323.481.438.75l-.188.219c-.29.27-.327-.212-.438-.313-.13-.11-.638.025-.688-.125-.077-.181.499-.418.875-.531z" id="globe"></path>
229
-
230
- <path d="M7.031 0l-3.031 3-1-1-3 3.031 1 1 2-2.031 1 1 4-4-.969-1zm-7.031 7v1h8v-1h-8z" id="graph"></path>
231
-
232
- <path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="grid-four-up"></path>
233
-
234
- <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="grid-three-up"></path>
235
-
236
- <path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z" id="grid-two-up"></path>
237
-
238
- <path d="M.188 0c-.11 0-.188.077-.188.188v3.313c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.313c0-.11-.077-.188-.188-.188h-6.625zm-.188 4.906v2.906c0 .11.077.188.188.188h6.625c.11 0 .188-.077.188-.188v-2.906c-.16.05-.32.094-.5.094h-6c-.18 0-.34-.044-.5-.094zm5.5 1.094c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="hard-drive"></path>
239
-
240
- <path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z" id="header"></path>
241
-
242
- <path d="M4 0c-1.651 0-3 1.349-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.109.891-2 2-2s2 .891 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.651-1.349-3-3-3z" id="headphones"></path>
243
-
244
- <path d="M2 1c-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0 .55.224 1.046.594 1.406l3.406 3.438 3.406-3.438c.37-.37.594-.856.594-1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594z" id="heart"></path>
245
-
246
- <path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.031l1 .031-4-3z" id="home"></path>
247
-
248
- <path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z" id="image"></path>
249
-
250
- <path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h7.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-7.625zm.813 2h6v3h-1l-1 1h-2l-1-1h-1v-3z" id="inbox"></path>
251
-
252
- <path d="M2 2c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.559 2-1.219.58.66 1.19 1.219 2 1.219 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.559-2 1.219-.57-.66-1.21-1.219-2-1.219zm0 1c.42 0 .884.47 1.344 1-.46.53-.924 1-1.344 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.894-.47-1.344-1 .45-.53.914-1 1.344-1z" id="infinity"></path>
253
-
254
- <path d="M5 0c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" id="info"></path>
255
-
256
- <path d="M2 0v1h1.625l-.063.125-2 5-.344.875h-1.219v1h5v-1h-1.625l.063-.125 2-5 .344-.875h1.219v-1h-5z" id="italic"></path>
257
-
258
- <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="justify-center"></path>
259
-
260
- <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="justify-left"></path>
261
-
262
- <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="justify-right"></path>
263
-
264
- <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16.033.297.063.438l-3.063 3.063v2h3v-2h2v-1l.063-.063c.14.03.277.063.438.063 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="key"></path>
265
-
266
- <path d="M1.344 0a.5.5 0 0 0-.344.5v3.5h-1v1.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)" id="laptop"></path>
267
-
268
- <path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z" id="layers"></path>
269
-
270
- <path d="M3.406 0a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 1 0 .438.875l3-1.5a.5.5 0 0 0-.313-.938zm1 1.5a.5.5 0 0 0-.125.063l-4 2a.5.5 0 1 0 .438.875l4-2a.5.5 0 0 0-.313-.938zm0 2a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 0 0 .219.938h2a.502.502 0 0 0 .156-1l1.063-.563a.5.5 0 0 0-.313-.938zm-2.563 3.5a.502.502 0 0 0 .156 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" transform="translate(1)" id="lightbulb"></path>
271
-
272
- <path d="M2 0v1h-1v1h2v-2h-1zm3.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469l-.438.438a.5.5 0 1 0 .688.688l.438-.438c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5a.5.5 0 1 0 .688.688l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-3.594 2.906a.5.5 0 0 0-.188.156l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469l.438-.438a.5.5 0 1 0-.688-.688l-.438.438c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5a.5.5 0 0 0-.438-.844.5.5 0 0 0-.063 0zm2.719 3.063v2h1v-1h1v-1h-2z" id="link-broken"></path>
273
-
274
- <path d="M5.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469a.5.5 0 1 0 .688.688c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5c-.434.434-.799.483-1.063.469-.264-.015-.406-.125-.406-.125a.504.504 0 1 0-.5.875s.34.222.844.25c.504.028 1.197-.165 1.813-.781l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-2 2.313c-.501-.019-1.186.155-1.781.75l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469a.5.5 0 1 0-.688-.688c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5c.405-.405.752-.448 1.031-.438.279.011.469.094.469.094a.5.5 0 1 0 .438-.875s-.343-.199-.844-.219z" id="link-intact"></path>
275
-
276
- <path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z" id="list-rich"></path>
277
-
278
- <path d="M.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6z" id="list"></path>
279
-
280
- <path d="M8 0l-8 4 3 1 1 3 4-8z" id="location"></path>
281
-
282
- <path d="M4 0c-1.099 0-2 .901-2 2v1h-1v4h6v-4h-1v-1c0-1.099-.901-2-2-2zm0 1c.561 0 1 .439 1 1v1h-2v-1c0-.561.439-1 1-1z" id="lock-locked"></path>
283
-
284
- <path d="M4 0c-1.099 0-2 .901-2 2h1c0-.561.439-1 1-1 .561 0 1 .439 1 1v2h-4v4h6v-4h-1v-2c0-1.099-.901-2-2-2z" id="lock-unlocked"></path>
285
-
286
- <path d="M4 1c-1.651 0-3 1.349-3 3h-1l1.5 2 1.5-2h-1c0-1.109.891-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3h1l-1.5-2z" id="loop-circular"></path>
287
-
288
- <path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z" id="loop-square"></path>
289
-
290
- <path d="M6 0v1h-5c-.554 0-1 .446-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.542 0 1-.458 1-1v-1h-1v1h-5v-1z" id="loop"></path>
291
-
292
- <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .125.125l1 1a1.016 1.016 0 1 0 1.438-1.438l-1-1a1 1 0 0 0-.156-.125c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .661-.241 1.273-.656 1.719l-.031.031a1 1 0 0 0-.125.125c-.442.397-1.043.625-1.688.625-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5z" id="magnifying-glass"></path>
293
-
294
- <path d="M4 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z" id="map-marker"></path>
295
-
296
- <path d="M0 0v8h8v-2.375a.5.5 0 0 0 0-.219v-5.406h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="map"></path>
297
-
298
- <path d="M1 1v6h2v-6h-2zm4 0v6h2v-6h-2z" id="media-pause"></path>
299
-
300
- <path d="M1 1v6l6-3-6-3z" id="media-play"></path>
301
-
302
- <path d="M4 1c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z" id="media-record"></path>
303
-
304
- <path d="M4 1l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" id="media-skip-backward"></path>
305
-
306
- <path d="M0 1v6l4-3-4-3zm4 3v3l4-3-4-3v3z" id="media-skip-forward"></path>
307
-
308
- <path d="M0 1v6h2v-6h-2zm2 3l5 3v-6l-5 3z" id="media-step-backward"></path>
309
-
310
- <path d="M0 1v6l5-3-5-3zm5 3v3h2v-6h-2v3z" id="media-step-forward"></path>
311
-
312
- <path d="M1 1v6h6v-6h-6z" id="media-stop"></path>
313
-
314
- <path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z" id="medical-cross"></path>
315
-
316
- <path d="M0 1v1h8v-1h-8zm0 2.969v1h8v-1h-8zm0 3v1h8v-1h-8z" id="menu"></path>
317
-
318
- <path d="M2.906-.031a1 1 0 0 0-.125.031 1 1 0 0 0-.781 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.094-1.031zm-2.563 2.031a.5.5 0 0 0-.344.5v.5c0 1.476 1.091 2.693 2.5 2.938v1.063h-.5c-.55 0-1 .45-1 1h4c0-.55-.45-1-1-1h-.5v-1.063c1.409-.244 2.5-1.461 2.5-2.938v-.5a.5.5 0 1 0-1 0v.5c0 1.109-.891 2-2 2s-2-.891-2-2v-.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" transform="translate(1)" id="microphone"></path>
319
-
320
- <path d="M0 3v2h8v-2h-8z" id="minus"></path>
321
-
322
- <path d="M.344 0a.5.5 0 0 0-.344.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h6v4h-6v-4z" id="monitor"></path>
323
-
324
- <path d="M2.719 0c-1.58.53-2.719 2.021-2.719 3.781 0 2.21 1.79 4 4 4 1.76 0 3.251-1.17 3.781-2.75-.4.14-.831.25-1.281.25-2.21 0-4-1.79-4-4 0-.44.079-.881.219-1.281z" id="moon"></path>
325
-
326
- <path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z" id="move"></path>
327
-
328
- <path d="M8 0c-5 0-6 1-6 1v4.094c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-3.969c.732-.226 1.99-.438 4-.5v2.063c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-5.5z" id="musical-note"></path>
329
-
330
- <path d="M5 0c-.514 0-1.021.201-1.406.594l-2.781 2.719c-1.07 1.07-1.07 2.805 0 3.875 1.07 1.07 2.805 1.07 3.875 0l1.25-1.25-.688-.688-.906.875-.344.375c-.69.69-1.81.69-2.5 0-.682-.682-.668-1.778 0-2.469l2.781-2.719v-.031c.389-.395 1.037-.4 1.438 0 .388.381.378 1.006 0 1.406l-2.5 2.469c-.095.095-.28.095-.375 0-.095-.095-.095-.28 0-.375l.375-.344.594-.625-.688-.688-.875.875-.094.094c-.485.485-.485 1.265 0 1.75.485.485 1.265.485 1.75 0l2.5-2.438c.78-.78.785-2.041 0-2.813-.39-.39-.893-.594-1.406-.594z" id="paperclip"></path>
331
-
332
- <path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z" id="pencil"></path>
333
-
334
- <path d="M5.5 0c-.51 0-.949.355-1.219.875.45.54.719 1.275.719 2.125 0 .29-.034.574-.094.844.18.11.374.156.594.156.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.828 0-1.5.895-1.5 2s.672 2 1.5 2 1.5-.895 1.5-2-.672-2-1.5-2zm4.75 3.156c-.43.51-1.018.824-1.688.844.27.38.438.844.438 1.344v.656h2v-1.656c0-.52-.31-.968-.75-1.188zm-6.5 1c-.44.22-.75.668-.75 1.188v1.656h5v-1.656c0-.52-.31-.968-.75-1.188-.44.53-1.06.844-1.75.844s-1.31-.314-1.75-.844z" id="people"></path>
335
-
336
- <path d="M4 0c-1.105 0-2 1.119-2 2.5s.895 2.5 2 2.5 2-1.119 2-2.5-.895-2.5-2-2.5zm-2.094 5c-1.07.04-1.906.92-1.906 2v1h8v-1c0-1.08-.836-1.96-1.906-2-.54.61-1.284 1-2.094 1-.81 0-1.554-.39-2.094-1z" id="person"></path>
337
-
338
- <path d="M1.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-4.625zm.813 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="phone"></path>
339
-
340
- <path d="M3.5 0c-.97 0-1.839.391-2.469 1.031l2.969 2.969v-3.969c-.16-.03-.33-.031-.5-.031zm1.5 1.063v3.406l-2.719 2.719c.6.5 1.369.813 2.219.813 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.197-3-3.438zm-4.094 1.313c-.55.54-.906 1.285-.906 2.125 0 .95.435 1.804 1.125 2.344l2.156-2.125-2.375-2.344z" id="pie-chart"></path>
341
-
342
- <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.438 1 .563-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" id="pin"></path>
343
-
344
- <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l3 2-3 2v-4z" id="play-circle"></path>
345
-
346
- <path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z" id="plus"></path>
347
-
348
- <path d="M3 0v4h1v-4h-1zm-1.281 1.438l-.375.313c-.803.64-1.344 1.634-1.344 2.75 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-1.116-.529-2.11-1.344-2.75l-.375-.313-.625.781.375.313c.585.46.969 1.165.969 1.969 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5c0-.804.361-1.509.938-1.969l.406-.313-.625-.781z" id="power-standby"></path>
349
-
350
- <path d="M2 0v2h4v-2h-4zm-1.906 3c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h.906v-2h6v2h.906c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-7.813zm1.906 2v3h4v-3h-4z" id="print"></path>
351
-
352
- <path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z" id="project"></path>
353
-
354
- <path d="M3.25 0l-.469 1.531-.781 2.563-.031-.063-.094-.344h-1.875v1h1.156l.375 1.156.469 1.469.469-1.469.781-2.5.781 2.5.406 1.313.531-1.281.594-1.469.125.281h2.313v-1h-1.688l-.375-.719-.5-1-.406 1.031-.469 1.188-.844-2.656-.469-1.531z" id="pulse"></path>
355
-
356
- <path d="M3 0c-.28 0-.539.101-.719.281-.18.18-.281.439-.281.719 0 .28.181.479.281.719.03.06.063.161.063.281h-2.344v6h2.344c0-.12-.011-.221-.031-.281-.11-.24-.313-.439-.313-.719 0-.28.101-.539.281-.719.18-.18.439-.281.719-.281.28 0 .539.101.719.281.18.18.281.439.281.719 0 .28-.181.479-.281.719-.03.06-.063.161-.063.281h2.344v-2.344c.12 0 .221.011.281.031.24.11.439.313.719.313.28 0 .539-.101.719-.281.18-.18.281-.439.281-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281-.28 0-.479.181-.719.281-.06.03-.161.063-.281.063v-2.344h-2.344c0-.12.011-.221.031-.281.11-.24.313-.439.313-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281z" id="puzzle-piece"></path>
357
-
358
- <path d="M4.469 0c-.854 0-1.48.256-1.875.656s-.54.901-.594 1.281l1 .125c.036-.26.125-.497.313-.688.188-.19.491-.375 1.156-.375.664 0 1.019.163 1.219.344.199.181.281.405.281.656 0 .833-.313 1.063-.813 1.5-.5.438-1.188 1.083-1.188 2.25v.25h1v-.25c0-.833.344-1.063.844-1.5.5-.438 1.156-1.083 1.156-2.25 0-.479-.168-1.02-.594-1.406-.426-.387-1.071-.594-1.906-.594zm-.5 7v1h1v-1h-1z" id="question-mark"></path>
359
-
360
- <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .52.201 1.015.531 1.375.26-.22.599-.375.969-.375.2 0 .393.055.563.125.17-.64.748-1.125 1.438-1.125s1.268.485 1.438 1.125c.17-.07.362-.125.563-.125.63 0 1.155.388 1.375.938.64-.17 1.125-.747 1.125-1.438 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.156 5a.5.5 0 0 0-.344.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm-2 1a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm4 0a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="rain"></path>
361
-
362
- <path d="M6 0v1h-.5c-.354 0-.6.116-.813.375l-1.406 1.75-1.5-1.75v-.031c-.212-.236-.427-.344-.781-.344h-1v1h1.031v.031l1.625 1.906-1.625 2.031v.031h-1.031v1h1c.354 0 .6-.116.813-.375l1.531-1.906 1.625 1.906v.031c.212.236.427.344.781.344h.25v1l2-1.5-2-1.5v1h-.281v-.031l-1.75-2.063 1.5-1.875v-.031h.531v1l2-1.5-2-1.5z" id="random"></path>
363
-
364
- <path d="M4 0c-2.201 0-4 1.799-4 4s1.799 4 4 4c1.104 0 2.092-.456 2.813-1.188l-.688-.688c-.54.548-1.289.875-2.125.875-1.659 0-3-1.341-3-3s1.341-3 3-3c.834 0 1.545.354 2.094.906l-1.094 1.094h3v-3l-1.188 1.188c-.731-.72-1.719-1.188-2.813-1.188z" id="reload"></path>
365
-
366
- <path d="M4 0l1.656 1.656-4 4-1.656-1.656v4h4l-1.656-1.656 4-4 1.656 1.656v-4h-4z" id="resize-both"></path>
367
-
368
- <path d="M3.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" id="resize-height"></path>
369
-
370
- <path d="M3 1l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" id="resize-width"></path>
371
-
372
- <path d="M0 0v2c3.331 0 6 2.669 6 6h2c0-4.409-3.591-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.89-2-2-2z" id="rss-alt"></path>
373
-
374
- <path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.221 0 4 1.779 4 4h1c0-2.759-2.241-5-5-5zm0 2v1c1.109 0 2 .891 2 2h1c0-1.651-1.349-3-3-3zm0 2c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="rss"></path>
375
-
376
- <path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z" id="script"></path>
377
-
378
- <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h4.5c.402 0 .75-.348.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.704 1.544-3.938 3.531.213-.875.999-1.531 1.938-1.531h2v1l2-2-2-2z" id="share-boxed"></path>
379
-
380
- <path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.156-3-2.844z" id="share"></path>
381
-
382
- <path d="M4 0l-.188.094-3.5 1.469-.313.125v.313c0 1.657.666 3.122 1.469 4.188.401.533.828.969 1.25 1.281.422.313.826.531 1.281.531.455 0 .86-.219 1.281-.531.422-.313.849-.749 1.25-1.281.803-1.065 1.469-2.53 1.469-4.188v-.313l-.313-.125-3.5-1.469-.188-.094zm0 1.094v5.906c-.045 0-.328-.069-.656-.313s-.714-.631-1.063-1.094c-.642-.851-1.137-2.025-1.219-3.281l2.938-1.219z" id="shield"></path>
383
-
384
- <path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z" id="signal"></path>
385
-
386
- <path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z" id="signpost"></path>
387
-
388
- <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z" id="sort-ascending"></path>
389
-
390
- <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z" id="sort-descending"></path>
391
-
392
- <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h6.5c.402 0 .75-.348.75-.75v-5.5c0-.402-.348-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z" id="spreadsheet"></path>
393
-
394
- <path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z" id="star"></path>
395
-
396
- <path d="M4 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-3.5 1.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm7 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-6 2.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="sun"></path>
397
-
398
- <path d="M.344 0c-.18 0-.344.164-.344.344v7.313c0 .18.164.344.344.344h6.313c.18 0 .344-.164.344-.344v-7.313c0-.18-.164-.344-.344-.344h-6.313zm.656 1h5v5h-5v-5zm2.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tablet"></path>
399
-
400
- <path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="tag"></path>
401
-
402
- <path d="M0 1v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.406 0l3 3-1.188 1.219.781.781 2-2-3-3h-1.594zm-1.906 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tags"></path>
403
-
404
- <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-1.099 0-2 .901-2 2s.901 2 2 2 2-.901 2-2-.901-2-2-2zm0 1c.558 0 1 .442 1 1s-.442 1-1 1-1-.442-1-1 .442-1 1-1z" id="target"></path>
405
-
406
- <path d="M0 0v7h7v-3.594l-1 1v1.594h-5v-5h3.594l1-1h-5.594zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z" id="task"></path>
407
-
408
- <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-7.813zm1.406.781l1.719 1.719-1.719 1.719-.719-.719 1-1-1-1 .719-.719zm2.5 2.219h3v1h-3v-1z" id="terminal"></path>
409
-
410
- <path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z" id="text"></path>
411
-
412
- <path d="M0 0v4h1v-4h-1zm2 0v4.001c.28 0 .529.101.719.281.18.19 1.151 2.115 1.281 2.375.13.26.386.393.656.313.26-.08.393-.355.313-.625-.08-.26-.469-1.594-.469-1.844s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5l-1.031-3.188c-.08-.18-.259-.313-.469-.313h-3.5z" id="thumb-down"></path>
413
-
414
- <path d="M4.438 0c-.19.021-.34.149-.438.344-.13.26-1.101 2.185-1.281 2.375-.19.18-.439.281-.719.281v4.001h3.5c.21 0 .389-.133.469-.313 0 0 1.031-2.908 1.031-3.188 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.389-1.574.469-1.844c.08-.27-.053-.545-.313-.625l-.219-.031zm-4.438 3v4h1v-4h-1z" id="thumb-up"></path>
415
-
416
- <path d="M2 0v1h1v.031c-1.697.241-3 1.707-3 3.469 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-.45-.086-.874-.219-1.25l-.938.344c.107.304.156.596.156.906 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5 1.109-2.5 2.5-2.5c.298 0 .585.051.875.156l.344-.938c-.221-.081-.471-.119-.719-.156v-.063h1v-1h-3zm5 1.125s-3.675 2.8-3.875 3c-.2.2-.2.519 0 .719.2.2.519.2.719 0 .2-.19 3.156-3.719 3.156-3.719z" id="timer"></path>
417
-
418
- <path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z" id="transfer"></path>
419
-
420
- <path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.813c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-4.813h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z" id="trash"></path>
421
-
422
- <path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z" id="underline"></path>
423
-
424
- <path d="M.094 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm-3 2c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm-3.094 4v1h8v-1h-8z" id="vertical-align-bottom"></path>
425
-
426
- <path d="M.094 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm-3 1c-.06 0-.094.034-.094.094v.906h2v-.906c0-.06-.034-.094-.094-.094h-1.813zm-3.094 2v1h8v-1h-8zm0 2v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2zm3 0v.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-.906h-2zm3 0v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2z" id="vertical-align-center"></path>
427
-
428
- <path d="M0 0v1h8v-1h-8zm.094 2c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813z" id="vertical-align-top"></path>
429
-
430
- <path d="M.5 1c-.28 0-.5.22-.5.5v4c0 .28.22.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" id="video"></path>
431
-
432
- <path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 1v1c.152 0 .313.026.469.063h.031c.86.215 1.5.995 1.5 1.938 0 .942-.64 1.722-1.5 1.938-.166.041-.338.063-.5.063v1c.258 0 .516-.035.75-.094 1.3-.325 2.25-1.508 2.25-2.906 0-1.398-.95-2.581-2.25-2.906-.234-.059-.492-.094-.75-.094zm0 2v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-high"></path>
433
-
434
- <path d="M4.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 3v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-low"></path>
435
-
436
- <path d="M5.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656z" id="volume-off"></path>
437
-
438
- <path d="M3.094 0c-.06 0-.105.044-.125.094l-2.938 6.813-.031.188v.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-.813l-.031-.188-2.938-6.813c-.02-.05-.065-.094-.125-.094h-.813zm-.094 3h1v2h-1v-2zm0 3h1v1h-1v-1z" id="warning"></path>
439
-
440
- <path d="M3.75 0c-1.374 0-2.66.372-3.75 1.063l.531.875c.93-.59 2.033-.938 3.219-.938 1.2 0 2.323.31 3.25.906l.531-.813c-1.093-.703-2.401-1.094-3.781-1.094zm.031 3c-.795 0-1.531.227-2.156.625l.531.844c.475-.302 1.02-.469 1.625-.469.593 0 1.13.177 1.594.469l.531-.844c-.616-.388-1.338-.625-2.125-.625zm-.031 3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="wifi"></path>
441
-
442
- <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.078.626.188.906l-2.906 2.875c-.39.39-.39 1.016 0 1.406.2.2.459.313.719.313.26 0 .519-.091.719-.281l2.875-2.875c.28.1.586.156.906.156 1.38 0 2.5-1.12 2.5-2.5 0-.16-.032-.297-.063-.438l-.938.938h-2v-2l.938-.938c-.14-.03-.277-.062-.438-.063zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="wrench"></path>
443
-
444
- <path d="M1.406 0l-1.406 1.406.688.719 1.781 1.781-1.781 1.781-.688.719 1.406 1.406.719-.688 1.781-1.781 1.781 1.781.719.688 1.406-1.406-.688-.719-1.781-1.781 1.781-1.781.688-.719-1.406-1.406-.719.688-1.781 1.781-1.781-1.781-.719-.688z" id="x"></path>
445
-
446
- <path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.313 3h-.375l-2.313-3h-1z" id="yen"></path>
447
-
448
- <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z" id="zoom-in"></path>
449
-
450
- <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z" id="zoom-out"></path>
451
- </defs>
452
  </svg>
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 8 8" style="display:none;">
2
+ <symbol viewBox="0 0 8 8" id="account-login">
3
+ <path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z" id="account-login"></path>
4
+ </symbol>
5
+ <defs>
6
+
7
+
8
+ <path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z" id="account-logout"></path>
9
+
10
+ <path d="M3.5 1c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-redo"></path>
11
+
12
+ <path d="M4.5 1c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-undo"></path>
13
+
14
+ <path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="align-center"></path>
15
+
16
+ <path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="align-left"></path>
17
+
18
+ <path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="align-right"></path>
19
+
20
+ <path d="M4 0c-.69 0-1.336.19-1.906.5l3.219 2.344.719-2.25c-.59-.36-1.281-.594-2.031-.594zm-2.75 1.125c-.76.73-1.25 1.735-1.25 2.875 0 .25.022.489.063.719l3.094-2.219-1.906-1.375zm5.625.125l-1.219 3.75h2.219c.08-.32.125-.65.125-1 0-1.07-.435-2.03-1.125-2.75zm-4.719 3.188l-1.75 1.281c.55 1.13 1.595 1.989 2.875 2.219l-1.125-3.5zm1.563 1.563l.625 1.969c1.33-.11 2.454-.879 3.094-1.969h-3.719z" id="aperture"></path>
21
+
22
+ <path d="M3 0v5h-2l2.531 3 2.469-3h-2v-5h-1z" id="arrow-bottom"></path>
23
+
24
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z" id="arrow-circle-bottom"></path>
25
+
26
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z" id="arrow-circle-left"></path>
27
+
28
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z" id="arrow-circle-right"></path>
29
+
30
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z" id="arrow-circle-top"></path>
31
+
32
+ <path d="M3 1l-3 2.531 3 2.469v-2h5v-1h-5v-2z" id="arrow-left"></path>
33
+
34
+ <path d="M5 1v2h-5v1h5v2l3-2.531-3-2.469z" id="arrow-right"></path>
35
+
36
+ <path d="M3 0v5h-2l3.031 3 2.969-3h-2v-5h-2z" id="arrow-thick-bottom"></path>
37
+
38
+ <path d="M3 1l-3 3.031 3 2.969v-2h5v-2h-5v-2z" id="arrow-thick-left"></path>
39
+
40
+ <path d="M5 1v2h-5v2h5v2l3-3.031-3-2.969z" id="arrow-thick-right"></path>
41
+
42
+ <path d="M3.969 0l-2.969 3h2v5h2v-5h2l-3.031-3z" id="arrow-thick-top"></path>
43
+
44
+ <path d="M3.469 0l-2.469 3h2v5h1v-5h2l-2.531-3z" id="arrow-top"></path>
45
+
46
+ <path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z" id="audio-spectrum"></path>
47
+
48
+ <path d="M1.188 1c-.734.722-1.188 1.748-1.188 2.844 0 1.095.454 2.09 1.188 2.813l.688-.719c-.546-.538-.875-1.269-.875-2.094s.329-1.587.875-2.125l-.688-.719zm5.625 0l-.688.719c.552.552.875 1.289.875 2.125 0 .836-.327 1.554-.875 2.094l.688.719c.732-.72 1.188-1.708 1.188-2.813 0-1.104-.459-2.115-1.188-2.844zm-4.219 1.406c-.362.362-.594.889-.594 1.438 0 .548.232 1.045.594 1.406l.688-.719c-.178-.178-.281-.416-.281-.688 0-.272.103-.54.281-.719l-.688-.719zm2.813 0l-.688.719c.183.183.281.434.281.719s-.099.505-.281.688l.688.719c.357-.357.594-.851.594-1.406 0-.555-.236-1.08-.594-1.438z" id="audio"></path>
49
+
50
+ <path d="M4 0c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-1 4.813v3.188l1-1 1 1v-3.188c-.31.11-.65.188-1 .188s-.69-.077-1-.188z" id="badge"></path>
51
+
52
+ <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c.655 0 1.258.209 1.75.563l-4.188 4.188c-.353-.492-.563-1.095-.563-1.75 0-1.663 1.337-3 3-3zm2.438 1.25c.353.492.563 1.095.563 1.75 0 1.663-1.337 3-3 3-.655 0-1.258-.209-1.75-.563l4.188-4.188z" id="ban"></path>
53
+
54
+ <path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z" id="bar-chart"></path>
55
+
56
+ <path d="M3.969 0c-.127.011-.259.083-.344.188l-2.344 2.813h-1.281v1h1v3.656c0 .18.164.344.344.344h5.313c.18 0 .344-.164.344-.344v-3.656h1v-1h-1.281c-.274-.329-2.387-2.866-2.406-2.875-.105-.09-.216-.136-.344-.125zm.031 1.281l1.438 1.719h-2.875l1.438-1.719zm-1.5 3.719c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z" id="basket"></path>
57
+
58
+ <path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v4h-5v-4z" id="battery-empty"></path>
59
+
60
+ <path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813z" id="battery-full"></path>
61
+
62
+ <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v1.406c-.088.172-1.194 2.313-1.656 3.094-.153.268-.344.612-.344 1.063 0 .383.139.764.406 1.031.26.26.643.406 1.031.406h5.125c.383 0 .764-.139 1.031-.406.26-.26.406-.643.406-1.031 0-.452-.194-.801-.344-1.063-.463-.78-1.568-2.922-1.656-3.094v-1.406h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm1.656 1h2v1.625l.063.094s.652 1.233 1.219 2.281h-4.563c.567-1.049 1.219-2.281 1.219-2.281l.063-.094v-1.625z" id="beaker"></path>
63
+
64
+ <path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.524 1.976-1.344 2.656-.42.34-.656.824-.656 1.344h8c0-.52-.236-1.004-.656-1.344-.82-.68-1.344-1.616-1.344-2.656 0-1.1-.9-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z" id="bell"></path>
65
+
66
+ <path d="M2.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.531 2.25-1.469-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" id="bluetooth"></path>
67
+
68
+ <path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.588-1.85-1.438-2.25.27-.34.438-.78.438-1.25 0-1.1-.9-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z" id="bold"></path>
69
+
70
+ <path d="M4 0l-3 5h2v3l3-5h-2v-3z" id="bolt"></path>
71
+
72
+ <path d="M1 0l-.188.031c-.39.08-.701.391-.781.781l-.031.188v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z" id="book"></path>
73
+
74
+ <path d="M2 0v8l2-2 2 2v-8h-4z" id="bookmark"></path>
75
+
76
+ <path d="M0 0v1h8v-1h-8zm0 2v5.906c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.906h-2.969v1.031h-2.031v-1.031h-3z" id="box"></path>
77
+
78
+ <path d="M3 0c-.554 0-1 .458-1 1v1h-1.906c-.06 0-.094.034-.094.094v2.406c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.406c0-.06-.034-.094-.094-.094h-1.906v-1c0-.542-.446-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.906v2c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-2c-.16.05-.32.094-.5.094h-7c-.18 0-.34-.044-.5-.094z" id="briefcase"></path>
79
+
80
+ <path d="M4 0c-.619 0-1.159.262-1.5.688-.341.426-.5.986-.5 1.563 0 .692.165 1.245.25 1.75h-1.25v1h1.219c-.112.448-.37.964-1.063 1.656l-.156.125v1.219h6v-1h-4.906c.641-.729.982-1.397 1.125-2h1.781v-1h-1.719c-.078-.683-.281-1.242-.281-1.75 0-.394.115-.731.281-.938.166-.207.368-.313.719-.313.394 0 .609.109.75.25.141.141.25.356.25.75h1c0-.576-.165-1.102-.531-1.469-.366-.366-.893-.531-1.469-.531z" id="british-pound"></path>
81
+
82
+ <path d="M.344 0a.5.5 0 0 0-.344.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm1.156 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z" id="browser"></path>
83
+
84
+ <path d="M7.438.031l-.063.031-3.75 2.656-.125.156-.125.25c.719.229 1.271.781 1.5 1.5l.25-.125c.05-.02.126-.075.156-.125l2.656-3.75c.03-.04.04-.116 0-.156l-.406-.406-.094-.031zm-4.781 3.969c-.73 0-1.313.614-1.313 1.344 0 .99-.544 1.821-1.344 2.281.4.23.864.375 1.344.375 1.48 0 2.656-1.176 2.656-2.656 0-.73-.604-1.344-1.344-1.344z" id="brush"></path>
85
+
86
+ <path d="M3.5 0c-1.19 0-1.978 1.69-1.188 2.5l-.281.219-1.313-.656a.5.5 0 0 0-.344-.063.5.5 0 0 0-.094.938l1.156.563c-.09.156-.186.328-.25.5h-.688a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h.5c0 .227.023.445.063.656l-.781.406a.5.5 0 1 0 .438.875l.656-.344c.245.46.59.844 1 1.094.35-.19.625-.439.625-.719v-1.438a.5.5 0 0 0 0-.094v-.813a.5.5 0 0 0 0-.219c.045-.231.254-.406.5-.406.28 0 .5.22.5.5v.875a.5.5 0 0 0 0 .094v.063a.5.5 0 0 0 0 .094v1.344c0 .27.275.497.625.688.41-.245.755-.604 1-1.063l.656.344a.5.5 0 1 0 .438-.875l-.781-.406c.04-.211.063-.429.063-.656h.5a.5.5 0 1 0 0-1h-.688c-.064-.172-.16-.344-.25-.5l1.156-.563a.5.5 0 0 0-.313-.938.5.5 0 0 0-.125.063l-1.313.656-.281-.219c.78-.83.003-2.5-1.188-2.5z" id="bug"></path>
87
+
88
+ <path d="M6.094 0l-.094.031v5.969h.907c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813zm-1.094.5l-2.906 1.469-.188.031h-1.813c-.06 0-.094.034-.094.094v1.813c0 .06.034.094.094.094h.906l1.031 2.719c.11.25.406.36.656.25.25-.11.36-.406.25-.656l-.719-1.781c.033-.136.136-.25.281-.25v-.031l2.5 1.25v-5z" id="bullhorn"></path>
89
+
90
+ <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calculator"></path>
91
+
92
+ <path d="M0 0v2h7v-2h-7zm0 3v4.906c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-4.906h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calendar"></path>
93
+
94
+ <path d="M4.094 0c-.06 0-.105.044-.125.094l-.938 1.813c-.02.05-.065.094-.125.094h-1.406c-.83 0-1.5.67-1.5 1.5v4.406c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813c-.06 0-.105-.044-.125-.094l-.938-1.813c-.02-.05-.065-.094-.125-.094h-1.813zm-2.594 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z" id="camera-slr"></path>
95
+
96
+ <path d="M0 2l4 4 4-4h-8z" id="caret-bottom"></path>
97
+
98
+ <path d="M6 0l-4 4 4 4v-8z" id="caret-left"></path>
99
+
100
+ <path d="M2 0v8l4-4-4-4z" id="caret-right"></path>
101
+
102
+ <path d="M4 2l-4 4h8l-4-4z" id="caret-top"></path>
103
+
104
+ <path d="M.344 0a.502.502 0 0 0 .156 1h1.5l.094.25.406 1.25.406 1.25c.04.13.204.25.344.25h3.5c.14 0 .304-.12.344-.25l.813-2.531c.04-.12-.016-.219-.156-.219h-4.438l-.375-.719a.5.5 0 0 0-.438-.281h-2a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm3.156 5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm3 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" transform="translate(0 1)" id="cart"></path>
105
+
106
+ <path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z" id="chat"></path>
107
+
108
+ <path d="M6.406 1l-.719.688-2.781 2.781-.781-.781-.719-.688-1.406 1.406.688.719 1.5 1.5.719.688.719-.688 3.5-3.5.688-.719-1.406-1.406z" id="check"></path>
109
+
110
+ <path d="M1.5 1l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" id="chevron-bottom"></path>
111
+
112
+ <path d="M5 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" id="chevron-left"></path>
113
+
114
+ <path d="M2.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" id="chevron-right"></path>
115
+
116
+ <path d="M4 1l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" id="chevron-top"></path>
117
+
118
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.781l.719.719-3.219 3.219-1.719-1.719.719-.719 1 1 2.5-2.5z" id="circle-check"></path>
119
+
120
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="circle-x"></path>
121
+
122
+ <path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z" id="clipboard"></path>
123
+
124
+ <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm-.5 1v2.219l.156.125.5.5.344.375.719-.719-.375-.344-.344-.344v-1.813h-1z" id="clock"></path>
125
+
126
+ <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.719v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.906c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.156 4a.5.5 0 0 0-.344.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="cloud-download"></path>
127
+
128
+ <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.219l2-2 2 2h1.406c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z" id="cloud-upload"></path>
129
+
130
+ <path d="M4.5 1c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloud"></path>
131
+
132
+ <path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.743.25 1.063.3-.21.63-.379 1-.469.55-1.25 1.82-2.084 3.25-2.094-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloudy"></path>
133
+
134
+ <path d="M5 1l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" id="code"></path>
135
+
136
+ <path d="M3.5 0l-.5 1.188-.281.125-1.188-.5-.719.719.5 1.188-.125.281-1.188.5v1l1.188.5.125.313-.5 1.156.719.719 1.188-.5.281.125.5 1.188h1l.5-1.188.281-.125 1.188.5.719-.719-.5-1.188.125-.281 1.188-.5v-1l-1.188-.5-.125-.281.469-1.188-.688-.719-1.188.5-.281-.125-.5-1.188h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z" id="cog"></path>
137
+
138
+ <path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z" id="collapse-down"></path>
139
+
140
+ <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z" id="collapse-left"></path>
141
+
142
+ <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z" id="collapse-right"></path>
143
+
144
+ <path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z" id="collapse-up"></path>
145
+
146
+ <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z" id="command"></path>
147
+
148
+ <path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h5.906l2 2v-7.906c0-.06-.034-.094-.094-.094h-7.813z" id="comment-square"></path>
149
+
150
+ <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="compass"></path>
151
+
152
+ <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3v-6z" id="contrast"></path>
153
+
154
+ <path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="copywriting"></path>
155
+
156
+ <path d="M.25 1c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="credit-card"></path>
157
+
158
+ <path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z" id="crop"></path>
159
+
160
+ <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-1.656 1a.5.5 0 0 0-.188.844l.906.906-.063.25c0 .552.448 1 1 1s1-.448 1-1-.448-1-1-1l-.25.063-.906-.906a.5.5 0 0 0-.438-.156.5.5 0 0 0-.063 0zm3.156 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="dashboard"></path>
161
+
162
+ <path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z" id="data-transfer-download"></path>
163
+
164
+ <path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z" id="data-transfer-upload"></path>
165
+
166
+ <path d="M2 1l-2 3 2 3h6v-6h-6zm1.5.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="delete"></path>
167
+
168
+ <path d="M4 1c-2.201 0-4 1.799-4 4h1c0-1.659 1.341-3 3-3s3 1.341 3 3h1c0-2.201-1.799-4-4-4zm-.594 2.094c-.82.25-1.406 1.006-1.406 1.906 0 1.1.9 2 2 2s2-.9 2-2c0-.9-.586-1.656-1.406-1.906l-.594.875-.594-.875z" id="dial"></path>
169
+
170
+ <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z" id="document"></path>
171
+
172
+ <path d="M3 0v1h-.75c-.686 0-1.25.564-1.25 1.25v.5c0 .678.437 1.242 1.094 1.406l2.563.656c.143.036.344.296.344.438v.5c0 .134-.116.25-.25.25h-2.5c-.116 0-.212-.037-.25-.063v-.938h-1v1c0 .342.203.627.438.781.234.155.518.219.813.219h.75v1h1v-1h.75c.686 0 1.25-.564 1.25-1.25v-.5c0-.678-.437-1.242-1.094-1.406l-2.563-.656c-.143-.036-.344-.296-.344-.438v-.5c0-.134.116-.25.25-.25h2.5c.116 0 .212.037.25.063v.938h1v-1c0-.342-.203-.627-.438-.781-.234-.155-.518-.219-.813-.219h-.75v-1h-1z" id="dollar"></path>
173
+
174
+ <path d="M0 1v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" id="double-quote-sans-left"></path>
175
+
176
+ <path d="M3 1l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" id="double-quote-sans-right"></path>
177
+
178
+ <path d="M3 1c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1zm5 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1z" id="double-quote-serif-left"></path>
179
+
180
+ <path d="M0 1v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3zm5 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3z" id="double-quote-serif-right"></path>
181
+
182
+ <path d="M4 0l-.344.344c-.11.11-2.656 2.685-2.656 4.875 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.19-2.546-4.765-2.656-4.875l-.344-.344zm-1.5 4.719c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" id="droplet"></path>
183
+
184
+ <path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z" id="eject"></path>
185
+
186
+ <path d="M4 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" id="elevator"></path>
187
+
188
+ <path d="M0 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="ellipses"></path>
189
+
190
+ <path d="M0 1v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" id="envelope-closed"></path>
191
+
192
+ <path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.125l3 1.5v1.875l-3 1.5-3-1.5v-1.875l3-1.5zm-2 1.875v1l2 1 2-1v-1h-4z" id="envelope-open"></path>
193
+
194
+ <path d="M5 0c-1.858 0-3.398 1.278-3.844 3h-1.906l-.25 1h2c0 .345.073.68.156 1h-1.969l-.188 1h2.563c.696 1.185 1.969 2 3.438 2 .734 0 1.407-.215 2-.563v-1.219c-.531.479-1.225.781-2 .781-.888 0-1.671-.392-2.219-1h2.219l.156-1h-2.969c-.113-.317-.188-.643-.188-1h3.344l.156-1h-3.313c.414-1.16 1.507-2 2.813-2 .655 0 1.258.209 1.75.563l.156-1.063c-.57-.313-1.213-.5-1.906-.5z" id="euro"></path>
195
+
196
+ <path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="excerpt"></path>
197
+
198
+ <path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z" id="expand-down"></path>
199
+
200
+ <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z" id="expand-left"></path>
201
+
202
+ <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z" id="expand-right"></path>
203
+
204
+ <path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z" id="expand-up"></path>
205
+
206
+ <path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z" id="external-link"></path>
207
+
208
+ <path d="M4.031 1c-2.53 0-4.031 3-4.031 3s1.501 3 4.031 3c2.47 0 3.969-3 3.969-3s-1.499-3-3.969-3zm-.031 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.032-.191-.063-.281-.08.16-.237.281-.438.281-.28 0-.5-.22-.5-.5 0-.2.121-.357.281-.438-.09-.03-.181-.063-.281-.063z" id="eye"></path>
209
+
210
+ <path d="M3.313 0a.5.5 0 0 0-.188.844l.625.625-3.594 3.656-.156.156v2.719h2.719l.125-.156 3.656-3.656.625.656a.5.5 0 1 0 .719-.688l-.938-.938.656-.656c.59-.58.59-1.545 0-2.125-.56-.57-1.555-.57-2.125 0l-.656.656-.938-.938a.5.5 0 0 0-.469-.156.5.5 0 0 0-.063 0zm1.156 2.188l1.313 1.313-3.156 3.156-1.281-1.313 3.125-3.156z" id="eyedropper"></path>
211
+
212
+ <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z" id="file"></path>
213
+
214
+ <path d="M2 0c1 2-2 3-2 5l2 3c-.98-1.98 2-3 2-5l-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z" id="fire"></path>
215
+
216
+ <path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.969 2-2.031h-3v-1h-3z" id="flag"></path>
217
+
218
+ <path d="M3.5 0l-1.5 3h2l-.656 2h-1.344l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" id="flash"></path>
219
+
220
+ <path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z" id="folder"></path>
221
+
222
+ <path d="M1.5 0c-.828 0-1.5.672-1.5 1.5 0 .656.414 1.202 1 1.406v2.188c-.586.204-1 .75-1 1.406 0 .828.672 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.595-.341-1.101-.844-1.344.09-.09.205-.156.344-.156h2c.823 0 1.5-.677 1.5-1.5v-.594c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5c0 .656.414 1.202 1 1.406v.594c0 .277-.223.5-.5.5h-2c-.171 0-.346.04-.5.094v-1.188c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5z" id="fork"></path>
223
+
224
+ <path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z" id="fullscreen-enter"></path>
225
+
226
+ <path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z" id="fullscreen-exit"></path>
227
+
228
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.333 0 .637.086.938.188-.214.197-.45.383-.406.563.04.18.688.13.688.5 0 .27-.425.346-.125.656.35.35-.636.978-.656 1.438-.03.83.841.969 1.531.969.424 0 .503.195.469.438-.546.758-1.438 1.25-2.438 1.25-.378 0-.729-.09-1.063-.219.224-.442-.313-1.344-.781-1.625-.226-.226-.689-.114-.969-.219-.092-.271-.178-.545-.188-.844.031-.05.081-.094.156-.094.19 0 .454.374.594.344.18-.04-.742-1.313-.313-1.563.2-.12.609.394.469-.156-.12-.51.366-.276.656-.406.26-.11.455-.414.125-.594l-.219-.188c.45-.27.972-.438 1.531-.438zm2.313 1.094c.184.222.323.481.438.75l-.188.219c-.29.27-.327-.212-.438-.313-.13-.11-.638.025-.688-.125-.077-.181.499-.418.875-.531z" id="globe"></path>
229
+
230
+ <path d="M7.031 0l-3.031 3-1-1-3 3.031 1 1 2-2.031 1 1 4-4-.969-1zm-7.031 7v1h8v-1h-8z" id="graph"></path>
231
+
232
+ <path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="grid-four-up"></path>
233
+
234
+ <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="grid-three-up"></path>
235
+
236
+ <path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z" id="grid-two-up"></path>
237
+
238
+ <path d="M.188 0c-.11 0-.188.077-.188.188v3.313c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.313c0-.11-.077-.188-.188-.188h-6.625zm-.188 4.906v2.906c0 .11.077.188.188.188h6.625c.11 0 .188-.077.188-.188v-2.906c-.16.05-.32.094-.5.094h-6c-.18 0-.34-.044-.5-.094zm5.5 1.094c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="hard-drive"></path>
239
+
240
+ <path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z" id="header"></path>
241
+
242
+ <path d="M4 0c-1.651 0-3 1.349-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.109.891-2 2-2s2 .891 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.651-1.349-3-3-3z" id="headphones"></path>
243
+
244
+ <path d="M2 1c-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0 .55.224 1.046.594 1.406l3.406 3.438 3.406-3.438c.37-.37.594-.856.594-1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594z" id="heart"></path>
245
+
246
+ <path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.031l1 .031-4-3z" id="home"></path>
247
+
248
+ <path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z" id="image"></path>
249
+
250
+ <path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h7.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-7.625zm.813 2h6v3h-1l-1 1h-2l-1-1h-1v-3z" id="inbox"></path>
251
+
252
+ <path d="M2 2c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.559 2-1.219.58.66 1.19 1.219 2 1.219 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.559-2 1.219-.57-.66-1.21-1.219-2-1.219zm0 1c.42 0 .884.47 1.344 1-.46.53-.924 1-1.344 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.894-.47-1.344-1 .45-.53.914-1 1.344-1z" id="infinity"></path>
253
+
254
+ <path d="M5 0c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" id="info"></path>
255
+
256
+ <path d="M2 0v1h1.625l-.063.125-2 5-.344.875h-1.219v1h5v-1h-1.625l.063-.125 2-5 .344-.875h1.219v-1h-5z" id="italic"></path>
257
+
258
+ <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="justify-center"></path>
259
+
260
+ <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="justify-left"></path>
261
+
262
+ <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="justify-right"></path>
263
+
264
+ <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16.033.297.063.438l-3.063 3.063v2h3v-2h2v-1l.063-.063c.14.03.277.063.438.063 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="key"></path>
265
+
266
+ <path d="M1.344 0a.5.5 0 0 0-.344.5v3.5h-1v1.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)" id="laptop"></path>
267
+
268
+ <path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z" id="layers"></path>
269
+
270
+ <path d="M3.406 0a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 1 0 .438.875l3-1.5a.5.5 0 0 0-.313-.938zm1 1.5a.5.5 0 0 0-.125.063l-4 2a.5.5 0 1 0 .438.875l4-2a.5.5 0 0 0-.313-.938zm0 2a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 0 0 .219.938h2a.502.502 0 0 0 .156-1l1.063-.563a.5.5 0 0 0-.313-.938zm-2.563 3.5a.502.502 0 0 0 .156 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" transform="translate(1)" id="lightbulb"></path>
271
+
272
+ <path d="M2 0v1h-1v1h2v-2h-1zm3.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469l-.438.438a.5.5 0 1 0 .688.688l.438-.438c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5a.5.5 0 1 0 .688.688l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-3.594 2.906a.5.5 0 0 0-.188.156l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469l.438-.438a.5.5 0 1 0-.688-.688l-.438.438c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5a.5.5 0 0 0-.438-.844.5.5 0 0 0-.063 0zm2.719 3.063v2h1v-1h1v-1h-2z" id="link-broken"></path>
273
+
274
+ <path d="M5.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469a.5.5 0 1 0 .688.688c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5c-.434.434-.799.483-1.063.469-.264-.015-.406-.125-.406-.125a.504.504 0 1 0-.5.875s.34.222.844.25c.504.028 1.197-.165 1.813-.781l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-2 2.313c-.501-.019-1.186.155-1.781.75l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469a.5.5 0 1 0-.688-.688c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5c.405-.405.752-.448 1.031-.438.279.011.469.094.469.094a.5.5 0 1 0 .438-.875s-.343-.199-.844-.219z" id="link-intact"></path>
275
+
276
+ <path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z" id="list-rich"></path>
277
+
278
+ <path d="M.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6z" id="list"></path>
279
+
280
+ <path d="M8 0l-8 4 3 1 1 3 4-8z" id="location"></path>
281
+
282
+ <path d="M4 0c-1.099 0-2 .901-2 2v1h-1v4h6v-4h-1v-1c0-1.099-.901-2-2-2zm0 1c.561 0 1 .439 1 1v1h-2v-1c0-.561.439-1 1-1z" id="lock-locked"></path>
283
+
284
+ <path d="M4 0c-1.099 0-2 .901-2 2h1c0-.561.439-1 1-1 .561 0 1 .439 1 1v2h-4v4h6v-4h-1v-2c0-1.099-.901-2-2-2z" id="lock-unlocked"></path>
285
+
286
+ <path d="M4 1c-1.651 0-3 1.349-3 3h-1l1.5 2 1.5-2h-1c0-1.109.891-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3h1l-1.5-2z" id="loop-circular"></path>
287
+
288
+ <path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z" id="loop-square"></path>
289
+
290
+ <path d="M6 0v1h-5c-.554 0-1 .446-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.542 0 1-.458 1-1v-1h-1v1h-5v-1z" id="loop"></path>
291
+
292
+ <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .125.125l1 1a1.016 1.016 0 1 0 1.438-1.438l-1-1a1 1 0 0 0-.156-.125c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .661-.241 1.273-.656 1.719l-.031.031a1 1 0 0 0-.125.125c-.442.397-1.043.625-1.688.625-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5z" id="magnifying-glass"></path>
293
+
294
+ <path d="M4 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z" id="map-marker"></path>
295
+
296
+ <path d="M0 0v8h8v-2.375a.5.5 0 0 0 0-.219v-5.406h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="map"></path>
297
+
298
+ <path d="M1 1v6h2v-6h-2zm4 0v6h2v-6h-2z" id="media-pause"></path>
299
+
300
+ <path d="M1 1v6l6-3-6-3z" id="media-play"></path>
301
+
302
+ <path d="M4 1c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z" id="media-record"></path>
303
+
304
+ <path d="M4 1l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" id="media-skip-backward"></path>
305
+
306
+ <path d="M0 1v6l4-3-4-3zm4 3v3l4-3-4-3v3z" id="media-skip-forward"></path>
307
+
308
+ <path d="M0 1v6h2v-6h-2zm2 3l5 3v-6l-5 3z" id="media-step-backward"></path>
309
+
310
+ <path d="M0 1v6l5-3-5-3zm5 3v3h2v-6h-2v3z" id="media-step-forward"></path>
311
+
312
+ <path d="M1 1v6h6v-6h-6z" id="media-stop"></path>
313
+
314
+ <path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z" id="medical-cross"></path>
315
+
316
+ <path d="M0 1v1h8v-1h-8zm0 2.969v1h8v-1h-8zm0 3v1h8v-1h-8z" id="menu"></path>
317
+
318
+ <path d="M2.906-.031a1 1 0 0 0-.125.031 1 1 0 0 0-.781 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.094-1.031zm-2.563 2.031a.5.5 0 0 0-.344.5v.5c0 1.476 1.091 2.693 2.5 2.938v1.063h-.5c-.55 0-1 .45-1 1h4c0-.55-.45-1-1-1h-.5v-1.063c1.409-.244 2.5-1.461 2.5-2.938v-.5a.5.5 0 1 0-1 0v.5c0 1.109-.891 2-2 2s-2-.891-2-2v-.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" transform="translate(1)" id="microphone"></path>
319
+
320
+ <path d="M0 3v2h8v-2h-8z" id="minus"></path>
321
+
322
+ <path d="M.344 0a.5.5 0 0 0-.344.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h6v4h-6v-4z" id="monitor"></path>
323
+
324
+ <path d="M2.719 0c-1.58.53-2.719 2.021-2.719 3.781 0 2.21 1.79 4 4 4 1.76 0 3.251-1.17 3.781-2.75-.4.14-.831.25-1.281.25-2.21 0-4-1.79-4-4 0-.44.079-.881.219-1.281z" id="moon"></path>
325
+
326
+ <path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z" id="move"></path>
327
+
328
+ <path d="M8 0c-5 0-6 1-6 1v4.094c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-3.969c.732-.226 1.99-.438 4-.5v2.063c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-5.5z" id="musical-note"></path>
329
+
330
+ <path d="M5 0c-.514 0-1.021.201-1.406.594l-2.781 2.719c-1.07 1.07-1.07 2.805 0 3.875 1.07 1.07 2.805 1.07 3.875 0l1.25-1.25-.688-.688-.906.875-.344.375c-.69.69-1.81.69-2.5 0-.682-.682-.668-1.778 0-2.469l2.781-2.719v-.031c.389-.395 1.037-.4 1.438 0 .388.381.378 1.006 0 1.406l-2.5 2.469c-.095.095-.28.095-.375 0-.095-.095-.095-.28 0-.375l.375-.344.594-.625-.688-.688-.875.875-.094.094c-.485.485-.485 1.265 0 1.75.485.485 1.265.485 1.75 0l2.5-2.438c.78-.78.785-2.041 0-2.813-.39-.39-.893-.594-1.406-.594z" id="paperclip"></path>
331
+
332
+ <path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z" id="pencil"></path>
333
+
334
+ <path d="M5.5 0c-.51 0-.949.355-1.219.875.45.54.719 1.275.719 2.125 0 .29-.034.574-.094.844.18.11.374.156.594.156.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.828 0-1.5.895-1.5 2s.672 2 1.5 2 1.5-.895 1.5-2-.672-2-1.5-2zm4.75 3.156c-.43.51-1.018.824-1.688.844.27.38.438.844.438 1.344v.656h2v-1.656c0-.52-.31-.968-.75-1.188zm-6.5 1c-.44.22-.75.668-.75 1.188v1.656h5v-1.656c0-.52-.31-.968-.75-1.188-.44.53-1.06.844-1.75.844s-1.31-.314-1.75-.844z" id="people"></path>
335
+
336
+ <path d="M4 0c-1.105 0-2 1.119-2 2.5s.895 2.5 2 2.5 2-1.119 2-2.5-.895-2.5-2-2.5zm-2.094 5c-1.07.04-1.906.92-1.906 2v1h8v-1c0-1.08-.836-1.96-1.906-2-.54.61-1.284 1-2.094 1-.81 0-1.554-.39-2.094-1z" id="person"></path>
337
+
338
+ <path d="M1.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-4.625zm.813 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="phone"></path>
339
+
340
+ <path d="M3.5 0c-.97 0-1.839.391-2.469 1.031l2.969 2.969v-3.969c-.16-.03-.33-.031-.5-.031zm1.5 1.063v3.406l-2.719 2.719c.6.5 1.369.813 2.219.813 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.197-3-3.438zm-4.094 1.313c-.55.54-.906 1.285-.906 2.125 0 .95.435 1.804 1.125 2.344l2.156-2.125-2.375-2.344z" id="pie-chart"></path>
341
+
342
+ <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.438 1 .563-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" id="pin"></path>
343
+
344
+ <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l3 2-3 2v-4z" id="play-circle"></path>
345
+
346
+ <path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z" id="plus"></path>
347
+
348
+ <path d="M3 0v4h1v-4h-1zm-1.281 1.438l-.375.313c-.803.64-1.344 1.634-1.344 2.75 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-1.116-.529-2.11-1.344-2.75l-.375-.313-.625.781.375.313c.585.46.969 1.165.969 1.969 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5c0-.804.361-1.509.938-1.969l.406-.313-.625-.781z" id="power-standby"></path>
349
+
350
+ <path d="M2 0v2h4v-2h-4zm-1.906 3c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h.906v-2h6v2h.906c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-7.813zm1.906 2v3h4v-3h-4z" id="print"></path>
351
+
352
+ <path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z" id="project"></path>
353
+
354
+ <path d="M3.25 0l-.469 1.531-.781 2.563-.031-.063-.094-.344h-1.875v1h1.156l.375 1.156.469 1.469.469-1.469.781-2.5.781 2.5.406 1.313.531-1.281.594-1.469.125.281h2.313v-1h-1.688l-.375-.719-.5-1-.406 1.031-.469 1.188-.844-2.656-.469-1.531z" id="pulse"></path>
355
+
356
+ <path d="M3 0c-.28 0-.539.101-.719.281-.18.18-.281.439-.281.719 0 .28.181.479.281.719.03.06.063.161.063.281h-2.344v6h2.344c0-.12-.011-.221-.031-.281-.11-.24-.313-.439-.313-.719 0-.28.101-.539.281-.719.18-.18.439-.281.719-.281.28 0 .539.101.719.281.18.18.281.439.281.719 0 .28-.181.479-.281.719-.03.06-.063.161-.063.281h2.344v-2.344c.12 0 .221.011.281.031.24.11.439.313.719.313.28 0 .539-.101.719-.281.18-.18.281-.439.281-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281-.28 0-.479.181-.719.281-.06.03-.161.063-.281.063v-2.344h-2.344c0-.12.011-.221.031-.281.11-.24.313-.439.313-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281z" id="puzzle-piece"></path>
357
+
358
+ <path d="M4.469 0c-.854 0-1.48.256-1.875.656s-.54.901-.594 1.281l1 .125c.036-.26.125-.497.313-.688.188-.19.491-.375 1.156-.375.664 0 1.019.163 1.219.344.199.181.281.405.281.656 0 .833-.313 1.063-.813 1.5-.5.438-1.188 1.083-1.188 2.25v.25h1v-.25c0-.833.344-1.063.844-1.5.5-.438 1.156-1.083 1.156-2.25 0-.479-.168-1.02-.594-1.406-.426-.387-1.071-.594-1.906-.594zm-.5 7v1h1v-1h-1z" id="question-mark"></path>
359
+
360
+ <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .52.201 1.015.531 1.375.26-.22.599-.375.969-.375.2 0 .393.055.563.125.17-.64.748-1.125 1.438-1.125s1.268.485 1.438 1.125c.17-.07.362-.125.563-.125.63 0 1.155.388 1.375.938.64-.17 1.125-.747 1.125-1.438 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.156 5a.5.5 0 0 0-.344.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm-2 1a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm4 0a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="rain"></path>
361
+
362
+ <path d="M6 0v1h-.5c-.354 0-.6.116-.813.375l-1.406 1.75-1.5-1.75v-.031c-.212-.236-.427-.344-.781-.344h-1v1h1.031v.031l1.625 1.906-1.625 2.031v.031h-1.031v1h1c.354 0 .6-.116.813-.375l1.531-1.906 1.625 1.906v.031c.212.236.427.344.781.344h.25v1l2-1.5-2-1.5v1h-.281v-.031l-1.75-2.063 1.5-1.875v-.031h.531v1l2-1.5-2-1.5z" id="random"></path>
363
+
364
+ <path d="M4 0c-2.201 0-4 1.799-4 4s1.799 4 4 4c1.104 0 2.092-.456 2.813-1.188l-.688-.688c-.54.548-1.289.875-2.125.875-1.659 0-3-1.341-3-3s1.341-3 3-3c.834 0 1.545.354 2.094.906l-1.094 1.094h3v-3l-1.188 1.188c-.731-.72-1.719-1.188-2.813-1.188z" id="reload"></path>
365
+
366
+ <path d="M4 0l1.656 1.656-4 4-1.656-1.656v4h4l-1.656-1.656 4-4 1.656 1.656v-4h-4z" id="resize-both"></path>
367
+
368
+ <path d="M3.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" id="resize-height"></path>
369
+
370
+ <path d="M3 1l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" id="resize-width"></path>
371
+
372
+ <path d="M0 0v2c3.331 0 6 2.669 6 6h2c0-4.409-3.591-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.89-2-2-2z" id="rss-alt"></path>
373
+
374
+ <path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.221 0 4 1.779 4 4h1c0-2.759-2.241-5-5-5zm0 2v1c1.109 0 2 .891 2 2h1c0-1.651-1.349-3-3-3zm0 2c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="rss"></path>
375
+
376
+ <path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z" id="script"></path>
377
+
378
+ <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h4.5c.402 0 .75-.348.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.704 1.544-3.938 3.531.213-.875.999-1.531 1.938-1.531h2v1l2-2-2-2z" id="share-boxed"></path>
379
+
380
+ <path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.156-3-2.844z" id="share"></path>
381
+
382
+ <path d="M4 0l-.188.094-3.5 1.469-.313.125v.313c0 1.657.666 3.122 1.469 4.188.401.533.828.969 1.25 1.281.422.313.826.531 1.281.531.455 0 .86-.219 1.281-.531.422-.313.849-.749 1.25-1.281.803-1.065 1.469-2.53 1.469-4.188v-.313l-.313-.125-3.5-1.469-.188-.094zm0 1.094v5.906c-.045 0-.328-.069-.656-.313s-.714-.631-1.063-1.094c-.642-.851-1.137-2.025-1.219-3.281l2.938-1.219z" id="shield"></path>
383
+
384
+ <path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z" id="signal"></path>
385
+
386
+ <path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z" id="signpost"></path>
387
+
388
+ <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z" id="sort-ascending"></path>
389
+
390
+ <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z" id="sort-descending"></path>
391
+
392
+ <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h6.5c.402 0 .75-.348.75-.75v-5.5c0-.402-.348-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z" id="spreadsheet"></path>
393
+
394
+ <path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z" id="star"></path>
395
+
396
+ <path d="M4 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-3.5 1.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm7 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-6 2.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="sun"></path>
397
+
398
+ <path d="M.344 0c-.18 0-.344.164-.344.344v7.313c0 .18.164.344.344.344h6.313c.18 0 .344-.164.344-.344v-7.313c0-.18-.164-.344-.344-.344h-6.313zm.656 1h5v5h-5v-5zm2.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tablet"></path>
399
+
400
+ <path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="tag"></path>
401
+
402
+ <path d="M0 1v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.406 0l3 3-1.188 1.219.781.781 2-2-3-3h-1.594zm-1.906 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tags"></path>
403
+
404
+ <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-1.099 0-2 .901-2 2s.901 2 2 2 2-.901 2-2-.901-2-2-2zm0 1c.558 0 1 .442 1 1s-.442 1-1 1-1-.442-1-1 .442-1 1-1z" id="target"></path>
405
+
406
+ <path d="M0 0v7h7v-3.594l-1 1v1.594h-5v-5h3.594l1-1h-5.594zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z" id="task"></path>
407
+
408
+ <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-7.813zm1.406.781l1.719 1.719-1.719 1.719-.719-.719 1-1-1-1 .719-.719zm2.5 2.219h3v1h-3v-1z" id="terminal"></path>
409
+
410
+ <path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z" id="text"></path>
411
+
412
+ <path d="M0 0v4h1v-4h-1zm2 0v4.001c.28 0 .529.101.719.281.18.19 1.151 2.115 1.281 2.375.13.26.386.393.656.313.26-.08.393-.355.313-.625-.08-.26-.469-1.594-.469-1.844s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5l-1.031-3.188c-.08-.18-.259-.313-.469-.313h-3.5z" id="thumb-down"></path>
413
+
414
+ <path d="M4.438 0c-.19.021-.34.149-.438.344-.13.26-1.101 2.185-1.281 2.375-.19.18-.439.281-.719.281v4.001h3.5c.21 0 .389-.133.469-.313 0 0 1.031-2.908 1.031-3.188 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.389-1.574.469-1.844c.08-.27-.053-.545-.313-.625l-.219-.031zm-4.438 3v4h1v-4h-1z" id="thumb-up"></path>
415
+
416
+ <path d="M2 0v1h1v.031c-1.697.241-3 1.707-3 3.469 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-.45-.086-.874-.219-1.25l-.938.344c.107.304.156.596.156.906 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5 1.109-2.5 2.5-2.5c.298 0 .585.051.875.156l.344-.938c-.221-.081-.471-.119-.719-.156v-.063h1v-1h-3zm5 1.125s-3.675 2.8-3.875 3c-.2.2-.2.519 0 .719.2.2.519.2.719 0 .2-.19 3.156-3.719 3.156-3.719z" id="timer"></path>
417
+
418
+ <path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z" id="transfer"></path>
419
+
420
+ <path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.813c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-4.813h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z" id="trash"></path>
421
+
422
+ <path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z" id="underline"></path>
423
+
424
+ <path d="M.094 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm-3 2c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm-3.094 4v1h8v-1h-8z" id="vertical-align-bottom"></path>
425
+
426
+ <path d="M.094 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm-3 1c-.06 0-.094.034-.094.094v.906h2v-.906c0-.06-.034-.094-.094-.094h-1.813zm-3.094 2v1h8v-1h-8zm0 2v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2zm3 0v.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-.906h-2zm3 0v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2z" id="vertical-align-center"></path>
427
+
428
+ <path d="M0 0v1h8v-1h-8zm.094 2c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813z" id="vertical-align-top"></path>
429
+
430
+ <path d="M.5 1c-.28 0-.5.22-.5.5v4c0 .28.22.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" id="video"></path>
431
+
432
+ <path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 1v1c.152 0 .313.026.469.063h.031c.86.215 1.5.995 1.5 1.938 0 .942-.64 1.722-1.5 1.938-.166.041-.338.063-.5.063v1c.258 0 .516-.035.75-.094 1.3-.325 2.25-1.508 2.25-2.906 0-1.398-.95-2.581-2.25-2.906-.234-.059-.492-.094-.75-.094zm0 2v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-high"></path>
433
+
434
+ <path d="M4.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 3v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-low"></path>
435
+
436
+ <path d="M5.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656z" id="volume-off"></path>
437
+
438
+ <path d="M3.094 0c-.06 0-.105.044-.125.094l-2.938 6.813-.031.188v.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-.813l-.031-.188-2.938-6.813c-.02-.05-.065-.094-.125-.094h-.813zm-.094 3h1v2h-1v-2zm0 3h1v1h-1v-1z" id="warning"></path>
439
+
440
+ <path d="M3.75 0c-1.374 0-2.66.372-3.75 1.063l.531.875c.93-.59 2.033-.938 3.219-.938 1.2 0 2.323.31 3.25.906l.531-.813c-1.093-.703-2.401-1.094-3.781-1.094zm.031 3c-.795 0-1.531.227-2.156.625l.531.844c.475-.302 1.02-.469 1.625-.469.593 0 1.13.177 1.594.469l.531-.844c-.616-.388-1.338-.625-2.125-.625zm-.031 3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="wifi"></path>
441
+
442
+ <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.078.626.188.906l-2.906 2.875c-.39.39-.39 1.016 0 1.406.2.2.459.313.719.313.26 0 .519-.091.719-.281l2.875-2.875c.28.1.586.156.906.156 1.38 0 2.5-1.12 2.5-2.5 0-.16-.032-.297-.063-.438l-.938.938h-2v-2l.938-.938c-.14-.03-.277-.062-.438-.063zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="wrench"></path>
443
+
444
+ <path d="M1.406 0l-1.406 1.406.688.719 1.781 1.781-1.781 1.781-.688.719 1.406 1.406.719-.688 1.781-1.781 1.781 1.781.719.688 1.406-1.406-.688-.719-1.781-1.781 1.781-1.781.688-.719-1.406-1.406-.719.688-1.781 1.781-1.781-1.781-.719-.688z" id="x"></path>
445
+
446
+ <path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.313 3h-.375l-2.313-3h-1z" id="yen"></path>
447
+
448
+ <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z" id="zoom-in"></path>
449
+
450
+ <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z" id="zoom-out"></path>
451
+ </defs>
452
  </svg>
images/pencil.svg CHANGED
@@ -1,6 +1,6 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generated by IcoMoon.io -->
3
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
- <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
5
- <path d="M27 0c2.761 0 5 2.239 5 5 0 1.126-0.372 2.164-1 3l-2 2-7-7 2-2c0.836-0.628 1.874-1 3-1zM2 23l-2 9 9-2 18.5-18.5-7-7-18.5 18.5zM22.362 11.362l-14 14-1.724-1.724 14-14 1.724 1.724z" fill="#444444"></path>
6
- </svg>
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generated by IcoMoon.io -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
5
+ <path d="M27 0c2.761 0 5 2.239 5 5 0 1.126-0.372 2.164-1 3l-2 2-7-7 2-2c0.836-0.628 1.874-1 3-1zM2 23l-2 9 9-2 18.5-18.5-7-7-18.5 18.5zM22.362 11.362l-14 14-1.724-1.724 14-14 1.724 1.724z" fill="#444444"></path>
6
+ </svg>
js/wordpress_file_upload_adminfunctions.js CHANGED
@@ -1,428 +1,439 @@
1
- var DraggedItem=null;var ShortcodeNextSave=0;var ShortcodeTimeOut=null;var ShortcodeString="";var Autosave=false;var PageObsolete=false;var PageUpdating=false;var CheckObsolescenceTimeOut=5E3;var wfu_transfers_observer_interval=100;var wfu_allops_freeze_events=false;var wfu_PD_bank={};
2
- jQuery(document).ready(function($){$(".wfu_color_field").wpColorPicker({change:function(event,ui){event.target.value=ui.color.toString();if(event.target.name=="wfu_text_elements")wfu_update_text_value(event);else if(event.target.name=="wfu_triplecolor_elements")wfu_update_triplecolor_value(event)}})});
3
- function wfu_admin_activate_tab(key){var tabs=document.getElementById("wfu_tab_container");var tab,tabkey;for(var i=0;i<tabs.childNodes.length;i++){tab=tabs.childNodes[i];if(tab.nodeType===1){tabkey=tab.id.substr(8);if(tab.className.indexOf("nav-tab-active")>-1){tab.className="nav-tab";document.getElementById("wfu_container_"+tabkey).style.display="none"}}}document.getElementById("wfu_tab_"+key).className="nav-tab nav-tab-active";document.getElementById("wfu_container_"+key).style.display="block"}
4
- function wfu_admin_onoff_clicked(key){var onoff=document.getElementById("wfu_attribute_"+key);var shadows=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key);var shadows_inv=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key+"_inv");var status=onoff.className.substr(onoff.className.length-2)=="on";status=!status;if(status){document.getElementById("wfu_attribute_value_"+key).value="true";onoff.className="wfu_onoff_container_on";for(var i=0;i<shadows.length;i++)shadows[i].style.display=
5
- "none";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display="block"}else{document.getElementById("wfu_attribute_value_"+key).value="false";onoff.className="wfu_onoff_container_off";for(var i=0;i<shadows.length;i++)shadows[i].style.display="block";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display="none"}wfu_generate_shortcode();if(key=="userdata"||key=="formdata")wfu_update_formfield_variables()}
6
- function wfu_admin_radio_clicked(key){var radios=document.getElementsByName("wfu_radioattribute_"+key);var shadows=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key);var shadows_inv=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key+"_inv");var val="";for(i=0;i<radios.length;i++)if(radios[i].checked)val=radios[i].value;var status=val.substr(0,1)=="*";if(status){val=val.substr(1);for(var i=0;i<shadows.length;i++)shadows[i].style.display="none";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display=
7
- "block"}else{for(var i=0;i<shadows.length;i++)shadows[i].style.display="block";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display="none"}document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}function wfu_set_checkbox_status(check,status){if(status==0){check.checked=false;check.indeterminate=true;check.classList.add("indeterminate")}else{check.indeterminate=false;check.classList.remove("indeterminate");check.checked=status==1}}
8
- function wfu_addEventHandler(obj,evt,handler){if(obj.addEventListener)obj.addEventListener(evt,handler,false);else if(obj.attachEvent)obj.attachEvent("on"+evt,handler);else obj["on"+evt]=handler}
9
- function wfu_attach_separator_dragdrop_events(){var container=document.getElementById("wfu_placements_container");var item;for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_separator_hor"||item.className=="wfu_component_separator_ver"){wfu_addEventHandler(item,"dragenter",wfu_separator_dragenter);wfu_addEventHandler(item,"dragover",wfu_default_dragover);wfu_addEventHandler(item,"dragleave",wfu_separator_dragleave);wfu_addEventHandler(item,
10
- "drop",wfu_separator_drop)}}}
11
- function wfu_Attach_Admin_DragDrop_Events(){if(window.FileReader){var container=document.getElementById("wfu_placements_container");if(container){var available_container=document.getElementById("wfu_componentlist_container");var item;for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_box"){wfu_addEventHandler(item,"dragstart",wfu_component_dragstart);wfu_addEventHandler(item,"dragend",wfu_component_dragend)}}for(var i=0;i<available_container.childNodes.length;i++){item=
12
- available_container.childNodes[i];if(item.className=="wfu_component_box_container")for(var ii=0;ii<item.childNodes.length;ii++)if(item.childNodes[ii].className=="wfu_component_box wfu_inbase"){wfu_addEventHandler(item.childNodes[ii],"dragstart",wfu_component_dragstart);wfu_addEventHandler(item.childNodes[ii],"dragend",wfu_component_dragend)}}item=document.getElementById("wfu_componentlist_dragdrop");wfu_addEventHandler(item,"dragenter",wfu_componentlist_dragenter);wfu_addEventHandler(item,"dragover",
13
- wfu_default_dragover);wfu_addEventHandler(item,"dragleave",wfu_componentlist_dragleave);wfu_addEventHandler(item,"drop",wfu_componentlist_drop);wfu_attach_separator_dragdrop_events()}}}
14
- function wfu_componentlist_dragenter(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;var item=document.getElementById("wfu_componentlist_dragdrop");if(item.className.indexOf("wfu_componentlist_dragdrop_dragover")==-1)item.className+=" wfu_componentlist_dragdrop_dragover";return false}
15
- function wfu_componentlist_dragleave(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;var item=document.getElementById("wfu_componentlist_dragdrop");item.className=item.className.replace(" wfu_componentlist_dragdrop_dragover","");return false}
16
- function wfu_componentlist_drop(e){e=e||window.event;if(e.preventDefault)e.preventDefault();var component_raw=e.dataTransfer.getData("Component");if(!component_raw)return false;var parts=component_raw.split("_");var component=parts[0];var multi_index=parseInt(parts[1]);var item=document.getElementById("wfu_component_box_"+component+"_"+multi_index);if(multi_index==0){item.className="wfu_component_box wfu_inbase";item.style.display="block";document.getElementById("wfu_component_box_container_"+component).appendChild(item)}else item.parentNode.removeChild(item);
17
- var placements=wfu_admin_recreate_placements_text(null,"");wfu_admin_recreate_placements_panel(placements);document.getElementById("wfu_attribute_value_placements").value=placements;wfu_update_multiplacement_attributes();wfu_generate_shortcode();return false}
18
- function wfu_separator_dragenter(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;if(e.target.className=="wfu_component_separator_hor"){var bar=document.getElementById("wfu_component_bar_hor");bar.style.top=e.target.offsetTop+"px";bar.style.display="block"}else if(e.target.className=="wfu_component_separator_ver"){var bar=document.getElementById("wfu_component_bar_ver");bar.style.top=e.target.offsetTop+"px";bar.style.left=e.target.offsetLeft+"px";bar.style.display=
19
- "block"}return false}function wfu_default_dragover(e){e=e||window.event;if(e.preventDefault)e.preventDefault();return false}
20
- function wfu_separator_dragleave(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;if(e.target.className=="wfu_component_separator_hor"){var bar=document.getElementById("wfu_component_bar_hor");bar.style.display="none"}else if(e.target.className=="wfu_component_separator_ver"){var bar=document.getElementById("wfu_component_bar_ver");bar.style.display="none"}return false}
21
- function wfu_separator_drop(e){e=e||window.event;if(e.preventDefault)e.preventDefault();var component_raw=e.dataTransfer.getData("Component");if(!component_raw)return false;var parts=component_raw.split("_");var component=parts[0];var multi_index=parseInt(parts[1]);var item=document.getElementById("wfu_component_box_"+component+"_"+multi_index);item.style.display="none";item.className="wfu_component_box wfu_inbase";document.getElementById("wfu_component_box_container_"+component).appendChild(item);
22
- var placements=wfu_admin_recreate_placements_text(e.target,component);wfu_admin_recreate_placements_panel(placements);document.getElementById("wfu_attribute_value_placements").value=placements;wfu_update_multiplacement_attributes();wfu_generate_shortcode();return false}
23
- function wfu_component_dragstart(e){e=e||window.event;e.dataTransfer.setData("Component",e.target.id.replace("wfu_component_box_",""));if(e.target.className.indexOf("wfu_component_box_dragged")==-1){e.target.className+=" wfu_component_box_dragged";DraggedItem=e.target}e.target.style.zIndex=3;var item=document.getElementById("wfu_componentlist_dragdrop");item.className="wfu_componentlist_dragdrop wfu_componentlist_dragdrop_dragover";item.style.display="block";return false}
24
- function wfu_component_dragend(e){e=e||window.event;DraggedItem=null;e.target.style.zIndex=1;var item=document.getElementById("wfu_componentlist_dragdrop");item.style.display="none";item.className="wfu_componentlist_dragdrop";e.target.className=e.target.className.replace(" wfu_component_box_dragged","");document.getElementById("wfu_component_bar_ver").style.display="none";document.getElementById("wfu_component_bar_hor").style.display="none";return false}
25
- function wfu_admin_recreate_placements_text(place,new_component){function add_item(component){if(placements!="")placements+=delim;placements+=component;delim=""}var container=document.getElementById("wfu_placements_container");var delim="";var placements="";var component="";for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_separator_ver"){if(delim=="")delim="+";if(item==place){add_item(new_component);delim="+"}}else if(item.className=="wfu_component_separator_hor"){delim=
26
- "/";if(item==place){add_item(new_component);delim="/"}}else if(item.className=="wfu_component_box")add_item(item.id.replace("wfu_component_box_","").replace(/_.*$/,""))}return placements}
27
- function wfu_admin_recreate_placements_panel(placements_text){var container=document.getElementById("wfu_placements_container");var item,placements,sections,itemname_raw,parts,multi_index,index_item;var itemname="";for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_box"){itemname_raw=item.id.replace("wfu_component_box_","");parts=itemname_raw.split("_");itemname=parts[0];multi_index=parseInt(parts[1]);if(multi_index==0){item.style.display=
28
- "inline-block";item.className="wfu_component_box wfu_inbase";document.getElementById("wfu_component_box_container_"+itemname).appendChild(item)}else item.parentNode.removeChild(item)}}var box_containers=document.querySelectorAll("div.wfu_component_box_container");var component_used={};for(var i=0;i<box_containers.length;i++){itemname=box_containers[i].id.replace("wfu_component_box_container_","");component_used[itemname]=0;index_item=document.querySelector("div#"+box_containers[i].id+" div.wfu_component_box_index");
29
- if(index_item)index_item.innerHTML="1"}container.innerHTML="";placements=placements_text.split("/");for(var i=0;i<placements.length;i++){item=document.createElement("DIV");item.className="wfu_component_separator_hor";item.setAttribute("draggable",true);container.appendChild(item);item=document.createElement("DIV");item.className="wfu_component_separator_ver";item.setAttribute("draggable",true);container.appendChild(item);sections=placements[i].split("+");for(var ii=0;ii<sections.length;ii++){item=
30
- document.querySelector("div#wfu_component_box_container_"+sections[ii]+" div.wfu_component_box.wfu_inbase");if(item){itemname_raw=item.id.replace("wfu_component_box_","");parts=itemname_raw.split("_");itemname=parts[0];multi_index=parseInt(parts[1]);if(multi_index==0)container.appendChild(item);else{component_used[itemname]++;item.id="wfu_component_box_"+itemname+"_"+(component_used[itemname]+1).toString();item.style.display="block";index_item=document.querySelector("div#"+item.id+" div.wfu_component_box_index");
31
- index_item.innerHTML=(component_used[itemname]+1).toString();item=item.cloneNode(true);container.appendChild(item);item.id="wfu_component_box_"+itemname+"_"+component_used[itemname].toString();index_item=document.querySelector("div#"+item.id+" div.wfu_component_box_index");index_item.innerHTML=component_used[itemname].toString();wfu_addEventHandler(item,"dragstart",wfu_component_dragstart);wfu_addEventHandler(item,"dragend",wfu_component_dragend)}item.className="wfu_component_box";item.style.display=
32
- "inline-block";item=document.createElement("DIV");item.className="wfu_component_separator_ver";item.setAttribute("draggable",true);container.appendChild(item)}}}item=document.createElement("DIV");item.className="wfu_component_separator_hor";item.setAttribute("draggable",true);container.appendChild(item);item=document.createElement("DIV");item.id="wfu_component_bar_hor";item.className="wfu_component_bar_hor";container.appendChild(item);item=document.createElement("DIV");item.id="wfu_component_bar_ver";
33
- item.className="wfu_component_bar_ver";container.appendChild(item);wfu_attach_separator_dragdrop_events()}
34
- function wfu_update_multiplacement_attributes(){var box_containers=document.querySelectorAll("div.wfu_component_box_container");for(var i=0;i<box_containers.length;i++){itemname=box_containers[i].id.replace("wfu_component_box_container_","");var index_item=document.querySelector("div#"+box_containers[i].id+" div.wfu_component_box_index");if(index_item){var occurrences=Math.max(1,parseInt(index_item.innerHTML)-1);var dependencies=document.getElementsByName("wfu_attribute_governor_"+itemname);for(var j=
35
- 0;j<dependencies.length;j++)wfu_update_multiplacement_attribute(dependencies[j].value,occurrences)}}}
36
- function wfu_update_multiplacement_attribute(attribute,occurrencies){if(attribute=="userdatalabel"){var attributes=document.querySelectorAll("div.wfu_formdata_container");var current=attributes.length;if(current<1)return;var base=attributes[0],tr0,tr;var i=2;while(i<=Math.max(current,occurrencies)){if(i>current){var new_attribute=attribute+i.toString();tr0=base.parentNode;while(tr0!=null&&tr0.tagName!="TR")tr0=tr0.parentNode;if(tr0==null||tr0.tagName!="TR")return;tr=tr0.cloneNode(true);tr.id="tr_"+
37
- wfu_randomString(4);tr0.parentNode.appendChild(tr);var elem=document.querySelector("tr#"+tr.id+' label[for="wfu_attribute_'+attribute+'"]');elem.setAttribute("for","wfu_attribute_"+new_attribute);elem.innerHTML+=" ("+i.toString()+")";elem=document.querySelector("tr#"+tr.id+" input.wfu_attribute_governor");elem.setAttribute("name","wfu_attribute_governor_independent");elem.value=new_attribute;elem=document.querySelector("tr#"+tr.id+" div.wfu_formdata_container");elem.id+=i.toString();var def=document.getElementById("wfu_attribute_default_"+
38
- new_attribute);if(!def){def=document.createElement("INPUT");def.id="wfu_attribute_default_"+new_attribute;def.type="hidden";def.value=document.getElementById("wfu_attribute_default_"+attribute).value;document.getElementById("wfu_attribute_defaults").appendChild(def)}var shortcode_value=document.getElementById("wfu_attribute_value_"+new_attribute);if(!shortcode_value){shortcode_value=document.createElement("INPUT");shortcode_value.id="wfu_attribute_value_"+new_attribute;shortcode_value.type="hidden";
39
- shortcode_value.value=def.value;document.getElementById("wfu_attribute_values").appendChild(shortcode_value)}window["wfu_attribute_"+new_attribute+"_formtemplate"]=window["wfu_attribute_"+attribute+"_formtemplate"];window["wfu_attribute_"+new_attribute+"_typeprops"]=window["wfu_attribute_"+attribute+"_typeprops"];wfu_apply_value(new_attribute,"formfields",shortcode_value.value)}else if(i>occurrencies){tr=attributes[i-1].parentNode;while(tr!=null&&tr.tagName!="TR")tr=tr.parentNode;if(tr==null||tr.tagName!=
40
- "TR")return;tr.parentNode.removeChild(tr);wfu_update_formfield_variables()}i++}attributes=document.querySelectorAll("div.wfu_formdata_container");var names=[];for(var i=0;i<attributes.length;i++)names.push(attributes[i].id.replace(/^wfu_attribute_/,""));var all_attributes=document.querySelectorAll(".wfu_formdata_all_attributes");for(var i=0;i<all_attributes.length;i++)all_attributes[i].value=names.join(",");wfu_formdata_update_all_updown_buttons(attribute)}}
41
- function wfu_subfolders_input_changed(e){e=e||window.event;var item=e.target;var key=item.id.replace("wfu_subfolders_path_","");key=key.replace("wfu_subfolders_label_","");var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+key);var tools_ok=document.getElementById("wfu_subfolders_ok_"+key);var old_path_value,old_label_value;var isnewitem=
42
- document.getElementById("wfu_subfolders_isnewitem_"+key).value=="1";if(isnewitem){old_path_value="";old_label_value=""}else{var items=list.data;item=items[list.selectedIndex];old_path_value=item.path;old_label_value=item.label}if(tools_path.value==old_path_value&&tools_label.value==old_label_value){tools_ok.disabled=true;if(!isnewitem)wfu_subfolders_update_nav(key)}else{tools_ok.disabled=false;var navs=document.getElementsByName("wfu_subfolder_nav_"+key);for(var i=0;i<navs.length;i++)navs[i].disabled=
43
- true}}
44
- function wfu_subfolders_auto_changed(key){var list=document.getElementById("wfu_attribute_"+key);var auto=document.getElementById("wfu_subfolders_auto_"+key);var editable=document.getElementById("wfu_subfolders_editable_"+key);var manualtext=document.getElementById("wfu_subfolders_manualtext_"+key);if(auto.checked){var manualvalue=document.getElementById("wfu_attribute_value_"+key).value;if(manualvalue.substr(0,4)!="auto")manualtext.value=manualvalue;editable.parentNode.style.display="inline";wfu_apply_value(key,
45
- "folderlist","auto"+(editable.checked?"+":""));list.disabled=true}else{list.disabled=false;editable.parentNode.style.display="none";wfu_apply_value(key,"folderlist",manualtext.value)}}
46
- function wfu_subfolders_up_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];var prevind=item.index-1;if(prevind<0)return;var prevpos=-1;var curind=list.selectedIndex-1;while(curind>=0)if(items[curind].level==item.level&&items[curind].index==prevind){prevpos=curind;break}else curind--;if(prevpos==-1)return;var children_count=0;curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>
47
- item.level){children_count++;curind++}else break;items[prevpos].index=item.index;item.index=prevind;list.data=items.slice(0,prevpos).concat(items.slice(list.selectedIndex,list.selectedIndex+1+children_count)).concat(items.slice(prevpos,list.selectedIndex)).concat(items.slice(list.selectedIndex+1+children_count));var val=wfu_update_subfolder_list(key);list.selectedIndex=prevpos;wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
48
- key).value=val;wfu_generate_shortcode()}}
49
- function wfu_subfolders_down_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];var nextind=item.index+1;var nextpos=-1;curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level==item.level){nextpos=curind;break}else if(items[curind].level<item.level)break;else curind++;if(nextpos==-1)return;var next_children_count=0;curind=nextpos+1;while(curind<items.length)if(items[curind].level>
50
- item.level){next_children_count++;curind++}else break;items[nextpos].index=item.index;item.index=nextind;list.data=items.slice(0,list.selectedIndex).concat(items.slice(nextpos,nextpos+1+next_children_count)).concat(items.slice(list.selectedIndex,nextpos)).concat(items.slice(nextpos+1+next_children_count));var val=wfu_update_subfolder_list(key);list.selectedIndex=list.selectedIndex+next_children_count+1;wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
51
- key).value=val;wfu_generate_shortcode()}}
52
- function wfu_subfolders_left_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>item.level){items[curind].level--;curind++}else break;item.level--;var val=wfu_update_subfolder_list(key);list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
53
- key).value=val;wfu_generate_shortcode()}}
54
- function wfu_subfolders_right_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>item.level){items[curind].level++;curind++}else break;item.level++;var val=wfu_update_subfolder_list(key);list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
55
- key).value=val;wfu_generate_shortcode()}}
56
- function wfu_subfolders_def_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];if(item["default"])item["default"]=false;else{for(var i=0;i<items.length;i++)items[i]["default"]=false;item["default"]=true}var val=wfu_update_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}}
57
- function wfu_subfolders_ok_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+key);if(tools_path.value==""||tools_label.value==""){alert("Path or label cannot be empty!");return}var items=list.data;var isnewitem=document.getElementById("wfu_subfolders_isnewitem_"+key).value=="1";if(isnewitem){var newlevel=parseInt(document.getElementById("wfu_subfolders_newitemlevel_"+
58
- key).value);var newitem={label:tools_label.value,path:tools_path.value,level:newlevel,"default":false};var newpos=parseInt(document.getElementById("wfu_subfolders_newitemindex_"+key).value);if(newpos>=items.length)items.push(newitem);else items.splice(newpos,0,newitem)}else{item=items[list.selectedIndex];item.path=tools_path.value;item.label=tools_label.value}var val=wfu_update_subfolder_list(key);list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=
59
- val;document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}}
60
- function wfu_subfolders_del_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];var children_count=0;curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>item.level){children_count++;curind++}else break;if(children_count>0)if(!confirm("Children items will be deleted as well. Proceed?"))return;items.splice(list.selectedIndex,1+children_count);var val=wfu_update_subfolder_list(key);
61
- list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}}
62
- function wfu_subfolders_add_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;var curpos=list.selectedIndex;item=items[curpos];var opts=list.options;var opt=document.createElement("option");opt.value="";opt.innerHTML="";opts.add(opt,curpos);list.selectedIndex=curpos;var tools_container=document.getElementById("wfu_subfolder_tools_"+key);var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+
63
- key);var tools_ok=document.getElementById("wfu_subfolders_ok_"+key);var tools_browse=document.getElementById("wfu_subfolders_browse_"+key);tools_container.className="wfu_subfolder_tools_container";tools_label.disabled=false;tools_ok.disabled=true;document.getElementById("wfu_subfolders_isnewitem_"+key).value="1";document.getElementById("wfu_subfolders_newitemindex_"+key).value=curpos;document.getElementById("wfu_subfolders_newitemlevel_"+key).value=item.level;document.getElementById("wfu_subfolders_newitemlevel2_"+
64
- key).value="";tools_path.disabled=item.level==0;tools_browse.disabled=item.level==0;if(item.level==0){tools_path.value="{root}";tools_label.value="{upload folder}"}else{tools_path.value="";tools_label.value=""}var navs=document.getElementsByName("wfu_subfolder_nav_"+key);for(var i=0;i<navs.length;i++)navs[i].disabled=true}
65
- function wfu_subfolders_browse_clicked(key){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var fd=null;try{var fd=new FormData}catch(e){}if(fd==null)return;var container=document.getElementById("wfu_global_dialog_container");var dialog=document.getElementById("wfu_subfolders_browser_"+key);var btn=document.getElementById("wfu_subfolders_browse_"+key);var shadow=document.getElementById("wfu_subfolders_inner_shadow_"+key);var msgcont=document.getElementById("wfu_subfolders_browser_msgcont_"+
66
- key);var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);var list=document.getElementById("wfu_subfolders_browser_list_"+key);while(list.options.length>0)list.options.remove(0);ok.disabled=true;ok.onclick=function(){wfu_folder_browser_cancel_clicked(key)};msg.innerHTML="loading folder contents...";img.style.display="inline";msgcont.style.display="block";
67
- container.style.display="block";dialog.style.display="block";dialog.style.left=btn.offsetLeft+btn.offsetWidth-dialog.offsetWidth+"px";dialog.style.top=btn.offsetTop+btn.offsetHeight-dialog.offsetHeight+"px";shadow.style.display="block";container.onclick=function(){wfu_folder_browser_cancel_clicked(key)};var path=document.getElementById("wfu_attribute_uploadpath").value;if(path.substr(path.length-1)=="/")path=path.substr(0,path.length-1);var paths=wfu_get_relative_path(key).split(",");var path1=path+
68
- paths[0];if(path1.substr(0)!="/")path1="/"+path1;var path2="";if(paths.length==2)path2=paths[1];fd.append("action","wfu_ajax_action_read_subfolders");fd.append("folder1",wfu_plugin_encode_string(path1));fd.append("folder2",wfu_plugin_encode_string(path2));xhr.key=key;xhr.addEventListener("load",wfu_readfolderComplete,false);xhr.addEventListener("error",wfu_readfolderFailed,false);xhr.addEventListener("abort",wfu_readfolderCanceled,false);xhr.open("POST",AdminParams.wfu_ajax_url);xhr.send(fd)}
69
- function wfu_readfolderComplete(evt){var key=evt.target.key;var msgcont=document.getElementById("wfu_subfolders_browser_msgcont_"+key);var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var list=document.getElementById("wfu_subfolders_browser_list_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+
70
- key);var txt=evt.target.responseText;if(txt!=-1){var start_text="wfu_read_subfolders:";var pos=evt.target.responseText.indexOf(start_text);if(pos==-1)pos=evt.target.responseText.length;var messages=evt.target.responseText.substr(0,pos);var response=evt.target.responseText.substr(pos+start_text.length,evt.target.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){var filelist=
71
- wfu_plugin_decode_string(txt_value);var flist=filelist.split(",");var fcount=0;var opt;for(var i=0;i<flist.length;i++)if(flist[i]!=""){opt=document.createElement("option");opt.value=flist[i];opt.innerHTML=flist[i].replace("*","&nbsp;&nbsp;&nbsp;");list.add(opt);fcount++}if(fcount==0){opt=document.createElement("option");opt.value="";opt.innerHTML="{empty}";opt.disabled=true;list.add(opt)}list.selectedIndex=-1;ok.onclick=function(){var val=list.options[list.selectedIndex].value;var level=parseInt(document.getElementById("wfu_subfolders_newitemlevel_"+
72
- key).value);if(val.substr(0,1)=="*"||level==0){document.getElementById("wfu_subfolders_newitemlevel_"+key).value=level+1;if(level>0)val=val.substr(1)}tools_path.value=val;tools_label.value=val;wfu_folder_browser_cancel_clicked(key);wfu_subfolders_ok_clicked(key)};msgcont.style.display="none"}else if(txt_header=="error"){msg.innerHTML=txt_value;img.style.display="none";ok.disabled=false}else{msg.innerHTML="Unknown error";img.style.display="none";ok.disabled=false}}}
73
- function wfu_readfolderFailed(evt){var key=evt.target.key;var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);msg.innerHTML="Unknown error";img.style.display="none";ok.disabled=false}
74
- function wfu_readfolderCanceled(evt){var key=evt.target.key;var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);msg.innerHTML="Unknown error";img.style.display="none";ok.disabled=false}
75
- function wfu_subfolders_browser_list_changed(key){var list=document.getElementById("wfu_subfolders_browser_list_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);ok.disabled=list.selectedIndex<0}
76
- function wfu_folder_browser_cancel_clicked(key){var container=document.getElementById("wfu_global_dialog_container");var dialog=document.getElementById("wfu_subfolders_browser_"+key);var btn=document.getElementById("wfu_subfolders_browse_"+key);var shadow=document.getElementById("wfu_subfolders_inner_shadow_"+key);container.onclick=null;shadow.style.display="none";dialog.style.display="none";container.style.display="none"}
77
- function wfu_get_relative_path(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;var isnewitem=document.getElementById("wfu_subfolders_isnewitem_"+key).value=="1";var level;if(isnewitem)level=parseInt(document.getElementById("wfu_subfolders_newitemlevel_"+key).value);else level=items[list.selectedIndex].level;var relpath="/";var curpos=list.selectedIndex-1;var curlevel=level;while(curpos>=0&&curlevel>1){if(items[curpos].level<curlevel){relpath=
78
- "/"+items[curpos].path+relpath;curlevel=items[curpos].level}curpos--}if(isnewitem&&document.getElementById("wfu_subfolders_newitemlevel2_"+key).value=="1"&&level>0&&list.selectedIndex>0)relpath+=","+items[list.selectedIndex-1].path;return relpath}function wfu_subfolders_changed(key){wfu_update_subfolder_list(key);wfu_subfolders_update_toolnav(key)}
79
- function wfu_subfolders_update_toolnav(key){var list=document.getElementById("wfu_attribute_"+key);var items,item,ind,nextind,prevlevel;var tools_container=document.getElementById("wfu_subfolder_tools_"+key);var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+key);var tools_ok=document.getElementById("wfu_subfolders_ok_"+key);var tools_browse=document.getElementById("wfu_subfolders_browse_"+key);var auto=document.getElementById("wfu_subfolders_auto_"+
80
- key);document.getElementById("wfu_subfolders_isnewitem_"+key).value="";document.getElementById("wfu_subfolders_newitemindex_"+key).value="";document.getElementById("wfu_subfolders_newitemlevel_"+key).value="";document.getElementById("wfu_subfolders_newitemlevel2_"+key).value="";if(list.data==null){items=wfu_decode_subfolder_list(key);list.data=items}else items=list.data;if(list.data.length===0){list.className="wfu_select_folders wfu_select_folders_empty";list.options[0].innerHTML=auto.checked?"":
81
- "press here"}else list.className="wfu_select_folders";if(list.selectedIndex<0){tools_container.className="wfu_subfolder_tools_container wfu_subfolder_tools_disabled";tools_path.disabled=true;tools_label.disabled=true;tools_ok.disabled=true;tools_browse.disabled=true;tools_label.value="";tools_path.value=""}else if(list.selectedIndex>=list.options.length-1){tools_container.className="wfu_subfolder_tools_container";tools_label.disabled=false;tools_ok.disabled=true;document.getElementById("wfu_subfolders_isnewitem_"+
82
- key).value="1";document.getElementById("wfu_subfolders_newitemindex_"+key).value=items.length;var level;if(items.length==0)level=0;else if(items[items.length-1].level==0)level=1;else level=items[items.length-1].level;document.getElementById("wfu_subfolders_newitemlevel_"+key).value=level;document.getElementById("wfu_subfolders_newitemlevel2_"+key).value="1";tools_path.disabled=level==0;tools_browse.disabled=false;if(level==0){tools_path.value="{root}";tools_label.value="{upload folder}"}else{tools_path.value=
83
- "";tools_label.value=""}}else{tools_container.className="wfu_subfolder_tools_container";tools_label.disabled=false;tools_ok.disabled=true;item=items[list.selectedIndex];tools_path.disabled=item.level==0;tools_browse.disabled=item.level==0;tools_label.value=item.label;tools_path.value=item.path}var navs=document.getElementsByName("wfu_subfolder_nav_"+key);if(list.selectedIndex<0||list.selectedIndex>=list.options.length-1)for(var i=0;i<navs.length;i++)navs[i].disabled=true;else wfu_subfolders_update_nav(key)}
84
- function wfu_subfolders_update_nav(key){var list=document.getElementById("wfu_attribute_"+key);var navs_up=document.getElementById("wfu_subfolders_up_"+key);var navs_down=document.getElementById("wfu_subfolders_down_"+key);var navs_left=document.getElementById("wfu_subfolders_left_"+key);var navs_right=document.getElementById("wfu_subfolders_right_"+key);var navs_add=document.getElementById("wfu_subfolders_add_"+key);var navs_def=document.getElementById("wfu_subfolders_def_"+key);var navs_del=document.getElementById("wfu_subfolders_del_"+
85
- key);var items=list.data;var item=items[list.selectedIndex];navs_up.disabled=item.index<=0;ind=list.selectedIndex+1;nextind=0;while(ind<items.length)if(items[ind].level==item.level){nextind=items[ind].index;break}else if(items[ind].level<item.level)break;else ind++;navs_down.disabled=item.level==0||nextind==0;navs_left.disabled=list.selectedIndex==0&&item.level<1||list.selectedIndex>0&&item.level<=1;if(list.selectedIndex>=1)prevlevel=items[list.selectedIndex-1].level;else prevlevel=0;navs_right.disabled=
86
- item.level-prevlevel>0;navs_add.disabled=item.level==0;navs_def.disabled=false;navs_def.className="button"+(item["default"]?" wfu_subfolder_nav_pressed":"");navs_del.disabled=false}
87
- function wfu_decode_subfolder(data){var ret={label:"",path:"",level:0,"default":false};data=data.trim();var star_count=0;var is_default=false;while(star_count<data.length)if(data.substr(star_count,1)=="*")star_count++;else break;data=data.substr(star_count,data.length-star_count);if(data.substr(0,1)=="&"){data=data.substr(1);is_default=true}ret.level=star_count;ret["default"]=is_default;var data_raw=data.split("/");if(data_raw.length==1){ret.path=data_raw[0];ret.label=data_raw[0]}else if(data_raw.length>
88
- 1){ret.path=data_raw[0];ret.label=data_raw[1]}if(star_count==0){ret.path="{root}";if(ret.label=="")ret.label="{upload folder}"}return ret}
89
- function wfu_decode_subfolder_list(key){var opts=document.getElementById("wfu_attribute_"+key).options;var list=Array();var dir_levels=["root"];var last_index=[0];var subfolder_path;var prev_level=-1;for(var i=0;i<opts.length-1;i++){list.push(wfu_decode_subfolder(wfu_plugin_decode_string(opts[i].value)));if(dir_levels.length>list[i].level)dir_levels[list[i].level]=list[i].path;else dir_levels.push(list[i].path);subfolder_path="";for(j=1;j<=list[i].level;j++)subfolder_path+=dir_levels[j]+"/";list[i].fullpath=
90
- subfolder_path;if(last_index.length<=list[i].level)last_index.push(0);if(list[i].level>prev_level)list[i].index=0;else list[i].index=last_index[list[i].level]+1;last_index[list[i].level]=list[i].index;prev_level=list[i].level}return list}
91
- function wfu_update_subfolder_list(key){var opts=document.getElementById("wfu_attribute_"+key).options;var list=document.getElementById("wfu_attribute_"+key);var items=list.data;if(items==null)return;var value_raw,text_raw;var global_raw="";opts.length=items.length+1;for(var i=0;i<items.length;i++){value_raw="";text_raw="";for(j=0;j<items[i].level;j++){value_raw+="*";text_raw+="&nbsp;&nbsp;&nbsp;"}if(items[i]["default"]){value_raw+="&";opts[i].className="wfu_select_folders_option_default"}else opts[i].className=
92
- "";value_raw+=items[i].path+"/"+items[i].label;text_raw+=items[i].label;opts[i].value=wfu_plugin_encode_string(value_raw);opts[i].innerHTML=text_raw;if(global_raw!="")global_raw+=",";global_raw+=value_raw}opts[items.length].value="";opts[items.length].innerHTML="";return global_raw}
93
- function wfu_userdata_edit_field(line,label,required){var item;for(var i=0;i<line.childNodes.length;i++){item=line.childNodes[i];if(item.tagName=="INPUT")if(item.type=="text"){item.value=label;wfu_attach_element_handlers(item,wfu_update_userfield_value)}else{if(item.type=="checkbox")item.checked=required}else if(item.tagName=="DIV")item.className="wfu_userdata_action"}}function wfu_formdata_edit_field(line,label,required){}
94
- function wfu_formdata_get_field_props(key){var key_parts=key.split("_");var attribute=key_parts[0];var a="wfu_formfield_"+key;var fielddef=window["wfu_attribute_"+attribute+"_typeprops"][document.getElementById(a+"_type").value];var field={type:document.getElementById(a+"_type").value,label:document.getElementById(a+"_label").value,labelposition:document.getElementById(a+"_labelposition").value,required:fielddef.required.substr(0,4)=="show"&&document.getElementById(a+"_required")?document.getElementById(a+
95
- "_required").checked:fielddef.required.substr(5)=="true",donotautocomplete:fielddef.donotautocomplete.substr(0,4)=="show"&&document.getElementById(a+"_donotautocomplete")?document.getElementById(a+"_donotautocomplete").checked:fielddef.donotautocomplete.substr(5)=="true",validate:fielddef.validate.substr(0,4)=="show"&&document.getElementById(a+"_validate")?document.getElementById(a+"_validate").checked:fielddef.validate.substr(5)=="true",typehook:fielddef.typehook.substr(0,4)=="show"&&document.getElementById(a+
96
- "_typehook")?document.getElementById(a+"_typehook").checked:fielddef.typehook.substr(5)=="true",hintposition:fielddef.hintposition.substr(0,4)=="show"&&document.getElementById(a+"_hintposition")?document.getElementById(a+"_hintposition").value:fielddef.hintposition.substr(5),"default":fielddef["default"].substr(0,4)=="show"&&document.getElementById(a+"_default")?document.getElementById(a+"_default").value:fielddef["default"].substr(5),data:fielddef.data.substr(0,4)=="show"&&document.getElementById(a+
97
- "_data")?document.getElementById(a+"_data").value:fielddef.data.substr(5),group:fielddef.group.substr(0,4)=="show"&&document.getElementById(a+"_group")?document.getElementById(a+"_group").value:fielddef.group.substr(5),format:fielddef.format.substr(0,4)=="show"&&document.getElementById(a+"_format")?document.getElementById(a+"_format").value:fielddef.format.substr(5)};return field}
98
- function wfu_formdata_type_changed(key){var key_parts=key.split("_");var attribute=key_parts[0];var a="wfu_formfield_"+key;var line_container=document.getElementById(a+"_container");var field=wfu_formdata_get_field_props(key);var template=wfu_formdata_prepare_template(attribute,field,key);line_container.innerHTML=template;var formfield_elements=document.querySelectorAll("div#"+a+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
99
- wfu_update_formfield_value);wfu_formdata_update_buttons(key);wfu_update_formfield_value({target:line_container})}function wfu_userdata_add_field(obj){var line=obj.parentNode;var newline=line.cloneNode(true);wfu_userdata_edit_field(newline,"",false);line.parentNode.insertBefore(newline,line.nextSibling)}
100
- function wfu_formdata_add_field(key){var key_parts=key.split("_");var attribute=key_parts[0];var ind=key_parts[1];var container=document.getElementById("wfu_attribute_"+attribute);var prev=document.getElementById("wfu_formfield_"+key+"_container");var new_line_container=document.createElement("DIV");var new_key=attribute+"_"+wfu_randomString(4);new_line_container.id="wfu_formfield_"+new_key+"_container";new_line_container.className="wfu_formdata_line_container";container.insertBefore(new_line_container,
101
- prev.nextSibling);var field={type:"text",label:"",labelposition:"left",required:false,donotautocomplete:false,validate:false,"default":"",data:"",group:"",format:"",hintposition:"right",typehook:false};var template=wfu_formdata_prepare_template(attribute,field,new_key);new_line_container.innerHTML=template;var formfield_elements=document.querySelectorAll("div#wfu_formfield_"+new_key+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
102
- wfu_update_formfield_value);wfu_formdata_update_buttons(key);wfu_formdata_update_buttons(new_key);wfu_update_formfield_value({target:new_line_container})}
103
- function wfu_formdata_prepare_template(attribute,field,key){var template=wfu_plugin_decode_string(window["wfu_attribute_"+attribute+"_formtemplate"]);var fielddef=window["wfu_attribute_"+attribute+"_typeprops"][field.type];var fielddef_array=window["wfu_attribute_"+attribute+"_typeprops"][0].split(",");var fieldprops_basic=["required","donotautocomplete","validate","typehook","labelposition","hintposition","default","data","group","format"];var labelpositions=["none","top","right","bottom","left",
104
- "placeholder"];var hintpositions=["none","inline","top","right","bottom","left"];template=template.replace(/\[\[key\]\]/g,key).replace(/\[\[t\]\]/g,field.type).replace(/\[\[label\]\]/g,field.label).replace(/\[\[s\]\]/g,field.labelposition).replace(/\[\[d\]\]/g,field["default"]).replace(/\[\[l\]\]/g,field.data).replace(/\[\[data_label\]\]/g,fielddef.data_label).replace(/\[\[g\]\]/g,field.group).replace(/\[\[f\]\]/g,field.format).replace(/\[\[p\]\]/g,field.hintposition);for(var i=0;i<fieldprops_basic.length;i++)template=
105
- template.replace(new RegExp("\\[\\["+fieldprops_basic[i]+"_hint\\]\\]","g"),fielddef[fieldprops_basic[i]+"_hint"]);for(var i=0;i<fielddef_array.length;i++)template=template.replace("[[type_"+fielddef_array[i]+"_selected]]",fielddef_array[i]==field.type?' selected="selected"':"");for(var i=0;i<labelpositions.length;i++)template=template.replace("[[labelposition_"+labelpositions[i]+"_selected]]",labelpositions[i]==field.labelposition?' selected="selected"':"");for(var i=0;i<hintpositions.length;i++)template=
106
- template.replace("[[hintposition_"+hintpositions[i]+"_selected]]",hintpositions[i]==field.hintposition?' selected="selected"':"");template=template.replace("[[remove_disabled]]","");template=template.replace("[[up_disabled]]","");template=template.replace("[[down_disabled]]","");template=field.required?template.replace(/\[\[r\->\]\]|\[\[<\-r\]\]/g,""):template.replace(/\[\[r\->\]\].*\[\[<\-r\]\]/g,"");template=field.donotautocomplete?template.replace(/\[\[a\->\]\]|\[\[<\-a\]\]/g,""):template.replace(/\[\[a\->\]\].*\[\[<\-a\]\]/g,
107
- "");template=field.validate?template.replace(/\[\[v\->\]\]|\[\[<\-v\]\]/g,""):template.replace(/\[\[v\->\]\].*\[\[<\-v\]\]/g,"");template=field.typehook?template.replace(/\[\[h\->\]\]|\[\[<\-h\]\]/g,""):template.replace(/\[\[h\->\]\].*\[\[<\-h\]\]/g,"");template=fielddef.required.substr(0,4)=="show"?template.replace(/\[\[R\->\]\]|\[\[<\-R\]\]/g,""):template.replace(/\[\[R\->\]\][^]*\[\[<\-R\]\]/g,"");template=fielddef.donotautocomplete.substr(0,4)=="show"?template.replace(/\[\[A\->\]\]|\[\[<\-A\]\]/g,
108
- ""):template.replace(/\[\[A\->\]\][^]*\[\[<\-A\]\]/g,"");template=fielddef.validate.substr(0,4)=="show"?template.replace(/\[\[V\->\]\]|\[\[<\-V\]\]/g,""):template.replace(/\[\[V\->\]\][^]*\[\[<\-V\]\]/g,"");template=fielddef.hintposition.substr(0,4)=="show"?template.replace(/\[\[P\->\]\]|\[\[<\-P\]\]/g,""):template.replace(/\[\[P\->\]\][^]*\[\[<\-P\]\]/g,"");template=fielddef.typehook.substr(0,4)=="show"?template.replace(/\[\[H\->\]\]|\[\[<\-H\]\]/g,""):template.replace(/\[\[H\->\]\][^]*\[\[<\-H\]\]/g,
109
- "");template=fielddef["default"].substr(0,4)=="show"?template.replace(/\[\[D\->\]\]|\[\[<\-D\]\]/g,""):template.replace(/\[\[D\->\]\][^]*\[\[<\-D\]\]/g,"");template=fielddef.data.substr(0,4)=="show"?template.replace(/\[\[L\->\]\]|\[\[<\-L\]\]/g,""):template.replace(/\[\[L\->\]\][^]*\[\[<\-L\]\]/g,"");template=fielddef.group.substr(0,4)=="show"?template.replace(/\[\[G\->\]\]|\[\[<\-G\]\]/g,""):template.replace(/\[\[G\->\]\][^]*\[\[<\-G\]\]/g,"");template=fielddef.format.substr(0,4)=="show"?template.replace(/\[\[F\->\]\]|\[\[<\-F\]\]/g,
110
- ""):template.replace(/\[\[F\->\]\][^]*\[\[<\-F\]\]/g,"");return template}function wfu_userdata_remove_field(obj){var line=obj.parentNode;var container=line.parentNode;var first=null;for(var i=0;i<container.childNodes.length;i++)if(container.childNodes[i].nodeType===1){first=container.childNodes[i];break}if(line!=first){line.parentNode.removeChild(line);for(var i=0;i<first.childNodes.length;i++)if(first.childNodes[i].nodeType===1){wfu_update_userfield_value({target:first.childNodes[i]});break}}}
111
- function wfu_formdata_remove_field(key){var key_parts=key.split("_");var attribute=key_parts[0];var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");if(containers.length<2)return;var container=document.getElementById("wfu_attribute_"+attribute);var line_container=document.getElementById("wfu_formfield_"+key+"_container");var line_container_index=0;for(var i=0;i<containers.length;i++)if(containers[i]==line_container){line_container_index=i+1;break}container.removeChild(line_container);
112
- containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");if(line_container_index>containers.length)line_container_index=containers.length;line_container=containers[line_container_index-1];var prev_key=line_container.id.replace(/^wfu_formfield_/,"").replace(/_container$/,"");wfu_formdata_update_buttons(prev_key);wfu_update_formfield_value({target:line_container})}
113
- function wfu_formdata_move_field(key,direction){var key_parts=key.split("_");var attribute=key_parts[0];var all_attributes=document.querySelector("div#wfu_attribute_"+attribute+" .wfu_formdata_all_attributes").value.split(",");var attr_occur_index=all_attributes.indexOf(attribute)+1;var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");var container=document.getElementById("wfu_attribute_"+attribute);var line_container=document.getElementById("wfu_formfield_"+
114
- key+"_container");var line_container_index=0;for(var i=0;i<containers.length;i++)if(containers[i]==line_container){line_container_index=i+1;break}if(direction=="up"&&attr_occur_index==1&&line_container_index==1||direction=="down"&&attr_occur_index==all_attributes.length&&line_container_index==containers.length)return;var field=wfu_formdata_get_field_props(key);var other_attribute=attribute;var other_line_container=line_container;if(direction=="up")if(line_container_index>1)other_line_container=containers[line_container_index-
115
- 2];else{other_attribute=all_attributes[attr_occur_index-2];var other_containers=document.querySelectorAll("div#wfu_attribute_"+other_attribute+" .wfu_formdata_line_container");other_line_container=other_containers[other_containers.length-1]}else if(line_container_index<containers.length)other_line_container=containers[line_container_index];else{other_attribute=all_attributes[attr_occur_index];var other_containers=document.querySelectorAll("div#wfu_attribute_"+other_attribute+" .wfu_formdata_line_container");
116
- other_line_container=other_containers[0]}var other_key=other_line_container.id.replace(/^wfu_formfield_/,"").replace(/_container$/,"");if(other_attribute==attribute)if(direction=="up")container.insertBefore(line_container,other_line_container);else container.insertBefore(other_line_container,line_container);else{var other_field=wfu_formdata_get_field_props(other_key);var template=wfu_formdata_prepare_template(other_attribute,field,other_key);other_line_container.innerHTML=template;var formfield_elements=
117
- document.querySelectorAll("div#wfu_formfield_"+other_key+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],wfu_update_formfield_value);template=wfu_formdata_prepare_template(attribute,other_field,key);line_container.innerHTML=template;formfield_elements=document.querySelectorAll("div#wfu_formfield_"+key+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
118
- wfu_update_formfield_value)}wfu_formdata_update_buttons(key);wfu_formdata_update_buttons(other_key);wfu_update_formfield_value({target:line_container});if(other_attribute!=attribute)wfu_update_formfield_value({target:other_line_container})}
119
- function wfu_formdata_update_buttons(key){var key_parts=key.split("_");var attribute=key_parts[0];var all_attributes=document.querySelector("div#wfu_attribute_"+attribute+" .wfu_formdata_all_attributes").value.split(",");var attr_occur_index=all_attributes.indexOf(attribute)+1;var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");var line_container=document.getElementById("wfu_formfield_"+key+"_container");var line_container_index=0;for(var i=0;i<
120
- containers.length;i++)if(containers[i]==line_container){line_container_index=i+1;break}var up_element=document.querySelector("div#wfu_formfield_"+key+"_container .wfu_formdata_action.wfu_formdata_action_up");var down_element=document.querySelector("div#wfu_formfield_"+key+"_container .wfu_formdata_action.wfu_formdata_action_down");var remove_elements=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_action_remove");up_element.className="wfu_formdata_action wfu_formdata_action_up"+
121
- (attr_occur_index==1&&line_container_index==1?" wfu_formdata_action_disabled":"");down_element.className="wfu_formdata_action wfu_formdata_action_down"+(attr_occur_index==all_attributes.length&&line_container_index==containers.length?" wfu_formdata_action_disabled":"");for(var i=0;i<remove_elements.length;i++)remove_elements[i].className="wfu_formdata_action wfu_formdata_action_remove"+(remove_elements.length>1?"":" wfu_formdata_action_disabled")}
122
- function wfu_formdata_update_all_updown_buttons(attribute){var all_attributes=document.querySelector("div#wfu_attribute_"+attribute+" .wfu_formdata_all_attributes").value.split(",");for(var i=0;i<all_attributes.length;i++){var ii=i+1;var containers=document.querySelectorAll("div#wfu_attribute_"+all_attributes[i]+" .wfu_formdata_line_container");for(var j=0;j<containers.length;j++){var jj=j+1;var key=containers[j].id.replace(/^wfu_formfield_/,"").replace(/_container$/,"");var up_element=document.querySelector("div#wfu_formfield_"+
123
- key+"_container .wfu_formdata_action.wfu_formdata_action_up");var down_element=document.querySelector("div#wfu_formfield_"+key+"_container .wfu_formdata_action.wfu_formdata_action_down");up_element.className="wfu_formdata_action wfu_formdata_action_up"+(ii==1&&jj==1?" wfu_formdata_action_disabled":"");down_element.className="wfu_formdata_action wfu_formdata_action_down"+(ii==all_attributes.length&&jj==containers.length?" wfu_formdata_action_disabled":"")}}}
124
- function wfu_generate_shortcode(){var shortcode_tag=document.getElementById("wfu_shortcode_tag").value;var defaults=document.getElementById("wfu_attribute_defaults");var values=document.getElementById("wfu_attribute_values");var item;var attribute="";var value="";var shortcode_full="["+shortcode_tag;var shortcode="";for(var i=0;i<defaults.childNodes.length;i++){item=defaults.childNodes[i];if(item.nodeType===1){attribute=item.id.replace("wfu_attribute_default_","");value=document.getElementById("wfu_attribute_value_"+
125
- attribute).value;if(item.value!=value)shortcode+=" "+attribute+'="'+value+'"'}}shortcode_full+=shortcode+"]";document.getElementById("wfu_shortcode").value=shortcode_full;ShortcodeString=shortcode.substr(1);if(document.getElementById("wfu_update_shortcode"))document.getElementById("wfu_update_shortcode").disabled=wfu_plugin_encode_string(shortcode_full)==document.getElementById("wfu_shortcode_original_enc").value;if(Autosave)wfu_schedule_save_shortcode()}
126
- function wfu_update_text_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");var val=item.value;val=val.replace(/(\r\n|\n|\r)/gm,"%n%");val=val.replace(/"/gm,"%dq%");val=val.replace(/\[/gm,"%brl%");val=val.replace(/\]/gm,"%brr%");if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=val;wfu_generate_shortcode()}}
127
- function wfu_update_date_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");var val=item.value;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=val;wfu_generate_shortcode()}}
128
- function wfu_update_stringmatch_textvalue(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");attribute=attribute.replace("_matchfield","").replace("_matchvalue","");wfu_update_stringmatch_value(attribute)}
129
- function wfu_update_triplecolor_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");attribute=attribute.replace("_color","");attribute=attribute.replace("_bgcolor","");attribute=attribute.replace("_borcolor","");item=document.getElementById("wfu_attribute_"+attribute+"_color");var val=item.value+","+document.getElementById("wfu_attribute_"+attribute+"_bgcolor").value+","+document.getElementById("wfu_attribute_"+attribute+"_borcolor").value;if(val!==item.oldVal){item.oldVal=
130
- val;document.getElementById("wfu_attribute_value_"+attribute).value=val;wfu_generate_shortcode()}}
131
- function wfu_update_dimension_value(e){e=e||window.event;var item=e.target;var attribute=item.name.replace("wfu_dimension_elements_","");var group=document.getElementsByName(item.name);item=group[0];var val="";var dimname="";for(var i=0;i<group.length;i++){dimname=group[i].id.replace("wfu_attribute_"+attribute+"_","");if(val!=""&&group[i].value!="")val+=", ";if(group[i].value!="")val+=dimname+":"+group[i].value}if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=
132
- val;wfu_generate_shortcode()}}function wfu_update_ptext_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");attribute=attribute.substr(2);var singular=document.getElementById("wfu_attribute_s_"+attribute).value;var plural=document.getElementById("wfu_attribute_p_"+attribute).value;var val=singular+"/"+plural;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=val}wfu_generate_shortcode()}
133
- function wfu_update_mchecklist_value(attribute){var value="";var mchecklist=document.getElementById("wfu_attribute_"+attribute);var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(checkall.checked){jQuery("#wfu_attribute_"+attribute+" input").prop("disabled",true);jQuery("#wfu_attribute_"+attribute+" input").prop("checked",true);value="all"}else{jQuery("#wfu_attribute_"+attribute+" input").prop("disabled",false);jQuery("#wfu_attribute_"+attribute+" input").each(function(){if(jQuery(this).prop("checked"))value+=
134
- ","+jQuery(this).next().html()});value=value.substr(1)}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
135
- function wfu_update_rolelist_value(attribute){var value="";var rolelist=document.getElementById("wfu_attribute_"+attribute);var guests=document.getElementById("wfu_attribute_"+attribute+"_guests");var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(checkall.checked){rolelist.disabled=true;value="all"}else{rolelist.disabled=false;var options=rolelist.options;for(var i=0;i<options.length;i++)if(options[i].selected){if(value!="")value+=",";value+=options[i].value}}if(guests.checked){if(value!=
136
- "")value+=",";value+="guests"}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
137
- function wfu_update_userlist_value(attribute){var value="";var userlist=document.getElementById("wfu_attribute_"+attribute);var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");var guests=document.getElementById("wfu_attribute_"+attribute+"_guests");var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(only_current&&only_current.checked){userlist.disabled=true;checkall.disabled=true;guests.disabled=true;value="current"}else{checkall.disabled=false;guests.disabled=
138
- false;if(checkall.checked){userlist.disabled=true;value="all"}else{userlist.disabled=false;var options=userlist.options;for(var i=0;i<options.length;i++)if(options[i].selected){if(value!="")value+=",";value+=options[i].value}}if(guests.checked){if(value!="")value+=",";value+="guests"}}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
139
- function wfu_update_postlist_value(attribute){var value="";var userlist=Array();var checkall=Array();var postlist=document.getElementById("wfu_attribute_"+attribute+"_postlist").value.split(",");for(var i=0;i<postlist.length;i++){userlist.push(document.getElementById("wfu_attribute_"+attribute+"_"+postlist[i]));checkall.push(document.getElementById("wfu_attribute_"+attribute+"_all_"+postlist[i]))}var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&only_current.checked){for(var i=
140
- 0;i<postlist.length;i++){userlist[i].disabled=true;checkall[i].disabled=true}value="current"}else{var allchecked=true;value="";for(var i=0;i<postlist.length;i++){checkall[i].disabled=false;if(checkall[i].checked){userlist[i].disabled=true;if(value!="")value+=",";value+="all"+postlist[i]}else{userlist[i].disabled=false;allchecked=false;var options=userlist[i].options;for(var j=0;j<options.length;j++)if(options[j].selected){if(value!="")value+=",";value+=options[j].value}}}if(allchecked)value="all"}document.getElementById("wfu_attribute_value_"+
141
- attribute).value=value;wfu_generate_shortcode()}
142
- function wfu_update_bloglist_value(attribute){var value="";var bloglist=document.getElementById("wfu_attribute_"+attribute);var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(only_current&&only_current.checked){bloglist.disabled=true;checkall.disabled=true;value="current"}else{checkall.disabled=false;if(checkall.checked){bloglist.disabled=true;value="all"}else{bloglist.disabled=false;var options=
143
- bloglist.options;for(var i=0;i<options.length;i++)if(options[i].selected){if(value!="")value+=",";value+=options[i].value}}}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
144
- function wfu_update_stringmatch_value(attribute){var matchfield=document.getElementById("wfu_attribute_"+attribute+"_matchfield").value;var matchcriterion=document.getElementById("wfu_attribute_"+attribute+"_matchcriterion").value;var matchvalue=document.getElementById("wfu_attribute_"+attribute+"_matchvalue").value;matchfield=matchfield.replace(";","");if(matchfield.trim()=="")document.getElementById("wfu_attribute_value_"+attribute).value="";else document.getElementById("wfu_attribute_value_"+attribute).value=
145
- "field:"+matchfield+";criterion:"+matchcriterion+";value:"+matchvalue;wfu_generate_shortcode()}
146
- function wfu_update_userfield_value(e){e=e||window.event;var item=e.target;var line=item.parentNode;var container=line.parentNode;var fieldval="";var fieldreq=false;var val="";for(var i=0;i<container.childNodes.length;i++){line=container.childNodes[i];if(line.tagName==="DIV"){for(var j=0;j<line.childNodes.length;j++)if(line.childNodes[j].tagName=="INPUT")if(line.childNodes[j].type=="text"){fieldval=line.childNodes[j].value;if(i==0)item=line.childNodes[j]}else if(line.childNodes[j].type=="checkbox")fieldreq=
147
- line.childNodes[j].checked;if(val!=""&&fieldval!="")val+="/";if(fieldval!=""&&fieldreq)val+="*";if(fieldval!="")val+=fieldval}}if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_userdatalabel").value=val;wfu_generate_shortcode();wfu_update_formfield_variables()}}
148
- function wfu_update_formfield_value(e){e=e||window.event;var item=e.target;var attribute=item.id.match(/^wfu_formfield_(.*?)_/)[1];var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");var val="";for(var i=0;i<containers.length;i++){var part="";var ind=containers[i].id.match(/^wfu_formfield_.*?_(.*?)_/)[1];var key=attribute+"_"+ind;var label=document.getElementById("wfu_formfield_"+key+"_label").value;if(label.trim()!=""){part=label.trim();var type=
149
- document.getElementById("wfu_formfield_"+key+"_type").value;var typeprops=window["wfu_attribute_"+attribute+"_typeprops"];part+="|t:"+type;part+="|s:"+document.getElementById("wfu_formfield_"+key+"_labelposition").value;if(typeprops[type].required.substr(0,4)=="show")part+="|r:"+(document.getElementById("wfu_formfield_"+key+"_required").checked?"1":"0");if(typeprops[type].donotautocomplete.substr(0,4)=="show")part+="|a:"+(document.getElementById("wfu_formfield_"+key+"_donotautocomplete").checked?
150
- "1":"0");if(typeprops[type].validate.substr(0,4)=="show")part+="|v:"+(document.getElementById("wfu_formfield_"+key+"_validate").checked?"1":"0");if(typeprops[type].typehook.substr(0,4)=="show")part+="|h:"+(document.getElementById("wfu_formfield_"+key+"_typehook").checked?"1":"0");if(typeprops[type].hintposition.substr(0,4)=="show")part+="|p:"+document.getElementById("wfu_formfield_"+key+"_hintposition").value;if(typeprops[type]["default"].substr(0,4)=="show")part+="|d:"+document.getElementById("wfu_formfield_"+
151
- key+"_default").value;if(typeprops[type].data.substr(0,4)=="show")part+="|l:"+document.getElementById("wfu_formfield_"+key+"_data").value;if(typeprops[type].group.substr(0,4)=="show")part+="|g:"+document.getElementById("wfu_formfield_"+key+"_group").value;if(typeprops[type].format.substr(0,4)=="show")part+="|f:"+document.getElementById("wfu_formfield_"+key+"_format").value}if(part!=""){if(val!="")val+="/";val+=part}}if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
152
- attribute).value=val;wfu_generate_shortcode();wfu_update_formfield_variables()}}
153
- function wfu_update_formfield_variables(){var userdata=document.getElementById("wfu_attribute_value_userdatalabel");if(!userdata)return;var shadows=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_userdata");var selects=document.getElementsByName("wfu_formfield_select");for(var i=0;i<selects.length;i++)selects[i].style.display="none";if(shadows.length==0)return;if(shadows[0].style.display=="block")return;var options_str='<option style="display:none;">%userdataXXX%</option>';var userfields=userdata.value.replace(/\//g,
154
- "[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");var ind=2;while(document.getElementById("wfu_attribute_userdatalabel"+ind)){var userfields2=document.getElementById("wfu_attribute_value_userdatalabel"+ind).value.replace(/\//g,"[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");userfields=userfields.concat(userfields2);ind++}var field="";var pos=0;ind=1;for(var i=0;i<userfields.length;i++){field=userfields[i];if(field[0]=="*")field=field.substr(1);
155
- pos=field.indexOf("|");if(pos>-1)field=field.substr(0,pos);if(field.trim()!=""){options_str+='<option value="%userdata'+ind+'%">'+ind+": "+field.trim()+"</option>";ind++}}for(var i=0;i<selects.length;i++){selects[i].innerHTML=options_str;selects[i].style.display="inline-block"}}
156
- function wfu_attach_element_handlers(item,handler){var elem_events=["DOMAttrModified","textInput","input","change","keypress","paste","focus","propertychange"];for(var i=0;i<elem_events.length;i++)wfu_addEventHandler(item,elem_events[i],handler)}
157
- function wfu_Attach_Admin_Events(autosave_shortcode){Autosave=autosave_shortcode;wfu_generate_shortcode();wfu_update_formfield_variables();wfu_Attach_Admin_DragDrop_Events();var text_elements=document.getElementsByName("wfu_text_elements");for(var i=0;i<text_elements.length;i++)wfu_attach_element_handlers(text_elements[i],wfu_update_text_value);var ptext_elements=document.getElementsByName("wfu_ptext_elements");for(var i=0;i<ptext_elements.length;i++)wfu_attach_element_handlers(ptext_elements[i],
158
- wfu_update_ptext_value);var stringmatch_elements=document.getElementsByName("wfu_stringmatch_elements");for(var i=0;i<stringmatch_elements.length;i++)wfu_attach_element_handlers(stringmatch_elements[i],wfu_update_stringmatch_textvalue);var triplecolor_elements=document.getElementsByName("wfu_triplecolor_elements");for(var i=0;i<triplecolor_elements.length;i++)wfu_attach_element_handlers(triplecolor_elements[i],wfu_update_triplecolor_value);var dimension_elements=document.getElementsByName("wfu_dimension_elements_widths");
159
- for(var i=0;i<dimension_elements.length;i++)wfu_attach_element_handlers(dimension_elements[i],wfu_update_dimension_value);dimension_elements=document.getElementsByName("wfu_dimension_elements_heights");for(var i=0;i<dimension_elements.length;i++)wfu_attach_element_handlers(dimension_elements[i],wfu_update_dimension_value);var userfield_elements=document.getElementsByName("wfu_userfield_elements");for(var i=0;i<userfield_elements.length;i++)wfu_attach_element_handlers(userfield_elements[i],wfu_update_userfield_value);
160
- var formfield_elements=document.getElementsByName("wfu_formfield_elements");for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],wfu_update_formfield_value);var subfolder_input_elements=document.getElementsByName("wfu_subfolder_tools_input");for(var i=0;i<subfolder_input_elements.length;i++)wfu_attach_element_handlers(subfolder_input_elements[i],wfu_subfolders_input_changed);var wfu_columnprops_elements=document.getElementsByName("wfu_columnprops_elements");
161
- for(var i=0;i<wfu_columnprops_elements.length;i++)wfu_attach_element_handlers(wfu_columnprops_elements[i],wfu_columnprops_element_changed);if(document.getElementById("wfu_shortcode_postid").value!="")setTimeout(function(){wfu_check_page_obsolescence()},CheckObsolescenceTimeOut)}
162
- function wfu_insert_variable(obj){var attr=obj.className.replace("wfu_variable wfu_variable_","");var inp=document.getElementById("wfu_attribute_"+attr);var pos=inp.selectionStart;var prevval=inp.value;inp.value=prevval.substr(0,pos)+obj.innerHTML+prevval.substr(pos);wfu_update_text_value({target:inp})}
163
- function wfu_insert_userfield_variable(obj){var attr=obj.className.replace("wfu_variable wfu_variable_","");var inp=document.getElementById("wfu_attribute_"+attr);var pos=inp.selectionStart;var prevval=inp.value;inp.value=prevval.substr(0,pos)+obj.value+prevval.substr(pos);obj.value="%userdataXXX%";wfu_update_text_value({target:inp})}
164
- function wfu_columns_itemclicked(obj,attribute){var select=obj.parentNode;if(select.tagName!="SELECT")return;for(var i=0;i<select.options.length;i++)select.options[i].selected=select.options[i]==obj;wfu_update_column_props(attribute)}
165
- function wfu_columns_buttonaction(attribute,action){var source=document.getElementById("wfu_attribute_"+attribute+"_sourcelist");var target=document.getElementById("wfu_attribute_"+attribute);if(action=="add")for(var i=0;i<source.options.length;i++){if(source.options[i].selected||source.options[i].className=="wfu_columns_item_required"){var found=false;var sou=source.options[i].value.replace(/:.*/,"");for(var j=0;j<target.options.length;j++){var tar=target.options[j].value.replace(/:.*/,"");if(tar==
166
- sou){found=true;break}}if(!found){var parts=source.options[i].value.match(/(.*?):(.*?)\/(.*)/);var item_name=parts[1];var sorttype=item_name=="custom"?"+-"+(parts[2]==""?"s":parts[2]):parts[2]!=""?"-+"+parts[2]:"";var title=parts[3];if(item_name=="custom")item_name="custom1";var opt=document.createElement("OPTION");opt.value=item_name+":"+sorttype+"/"+source.options[i].innerHTML+"/"+title;opt.innerHTML=source.options[i].innerHTML+(title!=""&&title!=source.options[i].innerHTML?" ("+title+")":"");opt.className=
167
- source.options[i].className;opt.onclick=source.options[i].onclick;target.appendChild(opt);target.selectedIndex=target.options.length-1}}}else if(action=="del"){var i=0;while(i<target.options.length)if(target.options[i].selected&&target.options[i].className!="wfu_columns_item_required")target.options.remove(i);else i++}else if(action=="up"||action=="down"){var ind=-1;for(var i=0;i<target.options.length;i++)if(target.options[i].selected&&ind==-1)ind=i;else if(target.options[i].selected&&ind>-1)target.options[i].selected=
168
- false;if(action=="up"&&ind>0)target.insertBefore(target.options[ind],target.options[ind-1]);else if(action=="down"&&ind<target.options.length-1)target.insertBefore(target.options[ind+1],target.options[ind])}wfu_update_column_props(attribute);wfu_update_columns(attribute)}
169
- function wfu_update_column_props(attribute){var target=document.getElementById("wfu_attribute_"+attribute);var props_table=document.getElementById("wfu_attribute_"+attribute+"_columnprops_container");var props_title=document.getElementById("wfu_attribute_"+attribute+"_columnprops_title");var props_title_label=document.getElementById("wfu_attribute_"+attribute+"_columnprops_title_label");var props_id=document.getElementById("wfu_attribute_"+attribute+"_columnprops_id");var props_id_label=document.getElementById("wfu_attribute_"+
170
- attribute+"_columnprops_id_label");var props_sort=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sort");var props_sort_label=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sort_label");var props_sorttype=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sorttype");var props_sorttype_label=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sorttype_label");var index=target.selectedIndex;if(props_sorttype.options[0].value=="")props_sorttype.options.remove(0);
171
- if(index==-1){props_table.className="wfu_columnprops_container wfu_columnprops_container_disabled";props_title.value="";props_title.disabled=true;props_id.value="";props_id.disabled=true;props_sort.checked=false;props_sort.disabled=true;props_sorttype.selectedIndex=-1;props_sorttype.disabled=true}else{var parts=target.options[index].value.match(/(.*?):(.*?)\/(.*?)\/(.*)/);var item_name=parts[1];var fieldid_enabled=item_name.substr(0,6)=="custom";var fieldid_value=fieldid_enabled?item_name.substr(6):
172
- "";var sortable_enabled=parts[2]!="";var sortable=sortable_enabled&&parts[2].substr(1,1)=="+";var sorttype_enabled=sortable&&parts[2].substr(0,1)=="+";var sorttype=sortable?parts[2].substr(2):"";var title=parts[4];props_table.className="wfu_columnprops_container";props_title.value=title;props_title.disabled=false;props_id_label.className=fieldid_enabled?"":"wfu_columnprops_label_disabled";props_id.value=fieldid_value;props_id.disabled=!fieldid_enabled;props_sort_label.className=sortable_enabled?"":
173
- "wfu_columnprops_label_disabled";props_sort.checked=sortable;props_sort.disabled=!sortable_enabled;props_sorttype_label.className=sorttype_enabled?"":"wfu_columnprops_label_disabled";props_sorttype.value=sorttype;props_sorttype.disabled=!sorttype_enabled}}
174
- function wfu_columnprops_element_changed(e){e=e||window.event;var item=e.target;var attribute=item.id.match(/^wfu_attribute_(.*?)_columnprops_/)[1];var target=document.getElementById("wfu_attribute_"+attribute);var props_title=document.getElementById("wfu_attribute_"+attribute+"_columnprops_title");var props_id=document.getElementById("wfu_attribute_"+attribute+"_columnprops_id");var props_sort=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sort");var props_sorttype=document.getElementById("wfu_attribute_"+
175
- attribute+"_columnprops_sorttype");var index=target.selectedIndex;if(index==-1)return;var parts=target.options[index].value.match(/(.*?):(.*?)\/(.*?)\/(.*)/);var item_name=parts[1];var flat_name=item_name.substr(0,6)=="custom"?"custom":item_name;var fieldid_enabled=flat_name=="custom";var fieldid_value=fieldid_enabled?parseInt(props_id.value)>=1?props_id.value:"1":"";var sort=parts[2]!=""?parts[2].substr(0,1)+(props_sort.checked?"+":"-")+(props_sorttype.value!=""?props_sorttype.value:parts[2].substr(2)!=
176
- ""?parts[2].substr(2):"s"):"";var label=parts[3];var title=props_title.value!=""?props_title.value:label;target.options[index].value=flat_name+fieldid_value+":"+sort+"/"+label+"/"+title;target.options[index].innerHTML=label+(title!=label?" ("+title+")":"");wfu_update_column_props(attribute);wfu_update_columns(attribute)}
177
- function wfu_update_columns(attribute){var target=document.getElementById("wfu_attribute_"+attribute);var columns="";for(var i=0;i<target.options.length;i++){var parts=target.options[i].value.match(/(.*?):(.*?)\/(.*?)\/(.*)/);var col=parts[1]+":"+(parts[2].substr(1,1)=="+"?parts[2].substr(2):"")+"/"+parts[4];if(columns!="")columns+=",";columns+=col}document.getElementById("wfu_attribute_value_"+attribute).value=columns;wfu_generate_shortcode()}
178
- function wfu_GetHttpRequestObject(){var xhr=null;try{xhr=new XMLHttpRequest}catch(e$0){try{xhr=new ActiveXObject("Msxml2.XMLHTTP")}catch(e2){try{xhr=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}}if(xhr==null&&window.createRequest)try{xmlhttp=window.createRequest()}catch(e$1){}return xhr}
179
- function wfu_plugin_encode_string(str){var i=0;var newstr="";var num;var hex="";for(i=0;i<str.length;i++){num=str.charCodeAt(i);if(num>=2048)num=((num&16773120|917504)<<4)+((num&4032|8192)<<2)+(num&63|128);else if(num>=128)num=((num&65472|12288)<<2)+(num&63|128);hex=num.toString(16);if(hex.length==1||hex.length==3||hex.length==5)hex="0"+hex;newstr+=hex}return newstr}
180
- function wfu_plugin_decode_string(str){var i=0;var newstr="";var num,val;while(i<str.length){num=parseInt(str.substr(i,2),16);if(num<128)val=num;else if(num<224)val=((num&31)<<6)+(parseInt(str.substr(i+=2,2),16)&63);else val=((num&15)<<12)+((parseInt(str.substr(i+=2,2),16)&63)<<6)+(parseInt(str.substr(i+=2,2),16)&63);newstr+=String.fromCharCode(val);i+=2}return newstr}
181
- function wfu_randomString(len){var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var string_length=len;var randomstring="";for(var i=0;i<string_length;i++){var rnum=Math.floor(Math.random()*chars.length);randomstring+=chars.substring(rnum,rnum+1)}return randomstring}
182
- function wfu_schedule_save_shortcode(){var d=new Date;var dt=ShortcodeNextSave-d.getTime();if(ShortcodeTimeOut!=null){clearTimeout(ShortcodeTimeOut);ShortcodeTimeOut=null}if(dt<=0)wfu_save_shortcode();else ShortcodeTimeOut=setTimeout(function(){wfu_save_shortcode()},dt)}function wfu_check_page_obsolescence(){if(PageObsolete||PageUpdating||document.getElementById("wfu_shortcode_postid").value=="")return}
183
- function wfu_save_shortcode(){if(PageObsolete)return;var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;PageUpdating=true;document.getElementById("wfu_update_failed_message").style.display="none";var url=AdminParams.wfu_ajax_url;params=new Array(8);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_save_shortcode";params[1]=new Array(2);params[1][0]="shortcode";params[1][1]=wfu_plugin_encode_string(ShortcodeString);params[2]=new Array(2);params[2][0]="shortcode_original";
184
- params[2][1]=document.getElementById("wfu_shortcode_original_enc").value;params[3]=new Array(2);params[3][0]="post_id";params[3][1]=document.getElementById("wfu_shortcode_postid").value;params[4]=new Array(2);params[4][0]="post_hash";params[4][1]=document.getElementById("wfu_shortcode_posthash").value;params[5]=new Array(2);params[5][0]="shortcode_position";params[5][1]=document.getElementById("wfu_shortcode_position").value;params[6]=new Array(2);params[6][0]="shortcode_tag";params[6][1]=document.getElementById("wfu_shortcode_tag").value;
185
- params[7]=new Array(2);params[7][0]="widget_id";params[7][1]=document.getElementById("wfu_shortcode_widgetid").value;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);var d=new Date;if(Autosave)ShortcodeNextSave=d.getTime()+5E3;else if(document.getElementById("wfu_update_shortcode"))document.getElementById("wfu_update_shortcode_wait").style.display="inline";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
186
- xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){PageUpdating=false;var start_text="wfu_save_shortcode:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){if(Autosave){document.getElementById("wfu_save_label").innerHTML=
187
- "saved";document.getElementById("wfu_save_label").className="wfu_save_label";document.getElementById("wfu_save_label").style.opacity=1;wfu_fadeout_element(300);ShortcodeNextSave=d.getTime()+1E3;if(ShortcodeTimeOut!=null)wfu_schedule_save_shortcode()}else if(document.getElementById("wfu_update_shortcode")){document.getElementById("wfu_update_shortcode_wait").style.display="none";document.getElementById("wfu_update_shortcode").disabled=true;if(window.plugin_window)window.plugin_window.location.reload(true)}if(document.getElementById("wfu_shortcode_postid").value!=
188
- ""){var shortcode_tag=document.getElementById("wfu_shortcode_tag").value;document.getElementById("wfu_shortcode_original_enc").value=wfu_plugin_encode_string("["+shortcode_tag+" "+ShortcodeString+"]");document.getElementById("wfu_shortcode_posthash").value=txt_value;setTimeout(function(){wfu_check_page_obsolescence()},CheckObsolescenceTimeOut)}}else{if(Autosave){document.getElementById("wfu_save_label").innerHTML="not saved";document.getElementById("wfu_save_label").className="wfu_save_label_fail";
189
- document.getElementById("wfu_save_label").style.opacity=1;wfu_fadeout_element(300)}if(txt_header=="fail")if(txt_value=="post_modified"){PageObsolete=true;if(document.getElementById("wfu_update_shortcode"))document.getElementById("wfu_update_shortcode").disabled=true;document.getElementById("wfu_update_rejected_message").style.display="block"}else document.getElementById("wfu_update_failed_message").style.display="block"}}};xhr.send(parameters)}
190
- function wfu_adjust_opacity(opacity){document.getElementById("wfu_save_label").style.opacity=opacity}function wfu_fadeout_element(interval){var reps=20;var op=0;for(var i=0;i<reps;i++){op=1-i/reps;setTimeout('wfu_adjust_opacity("'+op.toString()+'")',i*interval/reps)}setTimeout('wfu_adjust_opacity("0.0")',i*interval/reps)}
191
- function wfu_apply_value(attribute,type,value){if(type=="onoff"){document.getElementById("wfu_attribute_"+attribute).className="wfu_onoff_container_"+(value!="true"?"on":"off");wfu_admin_onoff_clicked(attribute)}else if(type=="text"||type=="ltext"||type=="integer"||type=="float"||type=="mtext"||type=="color"){var item=document.getElementById("wfu_attribute_"+attribute);value=value.replace(/%n%/gm,"\n");value=value.replace(/%dq%/gm,'"');value=value.replace(/%brl%/gm,"[");value=value.replace(/%brr%/gm,
192
- "]");if(type=="color"){var rgb=colourNameToHex(value);if(!rgb)rgb=value;jQuery("#wfu_attribute_"+attribute).wpColorPicker("color",rgb)}item.value=value;wfu_update_text_value({target:item})}else if(type=="date"){var item=document.getElementById("wfu_attribute_"+attribute);item.value=value;wfu_update_date_value({target:item})}else if(type=="placements"){wfu_admin_recreate_placements_panel(value);document.getElementById("wfu_attribute_value_placements").value=value;wfu_generate_shortcode()}else if(type==
193
- "radio"){var radios=document.getElementsByName("wfu_radioattribute_"+attribute);for(var i=0;i<radios.length;i++)radios[i].checked=radios[i].value==value||"*"+radios[i].value==value;wfu_admin_radio_clicked(attribute)}else if(type=="ptext"){value=value.replace(/%n%/gm,"\n");value=value.replace(/%dq%/gm,'"');value=value.replace(/%brl%/gm,"[");value=value.replace(/%brr%/gm,"]");var parts=value.split("/");var singular=parts.length<1?"":parts[0];var plural=parts.length<2?singular:parts[1];var item1=document.getElementById("wfu_attribute_s_"+
194
- attribute);item1.value=singular;var item2=document.getElementById("wfu_attribute_p_"+attribute);item2.value=plural;wfu_update_ptext_value({target:item1});wfu_update_ptext_value({target:item2})}else if(type=="mchecklist"){value=value.toLowerCase();if(value=="all")document.getElementById("wfu_attribute_"+attribute+"_all").checked=true;else{document.getElementById("wfu_attribute_"+attribute+"_all").checked=false;var items=value.split(",");for(var i=0;i<items.length;i++)items[i]=items[i].trim();jQuery("#wfu_attribute_"+
195
- attribute+" input").each(function(){jQuery(this).prop("checked",items.indexOf(jQuery(this).next().html())>-1)})}wfu_update_mchecklist_value(attribute)}else if(type=="rolelist"){var item=document.getElementById("wfu_attribute_"+attribute);var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");var default_administrator=checkall.className.indexOf("wfu_default_administrator")>-1;var roles=value.split(",");if(roles.indexOf("all")>-1){checkall.checked=true;for(var i=0;i<item.options.length;i++)item.options[i].selected=
196
- default_administrator&&item.options[i].value=="administrator"}else{checkall.checked=false;for(var i=0;i<roles.length;i++)roles[i]=roles[i].trim();for(var i=0;i<item.options.length;i++)item.options[i].selected=roles.indexOf(item.options[i].value)>-1}document.getElementById("wfu_attribute_"+attribute+"_guests").checked=roles.indexOf("guests")>-1;wfu_update_rolelist_value(attribute)}else if(type=="userlist"){var item=document.getElementById("wfu_attribute_"+attribute);var checkall=document.getElementById("wfu_attribute_"+
197
- attribute+"_all");var default_0=checkall.className.indexOf("wfu_default_0")>-1;var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&value=="current"){only_current.checked=true;checkall.checked=false;document.getElementById("wfu_attribute_"+attribute+"_guests").checked=false;for(var i=0;i<item.options.length;i++)item.options[i].selected=default_0&&i<1}else{if(only_current)only_current.checked=false;var users=value.split(",");if(users.indexOf("all")>-1){checkall.checked=
198
- true;for(var i=0;i<item.options.length;i++)item.options[i].selected=default_0&&i<1}else{checkall.checked=false;for(var i=0;i<users.length;i++)users[i]=users[i].trim();for(var i=0;i<item.options.length;i++)item.options[i].selected=users.indexOf(item.options[i].value)>-1}document.getElementById("wfu_attribute_"+attribute+"_guests").checked=users.indexOf("guests")>-1}wfu_update_userlist_value(attribute)}else if(type=="postlist"){var userlist=Array();var checkall=Array();var postlist=document.getElementById("wfu_attribute_"+
199
- attribute+"_postlist").value.split(",");for(var i=0;i<postlist.length;i++){userlist.push(document.getElementById("wfu_attribute_"+attribute+"_"+postlist[i]));checkall.push(document.getElementById("wfu_attribute_"+attribute+"_all_"+postlist[i]))}var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&value=="current"){only_current.checked=true;for(var i=0;i<postlist.length;i++){checkall[i].checked=false;for(var j=0;j<userlist[i].options.length;j++)userlist[i].options[j].selected=
200
- false}}else{if(only_current)only_current.checked=false;var ids=value.split(",");for(var i=0;i<postlist.length;i++){if(value=="all"||ids.indexOf("all"+postlist[i])>-1)checkall[i].checked=true;for(var j=0;j<userlist[i].options.length;j++)userlist[i].options[j].selected=ids.indexOf(userlist[i].options[j].value)>-1}}wfu_update_postlist_value(attribute)}else if(type=="bloglist"){var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&value=="current"){only_current.checked=
201
- true;document.getElementById("wfu_attribute_"+attribute+"_all").checked=false;var item=document.getElementById("wfu_attribute_"+attribute);for(var i=0;i<item.options.length;i++)item.options[i].selected=false}else{if(only_current)only_current.checked=false;var blogs=value.split(",");if(value=="all")document.getElementById("wfu_attribute_"+attribute+"_all").checked=true;else{document.getElementById("wfu_attribute_"+attribute+"_all").checked=false;for(var i=0;i<blogs.length;i++)blogs[i]=blogs[i].trim();
202
- var item=document.getElementById("wfu_attribute_"+attribute);for(var i=0;i<item.options.length;i++)item.options[i].selected=blogs.indexOf(item.options[i].value)>-1}}wfu_update_bloglist_value(attribute)}else if(type=="stringmatch"){var matchfield="";var matchcriterion="equal to";var matchvalue="";var matches=value.match(/^field:(.*?);\s*criterion:(.*?)\s*;\s*value:(.*)$/);if(matches&&matches.length==4){matchfield=matches[1];matchcriterion=matches[2];matchvalue=matches[3]}document.getElementById("wfu_attribute_"+
203
- attribute+"_matchfield").value=matchfield;document.getElementById("wfu_attribute_"+attribute+"_matchcriterion").value=matchcriterion;document.getElementById("wfu_attribute_"+attribute+"_matchvalue").value=matchvalue;wfu_update_stringmatch_value(attribute)}else if(type=="columns"){var source=document.getElementById("wfu_attribute_"+attribute+"_sourcelist");var target=document.getElementById("wfu_attribute_"+attribute);target.innerHTML="";var columns_flat=value.replace(/(:|\/).*?(,|$)/g,"$2").split(",");
204
- for(var i=0;i<source.options.length;i++){var parts=source.options[i].value.match(/(.*?):(.*?)\/(.*)/);var item_name=parts[1];if(source.options[i].className=="wfu_columns_item_required"&&columns_flat.indexOf(item_name)==-1){var sorttype=item_name=="custom"?"+-"+(parts[2]==""?"s":parts[2]):parts[2]!=""?"-+"+parts[2]:"";var title=parts[3];if(item_name=="custom")item_name="custom1";var opt=document.createElement("OPTION");opt.value=item_name+":"+sorttype+"/"+source.options[i].innerHTML+"/"+title;opt.innerHTML=
205
- source.options[i].innerHTML+(title!=""&&title!=source.options[i].innerHTML?" ("+title+")":"");opt.className=source.options[i].className;opt.onclick=source.options[i].onclick;target.appendChild(opt)}}var columns=value.split(",");for(var i=0;i<columns.length;i++){var item_parts=columns[i].split("/",2);var item_name=item_parts[0];var item_title="";if(item_parts.length>1)item_title=item_parts[1];item_parts=item_name.split(":",2);item_name=item_parts[0];var flat_name=item_name.replace(/custom[0-9]+$/,
206
- "custom");var ind=-1;for(var j=0;j<source.options.length;j++){var sou=source.options[j].value.replace(/:.*/,"");if(sou==flat_name){ind=j;break}}var already_exists=false;for(var j=0;j<target.options.length;j++){var tar=target.options[j].value.replace(/:.*/,"");if(tar==item_name){already_exists=true;break}}if(item_name!="custom"&&ind>-1&&!already_exists){var parts=source.options[ind].value.match(/(.*?):(.*?)\/(.*)/);var sortable=flat_name=="custom"||parts[2]!="";var sorttype=parts[2];var label=source.options[ind].innerHTML;
207
- var title=parts[3];var item_sort="";if(item_parts.length==1)item_sort=flat_name=="custom"?"+-s":sortable?"-+"+sorttype:"";else if(flat_name=="custom")item_sort="+"+(item_parts[1]==""?"-s":"+"+item_parts[1]);else item_sort=sortable?"-"+(item_parts[1]==""?"-":"+")+sorttype:"";if(item_title=="")item_title=title;var opt=document.createElement("OPTION");opt.value=item_name+":"+item_sort+"/"+label+"/"+item_title;opt.innerHTML=label+(title!=label?" ("+title+")":"");opt.className=source.options[ind].className;
208
- opt.onclick=source.options[i].onclick;target.appendChild(opt)}}wfu_update_column_props(attribute);wfu_update_columns(attribute)}else if(type=="dimensions"){var dims=value.split(",");var details,nam,val,item;var group=document.getElementsByName("wfu_dimension_elements_"+attribute);for(var i=0;i<group.length;i++)group[i].value="";for(var i=0;i<dims.length;i++){details=dims[i].split(":",2);nam=details.length<1?"":details[0];val=details.length<2?nam:details[1];item=document.getElementById("wfu_attribute_"+
209
- attribute+"_"+nam.trim());if(item)item.value=val.trim()}item=group[0];wfu_update_dimension_value({target:item})}else if(type=="userfields"){var fields_arr=value.replace(/\//g,"[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");var is_req;var fields=Array();for(var i=0;i<fields_arr.length;i++){is_req=fields_arr[i].substr(0,1)=="*";if(is_req)fields_arr[i]=fields_arr[i].substr(1);if(fields_arr[i]!="")fields.push({name:fields_arr[i],required:is_req})}var container=document.getElementById("wfu_attribute_"+
210
- attribute);var first=null;var remove_array=Array();for(var i=0;i<container.childNodes.length;i++)if(container.childNodes[i].nodeType===1)if(first==null)first=container.childNodes[i];else remove_array.push(container.childNodes[i]);for(var i=0;i<remove_array.length;i++)container.removeChild(remove_array[i]);wfu_userdata_edit_field(first,"",false);var newline;var prevline=first;for(var i=0;i<fields.length;i++)if(i==0)wfu_userdata_edit_field(first,fields[i].name,fields[i].required);else{newline=prevline.cloneNode(true);
211
- wfu_userdata_edit_field(newline,fields[i].name,fields[i].required);container.insertBefore(newline,prevline.nextSibling);prevline=newline}var item;for(var i=0;i<first.childNodes.length;i++){item=first.childNodes[i];if(item.tagName=="INPUT")break}wfu_update_userfield_value({target:item})}else if(type=="formfields"){var fields=Array();var fielddefs=window["wfu_attribute_"+attribute+"_typeprops"];var fielddef_array=fielddefs[0].split(",");var defaults={};for(var i=0;i<fielddef_array.length;i++){var fielddef=
212
- fielddefs[fielddef_array[i]];var def={};def.type=fielddef_array[i];def.label="";def.labelposition=fielddef.labelposition.substr(5);def.required=fielddef.required.substr(5)=="true";def.donotautocomplete=fielddef.donotautocomplete.substr(5)=="true";def.validate=fielddef.validate.substr(5)=="true";def.typehook=fielddef.typehook.substr(5)=="true";def.hintposition=fielddef.hintposition.substr(5);def["default"]=fielddef["default"].substr(5);def.data=fielddef.data.substr(5);def.group=fielddef.group.substr(5);
213
- def.format=fielddef.format.substr(5);defaults[fielddef_array[i]]=def}var fields_arr=value.replace(/\//g,"[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");for(var i=0;i<fields_arr.length;i++){var field_raw=fields_arr[i].trim();var fieldprops={};for(prop in defaults["text"])fieldprops[prop]=defaults["text"][prop];if(field_raw.substr(0,1)=="*"){fieldprops.required=true;field_raw=field_raw.substr(1)}var field_parts=field_raw.split("|");if(field_parts[0].trim()!=""){var type_key=
214
- -1;var new_type="";for(var j=0;j<field_parts.length;j++){var part=field_parts[j].replace(/^\s+/gm,"");var flag=part.substr(0,2);var val=part.substr(2);if(flag=="t:"&&j>0&&fielddef_array.indexOf(val)>-1){new_type=val;type_key=j;break}}if(new_type!=""){for(prop in defaults[new_type])fieldprops[prop]=defaults[new_type][prop];field_parts.splice(type_key,1)}fieldprops.label=field_parts[0].trim();field_parts.splice(0,1);for(var j=0;j<field_parts.length;j++){var part=field_parts[j].replace(/^\s+/gm,"");
215
- var flag=part.substr(0,2);var val=part.substr(2);if(flag=="s:")fieldprops.labelposition=val;else if(flag=="r:")fieldprops.required=val=="1";else if(flag=="a:")fieldprops.donotautocomplete=val=="1";else if(flag=="v:")fieldprops.validate=val=="1";else if(flag=="d:")fieldprops["default"]=val;else if(flag=="l:")fieldprops.data=val;else if(flag=="g:")fieldprops.group=val;else if(flag=="f:")fieldprops.format=val;else if(flag=="p:")fieldprops.hintposition=val;else if(flag=="h:")fieldprops.typehook=val==
216
- "1"}fields.push(fieldprops)}}if(fields.length==0)fields.push(fieldprops_default);var container=document.getElementById("wfu_attribute_"+attribute);var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");for(var i=1;i<containers.length;i++)container.removeChild(containers[i]);var new_line_container=containers[0];for(var i=0;i<fields.length;i++){var new_key=attribute+"_"+wfu_randomString(4);var template=wfu_formdata_prepare_template(attribute,fields[i],
217
- new_key);if(i>0)new_line_container=document.createElement("DIV");new_line_container.id="wfu_formfield_"+new_key+"_container";new_line_container.className="wfu_formdata_line_container";if(i>0)container.insertBefore(new_line_container,null);new_line_container.innerHTML=template;wfu_formdata_update_buttons(new_key)}var formfield_elements=document.querySelectorAll("div#wfu_attribute_"+attribute+' input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
218
- wfu_update_formfield_value);wfu_update_formfield_value({target:containers[0]})}else if(type=="color-triplet"){var colors=value.split(",");for(var i=0;i<colors.length;i++)colors[i]=colors[i].trim();if(colors.length==2)colors=[colors[0],colors[1],"#000000"];else if(colors.length==1)colors=[colors[0],"#FFFFFF","#000000"];else if(colors.length<3)colors=["#000000","#FFFFFF","#000000"];var rgb=colourNameToHex(colors[0]);if(!rgb)rgb=colors[0];jQuery("#wfu_attribute_"+attribute+"_color").wpColorPicker("color",
219
- rgb);var item=document.getElementById("wfu_attribute_"+attribute+"_color");item.value=colors[0];rgb=colourNameToHex(colors[1]);if(!rgb)rgb=colors[1];jQuery("#wfu_attribute_"+attribute+"_bgcolor").wpColorPicker("color",rgb);document.getElementById("wfu_attribute_"+attribute+"_bgcolor").value=colors[1];rgb=colourNameToHex(colors[2]);if(!rgb)rgb=colors[2];jQuery("#wfu_attribute_"+attribute+"_borcolor").wpColorPicker("color",rgb);document.getElementById("wfu_attribute_"+attribute+"_borcolor").value=colors[2];
220
- wfu_update_triplecolor_value({target:item})}else if(type=="folderlist"){var items=wfu_parse_folderlist_js(value);var opts=document.getElementById("wfu_attribute_"+attribute).options;while(opts.length>0)opts.remove(0);var opt,subfolder,subfolder_raw,text,stars,subvalue;for(var i=0;i<items.path.length;i++){subfolder=items.path[i];if(subfolder.substr(subfolder.length,1)=="/")subfolder=subfolder.substr(0,subfolder.length-1);subfolder_raw=subfolder.split("/");subfolder=subfolder_raw[subfolder_raw.length-
221
- 1];stars=parseInt(items.level[i]);text="";subvalue="";for(var j=0;j<stars;j++){text+="&nbsp;&nbsp;&nbsp;";subvalue+="*"}text+=items.label[i];if(items["default"][i])subvalue+="&";if(subfolder=="")subvalue+="{root}/"+items.label[i];else subvalue+=subfolder+items.label[i];opt=document.createElement("option");if(items["default"][i])opt.className="wfu_select_folders_option_default";else opt.className="";opt.value=wfu_plugin_encode_string(subvalue);opt.innerHTML=text;opts.add(opt)}opt=document.createElement("option");
222
- opt.value="";opt.innerHTML="";opts.add(opt);var list=document.getElementById("wfu_attribute_"+attribute);list.data=wfu_decode_subfolder_list(attribute);wfu_subfolders_update_toolnav(attribute);item=list;if(value!==item.oldVal){item.oldVal=value;document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}}}
223
- function wfu_parse_folderlist_js(list){var ret=Object();ret.path=Array();ret.label=Array();ret.level=Array();ret["default"]=Array();if(list.substr(0,4)=="auto")return ret;var subfolders=list.split(",");if(subfolders.length==0)return ret;if(subfolders.length==1&&subfolders[0].trim()=="")return ret;var dir_levels=["root"];var prev_level=0;var level0_count=0;var _default=-1;var subfolder,star_count,start_spaces,is_default,subfolder_dir,subfolder_label,subfolder_path;for(var i=0;i<subfolders.length;i++){subfolder=
224
- subfolders[i].trim();star_count=0;start_spaces="";is_default=false;while(star_count<subfolder.length)if(subfolder.substr(star_count,1)=="*"){star_count++;start_spaces+="&nbsp;&nbsp;&nbsp;"}else break;if(star_count-prev_level<=1&&(star_count>0||level0_count==0)){subfolder=subfolder.substr(star_count,subfolder.length-star_count);if(subfolder.substr(0,1)=="&"){subfolder=subfolder.substr(1);is_default=true}subfolder_items=subfolder.split("/");if(subfolder_items.length<2)subfolder_items.push("");if(subfolder_items[1]!=
225
- ""){subfolder_dir=subfolder_items[0];subfolder_label=subfolder_items[1]}else{subfolder_dir=subfolder;subfolder_label=subfolder}if(subfolder_dir!=""){if(is_default&&_default==-1)_default=ret.path.length;else is_default=false;if(star_count==0)level0_count=1;if(dir_levels.length>star_count)dir_levels[star_count]=subfolder_dir;else dir_levels.push(subfolder_dir);subfolder_path="";for(var i_count=1;i_count<=star_count;i_count++)subfolder_path+=dir_levels[i_count]+"/";ret.path.push(subfolder_path);ret.label.push(subfolder_label);
226
- ret.level.push(star_count);ret["default"].push(is_default);prev_level=star_count}}}return ret}
227
- function colourNameToHex(colour){var colours={"aliceblue":"#f0f8ff","antiquewhite":"#faebd7","aqua":"#00ffff","aquamarine":"#7fffd4","azure":"#f0ffff","beige":"#f5f5dc","bisque":"#ffe4c4","black":"#000000","blanchedalmond":"#ffebcd","blue":"#0000ff","blueviolet":"#8a2be2","brown":"#a52a2a","burlywood":"#deb887","cadetblue":"#5f9ea0","chartreuse":"#7fff00","chocolate":"#d2691e","coral":"#ff7f50","cornflowerblue":"#6495ed","cornsilk":"#fff8dc","crimson":"#dc143c","cyan":"#00ffff","darkblue":"#00008b",
228
- "darkcyan":"#008b8b","darkgoldenrod":"#b8860b","darkgray":"#a9a9a9","darkgreen":"#006400","darkkhaki":"#bdb76b","darkmagenta":"#8b008b","darkolivegreen":"#556b2f","darkorange":"#ff8c00","darkorchid":"#9932cc","darkred":"#8b0000","darksalmon":"#e9967a","darkseagreen":"#8fbc8f","darkslateblue":"#483d8b","darkslategray":"#2f4f4f","darkturquoise":"#00ced1","darkviolet":"#9400d3","deeppink":"#ff1493","deepskyblue":"#00bfff","dimgray":"#696969","dodgerblue":"#1e90ff","firebrick":"#b22222","floralwhite":"#fffaf0",
229
- "forestgreen":"#228b22","fuchsia":"#ff00ff","gainsboro":"#dcdcdc","ghostwhite":"#f8f8ff","gold":"#ffd700","goldenrod":"#daa520","gray":"#808080","green":"#008000","greenyellow":"#adff2f","honeydew":"#f0fff0","hotpink":"#ff69b4","indianred ":"#cd5c5c","indigo ":"#4b0082","ivory":"#fffff0","khaki":"#f0e68c","lavender":"#e6e6fa","lavenderblush":"#fff0f5","lawngreen":"#7cfc00","lemonchiffon":"#fffacd","lightblue":"#add8e6","lightcoral":"#f08080","lightcyan":"#e0ffff","lightgoldenrodyellow":"#fafad2",
230
- "lightgrey":"#d3d3d3","lightgreen":"#90ee90","lightpink":"#ffb6c1","lightsalmon":"#ffa07a","lightseagreen":"#20b2aa","lightskyblue":"#87cefa","lightslategray":"#778899","lightsteelblue":"#b0c4de","lightyellow":"#ffffe0","lime":"#00ff00","limegreen":"#32cd32","linen":"#faf0e6","magenta":"#ff00ff","maroon":"#800000","mediumaquamarine":"#66cdaa","mediumblue":"#0000cd","mediumorchid":"#ba55d3","mediumpurple":"#9370d8","mediumseagreen":"#3cb371","mediumslateblue":"#7b68ee","mediumspringgreen":"#00fa9a",
231
- "mediumturquoise":"#48d1cc","mediumvioletred":"#c71585","midnightblue":"#191970","mintcream":"#f5fffa","mistyrose":"#ffe4e1","moccasin":"#ffe4b5","navajowhite":"#ffdead","navy":"#000080","oldlace":"#fdf5e6","olive":"#808000","olivedrab":"#6b8e23","orange":"#ffa500","orangered":"#ff4500","orchid":"#da70d6","palegoldenrod":"#eee8aa","palegreen":"#98fb98","paleturquoise":"#afeeee","palevioletred":"#d87093","papayawhip":"#ffefd5","peachpuff":"#ffdab9","peru":"#cd853f","pink":"#ffc0cb","plum":"#dda0dd",
232
- "powderblue":"#b0e0e6","purple":"#800080","red":"#ff0000","rosybrown":"#bc8f8f","royalblue":"#4169e1","saddlebrown":"#8b4513","salmon":"#fa8072","sandybrown":"#f4a460","seagreen":"#2e8b57","seashell":"#fff5ee","sienna":"#a0522d","silver":"#c0c0c0","skyblue":"#87ceeb","slateblue":"#6a5acd","slategray":"#708090","snow":"#fffafa","springgreen":"#00ff7f","steelblue":"#4682b4","tan":"#d2b48c","teal":"#008080","thistle":"#d8bfd8","tomato":"#ff6347","turquoise":"#40e0d0","violet":"#ee82ee","wheat":"#f5deb3",
233
- "white":"#ffffff","whitesmoke":"#f5f5f5","yellow":"#ffff00","yellowgreen":"#9acd32"};if(typeof colours[colour.toLowerCase()]!="undefined")return colours[colour.toLowerCase()];return false}
234
- function wfu_download_file(filepath_enc,ii){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var nonce="";var nonce_elem=document.getElementById("wfu_download_file_nonce");if(nonce_elem)nonce=nonce_elem.value;if(nonce=="")return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_download_file_invoker";params[1]=new Array(2);params[1][0]="file";params[1][1]=filepath_enc;params[2]=new Array(2);params[2][0]="nonce";params[2][1]=
235
- nonce;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="wfu_ajax_action_download_file_invoker:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+
236
- start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header.substr(0,16)=="wfu_download_id;"){var download_id=txt_header.substr(16);var container=document.getElementById("wfu_file_download_container_"+ii);container.innerHTML=txt_value;setTimeout("wfu_download_file_monitor('"+filepath_enc+"', "+ii+", '"+download_id+"')",100)}}};xhr.send(parameters)}
237
- function wfu_download_file_monitor(filepath_enc,ii,id){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_download_file_monitor";params[1]=new Array(2);params[1][0]="file";params[1][1]=filepath_enc;params[2]=new Array(2);params[2][0]="id";params[2][1]=id;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);
238
- xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="wfu_ajax_action_download_file_monitor:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=
239
- response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header!="repeat"){var container=document.getElementById("wfu_file_download_container_"+ii);container.innerHTML=""}else if(txt_header=="repeat")setTimeout("wfu_download_file_monitor('"+filepath_enc+"', "+ii+", '"+txt_value+"')",100)}};xhr.send(parameters)}
240
- function wfu_filedetails_changed(e){var userdata_elements=document.getElementsByName("wfu_filedetails_userdata");var def,subm;var changed=false,changed2=false;for(var i=0;i<userdata_elements.length;i++){def=document.getElementById(userdata_elements[i].id.replace("wfu_filedetails_userdata_value_","wfu_filedetails_userdata_default_"));subm=document.getElementById(userdata_elements[i].id.replace("wfu_filedetails_userdata_value_","wfu_filedetails_userdata_"));subm.value=userdata_elements[i].value;if(userdata_elements[i].value!=
241
- def.value){changed=true;break}}if(document.getElementById("wfu_filedetails_userid"))changed2=document.getElementById("wfu_filedetails_userid").value!=document.getElementById("wfu_filedetails_userid_default").value;document.getElementById("dp_filedetails_submit_fields").disabled=!changed&&!changed2}
242
- function wfu_Attach_FileDetails_Admin_Events(){var userdata_elements=document.getElementsByName("wfu_filedetails_userdata");for(var i=0;i<userdata_elements.length;i++)wfu_attach_element_handlers(userdata_elements[i],wfu_filedetails_changed)}
243
- function wfu_update_browserpermission_option(type,id,immediate){var users=document.getElementById("wfu_fbperm_users");var roles=document.getElementById("wfu_fbperm_roles");var view=document.getElementById("wfu_fbperm_"+type+"_"+id+"_view");var dl=document.getElementById("wfu_fbperm_"+type+"_"+id+"_dl");var edit=document.getElementById("wfu_fbperm_"+type+"_"+id+"_edit");var del=document.getElementById("wfu_fbperm_"+type+"_"+id+"_del");if(type=="role"){if(id=="0"){dl.checked=view.checked&&dl.checked;
244
- edit.checked=view.checked&&edit.checked;del.checked=view.checked&&del.checked;dl.disabled=!view.checked;edit.disabled=!view.checked;del.disabled=!view.checked;var roles_tr=document.querySelectorAll("tr.wfu_fbperm_role_tr");for(var i=0;i<roles_tr.length;i++){var rolename=roles_tr[i].id.substr(16,roles_tr[i].id.length-20);wfu_update_browserpermission_option("role",rolename,false)}if(immediate){var props=(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?"l":"");roles.value=
245
- roles.value.replace(/^0\[\w*\]/,"0["+props+"]")}}else if(id!="administrator"){var row=document.getElementById("wfu_fbperm_role_"+id+"_row");var def=document.getElementById("wfu_fbperm_role_"+id+"_def");var view_def=document.getElementById("wfu_fbperm_role_0_view");var dl_def=document.getElementById("wfu_fbperm_role_0_dl");var edit_def=document.getElementById("wfu_fbperm_role_0_edit");var del_def=document.getElementById("wfu_fbperm_role_0_del");view.checked=def.checked?view_def.checked:view.checked;
246
- row.style.fontWeight=def.checked?"":"bold";dl.checked=def.checked?dl_def.checked:view.checked&&dl.checked;edit.checked=def.checked?edit_def.checked:view.checked&&edit.checked;del.checked=def.checked?del_def.checked:view.checked&&del.checked;view.disabled=def.checked;dl.disabled=def.checked||!view.checked;edit.disabled=def.checked||!view.checked;del.disabled=def.checked||!view.checked;if(immediate){var props=def.checked?"":"D"+(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?
247
- "l":"");roles.value=roles.value.replace(new RegExp(","+id+"\\[\\w*\\]"),","+id+"["+props+"]")}}var users_tr=document.querySelectorAll("tr.wfu_fbperm_user_tr");for(var i=0;i<users_tr.length;i++){var username=users_tr[i].id.substr(16,users_tr[i].id.length-20);wfu_update_browserpermission_option("user",username,false)}}else if(type=="user"){var role=document.getElementById("wfu_fbperm_user_"+id+"_role");if(id=="0"){view.checked=role.checked?false:view.checked;dl.checked=role.checked?false:view.checked&&
248
- dl.checked;edit.checked=role.checked?false:view.checked&&edit.checked;del.checked=role.checked?false:view.checked&&del.checked;view.disabled=role.checked;dl.disabled=role.checked||!view.checked;edit.disabled=role.checked||!view.checked;del.disabled=role.checked||!view.checked;view.indeterminate=role.checked;dl.indeterminate=role.checked;edit.indeterminate=role.checked;del.indeterminate=role.checked;var users_tr=document.querySelectorAll("tr.wfu_fbperm_user_tr");for(var i=0;i<users_tr.length;i++){var username=
249
- users_tr[i].id.substr(16,users_tr[i].id.length-20);wfu_update_browserpermission_option("user",username,false)}if(immediate){var props=role.checked?"":"R"+(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?"l":"");users.value=users.value.replace(/^0\[\w*\],?/,"");users.value="0["+props+"]"+(users.value==""?"":","+users.value)}}else{var user_roles=document.getElementById("wfu_fbperm_user_"+id+"_roles").value.split(",");if(user_roles.length==1&&user_roles[0]=="")user_roles=
250
- Array();if(user_roles.indexOf("administrator")<0){var row=document.getElementById("wfu_fbperm_user_"+id+"_row");var def=document.getElementById("wfu_fbperm_user_"+id+"_def");var role_def=document.getElementById("wfu_fbperm_user_0_role");var view_def=document.getElementById("wfu_fbperm_user_0_view");var dl_def=document.getElementById("wfu_fbperm_user_0_dl");var edit_def=document.getElementById("wfu_fbperm_user_0_edit");var del_def=document.getElementById("wfu_fbperm_user_0_del");if(user_roles.length>
251
- 0){var $view_from_roles=false;var $dl_from_roles=false;var $edit_from_roles=false;var $del_from_roles=false;for(var i=0;i<user_roles.length;i++){$view_from_roles=$view_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_view").checked;$dl_from_roles=$view_from_roles&&($dl_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_dl").checked);$edit_from_roles=$view_from_roles&&($edit_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_edit").checked);
252
- $del_from_roles=$view_from_roles&&($del_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_del").checked)}}else{var $view_from_roles=document.getElementById("wfu_fbperm_role_0_view");var $dl_from_roles=document.getElementById("wfu_fbperm_role_0_dl");var $edit_from_roles=document.getElementById("wfu_fbperm_role_0_edit");var $del_from_roles=document.getElementById("wfu_fbperm_role_0_del")}row.style.fontWeight=def.checked?"":"bold";role.checked=def.checked?role_def.checked:role.checked;
253
- view.checked=def.checked?role_def.checked?$view_from_roles:view_def.checked:role.checked?$view_from_roles:view.checked;dl.checked=def.checked?role_def.checked?$dl_from_roles:dl_def.checked:role.checked?$dl_from_roles:view.checked&&dl.checked;edit.checked=def.checked?role_def.checked?$edit_from_roles:edit_def.checked:role.checked?$edit_from_roles:view.checked&&edit.checked;del.checked=def.checked?role_def.checked?$del_from_roles:del_def.checked:role.checked?$del_from_roles:view.checked&&del.checked;
254
- role.disabled=def.checked;view.disabled=def.checked||role.checked;dl.disabled=def.checked||role.checked||!view.checked;edit.disabled=def.checked||role.checked||!view.checked;del.disabled=def.checked||role.checked||!view.checked;if(immediate){var props=def.checked?"":"D"+(role.checked?"":"R"+(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?"l":""));users.value=users.value.replace(new RegExp(","+id+"\\[\\w*\\]|"+id+"\\[\\w*\\],|"+id+"\\[\\w*\\]"),"");users.value+=(users.value==
255
- ""?"":",")+id+"["+props+"]"}}}}}
256
- function wfu_goto_historylog_page(token,go_to){var sel=document.getElementById("wfu_historylog_pages");var page=sel.selectedIndex+1;var newpage=page;if(go_to=="next")newpage=Math.min(page+1,sel.options.length);else if(go_to=="prev")newpage=Math.max(page-1,1);else if(go_to=="last")newpage=sel.options.length;else if(go_to=="first")newpage=1;else if(go_to=="sel")page=-1;if(newpage==page)return;var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);
257
- params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_get_historylog_page";params[1]=new Array(2);params[1][0]="token";params[1][1]=token;params[2]=new Array(2);params[2][0]="page";params[2][1]=newpage;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);document.getElementById("wfu_historylog_overlay").style.display="block";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
258
- xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){document.getElementById("wfu_historylog_overlay").style.display="none";var start_text="wfu_historylog_page_success:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);if(response!=""){var t=document.getElementById("wfu_historylog_table");t.tBodies[0].innerHTML=
259
- wfu_plugin_decode_string(response);sel.selectedIndex=newpage-1;document.getElementById("wfu_historylog_first_disabled").style.display=newpage==1?"inline":"none";document.getElementById("wfu_historylog_prev_disabled").style.display=newpage==1?"inline":"none";document.getElementById("wfu_historylog_first").style.display=newpage==1?"none":"inline";document.getElementById("wfu_historylog_prev").style.display=newpage==1?"none":"inline";document.getElementById("wfu_historylog_last_disabled").style.display=
260
- newpage==sel.options.length?"inline":"none";document.getElementById("wfu_historylog_next_disabled").style.display=newpage==sel.options.length?"inline":"none";document.getElementById("wfu_historylog_last").style.display=newpage==sel.options.length?"none":"inline";document.getElementById("wfu_historylog_next").style.display=newpage==sel.options.length?"none":"inline"}}};xhr.send(parameters)}
261
- function wfu_include_file(filepath_enc,ii){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var nonce="";var nonce_elem=document.getElementById("wfu_include_file_nonce");if(nonce_elem)nonce=nonce_elem.value;if(nonce=="")return;var url=AdminParams.wfu_ajax_url;params=new Array(2);params[0]=new Array(3);params[0][0]="action";params[0][1]="wfu_ajax_action_include_file";params[1]=new Array(2);params[1][0]="file";params[1][1]=filepath_enc;params[2]=new Array(2);params[2][0]="nonce";params[2][1]=
262
- nonce;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);document.getElementById("wfu_include_file_"+ii+"_a").href="javascript: void(0)";document.getElementById("wfu_include_file_"+ii+"_img").style.display="inline";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4){document.getElementById("wfu_include_file_"+ii+"_img").style.display=
263
- "none";if(xhr.status==200){var start_text="wfu_include_file:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){document.getElementById("wfu_file_flat_"+ii).style.display="none";
264
- document.getElementById("wfu_file_link_"+ii).style.display="inline";document.getElementById("wfu_file_can_be_included_actions_"+ii).style.display="none";document.getElementById("wfu_file_is_included_actions_"+ii).style.display="block"}else document.getElementById("wfu_include_file_"+ii+"_a").innerHTML=document.getElementById("wfu_include_file_"+ii+"_inpfail").value}}};xhr.send(parameters)}
265
- function wfu_adminbrowser_select_all_visible_changed(){var status=document.getElementById("wfu_select_all_visible").checked;var selectors=document.querySelectorAll(".wfu_selectors");for(var i=0;i<selectors.length;i++)selectors[i].checked=status}
266
- function wfu_adminbrowser_selector_changed(obj){var selectors_count=document.querySelectorAll(".wfu_selectors").length;var selected_count=document.querySelectorAll(".wfu_selectors:checked").length;var all_visible=document.getElementById("wfu_select_all_visible");all_visible.style.webkitAppearance="";all_visible.style.webkitAppearance="checkbox";all_visible.checked=selected_count>0;all_visible.indeterminate=selected_count>0&&selected_count<selectors_count}
267
- function wfu_apply_adminbrowser_bulkaction(){var actionselector=document.getElementById("wfu_adminbrowser_bulkactions");if(actionselector.selectedIndex<1)return;var action=actionselector.options[actionselector.selectedIndex].value;var selected=document.querySelectorAll(".wfu_selectors:checked");if(selected.length==0)return;var codes=[];var codes_included=0,codes_not_included=0;for(var i=0;i<selected.length;i++){var file_code=selected[i].className.replace(/.*?wfu_selcode_/,"");if(file_code!=""){var included=
268
- selected[i].className.indexOf("wfu_included")>-1;if(included)codes_included++;else codes_not_included++;if(action=="delete"&&!included||action=="include"&&included)selected[i].checked=false;else codes.push(file_code)}}if(action=="delete"&&codes_not_included>0)alert("Notice! Files that were not uploaded using the plugin cannot be deleted and have been deselected.");else if(action=="include"&&codes_included>0)alert("Notice! Files already included in the plugin have been deselected.");if(codes.length==
269
- 0)return;var url=document.getElementById("wfu_adminbrowser_action_url").value;var referer=document.getElementById("wfu_adminbrowser_referer").value;if(action=="delete"||action=="include"){var form=document.createElement("FORM");form.method="POST";form.action=url;form.style.display="none";var field1=document.createElement("INPUT");field1.type="hidden";field1.name="action";field1.value=action+"_file";form.appendChild(field1);var field2=document.createElement("INPUT");field2.type="hidden";field2.name=
270
- "file";field2.value="list:"+codes.join();form.appendChild(field2);var field3=document.createElement("INPUT");field3.type="hidden";field3.name="referer";field3.value=referer;form.appendChild(field3);document.body.appendChild(form);form.submit()}}
271
- function wfu_initialize_consent_policy(params){wfu_PD_bank.params=params;wfu_adjust_pdops_levels();wfu_adjust_permissions_levels();wfu_adjust_logactions_levels();wfu_attach_pdheaders_events();wfu_attach_pdops_events();wfu_attach_conops_events();wfu_pdops_update(true);wfu_allops_freeze_events=true;wfu_conops_update();wfu_consent_question_optable_recreate();wfu_update_consent_questions();wfu_consent_question_operations_reassign();wfu_update_consent_question_itemprops(0,-1);wfu_permissions_update(true);
272
- wfu_logactions_update(true);wfu_pdusers_update();wfu_allops_freeze_events=false}function wfu_get_consent_policy(){var policy_str=wfu_plugin_decode_string(document.getElementById("wfu_consent_policy").value);var policy=null;try{policy=JSON.parse(policy_str)}catch(e){}return policy}function wfu_get_permissions_policy(){var policy_str=wfu_plugin_decode_string(document.getElementById("wfu_permissions_policy").value);var policy=null;try{policy=JSON.parse(policy_str)}catch(e){}return policy}
273
- function wfu_get_logactions_policy(){var policy_str=wfu_plugin_decode_string(document.getElementById("wfu_logactions_policy").value);var policy=null;try{policy=JSON.parse(policy_str)}catch(e){}return policy}function wfu_get_pd_users(){var pd_users_str=wfu_plugin_decode_string(document.getElementById("wfu_assigned_users").value);var pd_users=null;try{pd_users=JSON.parse(pd_users_str)}catch(e){}return pd_users}
274
- function wfu_set_consent_policy(new_policy){var policy_str=JSON.stringify(new_policy);document.getElementById("wfu_consent_policy").value=wfu_plugin_encode_string(policy_str)}function wfu_set_logactions_policy(new_policy){var policy_str=JSON.stringify(new_policy);document.getElementById("wfu_logactions_policy").value=wfu_plugin_encode_string(policy_str)}
275
- function wfu_set_permissions_policy(new_policy){var policy_str=JSON.stringify(new_policy);document.getElementById("wfu_permissions_policy").value=wfu_plugin_encode_string(policy_str)}
276
- function wfu_adjust_pdops_levels(){function _wfu_force_pdop_update_nested(item){var id=item.ID;if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_force_pdop_update_nested(item.children[j]);else policy.operations[id].Allowed=true}function _wfu_nested_adjust_pdops_levels(item,level){if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_nested_adjust_pdops_levels(item.children[j],level+1);var id=item.ID;if(wfu_PD_bank.allowedstatus[id]==0&&level==wfu_PD_bank.params.oplevels){_wfu_force_pdop_update_nested(item);
277
- wfu_PD_bank.allowedstatus[id]=1;policy_needs_update=true}}wfu_pdops_update(false);var policy=wfu_get_consent_policy();if(policy){console.log(policy);var policy_needs_update=false;for(var i=0;i<policy.structure.length;i++)_wfu_nested_adjust_pdops_levels(policy.structure[i],1);if(policy_needs_update)wfu_set_consent_policy(policy)}}
278
- function wfu_attach_pdheaders_events(){var acc=document.querySelectorAll(".wfu_pdheader_button");var i;for(i=0;i<acc.length;i++)acc[i].addEventListener("click",function(){this.classList.toggle("expanded");var panel=null;if(this.classList.contains("wfu_pdop_header_button"))panel=document.querySelector(".wfu_plugin_operations");else if(this.classList.contains("wfu_conop_header_button"))panel=document.querySelector(".wfu_consent_operations");else if(this.classList.contains("wfu_conquestion_header_button"))panel=
279
- document.querySelector(".wfu_consent_questions");else if(this.classList.contains("wfu_permissions_header_button"))panel=document.querySelector(".wfu_consent_permissions");else if(this.classList.contains("wfu_logactions_header_button"))panel=document.querySelector(".wfu_consent_logactions");else if(this.classList.contains("wfu_pdusers_header_button"))panel=document.querySelector(".wfu_consent_users");if(panel)if(this.classList.contains("expanded"))panel.style.display="block";else panel.style.display=
280
- "none"})}function wfu_attach_pdops_events(){var acc=document.querySelectorAll(".wfu_pdop_button");var i;for(i=0;i<acc.length;i++)acc[i].addEventListener("click",function(){this.classList.toggle("expanded");var panel=this.parentElement.nextElementSibling;if(this.classList.contains("expanded"))panel.style.display="block";else panel.style.display="none"})}
281
- function wfu_attach_conops_events(){var acc=document.querySelectorAll(".wfu_conop_button");var i;for(i=0;i<acc.length;i++)acc[i].addEventListener("click",function(){this.classList.toggle("expanded");var panel=this.parentElement.nextElementSibling;if(this.classList.contains("expanded"))panel.style.display="block";else panel.style.display="none"})}
282
- function wfu_pdop_toggle(obj){if(wfu_allops_freeze_events)return;if(obj.id.indexOf("wfu_pdop_")==-1)return;var id=obj.id.replace("wfu_pdop_","");var policy=wfu_get_consent_policy();if(policy){if(typeof policy.operations[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)obj.classList.remove("indeterminate");if(policy.children_index[id].length>0){var level=1;
283
- var parid=id;while((parid=policy.operations[parid].Parent)>0)level++;if((wfu_PD_bank.params.oplevels<1||level<wfu_PD_bank.params.oplevels)&&!confirm("This will set all children operations to "+(new_status?"allowed":"not allowed")+". Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==0)policy.operations[id2].Allowed=
284
- new_status}}else policy.operations[id].Allowed=new_status;wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_pdops_update(true);wfu_conops_update();wfu_update_consent_question_itemprops(0,-1);wfu_consent_question_optable_recreate();wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(0,0);wfu_allops_freeze_events=false}}
285
- function wfu_conop_toggle(obj){if(wfu_allops_freeze_events)return;if(obj.id.indexOf("wfu_conop_")==-1)return;var id=obj.id.replace("wfu_conop_","");var policy=wfu_get_consent_policy();if(policy){if(typeof policy.operations[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)check.classList.remove("indeterminate");if(policy.children_index[id].length>0){var level=
286
- 1;var parid=id;while((parid=policy.operations[parid].Parent)>0)level++;if((wfu_PD_bank.params.oplevels<1||level<wfu_PD_bank.params.oplevels)&&!confirm("This will make all children operations "+(new_status?"require":"not require")+" consent. Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==0)policy.operations[id2].NeedsConsent=
287
- new_status}}else policy.operations[id].NeedsConsent=new_status;wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_conops_update();wfu_update_consent_question_itemprops(0,-1);wfu_consent_question_optable_recreate();wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(0,0);wfu_allops_freeze_events=false}}
288
- function wfu_pdops_update(updatehtml){function _wfu_atomic_pdop_update(id){var allowed=policy.operations[id].Allowed;policy.operations[id].allowedstatus={};for(var k=0;k<policy.operations[id].Datatypes.length;k++){var type=policy.operations[id].Datatypes[k];policy.operations[id].allowedstatus[type]=allowed?1:-1}var condition=policy.operations[id].Condition;if(condition=="")policy.operations[id].pdvisible=true;else{var negative=false;if(condition.substr(0,1)=="!"){negative=true;condition=condition.replace("!",
289
- "")}var allowedstatus2=policy.operations[parseInt(condition)].allowedstatus;var enabled=false;for(var type in allowedstatus2)if(allowedstatus2.hasOwnProperty(type))if(allowedstatus2[type]>-1){enabled=true;break}policy.operations[id].pdvisible=negative?!enabled:enabled}}function _wfu_nested_pdops_update(item,level){var id=item.ID;if(item.children.length>0){policy.operations[id].allowedstatus={};policy.operations[id].pdvisible=false;for(var j=0;j<item.children.length;j++){_wfu_nested_pdops_update(item.children[j],
290
- level+1);var id2=item.children[j].ID;if(policy.operations[id2].pdvisible){var allowed=policy.operations[id2].Allowed;for(var type in policy.operations[id2].allowedstatus)if(policy.operations[id2].allowedstatus.hasOwnProperty(type)){var allowedstatus2=policy.operations[id2].allowedstatus[type];if(typeof policy.operations[id].allowedstatus[type]=="undefined")policy.operations[id].allowedstatus[type]=allowedstatus2;else if(policy.operations[id].allowedstatus[type]*allowedstatus2<1)policy.operations[id].allowedstatus[type]=
291
- 0}if(!policy.operations[id].pdvisible)policy.operations[id].pdvisible=policy.operations[id2].pdvisible}}}else _wfu_atomic_pdop_update(id);var allowedstatus=-2;for(var type in policy.operations[id].allowedstatus)if(policy.operations[id].allowedstatus.hasOwnProperty(type)){var allowedstatus2=policy.operations[id].allowedstatus[type];if(allowedstatus==-2)allowedstatus=allowedstatus2;else if(allowedstatus*allowedstatus2<1){allowedstatus=0;break}}if(typeof wfu_PD_bank.allowedstatus=="undefined")wfu_PD_bank.allowedstatus=
292
- {};wfu_PD_bank.allowedstatus[id]=allowedstatus;if(typeof wfu_PD_bank.level=="undefined")wfu_PD_bank.level={};wfu_PD_bank.level[id]=level;if(updatehtml){var check=document.getElementById("wfu_pdop_"+id);wfu_set_checkbox_status(check,allowedstatus);var container=document.getElementById("wfu_pdop_container_"+id);if(container)container.style.display=policy.operations[id].pdvisible&&(wfu_PD_bank.params.oplevels<1||level<=wfu_PD_bank.params.oplevels)?"block":"none"}}var policy=wfu_get_consent_policy();
293
- if(policy){wfu_allops_freeze_events=true;for(var i=0;i<policy.structure.length;i++)_wfu_nested_pdops_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
294
- function wfu_conops_update(){function _wfu_atomic_conop_update(id){policy.operations[id].needsconsentstatus=policy.operations[id].Allowed&&policy.operations[id].NeedsConsent?1:-1;var condition=policy.operations[id].Condition;if(condition=="")policy.operations[id].convisible=true;else{var negative=false;if(condition.substr(0,1)=="!"){negative=true;condition=condition.replace("!","")}var enabled=wfu_PD_bank.allowedstatus[parseInt(condition)]>-1;policy.operations[id].convisible=negative?!enabled:enabled}policy.operations[id].convisible=
295
- policy.operations[id].convisible&&policy.operations[id].Allowed}function _wfu_nested_conops_update(item,level){var id=item.ID;if(item.children.length>0){policy.operations[id].needsconsentstatus=-2;policy.operations[id].convisible=false;for(var j=0;j<item.children.length;j++){_wfu_nested_conops_update(item.children[j],level+1);var id2=item.children[j].ID;if(policy.operations[id2].convisible){var needsconsentstatus2=policy.operations[id2].needsconsentstatus;if(policy.operations[id].needsconsentstatus==
296
- -2)policy.operations[id].needsconsentstatus=needsconsentstatus2;else if(policy.operations[id].needsconsentstatus*needsconsentstatus2<1)policy.operations[id].needsconsentstatus=0;if(!policy.operations[id].convisible)policy.operations[id].convisible=policy.operations[id2].convisible}}}else _wfu_atomic_conop_update(id);if(typeof wfu_PD_bank.visible=="undefined")wfu_PD_bank.visible={};wfu_PD_bank.visible[id]=policy.operations[id].convisible;if(typeof wfu_PD_bank.needsconsentstatus=="undefined")wfu_PD_bank.needsconsentstatus=
297
- {};wfu_PD_bank.needsconsentstatus[id]=policy.operations[id].needsconsentstatus;var check=document.getElementById("wfu_conop_"+id);wfu_set_checkbox_status(check,policy.operations[id].needsconsentstatus);var container=document.getElementById("wfu_conop_container_"+id);if(container)container.style.display=policy.operations[id].convisible&&(wfu_PD_bank.params.oplevels<1||level<=wfu_PD_bank.params.oplevels)?"block":"none"}var policy=wfu_get_consent_policy();if(policy){wfu_allops_freeze_events=true;for(var i=
298
- 0;i<policy.structure.length;i++)_wfu_nested_conops_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
299
- function wfu_update_consent_questions(){var policy=wfu_get_consent_policy();if(policy){var maincontainer=document.getElementById("wfu_conquestions_container");wfu_allops_freeze_events=true;for(var i=0;i<policy.questions.length;i++){var container=wfu_render_consent_question(i);if(container){maincontainer.appendChild(container);wfu_update_consent_question(i,true)}}wfu_update_conquestion_header();wfu_allops_freeze_events=false}}
300
- function wfu_render_consent_question(index){var policy=wfu_get_consent_policy();if(!policy)return null;var question=policy.questions[index];var i=index+1;var container=document.createElement("DIV");container.className="wfu_conquestion_container";container.id="wfu_conquestion_container_"+i;var header=document.createElement("DIV");header.className="wfu_conquestion_header";var headerlabel=document.createElement("LABEL");headerlabel.className="wfu_conquestion_headerlabel";headerlabel.innerHTML="Question "+
301
- i;header.appendChild(headerlabel);var tools=document.createElement("DIV");tools.className="wfu_conquestion_tools";var add_btn=document.getElementById("wfu_conquestion_add").cloneNode(true);add_btn.removeAttribute("id");wfu_addEventHandler(add_btn,"click",wfu_conquestion_tools_handler);var remove_btn=document.getElementById("wfu_conquestion_remove").cloneNode(true);remove_btn.removeAttribute("id");wfu_addEventHandler(remove_btn,"click",wfu_conquestion_tools_handler);var up_btn=document.getElementById("wfu_conquestion_up").cloneNode(true);
302
- up_btn.removeAttribute("id");wfu_addEventHandler(up_btn,"click",wfu_conquestion_tools_handler);var down_btn=document.getElementById("wfu_conquestion_down").cloneNode(true);down_btn.removeAttribute("id");wfu_addEventHandler(down_btn,"click",wfu_conquestion_tools_handler);tools.appendChild(add_btn);tools.appendChild(remove_btn);tools.appendChild(up_btn);tools.appendChild(down_btn);header.appendChild(tools);var subcontainer=document.createElement("DIV");subcontainer.className="wfu_conquestion_subcontainer";
303
- var mainprops=document.createElement("DIV");mainprops.className="wfu_conquestion_mainprops";var mainpropstitle=document.createElement("LABEL");mainpropstitle.className="wfu_conquestion_mainpropstitle";mainpropstitle.innerHTML="Main Properties";var titlelabel=document.createElement("LABEL");titlelabel.className="wfu_conquestion_titlelabel";titlelabel.innerHTML="Title";var titletext=document.createElement("INPUT");titletext.className="wfu_conquestion_titletext";titletext.value=question.title;wfu_attach_element_handlers(titletext,
304
- wfu_conquestion_mainprops_handler);var titlelocationlabel=document.createElement("LABEL");titlelocationlabel.className="wfu_conquestion_titlelocationlabel";titlelocationlabel.innerHTML="Title Location";var titlelocationlist=document.createElement("SELECT");titlelocationlist.className="wfu_conquestion_titlelocationlist";var opt=document.createElement("OPTION");opt.value="top";opt.innerHTML="Top";opt.selected=question.location=="top";titlelocationlist.add(opt);var opt=document.createElement("OPTION");
305
- opt.value="bottom";opt.innerHTML="Bottom";opt.selected=question.location=="bottom";titlelocationlist.add(opt);wfu_addEventHandler(titlelocationlist,"change",wfu_conquestion_mainprops_handler);var matrixlabel=document.createElement("LABEL");matrixlabel.className="wfu_conquestion_matrixlabel";matrixlabel.innerHTML="Number of Items";var matrix_x=document.createElement("INPUT");matrix_x.className="wfu_conquestion_matrix_x";matrix_x.type="number";matrix_x.min=1;var qx=parseInt(question.x);if(qx<=0)qx=
306
- 1;question.x=qx;matrix_x.value=qx;wfu_attach_element_handlers(matrix_x,wfu_conquestion_mainprops_handler);var matrixsep=document.createElement("LABEL");matrixsep.className="wfu_conquestion_matrixsep";matrixsep.innerHTML="x";var matrix_y=document.createElement("INPUT");matrix_y.className="wfu_conquestion_matrix_y";matrix_y.type="number";matrix_y.min=1;var qy=parseInt(question.y);if(qy<=0)qy=1;question.y=qy;matrix_y.value=qy;wfu_attach_element_handlers(matrix_y,wfu_conquestion_mainprops_handler);var groupedlabel=
307
- document.createElement("LABEL");groupedlabel.className="wfu_conquestion_groupedlabel";groupedlabel.innerHTML="Grouped";var groupedbox=document.createElement("INPUT");groupedbox.className="wfu_conquestion_groupedbox";groupedbox.type="checkbox";groupedbox.checked=question.grouped==1;wfu_addEventHandler(groupedbox,"change",wfu_conquestion_mainprops_handler);var typelabel=document.createElement("LABEL");typelabel.className="wfu_conquestion_typelabel";typelabel.innerHTML="Type";var typelist=document.createElement("SELECT");
308
- typelist.className="wfu_conquestion_typelist";var opt=document.createElement("OPTION");opt.value="checkbox";opt.innerHTML="Checkbox";opt.selected=question.type=="checkbox";typelist.add(opt);var opt=document.createElement("OPTION");opt.value="radio";opt.innerHTML="Radio";opt.selected=question.type=="radio";typelist.add(opt);var opt=document.createElement("OPTION");opt.value="prompt";opt.innerHTML="Prompt";opt.selected=question.type=="prompt";typelist.add(opt);wfu_addEventHandler(typelist,"change",
309
- wfu_conquestion_mainprops_handler);mainprops.appendChild(mainpropstitle);mainprops.appendChild(matrixlabel);mainprops.appendChild(matrix_x);mainprops.appendChild(matrixsep);mainprops.appendChild(matrix_y);mainprops.appendChild(titlelabel);mainprops.appendChild(titletext);mainprops.appendChild(titlelocationlabel);mainprops.appendChild(titlelocationlist);mainprops.appendChild(groupedlabel);mainprops.appendChild(groupedbox);mainprops.appendChild(typelabel);mainprops.appendChild(typelist);var itemspreview=
310
- document.createElement("DIV");itemspreview.className="wfu_conquestion_itemspreview";var itemspreviewtitle=document.createElement("LABEL");itemspreviewtitle.className="wfu_conquestion_itemspreviewtitle";itemspreviewtitle.innerHTML="Items";var displayedtitle=document.createElement("LABEL");displayedtitle.className="wfu_conquestion_displayedtitle";displayedtitle.innerHTML=question.title;var itemtable=document.createElement("TABLE");itemtable.className="wfu_conquestion_itemtable";itemspreview.appendChild(itemspreviewtitle);
311
- if(question.location!="bottom")itemspreview.appendChild(displayedtitle);itemspreview.appendChild(itemtable);if(question.location=="bottom")itemspreview.appendChild(displayedtitle);wfu_addEventHandler(itemspreview,"click",wfu_conquestion_itempreviewer_handler);var itemprops=document.createElement("DIV");itemprops.className="wfu_conquestion_itemprops";var itempropstitle=document.createElement("LABEL");itempropstitle.className="wfu_conquestion_itempropstitle";itempropstitle.innerHTML="Item Properties";
312
- var labellabel=document.createElement("LABEL");labellabel.className="wfu_conquestion_labellabel";labellabel.innerHTML="Label";var labeltext=document.createElement("INPUT");labeltext.className="wfu_conquestion_labeltext";labeltext.value="";wfu_attach_element_handlers(labeltext,wfu_conquestion_mainprops_handler);var labellocationlabel=document.createElement("LABEL");labellocationlabel.className="wfu_conquestion_labellocationlabel";labellocationlabel.innerHTML="Label Location";var labellocationlist=
313
- document.createElement("SELECT");labellocationlist.className="wfu_conquestion_labellocationlist";var opt=document.createElement("OPTION");opt.value="top";opt.innerHTML="Top";opt.selected=false;labellocationlist.add(opt);var opt=document.createElement("OPTION");opt.value="left";opt.innerHTML="Left";opt.selected=false;labellocationlist.add(opt);var opt=document.createElement("OPTION");opt.value="right";opt.innerHTML="Right";opt.selected=true;labellocationlist.add(opt);var opt=document.createElement("OPTION");
314
- opt.value="bottom";opt.innerHTML="Bottom";opt.selected=false;labellocationlist.add(opt);wfu_addEventHandler(labellocationlist,"change",wfu_conquestion_mainprops_handler);var preselectedlabel=document.createElement("LABEL");preselectedlabel.className="wfu_conquestion_preselectedlabel";preselectedlabel.innerHTML="Preselected";var preselectedbox=document.createElement("INPUT");preselectedbox.className="wfu_conquestion_preselectedbox";preselectedbox.type="checkbox";preselectedbox.checked=false;wfu_addEventHandler(preselectedbox,
315
- "change",wfu_conquestion_mainprops_handler);var visiblelabel=document.createElement("LABEL");visiblelabel.className="wfu_conquestion_visiblelabel";visiblelabel.innerHTML="Visible";var visiblebox=document.createElement("INPUT");visiblebox.className="wfu_conquestion_visiblebox";visiblebox.type="checkbox";visiblebox.checked=true;wfu_addEventHandler(visiblebox,"change",wfu_conquestion_mainprops_handler);itemprops.appendChild(itempropstitle);itemprops.appendChild(labellabel);itemprops.appendChild(labeltext);
316
- itemprops.appendChild(labellocationlabel);itemprops.appendChild(labellocationlist);itemprops.appendChild(preselectedlabel);itemprops.appendChild(preselectedbox);itemprops.appendChild(visiblelabel);itemprops.appendChild(visiblebox);subcontainer.appendChild(mainprops);subcontainer.appendChild(itemspreview);subcontainer.appendChild(itemprops);container.appendChild(header);container.appendChild(subcontainer);return container}
317
- function wfu_consent_question_action(action,index){var policy=wfu_get_consent_policy();if(!policy)return;var maincontainer=document.getElementById("wfu_conquestions_container");var qcount=document.querySelectorAll(".wfu_conquestion_container").length;if(action=="add"){var question={title:"",location:"top",x:1,y:1,grouped:0,type:"checkbox",items:[{index:1,label:"I agree to allow the plugin to use my personal data",location:"right",preselect:0,visible:true,operations:{}}]};policy.questions.splice(index+
318
- 1,0,question);wfu_set_consent_policy(policy);var container=wfu_render_consent_question(index+1);if(container){for(var j=index+2;j<=qcount;j++)document.getElementById("wfu_conquestion_container_"+j).id="wfu_conquestion_container_"+(j+1);maincontainer.insertBefore(container,document.getElementById("wfu_conquestion_container_"+(index+3)));wfu_update_consent_question(index+1,true);wfu_update_consent_question_itemprops(index+1,-1)}}else if(action=="remove"){if(qcount<=1)return;policy.questions.splice(index,
319
- 1);wfu_set_consent_policy(policy);maincontainer.removeChild(document.getElementById("wfu_conquestion_container_"+(index+1)));for(var j=index+2;j<=qcount;j++)document.getElementById("wfu_conquestion_container_"+j).id="wfu_conquestion_container_"+(j-1)}else if(action=="up"){if(index<=0)return;var tempq=policy.questions[index];policy.questions[index]=policy.questions[index-1];policy.questions[index-1]=tempq;wfu_set_consent_policy(policy);var container1=document.getElementById("wfu_conquestion_container_"+
320
- (index+1));var container2=document.getElementById("wfu_conquestion_container_"+index);container1.id="wfu_conquestion_container_"+index+"_temp";container2.id="wfu_conquestion_container_"+(index+1);container1.id="wfu_conquestion_container_"+index;maincontainer.insertBefore(container1,container2)}else if(action=="down"){if(index>=qcount-1)return;var tempq=policy.questions[index];policy.questions[index]=policy.questions[index+1];policy.questions[index+1]=tempq;wfu_set_consent_policy(policy);var container1=
321
- document.getElementById("wfu_conquestion_container_"+(index+2));var container2=document.getElementById("wfu_conquestion_container_"+(index+1));container1.id="wfu_conquestion_container_"+(index+1)+"_temp";container2.id="wfu_conquestion_container_"+(index+2);container1.id="wfu_conquestion_container_"+(index+1);maincontainer.insertBefore(container1,container2)}}
322
- function wfu_update_consent_question(index,recreate){var policy=wfu_get_consent_policy();if(!policy)return;var question=policy.questions[index];var i=index+1;var itemspreview=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_itemspreview");var itemtable=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_itemtable");var displayedtitle=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_displayedtitle");if(!itemspreview)return;if(recreate){var matrix_x=
323
- document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_matrix_x");var matrix_y=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_matrix_y");var titletext=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_titletext");var titlelocationlist=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_titlelocationlist");var groupedbox=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_groupedbox");
324
- matrix_x.value=question.x;matrix_y.value=question.y;titletext.value=question.title;titlelocationlist.value=question.location;groupedbox.checked=question.grouped==1;matrix_x.disabled=question.type=="prompt";matrix_y.disabled=question.type=="prompt";titletext.disabled=question.type=="prompt";titlelocationlist.disabled=question.type=="prompt";groupedbox.disabled=question.type=="prompt";displayedtitle.style.display=question.type=="prompt"?"none":"block";while(itemtable.rows.length>0)itemtable.deleteRow(0)}var qnum=
325
- question.x*question.y;var qitems=[];for(var j=0;j<qnum;j++)qitems.push({label:"",location:"right",preselect:false,visible:true,operations:{}});for(var j=0;j<question.items.length;j++)if(typeof question.items[j].visible=="undefined")question.items[j].visible=1;for(var j=0;j<question.items.length;j++){var ind=question.items[j].index-1;if(ind>=0&&ind<qnum){qitems[ind].label=question.items[j].label;qitems[ind].location=question.items[j].location;qitems[ind].preselect=question.items[j].preselect==1;qitems[ind].visible=
326
- typeof question.items[j].visible=="undefined"||question.items[j].visible==1;qitems[ind].operations=question.items[j].operations}}var j=0;for(var k=0;k<question.x;k++){var row;if(recreate)row=itemtable.insertRow(k);else row=itemtable.rows[k];for(var l=0;l<question.y;l++){var cell;if(recreate){cell=row.insertCell(l);cell.classList.add("wfu_conquestion_itemcontainer")}else cell=row.cells[l];while(cell.childNodes.length>0)cell.removeChild(cell.childNodes[0]);if(qitems[j].visible)cell.classList.add("wfu_item_visible");
327
- else cell.classList.remove("wfu_item_visible");var itemlabel=document.createElement("LABEL");itemlabel.className="wfu_conquestion_itemlabel";if(qitems[j].label==""){itemlabel.classList.add("wfu_empty_label");itemlabel.innerHTML="{no label}"}else{itemlabel.classList.remove("wfu_empty_label");itemlabel.innerHTML=qitems[j].label}if(question.type=="prompt")cell.appendChild(itemlabel);else{var itembox=document.createElement("INPUT");itembox.className="wfu_conquestion_itembox wfu_frozen";itembox.type=question.type;
328
- itembox.checked=qitems[j].preselect;if(qitems[j].location=="top"){cell.appendChild(itemlabel);cell.appendChild(document.createElement("BR"));cell.appendChild(itembox)}else if(qitems[j].location=="left"){cell.appendChild(itemlabel);cell.appendChild(itembox)}else if(qitems[j].location=="bottom"){cell.appendChild(itembox);cell.appendChild(document.createElement("BR"));cell.appendChild(itemlabel)}else{cell.appendChild(itembox);cell.appendChild(itemlabel)}}j++}}if(question.title==""){displayedtitle.classList.add("wfu_empty_label");
329
- displayedtitle.innerHTML="{no title}"}else{displayedtitle.classList.remove("wfu_empty_label");displayedtitle.innerHTML=question.title}if(question.location!="bottom")itemspreview.insertBefore(displayedtitle,itemtable);else itemspreview.insertBefore(displayedtitle,null)}
330
- function wfu_conquestion_mainprops_handler(e){if(wfu_allops_freeze_events)return;var policy=wfu_get_consent_policy();if(!policy)return;e=e||window.event;var item=par=e.target;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var i=parseInt(par.id.replace("wfu_conquestion_container_",""));var index=i-1;var question=policy.questions[index];var recreate=true;var is_mainprop=true;var update_optable=false;if(item.classList.contains("wfu_conquestion_titletext"))question.title=
331
- item.value;else if(item.classList.contains("wfu_conquestion_matrix_x"))question.x=item.value;else if(item.classList.contains("wfu_conquestion_matrix_y"))question.y=item.value;else if(item.classList.contains("wfu_conquestion_titlelocationlist"))question.location=item.value;else if(item.classList.contains("wfu_conquestion_groupedbox")){question.grouped=item.checked?1:0;if(question.grouped==1){var qpreselect_count=0;for(var j=0;j<question.items.length;j++)if(qpreselect_count==1)question.items[j].preselect=
332
- 0;else if(question.items[j].preselect==1)qpreselect_count++}}else if(item.classList.contains("wfu_conquestion_typelist")){question.type=item.value;if(question.type=="prompt"){question.x=1;question.y=1;question.title="";question.location="top";question.grouped=0}}else{var itemcontainers=document.querySelectorAll("#wfu_conquestion_container_"+i+" .wfu_conquestion_itemcontainer.wfu_item_selected");if(itemcontainers.length==0)return;var itemindex=itemcontainers[0].parentNode.rowIndex*itemcontainers[0].parentNode.cells.length+
333
- itemcontainers[0].cellIndex+1;var qitem=null;var qindex=question.items.length;for(var j=0;j<question.items.length;j++)if(question.items[j].index==itemindex){qitem=question.items[j];break}else if(question.items[j].index>itemindex){qindex=j;break}if(!qitem){qitem={index:itemindex,label:"",location:"right",preselect:false,visible:1,operations:{}};question.items.splice(qindex,0,qitem)}if(item.classList.contains("wfu_conquestion_labeltext"))qitem.label=item.value;else if(item.classList.contains("wfu_conquestion_labellocationlist"))qitem.location=
334
- item.value;else if(item.classList.contains("wfu_conquestion_preselectedbox")){if(item.checked&&question.grouped==1)for(var j=0;j<question.items.length;j++)question.items[j].preselect=0;qitem.preselect=item.checked?1:0}else if(item.classList.contains("wfu_conquestion_visiblebox")){qitem.visible=item.checked?1:0;update_optable=true}recreate=false;is_mainprop=false}wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_update_consent_question(index,recreate);if(is_mainprop){wfu_update_consent_question_itemprops(index,
335
- -1);wfu_consent_question_operations_reassign()}if(update_optable){wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(i,itemindex)}wfu_allops_freeze_events=false}
336
- function wfu_conquestion_itempreviewer_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=par=e.target;var qcount=document.querySelectorAll(".wfu_conquestion_container").length;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var i=parseInt(par.id.replace("wfu_conquestion_container_",""));var index=i-1;if(!item.classList.contains("wfu_conquestion_itemcontainer"))item=item.parentNode;var itemindex=-1;if(item.classList.contains("wfu_conquestion_itemcontainer"))itemindex=
337
- item.parentNode.rowIndex*item.parentNode.cells.length+item.cellIndex+1;wfu_allops_freeze_events=true;for(var j=0;j<qcount;j++)wfu_update_consent_question_itemprops(j,-1);wfu_update_consent_question_itemprops(index,itemindex);wfu_allops_freeze_events=false}
338
- function wfu_update_consent_question_itemprops(index,itemindex){var policy=wfu_get_consent_policy();if(!policy)return;var question=policy.questions[index];var i=index+1;var itemcontainers=document.querySelectorAll("#wfu_conquestions_container .wfu_conquestion_itemcontainer");var itemcontainer=null;var contindex=0;var contitemindex=1;for(var j=0;j<itemcontainers.length;j++){itemcontainers[j].classList.remove("wfu_item_selected");var par=itemcontainers[j];while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));
339
- if(parseInt(par.id.replace("wfu_conquestion_container_",""))>contindex){contindex++;contitemindex=1}if(contindex==i&&contitemindex==itemindex)itemcontainer=itemcontainers[j];contitemindex++}if(itemcontainer)itemcontainer.classList.add("wfu_item_selected");var labeltext=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_labeltext");var labellocationlist=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_labellocationlist");var preselectedbox=document.querySelector("#wfu_conquestion_container_"+
340
- i+" .wfu_conquestion_preselectedbox");var visiblebox=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_visiblebox");var qindex=-1;for(var j=0;j<question.items.length;j++)if(question.items[j].index==itemindex){qindex=j;break}if(qindex<0){labeltext.value="";labeltext.disabled=itemindex<1;labellocationlist.value="right";labellocationlist.disabled=itemindex<1;preselectedbox.checked=false;preselectedbox.disabled=itemindex<1;visiblebox.checked=true;visiblebox.disabled=itemindex<
341
- 1}else{labeltext.disabled=false;labeltext.value=question.items[qindex].label;labellocationlist.disabled=question.type=="prompt";labellocationlist.value=question.type=="prompt"?"":question.items[qindex].location;preselectedbox.disabled=question.type=="prompt";preselectedbox.checked=question.type=="prompt"?false:question.items[qindex].preselect==1;visiblebox.disabled=question.type=="prompt"?true:index==0&&itemindex==1;visiblebox.checked=question.type=="prompt"?true:typeof question.items[qindex].visible==
342
- "undefined"||question.items[qindex].visible==1}wfu_consent_question_optable_update(i,itemindex)}
343
- function wfu_consent_question_optable_recreate(){var oplist=[];var policy=wfu_get_consent_policy();if(policy){if(typeof wfu_PD_bank.conops!="undefined")for(var id in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(id))wfu_PD_bank.conops[id].active=false;var optable=document.getElementById("wfu_conquestions_optable");var body=optable.tBodies[0];while(body.rows.length>0)optable.rows[0].remove();var i=0;for(var id in wfu_PD_bank.allowedstatus)if(wfu_PD_bank.allowedstatus.hasOwnProperty(id)){var included=
344
- true;included=included&&(policy.children_index[id].length==0&&(wfu_PD_bank.params.oplevels<1||wfu_PD_bank.level[id]<=wfu_PD_bank.params.oplevels)||policy.children_index[id].length>0&&wfu_PD_bank.level[id]==wfu_PD_bank.params.oplevels);included=included&&wfu_PD_bank.needsconsentstatus[id]==1;included=included&&wfu_PD_bank.visible[id];if(included){if(typeof wfu_PD_bank.conops=="undefined")wfu_PD_bank.conops={};wfu_PD_bank.conops[id]={active:true,qindex:[1],itemindex:[1],inverse:[false],unassigned:true,
345
- nonevisible:false};var row=body.insertRow(i);row.id="wfu_conquestions_oprow_"+id;var cell=row.insertCell(0);var name=policy.operations[id].Name;var parid=id;while((parid=policy.operations[parid].Parent)>0)name=policy.operations[parid].Name+"/"+name;cell.innerHTML=name;var cell=row.insertCell(1);var selbox=document.createElement("INPUT");selbox.type="radio";selbox.className="wfu_conquestions_opsel wfu_frozen";wfu_addEventHandler(selbox,"click",wfu_conquestion_optable_handler);cell.appendChild(selbox);
346
- var cell=row.insertCell(2);var invbox=document.createElement("INPUT");invbox.type="checkbox";invbox.className="wfu_conquestions_opinv wfu_frozen";invbox.disabled=true;wfu_addEventHandler(invbox,"change",wfu_conquestion_optable_handler);cell.appendChild(invbox);i++}}}}
347
- function wfu_consent_question_operations_reassign(){var policy=wfu_get_consent_policy();if(policy){for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)){wfu_PD_bank.conops[opid].qindex=[];wfu_PD_bank.conops[opid].itemindex=[];wfu_PD_bank.conops[opid].inverse=[];wfu_PD_bank.conops[opid].unassigned=true;wfu_PD_bank.conops[opid].nonevisible=true}for(var i=0;i<policy.questions.length;i++){var question=policy.questions[i];for(var j=0;j<question.items.length;j++){var qitem=question.items[j];
348
- for(var opid in qitem.operations)if(qitem.operations.hasOwnProperty(opid))if(typeof wfu_PD_bank.conops[opid]!="undefined")if(wfu_PD_bank.params.multi_op_assignments||wfu_PD_bank.conops[opid].qindex.length==0){wfu_PD_bank.conops[opid].qindex.push(i+1);wfu_PD_bank.conops[opid].itemindex.push(j+1);wfu_PD_bank.conops[opid].inverse.push(qitem.operations[opid]==-1);wfu_PD_bank.conops[opid].unassigned=false}else delete qitem.operations[opid]}}for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)){var j=
349
- 0;while(j<wfu_PD_bank.conops[opid].qindex.length){var qindex=wfu_PD_bank.conops[opid].qindex[j];var itemindex=wfu_PD_bank.conops[opid].itemindex[j];var remove=false;if(qindex<1||qindex>policy.questions.length)remove=true;else{var question=policy.questions[qindex-1];var qnum=question.x*question.y;if(itemindex<1||itemindex>qnum)remove=true}if(remove){wfu_PD_bank.conops[opid].qindex.splice(j,1);wfu_PD_bank.conops[opid].itemindex.splice(j,1);wfu_PD_bank.conops[opid].inverse.splice(j,1)}else{var qitem=
350
- policy.questions[qindex-1].items[itemindex-1];if(typeof qitem.visible=="undefined"||qitem.visible)wfu_PD_bank.conops[opid].nonevisible=false;j++}}if(wfu_PD_bank.conops[opid].nonevisible){wfu_PD_bank.conops[opid].unassigned=wfu_PD_bank.conops[opid].qindex.length==0;wfu_PD_bank.conops[opid].qindex.splice(0,0,1);wfu_PD_bank.conops[opid].itemindex.splice(0,0,1);wfu_PD_bank.conops[opid].inverse.splice(0,0,false)}}wfu_set_consent_policy(policy);wfu_update_consent_question_item_assignments()}}
351
- function wfu_update_consent_question_item_assignments(){var containers=document.querySelectorAll("#wfu_conquestions_container .wfu_conquestion_itemcontainer");for(var i=0;i<containers.length;i++)containers[i].classList.remove("wfu_item_assigned");for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)&&wfu_PD_bank.conops[opid].active)for(var j=0;j<wfu_PD_bank.conops[opid].qindex.length;j++){var qindex=wfu_PD_bank.conops[opid].qindex[j];var itemindex=wfu_PD_bank.conops[opid].itemindex[j];
352
- var itemtable=document.querySelector("#wfu_conquestion_container_"+qindex+" .wfu_conquestion_itemtable");var x=itemtable.rows[0].cells.length;var rowindex=Math.floor((itemindex-1)/x);var cellindex=(itemindex-1)%x;itemtable.rows[rowindex].cells[cellindex].classList.add("wfu_item_assigned")}}
353
- function wfu_conquestion_conop_bankpos(opid,index,itemindex){var pos=-1;for(var i=0;i<wfu_PD_bank.conops[opid].qindex.length;i++)if(wfu_PD_bank.conops[opid].qindex[i]==index&&wfu_PD_bank.conops[opid].itemindex[i]==itemindex){pos=i;break}return pos}
354
- function wfu_consent_question_optable_update(index,itemindex){var freeze=index<1||itemindex<1;for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)&&wfu_PD_bank.conops[opid].active){var oprow=document.getElementById("wfu_conquestions_oprow_"+opid);var selbox=document.querySelector("#wfu_conquestions_oprow_"+opid+" .wfu_conquestions_opsel");var invbox=document.querySelector("#wfu_conquestions_oprow_"+opid+" .wfu_conquestions_opinv");if(wfu_PD_bank.conops[opid].unassigned||wfu_PD_bank.conops[opid].nonevisible)oprow.classList.add("wfu_op_unassigned");
355
- else oprow.classList.remove("wfu_op_unassigned");var pos=wfu_conquestion_conop_bankpos(opid,index,itemindex);selbox.checked=!freeze&&pos>-1;if(!freeze&&pos>-1&&(wfu_PD_bank.conops[opid].unassigned||wfu_PD_bank.conops[opid].nonevisible)&&index==1&&itemindex==1)selbox.classList.add("wfu_forced_selection");else selbox.classList.remove("wfu_forced_selection");invbox.checked=!freeze&&pos>-1&&wfu_PD_bank.conops[opid].inverse[pos];invbox.disabled=!(!freeze&&pos>-1);if(freeze){selbox.classList.add("wfu_frozen");
356
- invbox.classList.add("wfu_frozen")}else{selbox.classList.remove("wfu_frozen");invbox.classList.remove("wfu_frozen")}}}
357
- function wfu_conquestion_optable_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;var itemcontainer=document.querySelector("#wfu_conquestions_container .wfu_conquestion_itemcontainer.wfu_item_selected");if(!itemcontainer)return;var par=itemcontainer;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var index=parseInt(par.id.replace("wfu_conquestion_container_",""));var itemcontainers=document.querySelectorAll("#wfu_conquestion_container_"+
358
- index+" .wfu_conquestion_itemcontainer");var itemindex=-1;for(var j=0;j<itemcontainers.length;j++)if(itemcontainers[j]==itemcontainer){itemindex=j+1;break}var policy=wfu_get_consent_policy();if(!policy)return;if(!item.classList.contains("wfu_conquestions_opsel")&&!item.classList.contains("wfu_conquestions_opinv"))return;var opid=parseInt(item.parentNode.parentNode.id.replace("wfu_conquestions_oprow_",""));var opas=wfu_PD_bank.conops[opid];var pos=wfu_conquestion_conop_bankpos(opid,index,itemindex);
359
- if(pos<0||opas.unassigned){if(!wfu_PD_bank.params.multi_op_assignments||opas.unassigned){var question=policy.questions[opas.qindex[0]-1];for(var j=0;j<question.items.length;j++)if(question.items[j].index==opas.itemindex[0]){if(typeof question.items[j].operations[opid]!="undefined")delete question.items[j].operations[opid];break}opas.qindex.splice(0,1);opas.itemindex.splice(0,1);opas.inverse.splice(0,1)}opas.qindex.push(index);opas.itemindex.push(itemindex);opas.inverse.push(document.querySelector("#wfu_conquestions_oprow_"+
360
- opid+" .wfu_conquestions_opinv").checked);opas.unassigned=false;pos=opas.qindex.length-1;var question=policy.questions[opas.qindex[pos]-1];var qitem=null;var qindex=question.items.length;for(var j=0;j<question.items.length;j++)if(question.items[j].index==opas.itemindex[pos]){qitem=question.items[j];qitem.operations[opid]=opas.inverse[pos]?-1:1;break}else if(question.items[j].index>itemindex){qindex=j;break}if(!qitem){qitem={index:opas.itemindex[pos],label:"",location:"right",preselect:false,operations:{}};
361
- qitem.operations[opid]=opas.inverse[pos]?-1:1;question.items.splice(qindex,0,qitem)}wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(index,itemindex);wfu_update_consent_question_item_assignments();wfu_allops_freeze_events=false}else if(item.classList.contains("wfu_conquestions_opsel")&&pos>=0){var question=policy.questions[opas.qindex[pos]-1];for(var j=0;j<question.items.length;j++)if(question.items[j].index==
362
- opas.itemindex[pos]){if(typeof question.items[j].operations[opid]!="undefined")delete question.items[j].operations[opid];break}opas.qindex.splice(pos,1);opas.itemindex.splice(pos,1);opas.inverse.splice(pos,1);wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;item.checked=false;wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(index,itemindex);wfu_update_consent_question_item_assignments();wfu_allops_freeze_events=false}else if(item.classList.contains("wfu_conquestions_opinv")){opas.inverse[pos]=
363
- item.checked;var question=policy.questions[opas.qindex[pos]-1];for(var j=0;j<question.items.length;j++)if(question.items[j].index==opas.itemindex[pos]){question.items[j].operations[opid]=opas.inverse[pos]?-1:1;break}wfu_set_consent_policy(policy)}}
364
- function wfu_conquestion_tools_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;var qcount=document.querySelectorAll(".wfu_conquestion_container").length;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var index=parseInt(par.id.replace("wfu_conquestion_container_",""))-1;wfu_allops_freeze_events=true;var action="";if(item.classList.contains("wfu_conquestion_add"))action="add";else if(item.classList.contains("wfu_conquestion_remove")&&
365
- qcount>1)action="remove";else if(item.classList.contains("wfu_conquestion_up")&&index>0)action="up";else if(item.classList.contains("wfu_conquestion_down")&&index<qcount-1)action="down";if(action!=""){wfu_update_consent_question_itemprops(0,-1);wfu_consent_question_action(action,index);wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(0,0);wfu_update_conquestion_header()}wfu_allops_freeze_events=false}
366
- function wfu_update_conquestion_header(){var labels=document.querySelectorAll(".wfu_conquestion_headerlabel");var add_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_add");var remove_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_remove");var up_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_up");var down_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_down");
367
- for(var i=0;i<labels.length;i++){labels[i].innerHTML="Question "+(i+1);if(labels.length>1)remove_btns[i].classList.remove("wfu_tool_disabled");else remove_btns[i].classList.add("wfu_tool_disabled");if(i>0)up_btns[i].classList.remove("wfu_tool_disabled");else up_btns[i].classList.add("wfu_tool_disabled");if(i<labels.length-1)down_btns[i].classList.remove("wfu_tool_disabled");else down_btns[i].classList.add("wfu_tool_disabled")}}
368
- function wfu_permissions_update(updatehtml){function _wfu_nested_perms_update(item,level){var id=item.ID;if(item.children.length>0){policy.permissions[id].allowedstatus={};for(var j=0;j<item.children.length;j++){_wfu_nested_perms_update(item.children[j],level+1);var id2=item.children[j].ID;for(var locid in policy.permissions[id2].allowedstatus)if(policy.permissions[id2].allowedstatus.hasOwnProperty(locid)){var allowedstatus2=policy.permissions[id2].allowedstatus[locid];if(typeof policy.permissions[id].allowedstatus[locid]==
369
- "undefined")policy.permissions[id].allowedstatus[locid]=allowedstatus2;else if(policy.permissions[id].allowedstatus[locid]*allowedstatus2<1)policy.permissions[id].allowedstatus[locid]=0}}}else{var allowed=policy.permissions[id].Allowed;policy.permissions[id].allowedstatus={};for(var k=0;k<policy.permissions[id].Locations.length;k++){var locid=policy.permissions[id].Locations[k];policy.permissions[id].allowedstatus[locid]=allowed.indexOf(locid)>-1?1:-1}}if(typeof wfu_PD_bank.perallowedstatus=="undefined")wfu_PD_bank.perallowedstatus=
370
- {};wfu_PD_bank.perallowedstatus[id]=policy.permissions[id].allowedstatus;if(updatehtml){var row=document.getElementById("wfu_perm_row_"+id);for(var locid in policy.permissions[id].allowedstatus)if(policy.permissions[id].allowedstatus.hasOwnProperty(locid)){var check=document.querySelector("#wfu_perm_row_"+id+" .wfu_location_cell:nth-child("+(parseInt(locid)+1)+") input");wfu_set_checkbox_status(check,policy.permissions[id].allowedstatus[locid])}}}var policy=wfu_get_permissions_policy();if(policy){console.log(policy);
371
- wfu_allops_freeze_events=true;for(var i=0;i<policy.structure.length;i++)_wfu_nested_perms_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
372
- function wfu_adjust_permissions_levels(){function _wfu_force_permission_update_nested(item,locid){var id=item.ID;if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_force_permission_update_nested(item.children[j],locid);else if(policy.permissions[id].Allowed.indexOf(locid)==-1&&policy.permissions[id].Locations.indexOf(locid)>-1)policy.permissions[id].Allowed.push(locid)}function _wfu_nested_adjust_permissions_levels(item,level){if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_nested_adjust_permissions_levels(item.children[j],
373
- level+1);var id=item.ID;for(var locid in wfu_PD_bank.perallowedstatus[id])if(wfu_PD_bank.perallowedstatus[id].hasOwnProperty(locid))if(wfu_PD_bank.perallowedstatus[id][locid]==0&&level==wfu_PD_bank.params.perlevels){_wfu_force_permission_update_nested(item,parseInt(locid));wfu_PD_bank.perallowedstatus[id][locid]=1;policy_needs_update=true}}wfu_permissions_update(false);var policy=wfu_get_permissions_policy();if(policy){var policy_needs_update=false;for(var i=0;i<policy.structure.length;i++)_wfu_nested_adjust_permissions_levels(policy.structure[i],
374
- 1);if(policy_needs_update)wfu_set_permissions_policy(policy)}}
375
- function wfu_perm_toggle(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_location_selector"))return;var id=obj.parentNode.parentNode.id.replace("wfu_perm_row_","");var locid=obj.parentNode.cellIndex;var policy=wfu_get_permissions_policy();if(policy){if(typeof policy.permissions[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)obj.classList.remove("indeterminate");
376
- if(policy.children_index[id].length>0){var level=1;var parid=id;while((parid=policy.permissions[parid].Parent)>0)level++;if((wfu_PD_bank.params.perlevels<1||level<wfu_PD_bank.params.perlevels)&&!confirm("This will make all children permissions "+(new_status?"allowed":"not allowed")+". Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==
377
- 0){var locindex2=policy.permissions[id2].Allowed.indexOf(locid);if(new_status&&locindex2==-1&&policy.permissions[id2].Locations.indexOf(locid)>-1)policy.permissions[id2].Allowed.push(locid);else if(!new_status&&locindex2>-1)policy.permissions[id2].Allowed.splice(locindex2,1)}}}else{var locindex=policy.permissions[id].Allowed.indexOf(locid);if(new_status&&locindex==-1&&policy.permissions[id].Locations.indexOf(locid)>-1)policy.permissions[id].Allowed.push(locid);else if(!new_status&&locindex>-1)policy.permissions[id].Allowed.splice(locindex,
378
- 1)}wfu_set_permissions_policy(policy);wfu_allops_freeze_events=true;wfu_permissions_update(true);wfu_allops_freeze_events=false}}
379
- function wfu_perm_button_action(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_perm_button"))return;var policy=wfu_get_permissions_policy();if(policy){var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_perm_row"));var id=parseInt(par.id.replace("wfu_perm_row_",""));obj.classList.toggle("expanded");for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];var parid=id2;var visible=true;while((parid=policy.permissions[parid].Parent)>
380
- 0)visible=visible&&document.querySelector("#wfu_perm_row_"+parid+" .wfu_perm_button")&&document.querySelector("#wfu_perm_row_"+parid+" .wfu_perm_button").classList.contains("expanded");document.getElementById("wfu_perm_row_"+id2).style.display=visible?"table-row":"none"}}}
381
- function wfu_logactions_update(updatehtml){function _wfu_nested_logactions_update(item,level){var id=item.ID;if(item.children.length>0){policy.logactions[id].allowedstatus={};for(var j=0;j<item.children.length;j++){_wfu_nested_logactions_update(item.children[j],level+1);var id2=item.children[j].ID;for(var entid in policy.logactions[id2].allowedstatus)if(policy.logactions[id2].allowedstatus.hasOwnProperty(entid)){var allowedstatus2=policy.logactions[id2].allowedstatus[entid];if(typeof policy.logactions[id].allowedstatus[entid]==
382
- "undefined")policy.logactions[id].allowedstatus[entid]=allowedstatus2;else if(policy.logactions[id].allowedstatus[entid]*allowedstatus2<1)policy.logactions[id].allowedstatus[entid]=0}}}else{var allowed=policy.logactions[id].Allowed;policy.logactions[id].allowedstatus={};for(var k=0;k<policy.logactions[id].Entities.length;k++){var entid=policy.logactions[id].Entities[k];policy.logactions[id].allowedstatus[entid]=allowed.indexOf(entid)>-1?1:-1}}if(typeof wfu_PD_bank.logallowedstatus=="undefined")wfu_PD_bank.logallowedstatus=
383
- {};wfu_PD_bank.logallowedstatus[id]=policy.logactions[id].allowedstatus;if(updatehtml){var row=document.getElementById("wfu_log_row_"+id);for(var entid in policy.logactions[id].allowedstatus)if(policy.logactions[id].allowedstatus.hasOwnProperty(entid)){var check=document.querySelector("#wfu_log_row_"+id+" .wfu_entity_cell:nth-child("+(parseInt(entid)+1)+") input");wfu_set_checkbox_status(check,policy.logactions[id].allowedstatus[entid])}}}var policy=wfu_get_logactions_policy();if(policy){console.log(policy);
384
- wfu_allops_freeze_events=true;for(var i=0;i<policy.structure.length;i++)_wfu_nested_logactions_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
385
- function wfu_adjust_logactions_levels(){function _wfu_force_logaction_update_nested(item,entid){var id=item.ID;if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_force_logaction_update_nested(item.children[j],entid);else if(policy.logactions[id].Allowed.indexOf(entid)==-1&&policy.logactions[id].Entities.indexOf(entid)>-1)policy.logactions[id].Allowed.push(entid)}function _wfu_nested_adjust_logactions_levels(item,level){if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_nested_adjust_logactions_levels(item.children[j],
386
- level+1);var id=item.ID;for(var entid in wfu_PD_bank.logallowedstatus[id])if(wfu_PD_bank.logallowedstatus[id].hasOwnProperty(entid))if(wfu_PD_bank.logallowedstatus[id][entid]==0&&level==wfu_PD_bank.params.loglevels){_wfu_force_logaction_update_nested(item,parseInt(entid));wfu_PD_bank.logallowedstatus[id][entid]=1;policy_needs_update=true}}wfu_logactions_update(false);var policy=wfu_get_logactions_policy();if(policy){var policy_needs_update=false;for(var i=0;i<policy.structure.length;i++)_wfu_nested_adjust_logactions_levels(policy.structure[i],
387
- 1);if(policy_needs_update)wfu_set_logactions_policy(policy)}}
388
- function wfu_log_toggle(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_entity_selector"))return;var id=obj.parentNode.parentNode.id.replace("wfu_log_row_","");var entid=obj.parentNode.cellIndex;var policy=wfu_get_logactions_policy();if(policy){if(typeof policy.logactions[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)obj.classList.remove("indeterminate");
389
- if(policy.children_index[id].length>0){var level=1;var parid=id;while((parid=policy.logactions[parid].Parent)>0)level++;if((wfu_PD_bank.params.loglevels<1||level<wfu_PD_bank.params.loglevels)&&!confirm("This will make all children log actions "+(new_status?"allowed":"not allowed")+". Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==
390
- 0){var entindex2=policy.logactions[id2].Allowed.indexOf(entid);if(new_status&&entindex2==-1&&policy.logactions[id2].Entities.indexOf(entid)>-1)policy.logactions[id2].Allowed.push(entid);else if(!new_status&&entindex2>-1)policy.logactions[id2].Allowed.splice(entindex2,1)}}}else{var entindex=policy.logactions[id].Allowed.indexOf(entid);if(new_status&&entindex==-1&&policy.logactions[id].Entities.indexOf(entid)>-1)policy.logactions[id].Allowed.push(entid);else if(!new_status&&entindex>-1)policy.logactions[id].Allowed.splice(entindex,
391
- 1)}wfu_set_logactions_policy(policy);wfu_allops_freeze_events=true;wfu_logactions_update(true);wfu_allops_freeze_events=false}}
392
- function wfu_log_button_action(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_log_button"))return;var policy=wfu_get_logactions_policy();if(policy){var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_log_row"));var id=parseInt(par.id.replace("wfu_log_row_",""));obj.classList.toggle("expanded");for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];var parid=id2;var visible=true;while((parid=policy.logactions[parid].Parent)>
393
- 0)visible=visible&&document.querySelector("#wfu_log_row_"+parid+" .wfu_log_button")&&document.querySelector("#wfu_log_row_"+parid+" .wfu_log_button").classList.contains("expanded");document.getElementById("wfu_log_row_"+id2).style.display=visible?"table-row":"none"}}}
394
- function wfu_pdusers_addrole_handler(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_pdusers_roles_add"))return;var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_roles_container"));var type=par.id.replace(/^wfu_pdusers_roles_(in|out)_container$/,"$1");var roles=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_list");var names=[];for(var i=0;i<roles.options.length;i++)if(roles.options[i].selected)names.push(roles.options[i].value);
395
- wfu_allops_freeze_events=true;wfu_pdusers_add_roles(type,names);wfu_allops_freeze_events=false}
396
- function wfu_pdusers_add_roles(type,names){var show=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_show");var roles=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_list");var selected=document.querySelectorAll("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_rightpanel .wfu_pdusers_roles_role");var source=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]').checked?"in":"out";var btype=type=="in"?
397
- "included":"excluded";var count=selected.length;for(var i=0;i<names.length;i++){var title="";if(names[i]=="all")title="All";else for(var j=0;j<roles.options.length;j++)if(roles.options[j].value==names[i]){title=roles.options[j].innerHTML;break}if(title!=""){var already_in=false;for(var j=0;j<selected.length;j++)if(selected[j].roleName==names[i]){already_in=true;break}if(!already_in){var pos=wfu_PD_bank.pdusers.rolestates[source][btype].indexOf(names[i]);if(pos==-1)wfu_PD_bank.pdusers.rolestates[source][btype].push(names[i]);
398
- if(count>0)show.appendChild(document.createElement("BR"));var role=document.createElement("DIV");role.classList.add("wfu_pdusers_roles_role");role.roleName=names[i];role.innerHTML=title;if(names[i]=="all")role.classList.add("wfu_pdusers_roles_all");else{var delbtn=document.createElement("SPAN");wfu_addEventHandler(delbtn,"click",wfu_pdusers_removerole_handler);role.appendChild(delbtn)}show.appendChild(role);count++}}}}
399
- function wfu_pdusers_clear_roles(type){var show=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_show");var selected=document.querySelectorAll("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_rightpanel .wfu_pdusers_roles_role");var brs=document.querySelectorAll("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_rightpanel br");for(var i=0;i<selected.length;i++)show.removeChild(selected[i]);for(var i=0;i<brs.length;i++)show.removeChild(brs[i])}
400
- function wfu_pdusers_removerole_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;if(!item.parentNode.classList.contains("wfu_pdusers_roles_role"))return;var role=item.parentNode.roleName;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_roles_container"));var type=par.id.replace(/^wfu_pdusers_roles_(in|out)_container$/,"$1");var source=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]').checked?"in":"out";var btype=
401
- type=="in"?"included":"excluded";var pos=wfu_PD_bank.pdusers.rolestates[source][btype].indexOf(role);if(pos>-1)wfu_PD_bank.pdusers.rolestates[source][btype].splice(pos,1);var br1=item.parentNode.previousSibling;var br2=item.parentNode.nextSibling;var show=document.querySelector("#"+par.id+" .wfu_pdusers_roles_show");wfu_allops_freeze_events=true;show.removeChild(item.parentNode);if(br1&&br1.tagName&&br1.tagName=="BR")show.removeChild(br1);else if(br2&&br2.tagName&&br2.tagName=="BR")show.removeChild(br2);
402
- wfu_allops_freeze_events=false}
403
- function wfu_pdusers_update(){var pd_users=wfu_get_pd_users();if(pd_users){console.log(pd_users);wfu_PD_bank.pdusers={rolestates:{"in":{included:[],excluded:[]},out:{included:["all"],excluded:[]}}};var userin_input=document.querySelector('#wfu_pdusers_users_in_container .wfu_pdusers_users_leftpanel input[type="text"]');wfu_attach_element_handlers(userin_input,wfu_pdusers_get_users);var userout_input=document.querySelector('#wfu_pdusers_users_out_container .wfu_pdusers_users_leftpanel input[type="text"]');wfu_attach_element_handlers(userout_input,
404
- wfu_pdusers_get_users);wfu_PD_bank.pdusers.userinput={"in":{prev_value:""},out:{prev_value:""},xhr:null};var radioin=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]');var rolein_list=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_list");var rolein_back=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_back");var radioout=document.querySelector('#wfu_pdusers_roles_out_container input[type="radio"]');var roleout_list=document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_list");
405
- var roleout_back=document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_back");if(pd_users.roles_included.length>0&&pd_users.roles_included[0]!="all"||pd_users.roles_excluded.length==1&&pd_users.roles_excluded[0]=="all"||pd_users.roles_included.length==0&&pd_users.roles_excluded.length==0){wfu_PD_bank.pdusers.rolestates["in"].included=pd_users.roles_included;rolein_list.disabled=false;rolein_back.classList.add("active");roleout_list.disabled=true;roleout_back.classList.remove("active");
406
- radioin.checked=true;wfu_pdusers_add_roles("in",pd_users.roles_included);wfu_pdusers_add_roles("out",[])}else{wfu_PD_bank.pdusers.rolestates.out.excluded=pd_users.roles_excluded;rolein_list.disabled=true;rolein_back.classList.remove("active");roleout_list.disabled=false;roleout_back.classList.add("active");radioout.checked=true;wfu_pdusers_add_roles("in",["all"]);wfu_pdusers_add_roles("out",pd_users.roles_excluded)}}}
407
- function wfu_pdusers_roletype_handler(obj){if(wfu_allops_freeze_events)return;if(obj.name!="wfu_pdusers_roletypes")return;var radioin=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]');var rolein_list=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_list");var rolein_back=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_back");var radioout=document.querySelector('#wfu_pdusers_roles_out_container input[type="radio"]');var roleout_list=
408
- document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_list");var roleout_back=document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_back");wfu_allops_freeze_events=true;wfu_pdusers_clear_roles("in");wfu_pdusers_clear_roles("out");if(obj.value=="include"){rolein_list.disabled=false;rolein_back.classList.add("active");roleout_list.disabled=true;roleout_back.classList.remove("active");radioin.checked=true;wfu_pdusers_add_roles("in",wfu_PD_bank.pdusers.rolestates["in"].included);
409
- wfu_pdusers_add_roles("out",wfu_PD_bank.pdusers.rolestates["in"].excluded)}else{rolein_list.disabled=true;rolein_back.classList.remove("active");roleout_list.disabled=false;roleout_back.classList.add("active");radioout.checked=true;wfu_pdusers_add_roles("in",wfu_PD_bank.pdusers.rolestates.out.included);wfu_pdusers_add_roles("out",wfu_PD_bank.pdusers.rolestates.out.excluded)}wfu_allops_freeze_events=false}
410
- function wfu_pdusers_adduser_handler(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_pdusers_users_add"))return;var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_users_container"));var type=par.id.replace(/^wfu_pdusers_users_(in|out)_container$/,"$1");var users=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_list");var names=[];for(var i=0;i<users.options.length;i++)if(users.options[i].selected)names.push(users.options[i].value);
411
- wfu_allops_freeze_events=true;wfu_pdusers_add_users(type,names);wfu_allops_freeze_events=false}
412
- function wfu_pdusers_add_users(type,names){var show=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_show");var users=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_list");var selected=document.querySelectorAll("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_rightpanel .wfu_pdusers_users_user");var otherselected=document.querySelectorAll("#wfu_pdusers_users_"+(type=="in"?"out":"in")+"_container .wfu_pdusers_users_rightpanel .wfu_pdusers_users_user");
413
- var count=selected.length;for(var i=0;i<names.length;i++){var title="";for(var j=0;j<users.options.length;j++)if(users.options[j].value==names[i]){title=users.options[j].innerHTML;break}if(title!=""){var already_in=false;for(var j=0;j<selected.length;j++)if(selected[j].userName==names[i]){already_in=true;break}if(!already_in){if(count>0)show.appendChild(document.createElement("BR"));for(var j=0;j<otherselected.length;j++)if(otherselected[j].userName==names[i]){var prev_wfu_allops_freeze_events=wfu_allops_freeze_events;
414
- wfu_allops_freeze_events=false;wfu_pdusers_removeuser_handler({target:otherselected[j].children[0]});wfu_allops_freeze_events=prev_wfu_allops_freeze_events;break}var user=document.createElement("DIV");user.classList.add("wfu_pdusers_users_user");user.userName=names[i];user.innerHTML=title;var delbtn=document.createElement("SPAN");wfu_addEventHandler(delbtn,"click",wfu_pdusers_removeuser_handler);user.appendChild(delbtn);show.appendChild(user);count++}}}}
415
- function wfu_pdusers_removeuser_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;if(!item.parentNode.classList.contains("wfu_pdusers_users_user"))return;var user=item.parentNode.userName;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_users_container"));var type=par.id.replace(/^wfu_pdusers_users_(in|out)_container$/,"$1");var br1=item.parentNode.previousSibling;var br2=item.parentNode.nextSibling;var show=document.querySelector("#"+
416
- par.id+" .wfu_pdusers_users_show");wfu_allops_freeze_events=true;show.removeChild(item.parentNode);if(br1&&br1.tagName&&br1.tagName=="BR")show.removeChild(br1);else if(br2&&br2.tagName&&br2.tagName=="BR")show.removeChild(br2);wfu_allops_freeze_events=false}
417
- function wfu_pdusers_get_users(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;if(!item.parentNode.classList.contains("wfu_pdusers_users_leftpanel"))return;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_users_container"));var type=par.id.replace(/^wfu_pdusers_users_(in|out)_container$/,"$1");if(item.value==wfu_PD_bank.pdusers.userinput[type].prev_value)return;wfu_PD_bank.pdusers.userinput[type].prev_value=item.value;if(wfu_PD_bank.pdusers.xhr!=
418
- null){wfu_PD_bank.pdusers.xhr.abort();wfu_PD_bank.pdusers.xhr=null}var userlist=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_list");if(item.value==""){var length=userlist.options.length;for(i=0;i<length;i++)userlist.options[0]=null;return}var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_pdusers_get_users";params[1]=new Array(2);params[1][0]=
419
- "nonce";params[1][1]=document.getElementById("_wpnonce").value;params[2]=new Array(2);params[2][0]="query";params[2][1]=item.value;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="pdusers_get_users:";var pos=xhr.responseText.indexOf(start_text);
420
- if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);var users_str=wfu_plugin_decode_string(response);var users=null;try{users=JSON.parse(users_str)}catch(e$2){}var length=userlist.options.length;for(i=0;i<length;i++)userlist.options[i]=null;for(i=0;i<users.length;i++){var opt=document.createElement("OPTION");opt.value=users[i].user_login;opt.innerHTML=users[i].display_name+
421
- " ("+users[i].user_login+")";userlist.options.add(opt)}}};wfu_PD_bank.pdusers.xhr=xhr;xhr.send(parameters)}function wfu_initialize_consent_policy_basic(){wfu_PD_bank.userinput={prev_value:"",xhr:null,prev_select:-1};wfu_attach_element_handlers(document.getElementById("wfu_pd_user_box0"),wfu_pd_get_users_basic)}
422
- function wfu_pd_get_users_basic(e){e=e||window.event;var item=e.target;if(!item.classList.contains("wfu_pd_user_box0"))return;if(item.value==wfu_PD_bank.userinput)return;var userlist=document.getElementById("wfu_pd_user_select0");wfu_PD_bank.userinput=item.value;if(wfu_PD_bank.userinput.xhr!=null){wfu_PD_bank.userinput.xhr.abort();wfu_PD_bank.userinput.xhr=null}if(item.value==""){var length=userlist.options.length;for(i=0;i<length;i++)userlist.options[0]=null;return}var xhr=wfu_GetHttpRequestObject();
423
- if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_pdusers_get_users";params[1]=new Array(2);params[1][0]="nonce";params[1][1]=document.getElementById("_wpnonce").value;params[2]=new Array(2);params[2][0]="query";params[2][1]=item.value;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type",
424
- "application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="pdusers_get_users:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);var users_str=wfu_plugin_decode_string(response);var users=null;try{users=JSON.parse(users_str)}catch(e$3){}var length=
425
- userlist.options.length;for(i=0;i<length;i++)userlist.options[0]=null;for(i=0;i<users.length;i++){var opt=document.createElement("OPTION");opt.value=users[i].user_login;opt.innerHTML=users[i].display_name+" ("+users[i].user_login+")";userlist.options.add(opt)}}};wfu_PD_bank.userinput.xhr=xhr;xhr.send(parameters)}
426
- function wfu_export_user_data(){var userlist=document.getElementById("wfu_pd_user_select0");if(userlist.selectedIndex<0){alert("No user has been selected!");return}var params={username:userlist.options[userlist.selectedIndex].value};var params_str=JSON.stringify(params);wfu_download_file("exportdata:"+params_str,1)}
427
- function wfu_erase_user_data_check(){var userlist=document.getElementById("wfu_pd_user_select0");var anchor=document.getElementById("wfu_erase_userdata0");if(userlist.selectedIndex<0){alert("No user has been selected!");return false}else{anchor.href=anchor.href.replace(/action=erase_userdata_ask.*$/,"action=erase_userdata_ask&username="+userlist.options[userlist.selectedIndex].value);return true}}
428
- function wfu_pd_pre_save_actions(){var wfu_PD_bank_str=JSON.stringify(wfu_PD_bank);document.getElementById("wfu_PD_bank").value=wfu_plugin_encode_string(wfu_PD_bank_str)};
 
 
 
 
 
 
 
 
 
 
 
1
+ var DraggedItem=null;var ShortcodeNextSave=0;var ShortcodeTimeOut=null;var ShortcodeString="";var Autosave=false;var PageObsolete=false;var PageUpdating=false;var CheckObsolescenceTimeOut=5E3;var wfu_transfers_observer_interval=100;var wfu_allops_freeze_events=false;var wfu_PD_bank={};
2
+ jQuery(document).ready(function($){$(".wfu_color_field").wpColorPicker({change:function(event,ui){event.target.value=ui.color.toString();if(event.target.name=="wfu_text_elements")wfu_update_text_value(event);else if(event.target.name=="wfu_triplecolor_elements")wfu_update_triplecolor_value(event)}})});
3
+ function wfu_admin_activate_tab(key){var tabs=document.getElementById("wfu_tab_container");var tab,tabkey;for(var i=0;i<tabs.childNodes.length;i++){tab=tabs.childNodes[i];if(tab.nodeType===1){tabkey=tab.id.substr(8);if(tab.className.indexOf("nav-tab-active")>-1){tab.className="nav-tab";document.getElementById("wfu_container_"+tabkey).style.display="none"}}}document.getElementById("wfu_tab_"+key).className="nav-tab nav-tab-active";document.getElementById("wfu_container_"+key).style.display="block"}
4
+ function wfu_admin_onoff_clicked(key){var onoff=document.getElementById("wfu_attribute_"+key);var shadows=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key);var shadows_inv=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key+"_inv");var status=onoff.className.substr(onoff.className.length-2)=="on";status=!status;if(status){document.getElementById("wfu_attribute_value_"+key).value="true";onoff.className="wfu_onoff_container_on";for(var i=0;i<shadows.length;i++)shadows[i].style.display=
5
+ "none";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display="block"}else{document.getElementById("wfu_attribute_value_"+key).value="false";onoff.className="wfu_onoff_container_off";for(var i=0;i<shadows.length;i++)shadows[i].style.display="block";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display="none"}wfu_generate_shortcode();if(key=="userdata"||key=="formdata")wfu_update_formfield_variables()}
6
+ function wfu_admin_radio_clicked(key){var radios=document.getElementsByName("wfu_radioattribute_"+key);var shadows=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key);var shadows_inv=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_"+key+"_inv");var val="";for(i=0;i<radios.length;i++)if(radios[i].checked)val=radios[i].value;var status=val.substr(0,1)=="*";if(status){val=val.substr(1);for(var i=0;i<shadows.length;i++)shadows[i].style.display="none";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display=
7
+ "block"}else{for(var i=0;i<shadows.length;i++)shadows[i].style.display="block";for(var i=0;i<shadows_inv.length;i++)shadows_inv[i].style.display="none"}document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}function wfu_set_checkbox_status(check,status){if(status==0){check.checked=false;check.indeterminate=true;check.classList.add("indeterminate")}else{check.indeterminate=false;check.classList.remove("indeterminate");check.checked=status==1}}
8
+ function wfu_addEventHandler(obj,evt,handler){if(obj.addEventListener)obj.addEventListener(evt,handler,false);else if(obj.attachEvent)obj.attachEvent("on"+evt,handler);else obj["on"+evt]=handler}
9
+ function wfu_attach_separator_dragdrop_events(){var container=document.getElementById("wfu_placements_container");var item;for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_separator_hor"||item.className=="wfu_component_separator_ver"){wfu_addEventHandler(item,"dragenter",wfu_separator_dragenter);wfu_addEventHandler(item,"dragover",wfu_default_dragover);wfu_addEventHandler(item,"dragleave",wfu_separator_dragleave);wfu_addEventHandler(item,
10
+ "drop",wfu_separator_drop)}}}
11
+ function wfu_Attach_Admin_DragDrop_Events(){if(window.FileReader){var container=document.getElementById("wfu_placements_container");if(container){var available_container=document.getElementById("wfu_componentlist_container");var item;for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_box"){wfu_addEventHandler(item,"dragstart",wfu_component_dragstart);wfu_addEventHandler(item,"dragend",wfu_component_dragend)}}for(var i=0;i<available_container.childNodes.length;i++){item=
12
+ available_container.childNodes[i];if(item.className=="wfu_component_box_container")for(var ii=0;ii<item.childNodes.length;ii++)if(item.childNodes[ii].className=="wfu_component_box wfu_inbase"){wfu_addEventHandler(item.childNodes[ii],"dragstart",wfu_component_dragstart);wfu_addEventHandler(item.childNodes[ii],"dragend",wfu_component_dragend)}}item=document.getElementById("wfu_componentlist_dragdrop");wfu_addEventHandler(item,"dragenter",wfu_componentlist_dragenter);wfu_addEventHandler(item,"dragover",
13
+ wfu_default_dragover);wfu_addEventHandler(item,"dragleave",wfu_componentlist_dragleave);wfu_addEventHandler(item,"drop",wfu_componentlist_drop);wfu_attach_separator_dragdrop_events()}}}
14
+ function wfu_componentlist_dragenter(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;var item=document.getElementById("wfu_componentlist_dragdrop");if(item.className.indexOf("wfu_componentlist_dragdrop_dragover")==-1)item.className+=" wfu_componentlist_dragdrop_dragover";return false}
15
+ function wfu_componentlist_dragleave(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;var item=document.getElementById("wfu_componentlist_dragdrop");item.className=item.className.replace(" wfu_componentlist_dragdrop_dragover","");return false}
16
+ function wfu_componentlist_drop(e){e=e||window.event;if(e.preventDefault)e.preventDefault();var component_raw=e.dataTransfer.getData("Component");if(!component_raw)return false;var parts=component_raw.split("_");var component=parts[0];var multi_index=parseInt(parts[1]);var item=document.getElementById("wfu_component_box_"+component+"_"+multi_index);if(multi_index==0){item.className="wfu_component_box wfu_inbase";item.style.display="block";document.getElementById("wfu_component_box_container_"+component).appendChild(item)}else item.parentNode.removeChild(item);
17
+ var placements=wfu_admin_recreate_placements_text(null,"");wfu_admin_recreate_placements_panel(placements);document.getElementById("wfu_attribute_value_placements").value=placements;wfu_update_multiplacement_attributes();wfu_generate_shortcode();return false}
18
+ function wfu_separator_dragenter(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;if(e.target.className=="wfu_component_separator_hor"){var bar=document.getElementById("wfu_component_bar_hor");bar.style.top=e.target.offsetTop+"px";bar.style.display="block"}else if(e.target.className=="wfu_component_separator_ver"){var bar=document.getElementById("wfu_component_bar_ver");bar.style.top=e.target.offsetTop+"px";bar.style.left=e.target.offsetLeft+"px";bar.style.display=
19
+ "block"}return false}function wfu_default_dragover(e){e=e||window.event;if(e.preventDefault)e.preventDefault();return false}
20
+ function wfu_separator_dragleave(e){e=e||window.event;if(e.preventDefault)e.preventDefault();if(!DraggedItem)return false;if(e.target.className=="wfu_component_separator_hor"){var bar=document.getElementById("wfu_component_bar_hor");bar.style.display="none"}else if(e.target.className=="wfu_component_separator_ver"){var bar=document.getElementById("wfu_component_bar_ver");bar.style.display="none"}return false}
21
+ function wfu_separator_drop(e){e=e||window.event;if(e.preventDefault)e.preventDefault();var component_raw=e.dataTransfer.getData("Component");if(!component_raw)return false;var parts=component_raw.split("_");var component=parts[0];var multi_index=parseInt(parts[1]);var item=document.getElementById("wfu_component_box_"+component+"_"+multi_index);item.style.display="none";item.className="wfu_component_box wfu_inbase";document.getElementById("wfu_component_box_container_"+component).appendChild(item);
22
+ var placements=wfu_admin_recreate_placements_text(e.target,component);wfu_admin_recreate_placements_panel(placements);document.getElementById("wfu_attribute_value_placements").value=placements;wfu_update_multiplacement_attributes();wfu_generate_shortcode();return false}
23
+ function wfu_component_dragstart(e){e=e||window.event;e.dataTransfer.setData("Component",e.target.id.replace("wfu_component_box_",""));if(e.target.className.indexOf("wfu_component_box_dragged")==-1){e.target.className+=" wfu_component_box_dragged";DraggedItem=e.target}e.target.style.zIndex=3;var item=document.getElementById("wfu_componentlist_dragdrop");item.className="wfu_componentlist_dragdrop wfu_componentlist_dragdrop_dragover";item.style.display="block";return false}
24
+ function wfu_component_dragend(e){e=e||window.event;DraggedItem=null;e.target.style.zIndex=1;var item=document.getElementById("wfu_componentlist_dragdrop");item.style.display="none";item.className="wfu_componentlist_dragdrop";e.target.className=e.target.className.replace(" wfu_component_box_dragged","");document.getElementById("wfu_component_bar_ver").style.display="none";document.getElementById("wfu_component_bar_hor").style.display="none";return false}
25
+ function wfu_admin_recreate_placements_text(place,new_component){function add_item(component){if(placements!="")placements+=delim;placements+=component;delim=""}var container=document.getElementById("wfu_placements_container");var delim="";var placements="";var component="";for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_separator_ver"){if(delim=="")delim="+";if(item==place){add_item(new_component);delim="+"}}else if(item.className=="wfu_component_separator_hor"){delim=
26
+ "/";if(item==place){add_item(new_component);delim="/"}}else if(item.className=="wfu_component_box")add_item(item.id.replace("wfu_component_box_","").replace(/_.*$/,""))}return placements}
27
+ function wfu_admin_recreate_placements_panel(placements_text){var container=document.getElementById("wfu_placements_container");var item,placements,sections,itemname_raw,parts,multi_index,index_item;var itemname="";for(var i=0;i<container.childNodes.length;i++){item=container.childNodes[i];if(item.className=="wfu_component_box"){itemname_raw=item.id.replace("wfu_component_box_","");parts=itemname_raw.split("_");itemname=parts[0];multi_index=parseInt(parts[1]);if(multi_index==0){item.style.display=
28
+ "inline-block";item.className="wfu_component_box wfu_inbase";document.getElementById("wfu_component_box_container_"+itemname).appendChild(item)}else item.parentNode.removeChild(item)}}var box_containers=document.querySelectorAll("div.wfu_component_box_container");var component_used={};for(var i=0;i<box_containers.length;i++){itemname=box_containers[i].id.replace("wfu_component_box_container_","");component_used[itemname]=0;index_item=document.querySelector("div#"+box_containers[i].id+" div.wfu_component_box_index");
29
+ if(index_item)index_item.innerHTML="1"}container.innerHTML="";placements=placements_text.split("/");for(var i=0;i<placements.length;i++){item=document.createElement("DIV");item.className="wfu_component_separator_hor";item.setAttribute("draggable",true);container.appendChild(item);item=document.createElement("DIV");item.className="wfu_component_separator_ver";item.setAttribute("draggable",true);container.appendChild(item);sections=placements[i].split("+");for(var ii=0;ii<sections.length;ii++){item=
30
+ document.querySelector("div#wfu_component_box_container_"+sections[ii]+" div.wfu_component_box.wfu_inbase");if(item){itemname_raw=item.id.replace("wfu_component_box_","");parts=itemname_raw.split("_");itemname=parts[0];multi_index=parseInt(parts[1]);if(multi_index==0)container.appendChild(item);else{component_used[itemname]++;item.id="wfu_component_box_"+itemname+"_"+(component_used[itemname]+1).toString();item.style.display="block";index_item=document.querySelector("div#"+item.id+" div.wfu_component_box_index");
31
+ index_item.innerHTML=(component_used[itemname]+1).toString();item=item.cloneNode(true);container.appendChild(item);item.id="wfu_component_box_"+itemname+"_"+component_used[itemname].toString();index_item=document.querySelector("div#"+item.id+" div.wfu_component_box_index");index_item.innerHTML=component_used[itemname].toString();wfu_addEventHandler(item,"dragstart",wfu_component_dragstart);wfu_addEventHandler(item,"dragend",wfu_component_dragend)}item.className="wfu_component_box";item.style.display=
32
+ "inline-block";item=document.createElement("DIV");item.className="wfu_component_separator_ver";item.setAttribute("draggable",true);container.appendChild(item)}}}item=document.createElement("DIV");item.className="wfu_component_separator_hor";item.setAttribute("draggable",true);container.appendChild(item);item=document.createElement("DIV");item.id="wfu_component_bar_hor";item.className="wfu_component_bar_hor";container.appendChild(item);item=document.createElement("DIV");item.id="wfu_component_bar_ver";
33
+ item.className="wfu_component_bar_ver";container.appendChild(item);wfu_attach_separator_dragdrop_events()}
34
+ function wfu_update_multiplacement_attributes(){var box_containers=document.querySelectorAll("div.wfu_component_box_container");for(var i=0;i<box_containers.length;i++){itemname=box_containers[i].id.replace("wfu_component_box_container_","");var index_item=document.querySelector("div#"+box_containers[i].id+" div.wfu_component_box_index");if(index_item){var occurrences=Math.max(1,parseInt(index_item.innerHTML)-1);var dependencies=document.getElementsByName("wfu_attribute_governor_"+itemname);for(var j=
35
+ 0;j<dependencies.length;j++)wfu_update_multiplacement_attribute(dependencies[j].value,occurrences)}}}
36
+ function wfu_update_multiplacement_attribute(attribute,occurrencies){if(attribute=="userdatalabel"){var attributes=document.querySelectorAll("div.wfu_formdata_container");var current=attributes.length;if(current<1)return;var base=attributes[0],tr0,tr;var i=2;while(i<=Math.max(current,occurrencies)){if(i>current){var new_attribute=attribute+i.toString();tr0=base.parentNode;while(tr0!=null&&tr0.tagName!="TR")tr0=tr0.parentNode;if(tr0==null||tr0.tagName!="TR")return;tr=tr0.cloneNode(true);tr.id="tr_"+
37
+ wfu_randomString(4);tr0.parentNode.appendChild(tr);var elem=document.querySelector("tr#"+tr.id+' label[for="wfu_attribute_'+attribute+'"]');elem.setAttribute("for","wfu_attribute_"+new_attribute);elem.innerHTML+=" ("+i.toString()+")";elem=document.querySelector("tr#"+tr.id+" input.wfu_attribute_governor");elem.setAttribute("name","wfu_attribute_governor_independent");elem.value=new_attribute;elem=document.querySelector("tr#"+tr.id+" div.wfu_formdata_container");elem.id+=i.toString();var def=document.getElementById("wfu_attribute_default_"+
38
+ new_attribute);if(!def){def=document.createElement("INPUT");def.id="wfu_attribute_default_"+new_attribute;def.type="hidden";def.value=document.getElementById("wfu_attribute_default_"+attribute).value;document.getElementById("wfu_attribute_defaults").appendChild(def)}var shortcode_value=document.getElementById("wfu_attribute_value_"+new_attribute);if(!shortcode_value){shortcode_value=document.createElement("INPUT");shortcode_value.id="wfu_attribute_value_"+new_attribute;shortcode_value.type="hidden";
39
+ shortcode_value.value=def.value;document.getElementById("wfu_attribute_values").appendChild(shortcode_value)}window["wfu_attribute_"+new_attribute+"_formtemplate"]=window["wfu_attribute_"+attribute+"_formtemplate"];window["wfu_attribute_"+new_attribute+"_typeprops"]=window["wfu_attribute_"+attribute+"_typeprops"];wfu_apply_value(new_attribute,"formfields",shortcode_value.value)}else if(i>occurrencies){tr=attributes[i-1].parentNode;while(tr!=null&&tr.tagName!="TR")tr=tr.parentNode;if(tr==null||tr.tagName!=
40
+ "TR")return;tr.parentNode.removeChild(tr);wfu_update_formfield_variables()}i++}attributes=document.querySelectorAll("div.wfu_formdata_container");var names=[];for(var i=0;i<attributes.length;i++)names.push(attributes[i].id.replace(/^wfu_attribute_/,""));var all_attributes=document.querySelectorAll(".wfu_formdata_all_attributes");for(var i=0;i<all_attributes.length;i++)all_attributes[i].value=names.join(",");wfu_formdata_update_all_updown_buttons(attribute)}}
41
+ function wfu_subfolders_input_changed(e){e=e||window.event;var item=e.target;var key=item.id.replace("wfu_subfolders_path_","");key=key.replace("wfu_subfolders_label_","");var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+key);var tools_ok=document.getElementById("wfu_subfolders_ok_"+key);var old_path_value,old_label_value;var isnewitem=
42
+ document.getElementById("wfu_subfolders_isnewitem_"+key).value=="1";if(isnewitem){old_path_value="";old_label_value=""}else{var items=list.data;item=items[list.selectedIndex];old_path_value=item.path;old_label_value=item.label}if(tools_path.value==old_path_value&&tools_label.value==old_label_value){tools_ok.disabled=true;if(!isnewitem)wfu_subfolders_update_nav(key)}else{tools_ok.disabled=false;var navs=document.getElementsByName("wfu_subfolder_nav_"+key);for(var i=0;i<navs.length;i++)navs[i].disabled=
43
+ true}}
44
+ function wfu_subfolders_auto_changed(key){var list=document.getElementById("wfu_attribute_"+key);var auto=document.getElementById("wfu_subfolders_auto_"+key);var editable=document.getElementById("wfu_subfolders_editable_"+key);var manualtext=document.getElementById("wfu_subfolders_manualtext_"+key);if(auto.checked){var manualvalue=document.getElementById("wfu_attribute_value_"+key).value;if(manualvalue.substr(0,4)!="auto")manualtext.value=manualvalue;editable.parentNode.style.display="inline";wfu_apply_value(key,
45
+ "folderlist","auto"+(editable.checked?"+":""));list.disabled=true}else{list.disabled=false;editable.parentNode.style.display="none";wfu_apply_value(key,"folderlist",manualtext.value)}}
46
+ function wfu_subfolders_up_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];var prevind=item.index-1;if(prevind<0)return;var prevpos=-1;var curind=list.selectedIndex-1;while(curind>=0)if(items[curind].level==item.level&&items[curind].index==prevind){prevpos=curind;break}else curind--;if(prevpos==-1)return;var children_count=0;curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>
47
+ item.level){children_count++;curind++}else break;items[prevpos].index=item.index;item.index=prevind;list.data=items.slice(0,prevpos).concat(items.slice(list.selectedIndex,list.selectedIndex+1+children_count)).concat(items.slice(prevpos,list.selectedIndex)).concat(items.slice(list.selectedIndex+1+children_count));var val=wfu_update_subfolder_list(key);list.selectedIndex=prevpos;wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
48
+ key).value=val;wfu_generate_shortcode()}}
49
+ function wfu_subfolders_down_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];var nextind=item.index+1;var nextpos=-1;curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level==item.level){nextpos=curind;break}else if(items[curind].level<item.level)break;else curind++;if(nextpos==-1)return;var next_children_count=0;curind=nextpos+1;while(curind<items.length)if(items[curind].level>
50
+ item.level){next_children_count++;curind++}else break;items[nextpos].index=item.index;item.index=nextind;list.data=items.slice(0,list.selectedIndex).concat(items.slice(nextpos,nextpos+1+next_children_count)).concat(items.slice(list.selectedIndex,nextpos)).concat(items.slice(nextpos+1+next_children_count));var val=wfu_update_subfolder_list(key);list.selectedIndex=list.selectedIndex+next_children_count+1;wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
51
+ key).value=val;wfu_generate_shortcode()}}
52
+ function wfu_subfolders_left_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>item.level){items[curind].level--;curind++}else break;item.level--;var val=wfu_update_subfolder_list(key);list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
53
+ key).value=val;wfu_generate_shortcode()}}
54
+ function wfu_subfolders_right_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>item.level){items[curind].level++;curind++}else break;item.level++;var val=wfu_update_subfolder_list(key);list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
55
+ key).value=val;wfu_generate_shortcode()}}
56
+ function wfu_subfolders_def_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];if(item["default"])item["default"]=false;else{for(var i=0;i<items.length;i++)items[i]["default"]=false;item["default"]=true}var val=wfu_update_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}}
57
+ function wfu_subfolders_ok_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+key);if(tools_path.value==""||tools_label.value==""){alert("Path or label cannot be empty!");return}var items=list.data;var isnewitem=document.getElementById("wfu_subfolders_isnewitem_"+key).value=="1";if(isnewitem){var newlevel=parseInt(document.getElementById("wfu_subfolders_newitemlevel_"+
58
+ key).value);var newitem={label:tools_label.value,path:tools_path.value,level:newlevel,"default":false};var newpos=parseInt(document.getElementById("wfu_subfolders_newitemindex_"+key).value);if(newpos>=items.length)items.push(newitem);else items.splice(newpos,0,newitem)}else{item=items[list.selectedIndex];item.path=tools_path.value;item.label=tools_label.value}var val=wfu_update_subfolder_list(key);list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=
59
+ val;document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}}
60
+ function wfu_subfolders_del_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;item=items[list.selectedIndex];var children_count=0;curind=list.selectedIndex+1;while(curind<items.length)if(items[curind].level>item.level){children_count++;curind++}else break;if(children_count>0)if(!confirm("Children items will be deleted as well. Proceed?"))return;items.splice(list.selectedIndex,1+children_count);var val=wfu_update_subfolder_list(key);
61
+ list.data=wfu_decode_subfolder_list(key);wfu_subfolders_update_toolnav(key);item=list;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+key).value=val;wfu_generate_shortcode()}}
62
+ function wfu_subfolders_add_clicked(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;var curpos=list.selectedIndex;item=items[curpos];var opts=list.options;var opt=document.createElement("option");opt.value="";opt.innerHTML="";opts.add(opt,curpos);list.selectedIndex=curpos;var tools_container=document.getElementById("wfu_subfolder_tools_"+key);var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+
63
+ key);var tools_ok=document.getElementById("wfu_subfolders_ok_"+key);var tools_browse=document.getElementById("wfu_subfolders_browse_"+key);tools_container.className="wfu_subfolder_tools_container";tools_label.disabled=false;tools_ok.disabled=true;document.getElementById("wfu_subfolders_isnewitem_"+key).value="1";document.getElementById("wfu_subfolders_newitemindex_"+key).value=curpos;document.getElementById("wfu_subfolders_newitemlevel_"+key).value=item.level;document.getElementById("wfu_subfolders_newitemlevel2_"+
64
+ key).value="";tools_path.disabled=item.level==0;tools_browse.disabled=item.level==0;if(item.level==0){tools_path.value="{root}";tools_label.value="{upload folder}"}else{tools_path.value="";tools_label.value=""}var navs=document.getElementsByName("wfu_subfolder_nav_"+key);for(var i=0;i<navs.length;i++)navs[i].disabled=true}
65
+ function wfu_subfolders_browse_clicked(key){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var fd=null;try{var fd=new FormData}catch(e){}if(fd==null)return;var container=document.getElementById("wfu_global_dialog_container");var dialog=document.getElementById("wfu_subfolders_browser_"+key);var btn=document.getElementById("wfu_subfolders_browse_"+key);var shadow=document.getElementById("wfu_subfolders_inner_shadow_"+key);var msgcont=document.getElementById("wfu_subfolders_browser_msgcont_"+
66
+ key);var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);var list=document.getElementById("wfu_subfolders_browser_list_"+key);while(list.options.length>0)list.options.remove(0);ok.disabled=true;ok.onclick=function(){wfu_folder_browser_cancel_clicked(key)};msg.innerHTML="loading folder contents...";img.style.display="inline";msgcont.style.display="block";
67
+ container.style.display="block";dialog.style.display="block";dialog.style.left=btn.offsetLeft+btn.offsetWidth-dialog.offsetWidth+"px";dialog.style.top=btn.offsetTop+btn.offsetHeight-dialog.offsetHeight+"px";shadow.style.display="block";container.onclick=function(){wfu_folder_browser_cancel_clicked(key)};var path=document.getElementById("wfu_attribute_uploadpath").value;if(path.substr(path.length-1)=="/")path=path.substr(0,path.length-1);var paths=wfu_get_relative_path(key).split(",");var path1=path+
68
+ paths[0];if(path1.substr(0)!="/")path1="/"+path1;var path2="";if(paths.length==2)path2=paths[1];fd.append("action","wfu_ajax_action_read_subfolders");fd.append("folder1",wfu_plugin_encode_string(path1));fd.append("folder2",wfu_plugin_encode_string(path2));xhr.key=key;xhr.addEventListener("load",wfu_readfolderComplete,false);xhr.addEventListener("error",wfu_readfolderFailed,false);xhr.addEventListener("abort",wfu_readfolderCanceled,false);xhr.open("POST",AdminParams.wfu_ajax_url);xhr.send(fd)}
69
+ function wfu_readfolderComplete(evt){var key=evt.target.key;var msgcont=document.getElementById("wfu_subfolders_browser_msgcont_"+key);var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var list=document.getElementById("wfu_subfolders_browser_list_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+
70
+ key);var txt=evt.target.responseText;if(txt!=-1){var start_text="wfu_read_subfolders:";var pos=evt.target.responseText.indexOf(start_text);if(pos==-1)pos=evt.target.responseText.length;var messages=evt.target.responseText.substr(0,pos);var response=evt.target.responseText.substr(pos+start_text.length,evt.target.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){var filelist=
71
+ wfu_plugin_decode_string(txt_value);var flist=filelist.split(",");var fcount=0;var opt;for(var i=0;i<flist.length;i++)if(flist[i]!=""){opt=document.createElement("option");opt.value=flist[i];opt.innerHTML=flist[i].replace("*","&nbsp;&nbsp;&nbsp;");list.add(opt);fcount++}if(fcount==0){opt=document.createElement("option");opt.value="";opt.innerHTML="{empty}";opt.disabled=true;list.add(opt)}list.selectedIndex=-1;ok.onclick=function(){var val=list.options[list.selectedIndex].value;var level=parseInt(document.getElementById("wfu_subfolders_newitemlevel_"+
72
+ key).value);if(val.substr(0,1)=="*"||level==0){document.getElementById("wfu_subfolders_newitemlevel_"+key).value=level+1;if(level>0)val=val.substr(1)}tools_path.value=val;tools_label.value=val;wfu_folder_browser_cancel_clicked(key);wfu_subfolders_ok_clicked(key)};msgcont.style.display="none"}else if(txt_header=="error"){msg.innerHTML=txt_value;img.style.display="none";ok.disabled=false}else{msg.innerHTML="Unknown error";img.style.display="none";ok.disabled=false}}}
73
+ function wfu_readfolderFailed(evt){var key=evt.target.key;var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);msg.innerHTML="Unknown error";img.style.display="none";ok.disabled=false}
74
+ function wfu_readfolderCanceled(evt){var key=evt.target.key;var msg=document.getElementById("wfu_subfolders_browser_msg_"+key);var img=document.getElementById("wfu_subfolders_browser_img_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);msg.innerHTML="Unknown error";img.style.display="none";ok.disabled=false}
75
+ function wfu_subfolders_browser_list_changed(key){var list=document.getElementById("wfu_subfolders_browser_list_"+key);var ok=document.getElementById("wfu_subfolders_browser_ok_"+key);ok.disabled=list.selectedIndex<0}
76
+ function wfu_folder_browser_cancel_clicked(key){var container=document.getElementById("wfu_global_dialog_container");var dialog=document.getElementById("wfu_subfolders_browser_"+key);var btn=document.getElementById("wfu_subfolders_browse_"+key);var shadow=document.getElementById("wfu_subfolders_inner_shadow_"+key);container.onclick=null;shadow.style.display="none";dialog.style.display="none";container.style.display="none"}
77
+ function wfu_get_relative_path(key){var list=document.getElementById("wfu_attribute_"+key);if(list.selectedIndex<0)return;var items=list.data;var isnewitem=document.getElementById("wfu_subfolders_isnewitem_"+key).value=="1";var level;if(isnewitem)level=parseInt(document.getElementById("wfu_subfolders_newitemlevel_"+key).value);else level=items[list.selectedIndex].level;var relpath="/";var curpos=list.selectedIndex-1;var curlevel=level;while(curpos>=0&&curlevel>1){if(items[curpos].level<curlevel){relpath=
78
+ "/"+items[curpos].path+relpath;curlevel=items[curpos].level}curpos--}if(isnewitem&&document.getElementById("wfu_subfolders_newitemlevel2_"+key).value=="1"&&level>0&&list.selectedIndex>0)relpath+=","+items[list.selectedIndex-1].path;return relpath}function wfu_subfolders_changed(key){wfu_update_subfolder_list(key);wfu_subfolders_update_toolnav(key)}
79
+ function wfu_subfolders_update_toolnav(key){var list=document.getElementById("wfu_attribute_"+key);var items,item,ind,nextind,prevlevel;var tools_container=document.getElementById("wfu_subfolder_tools_"+key);var tools_path=document.getElementById("wfu_subfolders_path_"+key);var tools_label=document.getElementById("wfu_subfolders_label_"+key);var tools_ok=document.getElementById("wfu_subfolders_ok_"+key);var tools_browse=document.getElementById("wfu_subfolders_browse_"+key);var auto=document.getElementById("wfu_subfolders_auto_"+
80
+ key);document.getElementById("wfu_subfolders_isnewitem_"+key).value="";document.getElementById("wfu_subfolders_newitemindex_"+key).value="";document.getElementById("wfu_subfolders_newitemlevel_"+key).value="";document.getElementById("wfu_subfolders_newitemlevel2_"+key).value="";if(list.data==null){items=wfu_decode_subfolder_list(key);list.data=items}else items=list.data;if(list.data.length===0){list.className="wfu_select_folders wfu_select_folders_empty";list.options[0].innerHTML=auto.checked?"":
81
+ "press here"}else list.className="wfu_select_folders";if(list.selectedIndex<0){tools_container.className="wfu_subfolder_tools_container wfu_subfolder_tools_disabled";tools_path.disabled=true;tools_label.disabled=true;tools_ok.disabled=true;tools_browse.disabled=true;tools_label.value="";tools_path.value=""}else if(list.selectedIndex>=list.options.length-1){tools_container.className="wfu_subfolder_tools_container";tools_label.disabled=false;tools_ok.disabled=true;document.getElementById("wfu_subfolders_isnewitem_"+
82
+ key).value="1";document.getElementById("wfu_subfolders_newitemindex_"+key).value=items.length;var level;if(items.length==0)level=0;else if(items[items.length-1].level==0)level=1;else level=items[items.length-1].level;document.getElementById("wfu_subfolders_newitemlevel_"+key).value=level;document.getElementById("wfu_subfolders_newitemlevel2_"+key).value="1";tools_path.disabled=level==0;tools_browse.disabled=false;if(level==0){tools_path.value="{root}";tools_label.value="{upload folder}"}else{tools_path.value=
83
+ "";tools_label.value=""}}else{tools_container.className="wfu_subfolder_tools_container";tools_label.disabled=false;tools_ok.disabled=true;item=items[list.selectedIndex];tools_path.disabled=item.level==0;tools_browse.disabled=item.level==0;tools_label.value=item.label;tools_path.value=item.path}var navs=document.getElementsByName("wfu_subfolder_nav_"+key);if(list.selectedIndex<0||list.selectedIndex>=list.options.length-1)for(var i=0;i<navs.length;i++)navs[i].disabled=true;else wfu_subfolders_update_nav(key)}
84
+ function wfu_subfolders_update_nav(key){var list=document.getElementById("wfu_attribute_"+key);var navs_up=document.getElementById("wfu_subfolders_up_"+key);var navs_down=document.getElementById("wfu_subfolders_down_"+key);var navs_left=document.getElementById("wfu_subfolders_left_"+key);var navs_right=document.getElementById("wfu_subfolders_right_"+key);var navs_add=document.getElementById("wfu_subfolders_add_"+key);var navs_def=document.getElementById("wfu_subfolders_def_"+key);var navs_del=document.getElementById("wfu_subfolders_del_"+
85
+ key);var items=list.data;var item=items[list.selectedIndex];navs_up.disabled=item.index<=0;ind=list.selectedIndex+1;nextind=0;while(ind<items.length)if(items[ind].level==item.level){nextind=items[ind].index;break}else if(items[ind].level<item.level)break;else ind++;navs_down.disabled=item.level==0||nextind==0;navs_left.disabled=list.selectedIndex==0&&item.level<1||list.selectedIndex>0&&item.level<=1;if(list.selectedIndex>=1)prevlevel=items[list.selectedIndex-1].level;else prevlevel=0;navs_right.disabled=
86
+ item.level-prevlevel>0;navs_add.disabled=item.level==0;navs_def.disabled=false;navs_def.className="button"+(item["default"]?" wfu_subfolder_nav_pressed":"");navs_del.disabled=false}
87
+ function wfu_decode_subfolder(data){var ret={label:"",path:"",level:0,"default":false};data=data.trim();var star_count=0;var is_default=false;while(star_count<data.length)if(data.substr(star_count,1)=="*")star_count++;else break;data=data.substr(star_count,data.length-star_count);if(data.substr(0,1)=="&"){data=data.substr(1);is_default=true}ret.level=star_count;ret["default"]=is_default;var data_raw=data.split("/");if(data_raw.length==1){ret.path=data_raw[0];ret.label=data_raw[0]}else if(data_raw.length>
88
+ 1){ret.path=data_raw[0];ret.label=data_raw[1]}if(star_count==0){ret.path="{root}";if(ret.label=="")ret.label="{upload folder}"}return ret}
89
+ function wfu_decode_subfolder_list(key){var opts=document.getElementById("wfu_attribute_"+key).options;var list=Array();var dir_levels=["root"];var last_index=[0];var subfolder_path;var prev_level=-1;for(var i=0;i<opts.length-1;i++){list.push(wfu_decode_subfolder(wfu_plugin_decode_string(opts[i].value)));if(dir_levels.length>list[i].level)dir_levels[list[i].level]=list[i].path;else dir_levels.push(list[i].path);subfolder_path="";for(j=1;j<=list[i].level;j++)subfolder_path+=dir_levels[j]+"/";list[i].fullpath=
90
+ subfolder_path;if(last_index.length<=list[i].level)last_index.push(0);if(list[i].level>prev_level)list[i].index=0;else list[i].index=last_index[list[i].level]+1;last_index[list[i].level]=list[i].index;prev_level=list[i].level}return list}
91
+ function wfu_update_subfolder_list(key){var opts=document.getElementById("wfu_attribute_"+key).options;var list=document.getElementById("wfu_attribute_"+key);var items=list.data;if(items==null)return;var value_raw,text_raw;var global_raw="";opts.length=items.length+1;for(var i=0;i<items.length;i++){value_raw="";text_raw="";for(j=0;j<items[i].level;j++){value_raw+="*";text_raw+="&nbsp;&nbsp;&nbsp;"}if(items[i]["default"]){value_raw+="&";opts[i].className="wfu_select_folders_option_default"}else opts[i].className=
92
+ "";value_raw+=items[i].path+"/"+items[i].label;text_raw+=items[i].label;opts[i].value=wfu_plugin_encode_string(value_raw);opts[i].innerHTML=text_raw;if(global_raw!="")global_raw+=",";global_raw+=value_raw}opts[items.length].value="";opts[items.length].innerHTML="";return global_raw}
93
+ function wfu_userdata_edit_field(line,label,required){var item;for(var i=0;i<line.childNodes.length;i++){item=line.childNodes[i];if(item.tagName=="INPUT")if(item.type=="text"){item.value=label;wfu_attach_element_handlers(item,wfu_update_userfield_value)}else{if(item.type=="checkbox")item.checked=required}else if(item.tagName=="DIV")item.className="wfu_userdata_action"}}function wfu_formdata_edit_field(line,label,required){}
94
+ function wfu_formdata_get_field_props(key){var key_parts=key.split("_");var attribute=key_parts[0];var a="wfu_formfield_"+key;var fielddef=window["wfu_attribute_"+attribute+"_typeprops"][document.getElementById(a+"_type").value];var field={type:document.getElementById(a+"_type").value,label:document.getElementById(a+"_label").value,labelposition:document.getElementById(a+"_labelposition").value,required:fielddef.required.substr(0,4)=="show"&&document.getElementById(a+"_required")?document.getElementById(a+
95
+ "_required").checked:fielddef.required.substr(5)=="true",donotautocomplete:fielddef.donotautocomplete.substr(0,4)=="show"&&document.getElementById(a+"_donotautocomplete")?document.getElementById(a+"_donotautocomplete").checked:fielddef.donotautocomplete.substr(5)=="true",validate:fielddef.validate.substr(0,4)=="show"&&document.getElementById(a+"_validate")?document.getElementById(a+"_validate").checked:fielddef.validate.substr(5)=="true",typehook:fielddef.typehook.substr(0,4)=="show"&&document.getElementById(a+
96
+ "_typehook")?document.getElementById(a+"_typehook").checked:fielddef.typehook.substr(5)=="true",hintposition:fielddef.hintposition.substr(0,4)=="show"&&document.getElementById(a+"_hintposition")?document.getElementById(a+"_hintposition").value:fielddef.hintposition.substr(5),"default":fielddef["default"].substr(0,4)=="show"&&document.getElementById(a+"_default")?document.getElementById(a+"_default").value:fielddef["default"].substr(5),data:fielddef.data.substr(0,4)=="show"&&document.getElementById(a+
97
+ "_data")?document.getElementById(a+"_data").value:fielddef.data.substr(5),group:fielddef.group.substr(0,4)=="show"&&document.getElementById(a+"_group")?document.getElementById(a+"_group").value:fielddef.group.substr(5),format:fielddef.format.substr(0,4)=="show"&&document.getElementById(a+"_format")?document.getElementById(a+"_format").value:fielddef.format.substr(5)};return field}
98
+ function wfu_formdata_type_changed(key){var key_parts=key.split("_");var attribute=key_parts[0];var a="wfu_formfield_"+key;var line_container=document.getElementById(a+"_container");var field=wfu_formdata_get_field_props(key);var template=wfu_formdata_prepare_template(attribute,field,key);line_container.innerHTML=template;var formfield_elements=document.querySelectorAll("div#"+a+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
99
+ wfu_update_formfield_value);wfu_formdata_update_buttons(key);wfu_update_formfield_value({target:line_container})}function wfu_userdata_add_field(obj){var line=obj.parentNode;var newline=line.cloneNode(true);wfu_userdata_edit_field(newline,"",false);line.parentNode.insertBefore(newline,line.nextSibling)}
100
+ function wfu_formdata_add_field(key){var key_parts=key.split("_");var attribute=key_parts[0];var ind=key_parts[1];var container=document.getElementById("wfu_attribute_"+attribute);var prev=document.getElementById("wfu_formfield_"+key+"_container");var new_line_container=document.createElement("DIV");var new_key=attribute+"_"+wfu_randomString(4);new_line_container.id="wfu_formfield_"+new_key+"_container";new_line_container.className="wfu_formdata_line_container";container.insertBefore(new_line_container,
101
+ prev.nextSibling);var field={type:"text",label:"",labelposition:"left",required:false,donotautocomplete:false,validate:false,"default":"",data:"",group:"",format:"",hintposition:"right",typehook:false};var template=wfu_formdata_prepare_template(attribute,field,new_key);new_line_container.innerHTML=template;var formfield_elements=document.querySelectorAll("div#wfu_formfield_"+new_key+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
102
+ wfu_update_formfield_value);wfu_formdata_update_buttons(key);wfu_formdata_update_buttons(new_key);wfu_update_formfield_value({target:new_line_container})}
103
+ function wfu_formdata_prepare_template(attribute,field,key){var template=wfu_plugin_decode_string(window["wfu_attribute_"+attribute+"_formtemplate"]);var fielddef=window["wfu_attribute_"+attribute+"_typeprops"][field.type];var fielddef_array=window["wfu_attribute_"+attribute+"_typeprops"][0].split(",");var fieldprops_basic=["required","donotautocomplete","validate","typehook","labelposition","hintposition","default","data","group","format"];var labelpositions=["none","top","right","bottom","left",
104
+ "placeholder"];var hintpositions=["none","inline","top","right","bottom","left"];template=template.replace(/\[\[key\]\]/g,key).replace(/\[\[t\]\]/g,field.type).replace(/\[\[label\]\]/g,field.label).replace(/\[\[s\]\]/g,field.labelposition).replace(/\[\[d\]\]/g,field["default"]).replace(/\[\[l\]\]/g,field.data).replace(/\[\[data_label\]\]/g,fielddef.data_label).replace(/\[\[g\]\]/g,field.group).replace(/\[\[f\]\]/g,field.format).replace(/\[\[p\]\]/g,field.hintposition);for(var i=0;i<fieldprops_basic.length;i++)template=
105
+ template.replace(new RegExp("\\[\\["+fieldprops_basic[i]+"_hint\\]\\]","g"),fielddef[fieldprops_basic[i]+"_hint"]);for(var i=0;i<fielddef_array.length;i++)template=template.replace("[[type_"+fielddef_array[i]+"_selected]]",fielddef_array[i]==field.type?' selected="selected"':"");for(var i=0;i<labelpositions.length;i++)template=template.replace("[[labelposition_"+labelpositions[i]+"_selected]]",labelpositions[i]==field.labelposition?' selected="selected"':"");for(var i=0;i<hintpositions.length;i++)template=
106
+ template.replace("[[hintposition_"+hintpositions[i]+"_selected]]",hintpositions[i]==field.hintposition?' selected="selected"':"");template=template.replace("[[remove_disabled]]","");template=template.replace("[[up_disabled]]","");template=template.replace("[[down_disabled]]","");template=field.required?template.replace(/\[\[r\->\]\]|\[\[<\-r\]\]/g,""):template.replace(/\[\[r\->\]\].*\[\[<\-r\]\]/g,"");template=field.donotautocomplete?template.replace(/\[\[a\->\]\]|\[\[<\-a\]\]/g,""):template.replace(/\[\[a\->\]\].*\[\[<\-a\]\]/g,
107
+ "");template=field.validate?template.replace(/\[\[v\->\]\]|\[\[<\-v\]\]/g,""):template.replace(/\[\[v\->\]\].*\[\[<\-v\]\]/g,"");template=field.typehook?template.replace(/\[\[h\->\]\]|\[\[<\-h\]\]/g,""):template.replace(/\[\[h\->\]\].*\[\[<\-h\]\]/g,"");template=fielddef.required.substr(0,4)=="show"?template.replace(/\[\[R\->\]\]|\[\[<\-R\]\]/g,""):template.replace(/\[\[R\->\]\][^]*\[\[<\-R\]\]/g,"");template=fielddef.donotautocomplete.substr(0,4)=="show"?template.replace(/\[\[A\->\]\]|\[\[<\-A\]\]/g,
108
+ ""):template.replace(/\[\[A\->\]\][^]*\[\[<\-A\]\]/g,"");template=fielddef.validate.substr(0,4)=="show"?template.replace(/\[\[V\->\]\]|\[\[<\-V\]\]/g,""):template.replace(/\[\[V\->\]\][^]*\[\[<\-V\]\]/g,"");template=fielddef.hintposition.substr(0,4)=="show"?template.replace(/\[\[P\->\]\]|\[\[<\-P\]\]/g,""):template.replace(/\[\[P\->\]\][^]*\[\[<\-P\]\]/g,"");template=fielddef.typehook.substr(0,4)=="show"?template.replace(/\[\[H\->\]\]|\[\[<\-H\]\]/g,""):template.replace(/\[\[H\->\]\][^]*\[\[<\-H\]\]/g,
109
+ "");template=fielddef["default"].substr(0,4)=="show"?template.replace(/\[\[D\->\]\]|\[\[<\-D\]\]/g,""):template.replace(/\[\[D\->\]\][^]*\[\[<\-D\]\]/g,"");template=fielddef.data.substr(0,4)=="show"?template.replace(/\[\[L\->\]\]|\[\[<\-L\]\]/g,""):template.replace(/\[\[L\->\]\][^]*\[\[<\-L\]\]/g,"");template=fielddef.group.substr(0,4)=="show"?template.replace(/\[\[G\->\]\]|\[\[<\-G\]\]/g,""):template.replace(/\[\[G\->\]\][^]*\[\[<\-G\]\]/g,"");template=fielddef.format.substr(0,4)=="show"?template.replace(/\[\[F\->\]\]|\[\[<\-F\]\]/g,
110
+ ""):template.replace(/\[\[F\->\]\][^]*\[\[<\-F\]\]/g,"");return template}function wfu_userdata_remove_field(obj){var line=obj.parentNode;var container=line.parentNode;var first=null;for(var i=0;i<container.childNodes.length;i++)if(container.childNodes[i].nodeType===1){first=container.childNodes[i];break}if(line!=first){line.parentNode.removeChild(line);for(var i=0;i<first.childNodes.length;i++)if(first.childNodes[i].nodeType===1){wfu_update_userfield_value({target:first.childNodes[i]});break}}}
111
+ function wfu_formdata_remove_field(key){var key_parts=key.split("_");var attribute=key_parts[0];var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");if(containers.length<2)return;var container=document.getElementById("wfu_attribute_"+attribute);var line_container=document.getElementById("wfu_formfield_"+key+"_container");var line_container_index=0;for(var i=0;i<containers.length;i++)if(containers[i]==line_container){line_container_index=i+1;break}container.removeChild(line_container);
112
+ containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");if(line_container_index>containers.length)line_container_index=containers.length;line_container=containers[line_container_index-1];var prev_key=line_container.id.replace(/^wfu_formfield_/,"").replace(/_container$/,"");wfu_formdata_update_buttons(prev_key);wfu_update_formfield_value({target:line_container})}
113
+ function wfu_formdata_move_field(key,direction){var key_parts=key.split("_");var attribute=key_parts[0];var all_attributes=document.querySelector("div#wfu_attribute_"+attribute+" .wfu_formdata_all_attributes").value.split(",");var attr_occur_index=all_attributes.indexOf(attribute)+1;var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");var container=document.getElementById("wfu_attribute_"+attribute);var line_container=document.getElementById("wfu_formfield_"+
114
+ key+"_container");var line_container_index=0;for(var i=0;i<containers.length;i++)if(containers[i]==line_container){line_container_index=i+1;break}if(direction=="up"&&attr_occur_index==1&&line_container_index==1||direction=="down"&&attr_occur_index==all_attributes.length&&line_container_index==containers.length)return;var field=wfu_formdata_get_field_props(key);var other_attribute=attribute;var other_line_container=line_container;if(direction=="up")if(line_container_index>1)other_line_container=containers[line_container_index-
115
+ 2];else{other_attribute=all_attributes[attr_occur_index-2];var other_containers=document.querySelectorAll("div#wfu_attribute_"+other_attribute+" .wfu_formdata_line_container");other_line_container=other_containers[other_containers.length-1]}else if(line_container_index<containers.length)other_line_container=containers[line_container_index];else{other_attribute=all_attributes[attr_occur_index];var other_containers=document.querySelectorAll("div#wfu_attribute_"+other_attribute+" .wfu_formdata_line_container");
116
+ other_line_container=other_containers[0]}var other_key=other_line_container.id.replace(/^wfu_formfield_/,"").replace(/_container$/,"");if(other_attribute==attribute)if(direction=="up")container.insertBefore(line_container,other_line_container);else container.insertBefore(other_line_container,line_container);else{var other_field=wfu_formdata_get_field_props(other_key);var template=wfu_formdata_prepare_template(other_attribute,field,other_key);other_line_container.innerHTML=template;var formfield_elements=
117
+ document.querySelectorAll("div#wfu_formfield_"+other_key+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],wfu_update_formfield_value);template=wfu_formdata_prepare_template(attribute,other_field,key);line_container.innerHTML=template;formfield_elements=document.querySelectorAll("div#wfu_formfield_"+key+'_container input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
118
+ wfu_update_formfield_value)}wfu_formdata_update_buttons(key);wfu_formdata_update_buttons(other_key);wfu_update_formfield_value({target:line_container});if(other_attribute!=attribute)wfu_update_formfield_value({target:other_line_container})}
119
+ function wfu_formdata_update_buttons(key){var key_parts=key.split("_");var attribute=key_parts[0];var all_attributes=document.querySelector("div#wfu_attribute_"+attribute+" .wfu_formdata_all_attributes").value.split(",");var attr_occur_index=all_attributes.indexOf(attribute)+1;var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");var line_container=document.getElementById("wfu_formfield_"+key+"_container");var line_container_index=0;for(var i=0;i<
120
+ containers.length;i++)if(containers[i]==line_container){line_container_index=i+1;break}var up_element=document.querySelector("div#wfu_formfield_"+key+"_container .wfu_formdata_action.wfu_formdata_action_up");var down_element=document.querySelector("div#wfu_formfield_"+key+"_container .wfu_formdata_action.wfu_formdata_action_down");var remove_elements=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_action_remove");up_element.className="wfu_formdata_action wfu_formdata_action_up"+
121
+ (attr_occur_index==1&&line_container_index==1?" wfu_formdata_action_disabled":"");down_element.className="wfu_formdata_action wfu_formdata_action_down"+(attr_occur_index==all_attributes.length&&line_container_index==containers.length?" wfu_formdata_action_disabled":"");for(var i=0;i<remove_elements.length;i++)remove_elements[i].className="wfu_formdata_action wfu_formdata_action_remove"+(remove_elements.length>1?"":" wfu_formdata_action_disabled")}
122
+ function wfu_formdata_update_all_updown_buttons(attribute){var all_attributes=document.querySelector("div#wfu_attribute_"+attribute+" .wfu_formdata_all_attributes").value.split(",");for(var i=0;i<all_attributes.length;i++){var ii=i+1;var containers=document.querySelectorAll("div#wfu_attribute_"+all_attributes[i]+" .wfu_formdata_line_container");for(var j=0;j<containers.length;j++){var jj=j+1;var key=containers[j].id.replace(/^wfu_formfield_/,"").replace(/_container$/,"");var up_element=document.querySelector("div#wfu_formfield_"+
123
+ key+"_container .wfu_formdata_action.wfu_formdata_action_up");var down_element=document.querySelector("div#wfu_formfield_"+key+"_container .wfu_formdata_action.wfu_formdata_action_down");up_element.className="wfu_formdata_action wfu_formdata_action_up"+(ii==1&&jj==1?" wfu_formdata_action_disabled":"");down_element.className="wfu_formdata_action wfu_formdata_action_down"+(ii==all_attributes.length&&jj==containers.length?" wfu_formdata_action_disabled":"")}}}
124
+ function wfu_generate_shortcode(){var shortcode_tag=document.getElementById("wfu_shortcode_tag").value;var defaults=document.getElementById("wfu_attribute_defaults");var values=document.getElementById("wfu_attribute_values");var item;var attribute="";var value="";var shortcode_full="["+shortcode_tag;var shortcode="";for(var i=0;i<defaults.childNodes.length;i++){item=defaults.childNodes[i];if(item.nodeType===1){attribute=item.id.replace("wfu_attribute_default_","");value=document.getElementById("wfu_attribute_value_"+
125
+ attribute).value;if(item.value!=value)shortcode+=" "+attribute+'="'+value+'"'}}shortcode_full+=shortcode+"]";document.getElementById("wfu_shortcode").value=shortcode_full;ShortcodeString=shortcode.substr(1);if(document.getElementById("wfu_update_shortcode"))document.getElementById("wfu_update_shortcode").disabled=wfu_plugin_encode_string(shortcode_full)==document.getElementById("wfu_shortcode_original_enc").value;if(Autosave)wfu_schedule_save_shortcode()}
126
+ function wfu_update_text_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");var val=item.value;val=val.replace(/(\r\n|\n|\r)/gm,"%n%");val=val.replace(/"/gm,"%dq%");val=val.replace(/\[/gm,"%brl%");val=val.replace(/\]/gm,"%brr%");if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=val;wfu_generate_shortcode()}}
127
+ function wfu_update_date_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");var val=item.value;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=val;wfu_generate_shortcode()}}
128
+ function wfu_update_stringmatch_textvalue(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");attribute=attribute.replace("_matchfield","").replace("_matchvalue","");wfu_update_stringmatch_value(attribute)}
129
+ function wfu_update_triplecolor_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");attribute=attribute.replace("_color","");attribute=attribute.replace("_bgcolor","");attribute=attribute.replace("_borcolor","");item=document.getElementById("wfu_attribute_"+attribute+"_color");var val=item.value+","+document.getElementById("wfu_attribute_"+attribute+"_bgcolor").value+","+document.getElementById("wfu_attribute_"+attribute+"_borcolor").value;if(val!==item.oldVal){item.oldVal=
130
+ val;document.getElementById("wfu_attribute_value_"+attribute).value=val;wfu_generate_shortcode()}}
131
+ function wfu_update_dimension_value(e){e=e||window.event;var item=e.target;var attribute=item.name.replace("wfu_dimension_elements_","");var group=document.getElementsByName(item.name);item=group[0];var val="";var dimname="";for(var i=0;i<group.length;i++){dimname=group[i].id.replace("wfu_attribute_"+attribute+"_","");if(val!=""&&group[i].value!="")val+=", ";if(group[i].value!="")val+=dimname+":"+group[i].value}if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=
132
+ val;wfu_generate_shortcode()}}function wfu_update_ptext_value(e){e=e||window.event;var item=e.target;var attribute=item.id.replace("wfu_attribute_","");attribute=attribute.substr(2);var singular=document.getElementById("wfu_attribute_s_"+attribute).value;var plural=document.getElementById("wfu_attribute_p_"+attribute).value;var val=singular+"/"+plural;if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+attribute).value=val}wfu_generate_shortcode()}
133
+ function wfu_update_mchecklist_value(attribute){var value="";var mchecklist=document.getElementById("wfu_attribute_"+attribute);var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(checkall.checked){jQuery("#wfu_attribute_"+attribute+" input").prop("disabled",true);jQuery("#wfu_attribute_"+attribute+" input").prop("checked",true);value="all"}else{jQuery("#wfu_attribute_"+attribute+" input").prop("disabled",false);jQuery("#wfu_attribute_"+attribute+" input").each(function(){if(jQuery(this).prop("checked"))value+=
134
+ ","+jQuery(this).next().html()});value=value.substr(1)}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
135
+ function wfu_update_rolelist_value(attribute){var value="";var rolelist=document.getElementById("wfu_attribute_"+attribute);var guests=document.getElementById("wfu_attribute_"+attribute+"_guests");var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(checkall.checked){rolelist.disabled=true;value="all"}else{rolelist.disabled=false;var options=rolelist.options;for(var i=0;i<options.length;i++)if(options[i].selected){if(value!="")value+=",";value+=options[i].value}}if(guests.checked){if(value!=
136
+ "")value+=",";value+="guests"}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
137
+ function wfu_update_userlist_value(attribute){var value="";var userlist=document.getElementById("wfu_attribute_"+attribute);var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");var guests=document.getElementById("wfu_attribute_"+attribute+"_guests");var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(only_current&&only_current.checked){userlist.disabled=true;checkall.disabled=true;guests.disabled=true;value="current"}else{checkall.disabled=false;guests.disabled=
138
+ false;if(checkall.checked){userlist.disabled=true;value="all"}else{userlist.disabled=false;var options=userlist.options;for(var i=0;i<options.length;i++)if(options[i].selected){if(value!="")value+=",";value+=options[i].value}}if(guests.checked){if(value!="")value+=",";value+="guests"}}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
139
+ function wfu_update_postlist_value(attribute){var value="";var userlist=Array();var checkall=Array();var postlist=document.getElementById("wfu_attribute_"+attribute+"_postlist").value.split(",");for(var i=0;i<postlist.length;i++){userlist.push(document.getElementById("wfu_attribute_"+attribute+"_"+postlist[i]));checkall.push(document.getElementById("wfu_attribute_"+attribute+"_all_"+postlist[i]))}var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&only_current.checked){for(var i=
140
+ 0;i<postlist.length;i++){userlist[i].disabled=true;checkall[i].disabled=true}value="current"}else{var allchecked=true;value="";for(var i=0;i<postlist.length;i++){checkall[i].disabled=false;if(checkall[i].checked){userlist[i].disabled=true;if(value!="")value+=",";value+="all"+postlist[i]}else{userlist[i].disabled=false;allchecked=false;var options=userlist[i].options;for(var j=0;j<options.length;j++)if(options[j].selected){if(value!="")value+=",";value+=options[j].value}}}if(allchecked)value="all"}document.getElementById("wfu_attribute_value_"+
141
+ attribute).value=value;wfu_generate_shortcode()}
142
+ function wfu_update_bloglist_value(attribute){var value="";var bloglist=document.getElementById("wfu_attribute_"+attribute);var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");if(only_current&&only_current.checked){bloglist.disabled=true;checkall.disabled=true;value="current"}else{checkall.disabled=false;if(checkall.checked){bloglist.disabled=true;value="all"}else{bloglist.disabled=false;var options=
143
+ bloglist.options;for(var i=0;i<options.length;i++)if(options[i].selected){if(value!="")value+=",";value+=options[i].value}}}document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}
144
+ function wfu_update_stringmatch_value(attribute){var matchfield=document.getElementById("wfu_attribute_"+attribute+"_matchfield").value;var matchcriterion=document.getElementById("wfu_attribute_"+attribute+"_matchcriterion").value;var matchvalue=document.getElementById("wfu_attribute_"+attribute+"_matchvalue").value;matchfield=matchfield.replace(";","");if(matchfield.trim()=="")document.getElementById("wfu_attribute_value_"+attribute).value="";else document.getElementById("wfu_attribute_value_"+attribute).value=
145
+ "field:"+matchfield+";criterion:"+matchcriterion+";value:"+matchvalue;wfu_generate_shortcode()}
146
+ function wfu_update_userfield_value(e){e=e||window.event;var item=e.target;var line=item.parentNode;var container=line.parentNode;var fieldval="";var fieldreq=false;var val="";for(var i=0;i<container.childNodes.length;i++){line=container.childNodes[i];if(line.tagName==="DIV"){for(var j=0;j<line.childNodes.length;j++)if(line.childNodes[j].tagName=="INPUT")if(line.childNodes[j].type=="text"){fieldval=line.childNodes[j].value;if(i==0)item=line.childNodes[j]}else if(line.childNodes[j].type=="checkbox")fieldreq=
147
+ line.childNodes[j].checked;if(val!=""&&fieldval!="")val+="/";if(fieldval!=""&&fieldreq)val+="*";if(fieldval!="")val+=fieldval}}if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_userdatalabel").value=val;wfu_generate_shortcode();wfu_update_formfield_variables()}}
148
+ function wfu_update_formfield_value(e){e=e||window.event;var item=e.target;var attribute=item.id.match(/^wfu_formfield_(.*?)_/)[1];var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");var val="";for(var i=0;i<containers.length;i++){var part="";var ind=containers[i].id.match(/^wfu_formfield_.*?_(.*?)_/)[1];var key=attribute+"_"+ind;var label=document.getElementById("wfu_formfield_"+key+"_label").value;if(label.trim()!=""){part=label.trim();var type=
149
+ document.getElementById("wfu_formfield_"+key+"_type").value;var typeprops=window["wfu_attribute_"+attribute+"_typeprops"];part+="|t:"+type;part+="|s:"+document.getElementById("wfu_formfield_"+key+"_labelposition").value;if(typeprops[type].required.substr(0,4)=="show")part+="|r:"+(document.getElementById("wfu_formfield_"+key+"_required").checked?"1":"0");if(typeprops[type].donotautocomplete.substr(0,4)=="show")part+="|a:"+(document.getElementById("wfu_formfield_"+key+"_donotautocomplete").checked?
150
+ "1":"0");if(typeprops[type].validate.substr(0,4)=="show")part+="|v:"+(document.getElementById("wfu_formfield_"+key+"_validate").checked?"1":"0");if(typeprops[type].typehook.substr(0,4)=="show")part+="|h:"+(document.getElementById("wfu_formfield_"+key+"_typehook").checked?"1":"0");if(typeprops[type].hintposition.substr(0,4)=="show")part+="|p:"+document.getElementById("wfu_formfield_"+key+"_hintposition").value;if(typeprops[type]["default"].substr(0,4)=="show")part+="|d:"+document.getElementById("wfu_formfield_"+
151
+ key+"_default").value;if(typeprops[type].data.substr(0,4)=="show")part+="|l:"+document.getElementById("wfu_formfield_"+key+"_data").value;if(typeprops[type].group.substr(0,4)=="show")part+="|g:"+document.getElementById("wfu_formfield_"+key+"_group").value;if(typeprops[type].format.substr(0,4)=="show")part+="|f:"+document.getElementById("wfu_formfield_"+key+"_format").value}if(part!=""){if(val!="")val+="/";val+=part}}if(val!==item.oldVal){item.oldVal=val;document.getElementById("wfu_attribute_value_"+
152
+ attribute).value=val;wfu_generate_shortcode();wfu_update_formfield_variables()}}
153
+ function wfu_update_formfield_variables(){var userdata=document.getElementById("wfu_attribute_value_userdatalabel");if(!userdata)return;var shadows=document.querySelectorAll("#wfu_wrapper div.wfu_shadow_userdata");var selects=document.getElementsByName("wfu_formfield_select");for(var i=0;i<selects.length;i++)selects[i].style.display="none";if(shadows.length==0)return;if(shadows[0].style.display=="block")return;var options_str='<option style="display:none;">%userdataXXX%</option>';var userfields=userdata.value.replace(/\//g,
154
+ "[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");var ind=2;while(document.getElementById("wfu_attribute_userdatalabel"+ind)){var userfields2=document.getElementById("wfu_attribute_value_userdatalabel"+ind).value.replace(/\//g,"[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");userfields=userfields.concat(userfields2);ind++}var field="";var pos=0;ind=1;for(var i=0;i<userfields.length;i++){field=userfields[i];if(field[0]=="*")field=field.substr(1);
155
+ pos=field.indexOf("|");if(pos>-1)field=field.substr(0,pos);if(field.trim()!=""){options_str+='<option value="%userdata'+ind+'%">'+ind+": "+field.trim()+"</option>";ind++}}for(var i=0;i<selects.length;i++){selects[i].innerHTML=options_str;selects[i].style.display="inline-block"}}
156
+ function wfu_attach_element_handlers(item,handler){var elem_events=["DOMAttrModified","textInput","input","change","keypress","paste","focus","propertychange"];for(var i=0;i<elem_events.length;i++)wfu_addEventHandler(item,elem_events[i],handler)}
157
+ function wfu_Attach_Admin_Events(autosave_shortcode){Autosave=autosave_shortcode;wfu_generate_shortcode();wfu_update_formfield_variables();wfu_Attach_Admin_DragDrop_Events();var text_elements=document.getElementsByName("wfu_text_elements");for(var i=0;i<text_elements.length;i++)wfu_attach_element_handlers(text_elements[i],wfu_update_text_value);var ptext_elements=document.getElementsByName("wfu_ptext_elements");for(var i=0;i<ptext_elements.length;i++)wfu_attach_element_handlers(ptext_elements[i],
158
+ wfu_update_ptext_value);var stringmatch_elements=document.getElementsByName("wfu_stringmatch_elements");for(var i=0;i<stringmatch_elements.length;i++)wfu_attach_element_handlers(stringmatch_elements[i],wfu_update_stringmatch_textvalue);var triplecolor_elements=document.getElementsByName("wfu_triplecolor_elements");for(var i=0;i<triplecolor_elements.length;i++)wfu_attach_element_handlers(triplecolor_elements[i],wfu_update_triplecolor_value);var dimension_elements=document.getElementsByName("wfu_dimension_elements_widths");
159
+ for(var i=0;i<dimension_elements.length;i++)wfu_attach_element_handlers(dimension_elements[i],wfu_update_dimension_value);dimension_elements=document.getElementsByName("wfu_dimension_elements_heights");for(var i=0;i<dimension_elements.length;i++)wfu_attach_element_handlers(dimension_elements[i],wfu_update_dimension_value);var userfield_elements=document.getElementsByName("wfu_userfield_elements");for(var i=0;i<userfield_elements.length;i++)wfu_attach_element_handlers(userfield_elements[i],wfu_update_userfield_value);
160
+ var formfield_elements=document.getElementsByName("wfu_formfield_elements");for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],wfu_update_formfield_value);var subfolder_input_elements=document.getElementsByName("wfu_subfolder_tools_input");for(var i=0;i<subfolder_input_elements.length;i++)wfu_attach_element_handlers(subfolder_input_elements[i],wfu_subfolders_input_changed);var wfu_columnprops_elements=document.getElementsByName("wfu_columnprops_elements");
161
+ for(var i=0;i<wfu_columnprops_elements.length;i++)wfu_attach_element_handlers(wfu_columnprops_elements[i],wfu_columnprops_element_changed);if(document.getElementById("wfu_shortcode_postid").value!="")setTimeout(function(){wfu_check_page_obsolescence()},CheckObsolescenceTimeOut)}
162
+ function wfu_insert_variable(obj){var attr=obj.className.replace("wfu_variable wfu_variable_","");var inp=document.getElementById("wfu_attribute_"+attr);var pos=inp.selectionStart;var prevval=inp.value;inp.value=prevval.substr(0,pos)+obj.innerHTML+prevval.substr(pos);wfu_update_text_value({target:inp})}
163
+ function wfu_insert_userfield_variable(obj){var attr=obj.className.replace("wfu_variable wfu_variable_","");var inp=document.getElementById("wfu_attribute_"+attr);var pos=inp.selectionStart;var prevval=inp.value;inp.value=prevval.substr(0,pos)+obj.value+prevval.substr(pos);obj.value="%userdataXXX%";wfu_update_text_value({target:inp})}
164
+ function wfu_columns_itemclicked(obj,attribute){var select=obj.parentNode;if(select.tagName!="SELECT")return;for(var i=0;i<select.options.length;i++)select.options[i].selected=select.options[i]==obj;wfu_update_column_props(attribute)}
165
+ function wfu_columns_buttonaction(attribute,action){var source=document.getElementById("wfu_attribute_"+attribute+"_sourcelist");var target=document.getElementById("wfu_attribute_"+attribute);if(action=="add")for(var i=0;i<source.options.length;i++){if(source.options[i].selected||source.options[i].className=="wfu_columns_item_required"){var found=false;var sou=source.options[i].value.replace(/:.*/,"");for(var j=0;j<target.options.length;j++){var tar=target.options[j].value.replace(/:.*/,"");if(tar==
166
+ sou){found=true;break}}if(!found){var parts=source.options[i].value.match(/(.*?):(.*?)\/(.*)/);var item_name=parts[1];var sorttype=item_name=="custom"?"+-"+(parts[2]==""?"s":parts[2]):parts[2]!=""?"-+"+parts[2]:"";var title=parts[3];if(item_name=="custom")item_name="custom1";var opt=document.createElement("OPTION");opt.value=item_name+":"+sorttype+"/"+source.options[i].innerHTML+"/"+title;opt.innerHTML=source.options[i].innerHTML+(title!=""&&title!=source.options[i].innerHTML?" ("+title+")":"");opt.className=
167
+ source.options[i].className;opt.onclick=source.options[i].onclick;target.appendChild(opt);target.selectedIndex=target.options.length-1}}}else if(action=="del"){var i=0;while(i<target.options.length)if(target.options[i].selected&&target.options[i].className!="wfu_columns_item_required")target.options.remove(i);else i++}else if(action=="up"||action=="down"){var ind=-1;for(var i=0;i<target.options.length;i++)if(target.options[i].selected&&ind==-1)ind=i;else if(target.options[i].selected&&ind>-1)target.options[i].selected=
168
+ false;if(action=="up"&&ind>0)target.insertBefore(target.options[ind],target.options[ind-1]);else if(action=="down"&&ind<target.options.length-1)target.insertBefore(target.options[ind+1],target.options[ind])}wfu_update_column_props(attribute);wfu_update_columns(attribute)}
169
+ function wfu_update_column_props(attribute){var target=document.getElementById("wfu_attribute_"+attribute);var props_table=document.getElementById("wfu_attribute_"+attribute+"_columnprops_container");var props_title=document.getElementById("wfu_attribute_"+attribute+"_columnprops_title");var props_title_label=document.getElementById("wfu_attribute_"+attribute+"_columnprops_title_label");var props_id=document.getElementById("wfu_attribute_"+attribute+"_columnprops_id");var props_id_label=document.getElementById("wfu_attribute_"+
170
+ attribute+"_columnprops_id_label");var props_sort=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sort");var props_sort_label=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sort_label");var props_sorttype=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sorttype");var props_sorttype_label=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sorttype_label");var index=target.selectedIndex;if(props_sorttype.options[0].value=="")props_sorttype.options.remove(0);
171
+ if(index==-1){props_table.className="wfu_columnprops_container wfu_columnprops_container_disabled";props_title.value="";props_title.disabled=true;props_id.value="";props_id.disabled=true;props_sort.checked=false;props_sort.disabled=true;props_sorttype.selectedIndex=-1;props_sorttype.disabled=true}else{var parts=target.options[index].value.match(/(.*?):(.*?)\/(.*?)\/(.*)/);var item_name=parts[1];var fieldid_enabled=item_name.substr(0,6)=="custom";var fieldid_value=fieldid_enabled?item_name.substr(6):
172
+ "";var sortable_enabled=parts[2]!="";var sortable=sortable_enabled&&parts[2].substr(1,1)=="+";var sorttype_enabled=sortable&&parts[2].substr(0,1)=="+";var sorttype=sortable?parts[2].substr(2):"";var title=parts[4];props_table.className="wfu_columnprops_container";props_title.value=title;props_title.disabled=false;props_id_label.className=fieldid_enabled?"":"wfu_columnprops_label_disabled";props_id.value=fieldid_value;props_id.disabled=!fieldid_enabled;props_sort_label.className=sortable_enabled?"":
173
+ "wfu_columnprops_label_disabled";props_sort.checked=sortable;props_sort.disabled=!sortable_enabled;props_sorttype_label.className=sorttype_enabled?"":"wfu_columnprops_label_disabled";props_sorttype.value=sorttype;props_sorttype.disabled=!sorttype_enabled}}
174
+ function wfu_columnprops_element_changed(e){e=e||window.event;var item=e.target;var attribute=item.id.match(/^wfu_attribute_(.*?)_columnprops_/)[1];var target=document.getElementById("wfu_attribute_"+attribute);var props_title=document.getElementById("wfu_attribute_"+attribute+"_columnprops_title");var props_id=document.getElementById("wfu_attribute_"+attribute+"_columnprops_id");var props_sort=document.getElementById("wfu_attribute_"+attribute+"_columnprops_sort");var props_sorttype=document.getElementById("wfu_attribute_"+
175
+ attribute+"_columnprops_sorttype");var index=target.selectedIndex;if(index==-1)return;var parts=target.options[index].value.match(/(.*?):(.*?)\/(.*?)\/(.*)/);var item_name=parts[1];var flat_name=item_name.substr(0,6)=="custom"?"custom":item_name;var fieldid_enabled=flat_name=="custom";var fieldid_value=fieldid_enabled?parseInt(props_id.value)>=1?props_id.value:"1":"";var sort=parts[2]!=""?parts[2].substr(0,1)+(props_sort.checked?"+":"-")+(props_sorttype.value!=""?props_sorttype.value:parts[2].substr(2)!=
176
+ ""?parts[2].substr(2):"s"):"";var label=parts[3];var title=props_title.value!=""?props_title.value:label;target.options[index].value=flat_name+fieldid_value+":"+sort+"/"+label+"/"+title;target.options[index].innerHTML=label+(title!=label?" ("+title+")":"");wfu_update_column_props(attribute);wfu_update_columns(attribute)}
177
+ function wfu_update_columns(attribute){var target=document.getElementById("wfu_attribute_"+attribute);var columns="";for(var i=0;i<target.options.length;i++){var parts=target.options[i].value.match(/(.*?):(.*?)\/(.*?)\/(.*)/);var col=parts[1]+":"+(parts[2].substr(1,1)=="+"?parts[2].substr(2):"")+"/"+parts[4];if(columns!="")columns+=",";columns+=col}document.getElementById("wfu_attribute_value_"+attribute).value=columns;wfu_generate_shortcode()}
178
+ function wfu_GetHttpRequestObject(){var xhr=null;try{xhr=new XMLHttpRequest}catch(e$0){try{xhr=new ActiveXObject("Msxml2.XMLHTTP")}catch(e2){try{xhr=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}}if(xhr==null&&window.createRequest)try{xmlhttp=window.createRequest()}catch(e$1){}return xhr}
179
+ function wfu_plugin_encode_string(str){var i=0;var newstr="";var num;var hex="";for(i=0;i<str.length;i++){num=str.charCodeAt(i);if(num>=2048)num=((num&16773120|917504)<<4)+((num&4032|8192)<<2)+(num&63|128);else if(num>=128)num=((num&65472|12288)<<2)+(num&63|128);hex=num.toString(16);if(hex.length==1||hex.length==3||hex.length==5)hex="0"+hex;newstr+=hex}return newstr}
180
+ function wfu_plugin_decode_string(str){var i=0;var newstr="";var num,val;while(i<str.length){num=parseInt(str.substr(i,2),16);if(num<128)val=num;else if(num<224)val=((num&31)<<6)+(parseInt(str.substr(i+=2,2),16)&63);else val=((num&15)<<12)+((parseInt(str.substr(i+=2,2),16)&63)<<6)+(parseInt(str.substr(i+=2,2),16)&63);newstr+=String.fromCharCode(val);i+=2}return newstr}
181
+ function wfu_randomString(len){var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var string_length=len;var randomstring="";for(var i=0;i<string_length;i++){var rnum=Math.floor(Math.random()*chars.length);randomstring+=chars.substring(rnum,rnum+1)}return randomstring}
182
+ function wfu_schedule_save_shortcode(){var d=new Date;var dt=ShortcodeNextSave-d.getTime();if(ShortcodeTimeOut!=null){clearTimeout(ShortcodeTimeOut);ShortcodeTimeOut=null}if(dt<=0)wfu_save_shortcode();else ShortcodeTimeOut=setTimeout(function(){wfu_save_shortcode()},dt)}function wfu_check_page_obsolescence(){if(PageObsolete||PageUpdating||document.getElementById("wfu_shortcode_postid").value=="")return}
183
+ function wfu_save_shortcode(){if(PageObsolete)return;var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;PageUpdating=true;document.getElementById("wfu_update_failed_message").style.display="none";var url=AdminParams.wfu_ajax_url;params=new Array(8);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_save_shortcode";params[1]=new Array(2);params[1][0]="shortcode";params[1][1]=wfu_plugin_encode_string(ShortcodeString);params[2]=new Array(2);params[2][0]="shortcode_original";
184
+ params[2][1]=document.getElementById("wfu_shortcode_original_enc").value;params[3]=new Array(2);params[3][0]="post_id";params[3][1]=document.getElementById("wfu_shortcode_postid").value;params[4]=new Array(2);params[4][0]="post_hash";params[4][1]=document.getElementById("wfu_shortcode_posthash").value;params[5]=new Array(2);params[5][0]="shortcode_position";params[5][1]=document.getElementById("wfu_shortcode_position").value;params[6]=new Array(2);params[6][0]="shortcode_tag";params[6][1]=document.getElementById("wfu_shortcode_tag").value;
185
+ params[7]=new Array(2);params[7][0]="widget_id";params[7][1]=document.getElementById("wfu_shortcode_widgetid").value;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);var d=new Date;if(Autosave)ShortcodeNextSave=d.getTime()+5E3;else if(document.getElementById("wfu_update_shortcode"))document.getElementById("wfu_update_shortcode_wait").style.display="inline";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
186
+ xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){PageUpdating=false;var start_text="wfu_save_shortcode:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){if(Autosave){document.getElementById("wfu_save_label").innerHTML=
187
+ "saved";document.getElementById("wfu_save_label").className="wfu_save_label";document.getElementById("wfu_save_label").style.opacity=1;wfu_fadeout_element(300);ShortcodeNextSave=d.getTime()+1E3;if(ShortcodeTimeOut!=null)wfu_schedule_save_shortcode()}else if(document.getElementById("wfu_update_shortcode")){document.getElementById("wfu_update_shortcode_wait").style.display="none";document.getElementById("wfu_update_shortcode").disabled=true;if(window.plugin_window)window.plugin_window.location.reload(true)}if(document.getElementById("wfu_shortcode_postid").value!=
188
+ ""){var shortcode_tag=document.getElementById("wfu_shortcode_tag").value;document.getElementById("wfu_shortcode_original_enc").value=wfu_plugin_encode_string("["+shortcode_tag+" "+ShortcodeString+"]");document.getElementById("wfu_shortcode_posthash").value=txt_value;setTimeout(function(){wfu_check_page_obsolescence()},CheckObsolescenceTimeOut)}}else{if(Autosave){document.getElementById("wfu_save_label").innerHTML="not saved";document.getElementById("wfu_save_label").className="wfu_save_label_fail";
189
+ document.getElementById("wfu_save_label").style.opacity=1;wfu_fadeout_element(300)}if(txt_header=="fail")if(txt_value=="post_modified"){PageObsolete=true;if(document.getElementById("wfu_update_shortcode"))document.getElementById("wfu_update_shortcode").disabled=true;document.getElementById("wfu_update_rejected_message").style.display="block"}else document.getElementById("wfu_update_failed_message").style.display="block"}}};xhr.send(parameters)}
190
+ function wfu_adjust_opacity(opacity){document.getElementById("wfu_save_label").style.opacity=opacity}function wfu_fadeout_element(interval){var reps=20;var op=0;for(var i=0;i<reps;i++){op=1-i/reps;setTimeout('wfu_adjust_opacity("'+op.toString()+'")',i*interval/reps)}setTimeout('wfu_adjust_opacity("0.0")',i*interval/reps)}
191
+ function wfu_apply_value(attribute,type,value){if(type=="onoff"){document.getElementById("wfu_attribute_"+attribute).className="wfu_onoff_container_"+(value!="true"?"on":"off");wfu_admin_onoff_clicked(attribute)}else if(type=="text"||type=="ltext"||type=="integer"||type=="float"||type=="mtext"||type=="color"){var item=document.getElementById("wfu_attribute_"+attribute);value=value.replace(/%n%/gm,"\n");value=value.replace(/%dq%/gm,'"');value=value.replace(/%brl%/gm,"[");value=value.replace(/%brr%/gm,
192
+ "]");if(type=="color"){var rgb=colourNameToHex(value);if(!rgb)rgb=value;jQuery("#wfu_attribute_"+attribute).wpColorPicker("color",rgb)}item.value=value;wfu_update_text_value({target:item})}else if(type=="date"){var item=document.getElementById("wfu_attribute_"+attribute);item.value=value;wfu_update_date_value({target:item})}else if(type=="placements"){wfu_admin_recreate_placements_panel(value);document.getElementById("wfu_attribute_value_placements").value=value;wfu_generate_shortcode()}else if(type==
193
+ "radio"){var radios=document.getElementsByName("wfu_radioattribute_"+attribute);for(var i=0;i<radios.length;i++)radios[i].checked=radios[i].value==value||"*"+radios[i].value==value;wfu_admin_radio_clicked(attribute)}else if(type=="ptext"){value=value.replace(/%n%/gm,"\n");value=value.replace(/%dq%/gm,'"');value=value.replace(/%brl%/gm,"[");value=value.replace(/%brr%/gm,"]");var parts=value.split("/");var singular=parts.length<1?"":parts[0];var plural=parts.length<2?singular:parts[1];var item1=document.getElementById("wfu_attribute_s_"+
194
+ attribute);item1.value=singular;var item2=document.getElementById("wfu_attribute_p_"+attribute);item2.value=plural;wfu_update_ptext_value({target:item1});wfu_update_ptext_value({target:item2})}else if(type=="mchecklist"){value=value.toLowerCase();if(value=="all")document.getElementById("wfu_attribute_"+attribute+"_all").checked=true;else{document.getElementById("wfu_attribute_"+attribute+"_all").checked=false;var items=value.split(",");for(var i=0;i<items.length;i++)items[i]=items[i].trim();jQuery("#wfu_attribute_"+
195
+ attribute+" input").each(function(){jQuery(this).prop("checked",items.indexOf(jQuery(this).next().html())>-1)})}wfu_update_mchecklist_value(attribute)}else if(type=="rolelist"){var item=document.getElementById("wfu_attribute_"+attribute);var checkall=document.getElementById("wfu_attribute_"+attribute+"_all");var default_administrator=checkall.className.indexOf("wfu_default_administrator")>-1;var roles=value.split(",");if(roles.indexOf("all")>-1){checkall.checked=true;for(var i=0;i<item.options.length;i++)item.options[i].selected=
196
+ default_administrator&&item.options[i].value=="administrator"}else{checkall.checked=false;for(var i=0;i<roles.length;i++)roles[i]=roles[i].trim();for(var i=0;i<item.options.length;i++)item.options[i].selected=roles.indexOf(item.options[i].value)>-1}document.getElementById("wfu_attribute_"+attribute+"_guests").checked=roles.indexOf("guests")>-1;wfu_update_rolelist_value(attribute)}else if(type=="userlist"){var item=document.getElementById("wfu_attribute_"+attribute);var checkall=document.getElementById("wfu_attribute_"+
197
+ attribute+"_all");var default_0=checkall.className.indexOf("wfu_default_0")>-1;var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&value=="current"){only_current.checked=true;checkall.checked=false;document.getElementById("wfu_attribute_"+attribute+"_guests").checked=false;for(var i=0;i<item.options.length;i++)item.options[i].selected=default_0&&i<1}else{if(only_current)only_current.checked=false;var users=value.split(",");if(users.indexOf("all")>-1){checkall.checked=
198
+ true;for(var i=0;i<item.options.length;i++)item.options[i].selected=default_0&&i<1}else{checkall.checked=false;for(var i=0;i<users.length;i++)users[i]=users[i].trim();for(var i=0;i<item.options.length;i++)item.options[i].selected=users.indexOf(item.options[i].value)>-1}document.getElementById("wfu_attribute_"+attribute+"_guests").checked=users.indexOf("guests")>-1}wfu_update_userlist_value(attribute)}else if(type=="postlist"){var userlist=Array();var checkall=Array();var postlist=document.getElementById("wfu_attribute_"+
199
+ attribute+"_postlist").value.split(",");for(var i=0;i<postlist.length;i++){userlist.push(document.getElementById("wfu_attribute_"+attribute+"_"+postlist[i]));checkall.push(document.getElementById("wfu_attribute_"+attribute+"_all_"+postlist[i]))}var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&value=="current"){only_current.checked=true;for(var i=0;i<postlist.length;i++){checkall[i].checked=false;for(var j=0;j<userlist[i].options.length;j++)userlist[i].options[j].selected=
200
+ false}}else{if(only_current)only_current.checked=false;var ids=value.split(",");for(var i=0;i<postlist.length;i++){if(value=="all"||ids.indexOf("all"+postlist[i])>-1)checkall[i].checked=true;for(var j=0;j<userlist[i].options.length;j++)userlist[i].options[j].selected=ids.indexOf(userlist[i].options[j].value)>-1}}wfu_update_postlist_value(attribute)}else if(type=="bloglist"){var only_current=document.getElementById("wfu_attribute_"+attribute+"_current");if(only_current&&value=="current"){only_current.checked=
201
+ true;document.getElementById("wfu_attribute_"+attribute+"_all").checked=false;var item=document.getElementById("wfu_attribute_"+attribute);for(var i=0;i<item.options.length;i++)item.options[i].selected=false}else{if(only_current)only_current.checked=false;var blogs=value.split(",");if(value=="all")document.getElementById("wfu_attribute_"+attribute+"_all").checked=true;else{document.getElementById("wfu_attribute_"+attribute+"_all").checked=false;for(var i=0;i<blogs.length;i++)blogs[i]=blogs[i].trim();
202
+ var item=document.getElementById("wfu_attribute_"+attribute);for(var i=0;i<item.options.length;i++)item.options[i].selected=blogs.indexOf(item.options[i].value)>-1}}wfu_update_bloglist_value(attribute)}else if(type=="stringmatch"){var matchfield="";var matchcriterion="equal to";var matchvalue="";var matches=value.match(/^field:(.*?);\s*criterion:(.*?)\s*;\s*value:(.*)$/);if(matches&&matches.length==4){matchfield=matches[1];matchcriterion=matches[2];matchvalue=matches[3]}document.getElementById("wfu_attribute_"+
203
+ attribute+"_matchfield").value=matchfield;document.getElementById("wfu_attribute_"+attribute+"_matchcriterion").value=matchcriterion;document.getElementById("wfu_attribute_"+attribute+"_matchvalue").value=matchvalue;wfu_update_stringmatch_value(attribute)}else if(type=="columns"){var source=document.getElementById("wfu_attribute_"+attribute+"_sourcelist");var target=document.getElementById("wfu_attribute_"+attribute);target.innerHTML="";var columns_flat=value.replace(/(:|\/).*?(,|$)/g,"$2").split(",");
204
+ for(var i=0;i<source.options.length;i++){var parts=source.options[i].value.match(/(.*?):(.*?)\/(.*)/);var item_name=parts[1];if(source.options[i].className=="wfu_columns_item_required"&&columns_flat.indexOf(item_name)==-1){var sorttype=item_name=="custom"?"+-"+(parts[2]==""?"s":parts[2]):parts[2]!=""?"-+"+parts[2]:"";var title=parts[3];if(item_name=="custom")item_name="custom1";var opt=document.createElement("OPTION");opt.value=item_name+":"+sorttype+"/"+source.options[i].innerHTML+"/"+title;opt.innerHTML=
205
+ source.options[i].innerHTML+(title!=""&&title!=source.options[i].innerHTML?" ("+title+")":"");opt.className=source.options[i].className;opt.onclick=source.options[i].onclick;target.appendChild(opt)}}var columns=value.split(",");for(var i=0;i<columns.length;i++){var item_parts=columns[i].split("/",2);var item_name=item_parts[0];var item_title="";if(item_parts.length>1)item_title=item_parts[1];item_parts=item_name.split(":",2);item_name=item_parts[0];var flat_name=item_name.replace(/custom[0-9]+$/,
206
+ "custom");var ind=-1;for(var j=0;j<source.options.length;j++){var sou=source.options[j].value.replace(/:.*/,"");if(sou==flat_name){ind=j;break}}var already_exists=false;for(var j=0;j<target.options.length;j++){var tar=target.options[j].value.replace(/:.*/,"");if(tar==item_name){already_exists=true;break}}if(item_name!="custom"&&ind>-1&&!already_exists){var parts=source.options[ind].value.match(/(.*?):(.*?)\/(.*)/);var sortable=flat_name=="custom"||parts[2]!="";var sorttype=parts[2];var label=source.options[ind].innerHTML;
207
+ var title=parts[3];var item_sort="";if(item_parts.length==1)item_sort=flat_name=="custom"?"+-s":sortable?"-+"+sorttype:"";else if(flat_name=="custom")item_sort="+"+(item_parts[1]==""?"-s":"+"+item_parts[1]);else item_sort=sortable?"-"+(item_parts[1]==""?"-":"+")+sorttype:"";if(item_title=="")item_title=title;var opt=document.createElement("OPTION");opt.value=item_name+":"+item_sort+"/"+label+"/"+item_title;opt.innerHTML=label+(title!=label?" ("+title+")":"");opt.className=source.options[ind].className;
208
+ opt.onclick=source.options[i].onclick;target.appendChild(opt)}}wfu_update_column_props(attribute);wfu_update_columns(attribute)}else if(type=="dimensions"){var dims=value.split(",");var details,nam,val,item;var group=document.getElementsByName("wfu_dimension_elements_"+attribute);for(var i=0;i<group.length;i++)group[i].value="";for(var i=0;i<dims.length;i++){details=dims[i].split(":",2);nam=details.length<1?"":details[0];val=details.length<2?nam:details[1];item=document.getElementById("wfu_attribute_"+
209
+ attribute+"_"+nam.trim());if(item)item.value=val.trim()}item=group[0];wfu_update_dimension_value({target:item})}else if(type=="userfields"){var fields_arr=value.replace(/\//g,"[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");var is_req;var fields=Array();for(var i=0;i<fields_arr.length;i++){is_req=fields_arr[i].substr(0,1)=="*";if(is_req)fields_arr[i]=fields_arr[i].substr(1);if(fields_arr[i]!="")fields.push({name:fields_arr[i],required:is_req})}var container=document.getElementById("wfu_attribute_"+
210
+ attribute);var first=null;var remove_array=Array();for(var i=0;i<container.childNodes.length;i++)if(container.childNodes[i].nodeType===1)if(first==null)first=container.childNodes[i];else remove_array.push(container.childNodes[i]);for(var i=0;i<remove_array.length;i++)container.removeChild(remove_array[i]);wfu_userdata_edit_field(first,"",false);var newline;var prevline=first;for(var i=0;i<fields.length;i++)if(i==0)wfu_userdata_edit_field(first,fields[i].name,fields[i].required);else{newline=prevline.cloneNode(true);
211
+ wfu_userdata_edit_field(newline,fields[i].name,fields[i].required);container.insertBefore(newline,prevline.nextSibling);prevline=newline}var item;for(var i=0;i<first.childNodes.length;i++){item=first.childNodes[i];if(item.tagName=="INPUT")break}wfu_update_userfield_value({target:item})}else if(type=="formfields"){var fields=Array();var fielddefs=window["wfu_attribute_"+attribute+"_typeprops"];var fielddef_array=fielddefs[0].split(",");var defaults={};for(var i=0;i<fielddef_array.length;i++){var fielddef=
212
+ fielddefs[fielddef_array[i]];var def={};def.type=fielddef_array[i];def.label="";def.labelposition=fielddef.labelposition.substr(5);def.required=fielddef.required.substr(5)=="true";def.donotautocomplete=fielddef.donotautocomplete.substr(5)=="true";def.validate=fielddef.validate.substr(5)=="true";def.typehook=fielddef.typehook.substr(5)=="true";def.hintposition=fielddef.hintposition.substr(5);def["default"]=fielddef["default"].substr(5);def.data=fielddef.data.substr(5);def.group=fielddef.group.substr(5);
213
+ def.format=fielddef.format.substr(5);defaults[fielddef_array[i]]=def}var fields_arr=value.replace(/\//g,"[/]").replace(/\(.*\)/,function(m){return m.replace(/\[\/\]/g,"/")}).split("[/]");for(var i=0;i<fields_arr.length;i++){var field_raw=fields_arr[i].trim();var fieldprops={};for(prop in defaults["text"])fieldprops[prop]=defaults["text"][prop];if(field_raw.substr(0,1)=="*"){fieldprops.required=true;field_raw=field_raw.substr(1)}var field_parts=field_raw.split("|");if(field_parts[0].trim()!=""){var type_key=
214
+ -1;var new_type="";for(var j=0;j<field_parts.length;j++){var part=field_parts[j].replace(/^\s+/gm,"");var flag=part.substr(0,2);var val=part.substr(2);if(flag=="t:"&&j>0&&fielddef_array.indexOf(val)>-1){new_type=val;type_key=j;break}}if(new_type!=""){for(prop in defaults[new_type])fieldprops[prop]=defaults[new_type][prop];field_parts.splice(type_key,1)}fieldprops.label=field_parts[0].trim();field_parts.splice(0,1);for(var j=0;j<field_parts.length;j++){var part=field_parts[j].replace(/^\s+/gm,"");
215
+ var flag=part.substr(0,2);var val=part.substr(2);if(flag=="s:")fieldprops.labelposition=val;else if(flag=="r:")fieldprops.required=val=="1";else if(flag=="a:")fieldprops.donotautocomplete=val=="1";else if(flag=="v:")fieldprops.validate=val=="1";else if(flag=="d:")fieldprops["default"]=val;else if(flag=="l:")fieldprops.data=val;else if(flag=="g:")fieldprops.group=val;else if(flag=="f:")fieldprops.format=val;else if(flag=="p:")fieldprops.hintposition=val;else if(flag=="h:")fieldprops.typehook=val==
216
+ "1"}fields.push(fieldprops)}}if(fields.length==0)fields.push(fieldprops_default);var container=document.getElementById("wfu_attribute_"+attribute);var containers=document.querySelectorAll("div#wfu_attribute_"+attribute+" .wfu_formdata_line_container");for(var i=1;i<containers.length;i++)container.removeChild(containers[i]);var new_line_container=containers[0];for(var i=0;i<fields.length;i++){var new_key=attribute+"_"+wfu_randomString(4);var template=wfu_formdata_prepare_template(attribute,fields[i],
217
+ new_key);if(i>0)new_line_container=document.createElement("DIV");new_line_container.id="wfu_formfield_"+new_key+"_container";new_line_container.className="wfu_formdata_line_container";if(i>0)container.insertBefore(new_line_container,null);new_line_container.innerHTML=template;wfu_formdata_update_buttons(new_key)}var formfield_elements=document.querySelectorAll("div#wfu_attribute_"+attribute+' input[name="wfu_formfield_elements"]');for(var i=0;i<formfield_elements.length;i++)wfu_attach_element_handlers(formfield_elements[i],
218
+ wfu_update_formfield_value);wfu_update_formfield_value({target:containers[0]})}else if(type=="color-triplet"){var colors=value.split(",");for(var i=0;i<colors.length;i++)colors[i]=colors[i].trim();if(colors.length==2)colors=[colors[0],colors[1],"#000000"];else if(colors.length==1)colors=[colors[0],"#FFFFFF","#000000"];else if(colors.length<3)colors=["#000000","#FFFFFF","#000000"];var rgb=colourNameToHex(colors[0]);if(!rgb)rgb=colors[0];jQuery("#wfu_attribute_"+attribute+"_color").wpColorPicker("color",
219
+ rgb);var item=document.getElementById("wfu_attribute_"+attribute+"_color");item.value=colors[0];rgb=colourNameToHex(colors[1]);if(!rgb)rgb=colors[1];jQuery("#wfu_attribute_"+attribute+"_bgcolor").wpColorPicker("color",rgb);document.getElementById("wfu_attribute_"+attribute+"_bgcolor").value=colors[1];rgb=colourNameToHex(colors[2]);if(!rgb)rgb=colors[2];jQuery("#wfu_attribute_"+attribute+"_borcolor").wpColorPicker("color",rgb);document.getElementById("wfu_attribute_"+attribute+"_borcolor").value=colors[2];
220
+ wfu_update_triplecolor_value({target:item})}else if(type=="folderlist"){var items=wfu_parse_folderlist_js(value);var opts=document.getElementById("wfu_attribute_"+attribute).options;while(opts.length>0)opts.remove(0);var opt,subfolder,subfolder_raw,text,stars,subvalue;for(var i=0;i<items.path.length;i++){subfolder=items.path[i];if(subfolder.substr(subfolder.length,1)=="/")subfolder=subfolder.substr(0,subfolder.length-1);subfolder_raw=subfolder.split("/");subfolder=subfolder_raw[subfolder_raw.length-
221
+ 1];stars=parseInt(items.level[i]);text="";subvalue="";for(var j=0;j<stars;j++){text+="&nbsp;&nbsp;&nbsp;";subvalue+="*"}text+=items.label[i];if(items["default"][i])subvalue+="&";if(subfolder=="")subvalue+="{root}/"+items.label[i];else subvalue+=subfolder+items.label[i];opt=document.createElement("option");if(items["default"][i])opt.className="wfu_select_folders_option_default";else opt.className="";opt.value=wfu_plugin_encode_string(subvalue);opt.innerHTML=text;opts.add(opt)}opt=document.createElement("option");
222
+ opt.value="";opt.innerHTML="";opts.add(opt);var list=document.getElementById("wfu_attribute_"+attribute);list.data=wfu_decode_subfolder_list(attribute);wfu_subfolders_update_toolnav(attribute);item=list;if(value!==item.oldVal){item.oldVal=value;document.getElementById("wfu_attribute_value_"+attribute).value=value;wfu_generate_shortcode()}}}
223
+ function wfu_parse_folderlist_js(list){var ret=Object();ret.path=Array();ret.label=Array();ret.level=Array();ret["default"]=Array();if(list.substr(0,4)=="auto")return ret;var subfolders=list.split(",");if(subfolders.length==0)return ret;if(subfolders.length==1&&subfolders[0].trim()=="")return ret;var dir_levels=["root"];var prev_level=0;var level0_count=0;var _default=-1;var subfolder,star_count,start_spaces,is_default,subfolder_dir,subfolder_label,subfolder_path;for(var i=0;i<subfolders.length;i++){subfolder=
224
+ subfolders[i].trim();star_count=0;start_spaces="";is_default=false;while(star_count<subfolder.length)if(subfolder.substr(star_count,1)=="*"){star_count++;start_spaces+="&nbsp;&nbsp;&nbsp;"}else break;if(star_count-prev_level<=1&&(star_count>0||level0_count==0)){subfolder=subfolder.substr(star_count,subfolder.length-star_count);if(subfolder.substr(0,1)=="&"){subfolder=subfolder.substr(1);is_default=true}subfolder_items=subfolder.split("/");if(subfolder_items.length<2)subfolder_items.push("");if(subfolder_items[1]!=
225
+ ""){subfolder_dir=subfolder_items[0];subfolder_label=subfolder_items[1]}else{subfolder_dir=subfolder;subfolder_label=subfolder}if(subfolder_dir!=""){if(is_default&&_default==-1)_default=ret.path.length;else is_default=false;if(star_count==0)level0_count=1;if(dir_levels.length>star_count)dir_levels[star_count]=subfolder_dir;else dir_levels.push(subfolder_dir);subfolder_path="";for(var i_count=1;i_count<=star_count;i_count++)subfolder_path+=dir_levels[i_count]+"/";ret.path.push(subfolder_path);ret.label.push(subfolder_label);
226
+ ret.level.push(star_count);ret["default"].push(is_default);prev_level=star_count}}}return ret}
227
+ function colourNameToHex(colour){var colours={"aliceblue":"#f0f8ff","antiquewhite":"#faebd7","aqua":"#00ffff","aquamarine":"#7fffd4","azure":"#f0ffff","beige":"#f5f5dc","bisque":"#ffe4c4","black":"#000000","blanchedalmond":"#ffebcd","blue":"#0000ff","blueviolet":"#8a2be2","brown":"#a52a2a","burlywood":"#deb887","cadetblue":"#5f9ea0","chartreuse":"#7fff00","chocolate":"#d2691e","coral":"#ff7f50","cornflowerblue":"#6495ed","cornsilk":"#fff8dc","crimson":"#dc143c","cyan":"#00ffff","darkblue":"#00008b",
228
+ "darkcyan":"#008b8b","darkgoldenrod":"#b8860b","darkgray":"#a9a9a9","darkgreen":"#006400","darkkhaki":"#bdb76b","darkmagenta":"#8b008b","darkolivegreen":"#556b2f","darkorange":"#ff8c00","darkorchid":"#9932cc","darkred":"#8b0000","darksalmon":"#e9967a","darkseagreen":"#8fbc8f","darkslateblue":"#483d8b","darkslategray":"#2f4f4f","darkturquoise":"#00ced1","darkviolet":"#9400d3","deeppink":"#ff1493","deepskyblue":"#00bfff","dimgray":"#696969","dodgerblue":"#1e90ff","firebrick":"#b22222","floralwhite":"#fffaf0",
229
+ "forestgreen":"#228b22","fuchsia":"#ff00ff","gainsboro":"#dcdcdc","ghostwhite":"#f8f8ff","gold":"#ffd700","goldenrod":"#daa520","gray":"#808080","green":"#008000","greenyellow":"#adff2f","honeydew":"#f0fff0","hotpink":"#ff69b4","indianred ":"#cd5c5c","indigo ":"#4b0082","ivory":"#fffff0","khaki":"#f0e68c","lavender":"#e6e6fa","lavenderblush":"#fff0f5","lawngreen":"#7cfc00","lemonchiffon":"#fffacd","lightblue":"#add8e6","lightcoral":"#f08080","lightcyan":"#e0ffff","lightgoldenrodyellow":"#fafad2",
230
+ "lightgrey":"#d3d3d3","lightgreen":"#90ee90","lightpink":"#ffb6c1","lightsalmon":"#ffa07a","lightseagreen":"#20b2aa","lightskyblue":"#87cefa","lightslategray":"#778899","lightsteelblue":"#b0c4de","lightyellow":"#ffffe0","lime":"#00ff00","limegreen":"#32cd32","linen":"#faf0e6","magenta":"#ff00ff","maroon":"#800000","mediumaquamarine":"#66cdaa","mediumblue":"#0000cd","mediumorchid":"#ba55d3","mediumpurple":"#9370d8","mediumseagreen":"#3cb371","mediumslateblue":"#7b68ee","mediumspringgreen":"#00fa9a",
231
+ "mediumturquoise":"#48d1cc","mediumvioletred":"#c71585","midnightblue":"#191970","mintcream":"#f5fffa","mistyrose":"#ffe4e1","moccasin":"#ffe4b5","navajowhite":"#ffdead","navy":"#000080","oldlace":"#fdf5e6","olive":"#808000","olivedrab":"#6b8e23","orange":"#ffa500","orangered":"#ff4500","orchid":"#da70d6","palegoldenrod":"#eee8aa","palegreen":"#98fb98","paleturquoise":"#afeeee","palevioletred":"#d87093","papayawhip":"#ffefd5","peachpuff":"#ffdab9","peru":"#cd853f","pink":"#ffc0cb","plum":"#dda0dd",
232
+ "powderblue":"#b0e0e6","purple":"#800080","red":"#ff0000","rosybrown":"#bc8f8f","royalblue":"#4169e1","saddlebrown":"#8b4513","salmon":"#fa8072","sandybrown":"#f4a460","seagreen":"#2e8b57","seashell":"#fff5ee","sienna":"#a0522d","silver":"#c0c0c0","skyblue":"#87ceeb","slateblue":"#6a5acd","slategray":"#708090","snow":"#fffafa","springgreen":"#00ff7f","steelblue":"#4682b4","tan":"#d2b48c","teal":"#008080","thistle":"#d8bfd8","tomato":"#ff6347","turquoise":"#40e0d0","violet":"#ee82ee","wheat":"#f5deb3",
233
+ "white":"#ffffff","whitesmoke":"#f5f5f5","yellow":"#ffff00","yellowgreen":"#9acd32"};if(typeof colours[colour.toLowerCase()]!="undefined")return colours[colour.toLowerCase()];return false}
234
+ function wfu_download_file(filepath_enc,ii){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var nonce="";var nonce_elem=document.getElementById("wfu_download_file_nonce");if(nonce_elem)nonce=nonce_elem.value;if(nonce=="")return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_download_file_invoker";params[1]=new Array(2);params[1][0]="file";params[1][1]=filepath_enc;params[2]=new Array(2);params[2][0]="nonce";params[2][1]=
235
+ nonce;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="wfu_ajax_action_download_file_invoker:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+
236
+ start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header.substr(0,16)=="wfu_download_id;"){var download_id=txt_header.substr(16);var container=document.getElementById("wfu_file_download_container_"+ii);container.innerHTML=txt_value;setTimeout("wfu_download_file_monitor('"+filepath_enc+"', "+ii+", '"+download_id+"')",100)}}};xhr.send(parameters)}
237
+ function wfu_download_file_monitor(filepath_enc,ii,id){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_download_file_monitor";params[1]=new Array(2);params[1][0]="file";params[1][1]=filepath_enc;params[2]=new Array(2);params[2][0]="id";params[2][1]=id;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);
238
+ xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="wfu_ajax_action_download_file_monitor:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=
239
+ response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header!="repeat"){var container=document.getElementById("wfu_file_download_container_"+ii);container.innerHTML=""}else if(txt_header=="repeat")setTimeout("wfu_download_file_monitor('"+filepath_enc+"', "+ii+", '"+txt_value+"')",100)}};xhr.send(parameters)}
240
+ function wfu_filedetails_changed(e){var userdata_elements=document.getElementsByName("wfu_filedetails_userdata");var def,subm;var changed=false,changed2=false;for(var i=0;i<userdata_elements.length;i++){def=document.getElementById(userdata_elements[i].id.replace("wfu_filedetails_userdata_value_","wfu_filedetails_userdata_default_"));subm=document.getElementById(userdata_elements[i].id.replace("wfu_filedetails_userdata_value_","wfu_filedetails_userdata_"));subm.value=userdata_elements[i].value;if(userdata_elements[i].value!=
241
+ def.value){changed=true;break}}if(document.getElementById("wfu_filedetails_userid"))changed2=document.getElementById("wfu_filedetails_userid").value!=document.getElementById("wfu_filedetails_userid_default").value;document.getElementById("dp_filedetails_submit_fields").disabled=!changed&&!changed2}
242
+ function wfu_Attach_FileDetails_Admin_Events(){var userdata_elements=document.getElementsByName("wfu_filedetails_userdata");for(var i=0;i<userdata_elements.length;i++)wfu_attach_element_handlers(userdata_elements[i],wfu_filedetails_changed)}
243
+ function wfu_update_browserpermission_option(type,id,immediate){var users=document.getElementById("wfu_fbperm_users");var roles=document.getElementById("wfu_fbperm_roles");var view=document.getElementById("wfu_fbperm_"+type+"_"+id+"_view");var dl=document.getElementById("wfu_fbperm_"+type+"_"+id+"_dl");var edit=document.getElementById("wfu_fbperm_"+type+"_"+id+"_edit");var del=document.getElementById("wfu_fbperm_"+type+"_"+id+"_del");if(type=="role"){if(id=="0"){dl.checked=view.checked&&dl.checked;
244
+ edit.checked=view.checked&&edit.checked;del.checked=view.checked&&del.checked;dl.disabled=!view.checked;edit.disabled=!view.checked;del.disabled=!view.checked;var roles_tr=document.querySelectorAll("tr.wfu_fbperm_role_tr");for(var i=0;i<roles_tr.length;i++){var rolename=roles_tr[i].id.substr(16,roles_tr[i].id.length-20);wfu_update_browserpermission_option("role",rolename,false)}if(immediate){var props=(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?"l":"");roles.value=
245
+ roles.value.replace(/^0\[\w*\]/,"0["+props+"]")}}else if(id!="administrator"){var row=document.getElementById("wfu_fbperm_role_"+id+"_row");var def=document.getElementById("wfu_fbperm_role_"+id+"_def");var view_def=document.getElementById("wfu_fbperm_role_0_view");var dl_def=document.getElementById("wfu_fbperm_role_0_dl");var edit_def=document.getElementById("wfu_fbperm_role_0_edit");var del_def=document.getElementById("wfu_fbperm_role_0_del");view.checked=def.checked?view_def.checked:view.checked;
246
+ row.style.fontWeight=def.checked?"":"bold";dl.checked=def.checked?dl_def.checked:view.checked&&dl.checked;edit.checked=def.checked?edit_def.checked:view.checked&&edit.checked;del.checked=def.checked?del_def.checked:view.checked&&del.checked;view.disabled=def.checked;dl.disabled=def.checked||!view.checked;edit.disabled=def.checked||!view.checked;del.disabled=def.checked||!view.checked;if(immediate){var props=def.checked?"":"D"+(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?
247
+ "l":"");roles.value=roles.value.replace(new RegExp(","+id+"\\[\\w*\\]"),","+id+"["+props+"]")}}var users_tr=document.querySelectorAll("tr.wfu_fbperm_user_tr");for(var i=0;i<users_tr.length;i++){var username=users_tr[i].id.substr(16,users_tr[i].id.length-20);wfu_update_browserpermission_option("user",username,false)}}else if(type=="user"){var role=document.getElementById("wfu_fbperm_user_"+id+"_role");if(id=="0"){view.checked=role.checked?false:view.checked;dl.checked=role.checked?false:view.checked&&
248
+ dl.checked;edit.checked=role.checked?false:view.checked&&edit.checked;del.checked=role.checked?false:view.checked&&del.checked;view.disabled=role.checked;dl.disabled=role.checked||!view.checked;edit.disabled=role.checked||!view.checked;del.disabled=role.checked||!view.checked;view.indeterminate=role.checked;dl.indeterminate=role.checked;edit.indeterminate=role.checked;del.indeterminate=role.checked;var users_tr=document.querySelectorAll("tr.wfu_fbperm_user_tr");for(var i=0;i<users_tr.length;i++){var username=
249
+ users_tr[i].id.substr(16,users_tr[i].id.length-20);wfu_update_browserpermission_option("user",username,false)}if(immediate){var props=role.checked?"":"R"+(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?"l":"");users.value=users.value.replace(/^0\[\w*\],?/,"");users.value="0["+props+"]"+(users.value==""?"":","+users.value)}}else{var user_roles=document.getElementById("wfu_fbperm_user_"+id+"_roles").value.split(",");if(user_roles.length==1&&user_roles[0]=="")user_roles=
250
+ Array();if(user_roles.indexOf("administrator")<0){var row=document.getElementById("wfu_fbperm_user_"+id+"_row");var def=document.getElementById("wfu_fbperm_user_"+id+"_def");var role_def=document.getElementById("wfu_fbperm_user_0_role");var view_def=document.getElementById("wfu_fbperm_user_0_view");var dl_def=document.getElementById("wfu_fbperm_user_0_dl");var edit_def=document.getElementById("wfu_fbperm_user_0_edit");var del_def=document.getElementById("wfu_fbperm_user_0_del");if(user_roles.length>
251
+ 0){var $view_from_roles=false;var $dl_from_roles=false;var $edit_from_roles=false;var $del_from_roles=false;for(var i=0;i<user_roles.length;i++){$view_from_roles=$view_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_view").checked;$dl_from_roles=$view_from_roles&&($dl_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_dl").checked);$edit_from_roles=$view_from_roles&&($edit_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_edit").checked);
252
+ $del_from_roles=$view_from_roles&&($del_from_roles||document.getElementById("wfu_fbperm_role_"+user_roles[i]+"_del").checked)}}else{var $view_from_roles=document.getElementById("wfu_fbperm_role_0_view");var $dl_from_roles=document.getElementById("wfu_fbperm_role_0_dl");var $edit_from_roles=document.getElementById("wfu_fbperm_role_0_edit");var $del_from_roles=document.getElementById("wfu_fbperm_role_0_del")}row.style.fontWeight=def.checked?"":"bold";role.checked=def.checked?role_def.checked:role.checked;
253
+ view.checked=def.checked?role_def.checked?$view_from_roles:view_def.checked:role.checked?$view_from_roles:view.checked;dl.checked=def.checked?role_def.checked?$dl_from_roles:dl_def.checked:role.checked?$dl_from_roles:view.checked&&dl.checked;edit.checked=def.checked?role_def.checked?$edit_from_roles:edit_def.checked:role.checked?$edit_from_roles:view.checked&&edit.checked;del.checked=def.checked?role_def.checked?$del_from_roles:del_def.checked:role.checked?$del_from_roles:view.checked&&del.checked;
254
+ role.disabled=def.checked;view.disabled=def.checked||role.checked;dl.disabled=def.checked||role.checked||!view.checked;edit.disabled=def.checked||role.checked||!view.checked;del.disabled=def.checked||role.checked||!view.checked;if(immediate){var props=def.checked?"":"D"+(role.checked?"":"R"+(view.checked?"v":"")+(dl.checked?"d":"")+(edit.checked?"e":"")+(del.checked?"l":""));users.value=users.value.replace(new RegExp(","+id+"\\[\\w*\\]|"+id+"\\[\\w*\\],|"+id+"\\[\\w*\\]"),"");users.value+=(users.value==
255
+ ""?"":",")+id+"["+props+"]"}}}}}
256
+ function wfu_goto_historylog_page(token,go_to){var sel=document.getElementById("wfu_historylog_pages");var page=sel.selectedIndex+1;var newpage=page;if(go_to=="next")newpage=Math.min(page+1,sel.options.length);else if(go_to=="prev")newpage=Math.max(page-1,1);else if(go_to=="last")newpage=sel.options.length;else if(go_to=="first")newpage=1;else if(go_to=="sel")page=-1;if(newpage==page)return;var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);
257
+ params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_get_historylog_page";params[1]=new Array(2);params[1][0]="token";params[1][1]=token;params[2]=new Array(2);params[2][0]="page";params[2][1]=newpage;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);document.getElementById("wfu_historylog_overlay").style.display="block";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
258
+ xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){document.getElementById("wfu_historylog_overlay").style.display="none";var start_text="wfu_historylog_page_success:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);if(response!=""){var t=document.getElementById("wfu_historylog_table");t.tBodies[0].innerHTML=
259
+ wfu_plugin_decode_string(response);sel.selectedIndex=newpage-1;document.getElementById("wfu_historylog_first_disabled").style.display=newpage==1?"inline":"none";document.getElementById("wfu_historylog_prev_disabled").style.display=newpage==1?"inline":"none";document.getElementById("wfu_historylog_first").style.display=newpage==1?"none":"inline";document.getElementById("wfu_historylog_prev").style.display=newpage==1?"none":"inline";document.getElementById("wfu_historylog_last_disabled").style.display=
260
+ newpage==sel.options.length?"inline":"none";document.getElementById("wfu_historylog_next_disabled").style.display=newpage==sel.options.length?"inline":"none";document.getElementById("wfu_historylog_last").style.display=newpage==sel.options.length?"none":"inline";document.getElementById("wfu_historylog_next").style.display=newpage==sel.options.length?"none":"inline"}}};xhr.send(parameters)}
261
+ function wfu_include_file(filepath_enc,ii){var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var nonce="";var nonce_elem=document.getElementById("wfu_include_file_nonce");if(nonce_elem)nonce=nonce_elem.value;if(nonce=="")return;var url=AdminParams.wfu_ajax_url;params=new Array(2);params[0]=new Array(3);params[0][0]="action";params[0][1]="wfu_ajax_action_include_file";params[1]=new Array(2);params[1][0]="file";params[1][1]=filepath_enc;params[2]=new Array(2);params[2][0]="nonce";params[2][1]=
262
+ nonce;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);document.getElementById("wfu_include_file_"+ii+"_a").href="javascript: void(0)";document.getElementById("wfu_include_file_"+ii+"_img").style.display="inline";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4){document.getElementById("wfu_include_file_"+ii+"_img").style.display=
263
+ "none";if(xhr.status==200){var start_text="wfu_include_file:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){document.getElementById("wfu_file_flat_"+ii).style.display="none";
264
+ document.getElementById("wfu_file_link_"+ii).style.display="inline";document.getElementById("wfu_file_can_be_included_actions_"+ii).style.display="none";document.getElementById("wfu_file_is_included_actions_"+ii).style.display="block"}else document.getElementById("wfu_include_file_"+ii+"_a").innerHTML=document.getElementById("wfu_include_file_"+ii+"_inpfail").value}}};xhr.send(parameters)}
265
+ function wfu_adminbrowser_select_all_visible_changed(){var status=document.getElementById("wfu_select_all_visible").checked;var selectors=document.querySelectorAll(".wfu_selectors");for(var i=0;i<selectors.length;i++)selectors[i].checked=status}
266
+ function wfu_adminbrowser_selector_changed(obj){var selectors_count=document.querySelectorAll(".wfu_selectors").length;var selected_count=document.querySelectorAll(".wfu_selectors:checked").length;var all_visible=document.getElementById("wfu_select_all_visible");all_visible.style.webkitAppearance="";all_visible.style.webkitAppearance="checkbox";all_visible.checked=selected_count>0;all_visible.indeterminate=selected_count>0&&selected_count<selectors_count}
267
+ function wfu_apply_adminbrowser_bulkaction(){var actionselector=document.getElementById("wfu_adminbrowser_bulkactions");if(actionselector.selectedIndex<1)return;var action=actionselector.options[actionselector.selectedIndex].value;var selected=document.querySelectorAll(".wfu_selectors:checked");if(selected.length==0)return;var codes=[];var codes_included=0,codes_not_included=0;for(var i=0;i<selected.length;i++){var file_code=selected[i].className.replace(/.*?wfu_selcode_/,"");if(file_code!=""){var included=
268
+ selected[i].className.indexOf("wfu_included")>-1;if(included)codes_included++;else codes_not_included++;if(action=="delete"&&!included||action=="include"&&included)selected[i].checked=false;else codes.push(file_code)}}if(action=="delete"&&codes_not_included>0)alert("Notice! Files that were not uploaded using the plugin cannot be deleted and have been deselected.");else if(action=="include"&&codes_included>0)alert("Notice! Files already included in the plugin have been deselected.");if(codes.length==
269
+ 0)return;var url=document.getElementById("wfu_adminbrowser_action_url").value;var referer=document.getElementById("wfu_adminbrowser_referer").value;if(action=="delete"||action=="include"){var form=document.createElement("FORM");form.method="POST";form.action=url;form.style.display="none";var field1=document.createElement("INPUT");field1.type="hidden";field1.name="action";field1.value=action+"_file";form.appendChild(field1);var field2=document.createElement("INPUT");field2.type="hidden";field2.name=
270
+ "file";field2.value="list:"+codes.join();form.appendChild(field2);var field3=document.createElement("INPUT");field3.type="hidden";field3.name="referer";field3.value=referer;form.appendChild(field3);document.body.appendChild(form);form.submit()}}
271
+ function wfu_cleanlog_initialize_elements(){jQuery("#wfu_cleanlog_dateold").datepicker({dateFormat:"yy-mm-dd",beforeShow:function(){wfu_cleanlog_element_handler()},onSelect:function(){wfu_cleanlog_element_handler()},onClose:function(){wfu_cleanlog_element_handler()}});jQuery("#wfu_cleanlog_datefrom").datepicker({dateFormat:"yy-mm-dd",beforeShow:function(){wfu_cleanlog_element_handler()},onSelect:function(){wfu_cleanlog_element_handler()},onClose:function(){wfu_cleanlog_element_handler()}});jQuery("#wfu_cleanlog_dateto").datepicker({dateFormat:"yy-mm-dd",
272
+ beforeShow:function(){wfu_cleanlog_element_handler()},onSelect:function(){wfu_cleanlog_element_handler()},onClose:function(){wfu_cleanlog_element_handler()}});wfu_attach_element_handlers(document.getElementById("wfu_cleanlog_periodold"),wfu_cleanlog_element_handler);wfu_attach_element_handlers(document.getElementById("wfu_cleanlog_periodtype"),wfu_cleanlog_element_handler)}function wfu_cleanlog_element_handler(e){document.querySelector(".wfu_cleanlog_error").classList.add("hidden")}
273
+ function wfu_cleanlog_period_changed(){var sel=document.getElementById("wfu_cleanlog_period");if(sel.selectedIndex==0){document.querySelector(".wfu_selectdate_container").style.display="block";document.querySelector(".wfu_selectperiod_container").style.display="none";document.querySelector(".wfu_selectdates_container").style.display="none";document.getElementById("wfu_cleanlog_dateold").value="";document.querySelector(".wfu_cleanlog_proceed").classList.remove("disabled")}else if(sel.selectedIndex==
274
+ 1){document.querySelector(".wfu_selectdate_container").style.display="none";document.querySelector(".wfu_selectperiod_container").style.display="block";document.querySelector(".wfu_selectdates_container").style.display="none";document.getElementById("wfu_cleanlog_periodold").value="1";document.getElementById("wfu_cleanlog_periodtype").selectedIndex=1;document.querySelector(".wfu_cleanlog_proceed").classList.remove("disabled")}else if(sel.selectedIndex==2){document.querySelector(".wfu_selectdate_container").style.display=
275
+ "none";document.querySelector(".wfu_selectperiod_container").style.display="none";document.querySelector(".wfu_selectdates_container").style.display="block";document.getElementById("wfu_cleanlog_datefrom").value="";document.getElementById("wfu_cleanlog_dateto").value="";document.querySelector(".wfu_cleanlog_proceed").classList.remove("disabled")}else if(sel.selectedIndex==3){document.querySelector(".wfu_selectdate_container").style.display="none";document.querySelector(".wfu_selectperiod_container").style.display=
276
+ "none";document.querySelector(".wfu_selectdates_container").style.display="none";document.querySelector(".wfu_cleanlog_proceed").classList.remove("disabled")}else{document.querySelector(".wfu_selectdate_container").style.display="none";document.querySelector(".wfu_selectperiod_container").style.display="none";document.querySelector(".wfu_selectdates_container").style.display="none";document.querySelector(".wfu_cleanlog_proceed").classList.add("disabled")}document.querySelector(".wfu_cleanlog_error").classList.add("hidden")}
277
+ function wfu_cleanlog_selector_toggle(show){if(show){document.getElementById("wfu_cleanlog_period").selectedIndex=-1;wfu_cleanlog_period_changed();document.querySelector(".wfu_cleanlog_tr").style.display="table-row"}else document.querySelector(".wfu_cleanlog_tr").style.display="none"}
278
+ function wfu_cleanlog_selector_validate(){var ret={error:"",param:""};var sel=document.getElementById("wfu_cleanlog_period");if(sel.selectedIndex==-1)ret.error="Invalid clean-up period selected";else if(sel.selectedIndex==0){var date=jQuery("#wfu_cleanlog_dateold").datepicker("getDate");if(date==null)ret.error="Invalid or empty date";else{var today=new Date;if(date>today)ret.error="Date must be older than today";else{var timelimit=jQuery.datepicker.formatDate("yymmdd",date);ret.param="0:"+timelimit.toString()}}}else if(sel.selectedIndex==
279
+ 1){var inp=document.getElementById("wfu_cleanlog_periodold");var sel2=document.getElementById("wfu_cleanlog_periodtype");if(parseInt(inp.value)<=0)ret.error="Invalid period";else if(sel2.selectedIndex<0||sel2.selectedIndex>2)ret.error="Invalid period interval";else ret.param="1:"+inp.value.toString()+":"+sel2.value.substr(0,1)}else if(sel.selectedIndex==2){var datefrom=jQuery("#wfu_cleanlog_datefrom").datepicker("getDate");var dateto=jQuery("#wfu_cleanlog_dateto").datepicker("getDate");if(datefrom==
280
+ null)ret.error="Invalid or empty starting date";else if(dateto==null)ret.error="Invalid or empty ending date";else{var today=new Date;if(datefrom>today)ret.error="Starting date must be older than today";else if(dateto>datefrom)ret.error="Ending date must be older or equal to starting date";else{var fromlimit=jQuery.datepicker.formatDate("yymmdd",datefrom);var tolimit=jQuery.datepicker.formatDate("yymmdd",dateto);ret.param="2:"+fromlimit.toString()+":"+tolimit.toString()}}}else if(sel.selectedIndex==
281
+ 3)ret.param="3";return ret}function wfu_cleanlog_selector_checkproceed(){var ret=wfu_cleanlog_selector_validate();if(ret.error!=""){document.querySelector(".wfu_cleanlog_error").innerHTML=ret.error;document.querySelector(".wfu_cleanlog_error").classList.remove("hidden");return false}document.querySelector(".wfu_cleanlog_error").classList.add("hidden");document.querySelector(".wfu_cleanlog_proceed").href=document.getElementById("wfu_cleanlog_href").value+"&data="+ret.param;return true}
282
+ function wfu_initialize_consent_policy(params){wfu_PD_bank.params=params;wfu_adjust_pdops_levels();wfu_adjust_permissions_levels();wfu_adjust_logactions_levels();wfu_attach_pdheaders_events();wfu_attach_pdops_events();wfu_attach_conops_events();wfu_pdops_update(true);wfu_allops_freeze_events=true;wfu_conops_update();wfu_consent_question_optable_recreate();wfu_update_consent_questions();wfu_consent_question_operations_reassign();wfu_update_consent_question_itemprops(0,-1);wfu_permissions_update(true);
283
+ wfu_logactions_update(true);wfu_pdusers_update();wfu_allops_freeze_events=false}function wfu_get_consent_policy(){var policy_str=wfu_plugin_decode_string(document.getElementById("wfu_consent_policy").value);var policy=null;try{policy=JSON.parse(policy_str)}catch(e){}return policy}function wfu_get_permissions_policy(){var policy_str=wfu_plugin_decode_string(document.getElementById("wfu_permissions_policy").value);var policy=null;try{policy=JSON.parse(policy_str)}catch(e){}return policy}
284
+ function wfu_get_logactions_policy(){var policy_str=wfu_plugin_decode_string(document.getElementById("wfu_logactions_policy").value);var policy=null;try{policy=JSON.parse(policy_str)}catch(e){}return policy}function wfu_get_pd_users(){var pd_users_str=wfu_plugin_decode_string(document.getElementById("wfu_assigned_users").value);var pd_users=null;try{pd_users=JSON.parse(pd_users_str)}catch(e){}return pd_users}
285
+ function wfu_set_consent_policy(new_policy){var policy_str=JSON.stringify(new_policy);document.getElementById("wfu_consent_policy").value=wfu_plugin_encode_string(policy_str)}function wfu_set_logactions_policy(new_policy){var policy_str=JSON.stringify(new_policy);document.getElementById("wfu_logactions_policy").value=wfu_plugin_encode_string(policy_str)}
286
+ function wfu_set_permissions_policy(new_policy){var policy_str=JSON.stringify(new_policy);document.getElementById("wfu_permissions_policy").value=wfu_plugin_encode_string(policy_str)}
287
+ function wfu_adjust_pdops_levels(){function _wfu_force_pdop_update_nested(item){var id=item.ID;if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_force_pdop_update_nested(item.children[j]);else policy.operations[id].Allowed=true}function _wfu_nested_adjust_pdops_levels(item,level){if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_nested_adjust_pdops_levels(item.children[j],level+1);var id=item.ID;if(wfu_PD_bank.allowedstatus[id]==0&&level==wfu_PD_bank.params.oplevels){_wfu_force_pdop_update_nested(item);
288
+ wfu_PD_bank.allowedstatus[id]=1;policy_needs_update=true}}wfu_pdops_update(false);var policy=wfu_get_consent_policy();if(policy){console.log(policy);var policy_needs_update=false;for(var i=0;i<policy.structure.length;i++)_wfu_nested_adjust_pdops_levels(policy.structure[i],1);if(policy_needs_update)wfu_set_consent_policy(policy)}}
289
+ function wfu_attach_pdheaders_events(){var acc=document.querySelectorAll(".wfu_pdheader_button");var i;for(i=0;i<acc.length;i++)acc[i].addEventListener("click",function(){this.classList.toggle("expanded");var panel=null;if(this.classList.contains("wfu_pdop_header_button"))panel=document.querySelector(".wfu_plugin_operations");else if(this.classList.contains("wfu_conop_header_button"))panel=document.querySelector(".wfu_consent_operations");else if(this.classList.contains("wfu_conquestion_header_button"))panel=
290
+ document.querySelector(".wfu_consent_questions");else if(this.classList.contains("wfu_permissions_header_button"))panel=document.querySelector(".wfu_consent_permissions");else if(this.classList.contains("wfu_logactions_header_button"))panel=document.querySelector(".wfu_consent_logactions");else if(this.classList.contains("wfu_pdusers_header_button"))panel=document.querySelector(".wfu_consent_users");if(panel)if(this.classList.contains("expanded"))panel.style.display="block";else panel.style.display=
291
+ "none"})}function wfu_attach_pdops_events(){var acc=document.querySelectorAll(".wfu_pdop_button");var i;for(i=0;i<acc.length;i++)acc[i].addEventListener("click",function(){this.classList.toggle("expanded");var panel=this.parentElement.nextElementSibling;if(this.classList.contains("expanded"))panel.style.display="block";else panel.style.display="none"})}
292
+ function wfu_attach_conops_events(){var acc=document.querySelectorAll(".wfu_conop_button");var i;for(i=0;i<acc.length;i++)acc[i].addEventListener("click",function(){this.classList.toggle("expanded");var panel=this.parentElement.nextElementSibling;if(this.classList.contains("expanded"))panel.style.display="block";else panel.style.display="none"})}
293
+ function wfu_pdop_toggle(obj){if(wfu_allops_freeze_events)return;if(obj.id.indexOf("wfu_pdop_")==-1)return;var id=obj.id.replace("wfu_pdop_","");var policy=wfu_get_consent_policy();if(policy){if(typeof policy.operations[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)obj.classList.remove("indeterminate");if(policy.children_index[id].length>0){var level=1;
294
+ var parid=id;while((parid=policy.operations[parid].Parent)>0)level++;if((wfu_PD_bank.params.oplevels<1||level<wfu_PD_bank.params.oplevels)&&!confirm("This will set all children operations to "+(new_status?"allowed":"not allowed")+". Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==0)policy.operations[id2].Allowed=
295
+ new_status}}else policy.operations[id].Allowed=new_status;wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_pdops_update(true);wfu_conops_update();wfu_update_consent_question_itemprops(0,-1);wfu_consent_question_optable_recreate();wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(0,0);wfu_allops_freeze_events=false}}
296
+ function wfu_conop_toggle(obj){if(wfu_allops_freeze_events)return;if(obj.id.indexOf("wfu_conop_")==-1)return;var id=obj.id.replace("wfu_conop_","");var policy=wfu_get_consent_policy();if(policy){if(typeof policy.operations[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)check.classList.remove("indeterminate");if(policy.children_index[id].length>0){var level=
297
+ 1;var parid=id;while((parid=policy.operations[parid].Parent)>0)level++;if((wfu_PD_bank.params.oplevels<1||level<wfu_PD_bank.params.oplevels)&&!confirm("This will make all children operations "+(new_status?"require":"not require")+" consent. Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==0)policy.operations[id2].NeedsConsent=
298
+ new_status}}else policy.operations[id].NeedsConsent=new_status;wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_conops_update();wfu_update_consent_question_itemprops(0,-1);wfu_consent_question_optable_recreate();wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(0,0);wfu_allops_freeze_events=false}}
299
+ function wfu_pdops_update(updatehtml){function _wfu_atomic_pdop_update(id){var allowed=policy.operations[id].Allowed;policy.operations[id].allowedstatus={};for(var k=0;k<policy.operations[id].Datatypes.length;k++){var type=policy.operations[id].Datatypes[k];policy.operations[id].allowedstatus[type]=allowed?1:-1}var condition=policy.operations[id].Condition;if(condition=="")policy.operations[id].pdvisible=true;else{var negative=false;if(condition.substr(0,1)=="!"){negative=true;condition=condition.replace("!",
300
+ "")}var allowedstatus2=policy.operations[parseInt(condition)].allowedstatus;var enabled=false;for(var type in allowedstatus2)if(allowedstatus2.hasOwnProperty(type))if(allowedstatus2[type]>-1){enabled=true;break}policy.operations[id].pdvisible=negative?!enabled:enabled}}function _wfu_nested_pdops_update(item,level){var id=item.ID;if(item.children.length>0){policy.operations[id].allowedstatus={};policy.operations[id].pdvisible=false;for(var j=0;j<item.children.length;j++){_wfu_nested_pdops_update(item.children[j],
301
+ level+1);var id2=item.children[j].ID;if(policy.operations[id2].pdvisible){var allowed=policy.operations[id2].Allowed;for(var type in policy.operations[id2].allowedstatus)if(policy.operations[id2].allowedstatus.hasOwnProperty(type)){var allowedstatus2=policy.operations[id2].allowedstatus[type];if(typeof policy.operations[id].allowedstatus[type]=="undefined")policy.operations[id].allowedstatus[type]=allowedstatus2;else if(policy.operations[id].allowedstatus[type]*allowedstatus2<1)policy.operations[id].allowedstatus[type]=
302
+ 0}if(!policy.operations[id].pdvisible)policy.operations[id].pdvisible=policy.operations[id2].pdvisible}}}else _wfu_atomic_pdop_update(id);var allowedstatus=-2;for(var type in policy.operations[id].allowedstatus)if(policy.operations[id].allowedstatus.hasOwnProperty(type)){var allowedstatus2=policy.operations[id].allowedstatus[type];if(allowedstatus==-2)allowedstatus=allowedstatus2;else if(allowedstatus*allowedstatus2<1){allowedstatus=0;break}}if(typeof wfu_PD_bank.allowedstatus=="undefined")wfu_PD_bank.allowedstatus=
303
+ {};wfu_PD_bank.allowedstatus[id]=allowedstatus;if(typeof wfu_PD_bank.level=="undefined")wfu_PD_bank.level={};wfu_PD_bank.level[id]=level;if(updatehtml){var check=document.getElementById("wfu_pdop_"+id);wfu_set_checkbox_status(check,allowedstatus);var container=document.getElementById("wfu_pdop_container_"+id);if(container)container.style.display=policy.operations[id].pdvisible&&(wfu_PD_bank.params.oplevels<1||level<=wfu_PD_bank.params.oplevels)?"block":"none"}}var policy=wfu_get_consent_policy();
304
+ if(policy){wfu_allops_freeze_events=true;for(var i=0;i<policy.structure.length;i++)_wfu_nested_pdops_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
305
+ function wfu_conops_update(){function _wfu_atomic_conop_update(id){policy.operations[id].needsconsentstatus=policy.operations[id].Allowed&&policy.operations[id].NeedsConsent?1:-1;var condition=policy.operations[id].Condition;if(condition=="")policy.operations[id].convisible=true;else{var negative=false;if(condition.substr(0,1)=="!"){negative=true;condition=condition.replace("!","")}var enabled=wfu_PD_bank.allowedstatus[parseInt(condition)]>-1;policy.operations[id].convisible=negative?!enabled:enabled}policy.operations[id].convisible=
306
+ policy.operations[id].convisible&&policy.operations[id].Allowed}function _wfu_nested_conops_update(item,level){var id=item.ID;if(item.children.length>0){policy.operations[id].needsconsentstatus=-2;policy.operations[id].convisible=false;for(var j=0;j<item.children.length;j++){_wfu_nested_conops_update(item.children[j],level+1);var id2=item.children[j].ID;if(policy.operations[id2].convisible){var needsconsentstatus2=policy.operations[id2].needsconsentstatus;if(policy.operations[id].needsconsentstatus==
307
+ -2)policy.operations[id].needsconsentstatus=needsconsentstatus2;else if(policy.operations[id].needsconsentstatus*needsconsentstatus2<1)policy.operations[id].needsconsentstatus=0;if(!policy.operations[id].convisible)policy.operations[id].convisible=policy.operations[id2].convisible}}}else _wfu_atomic_conop_update(id);if(typeof wfu_PD_bank.visible=="undefined")wfu_PD_bank.visible={};wfu_PD_bank.visible[id]=policy.operations[id].convisible;if(typeof wfu_PD_bank.needsconsentstatus=="undefined")wfu_PD_bank.needsconsentstatus=
308
+ {};wfu_PD_bank.needsconsentstatus[id]=policy.operations[id].needsconsentstatus;var check=document.getElementById("wfu_conop_"+id);wfu_set_checkbox_status(check,policy.operations[id].needsconsentstatus);var container=document.getElementById("wfu_conop_container_"+id);if(container)container.style.display=policy.operations[id].convisible&&(wfu_PD_bank.params.oplevels<1||level<=wfu_PD_bank.params.oplevels)?"block":"none"}var policy=wfu_get_consent_policy();if(policy){wfu_allops_freeze_events=true;for(var i=
309
+ 0;i<policy.structure.length;i++)_wfu_nested_conops_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
310
+ function wfu_update_consent_questions(){var policy=wfu_get_consent_policy();if(policy){var maincontainer=document.getElementById("wfu_conquestions_container");wfu_allops_freeze_events=true;for(var i=0;i<policy.questions.length;i++){var container=wfu_render_consent_question(i);if(container){maincontainer.appendChild(container);wfu_update_consent_question(i,true)}}wfu_update_conquestion_header();wfu_allops_freeze_events=false}}
311
+ function wfu_render_consent_question(index){var policy=wfu_get_consent_policy();if(!policy)return null;var question=policy.questions[index];var i=index+1;var container=document.createElement("DIV");container.className="wfu_conquestion_container";container.id="wfu_conquestion_container_"+i;var header=document.createElement("DIV");header.className="wfu_conquestion_header";var headerlabel=document.createElement("LABEL");headerlabel.className="wfu_conquestion_headerlabel";headerlabel.innerHTML="Question "+
312
+ i;header.appendChild(headerlabel);var tools=document.createElement("DIV");tools.className="wfu_conquestion_tools";var add_btn=document.getElementById("wfu_conquestion_add").cloneNode(true);add_btn.removeAttribute("id");wfu_addEventHandler(add_btn,"click",wfu_conquestion_tools_handler);var remove_btn=document.getElementById("wfu_conquestion_remove").cloneNode(true);remove_btn.removeAttribute("id");wfu_addEventHandler(remove_btn,"click",wfu_conquestion_tools_handler);var up_btn=document.getElementById("wfu_conquestion_up").cloneNode(true);
313
+ up_btn.removeAttribute("id");wfu_addEventHandler(up_btn,"click",wfu_conquestion_tools_handler);var down_btn=document.getElementById("wfu_conquestion_down").cloneNode(true);down_btn.removeAttribute("id");wfu_addEventHandler(down_btn,"click",wfu_conquestion_tools_handler);tools.appendChild(add_btn);tools.appendChild(remove_btn);tools.appendChild(up_btn);tools.appendChild(down_btn);header.appendChild(tools);var subcontainer=document.createElement("DIV");subcontainer.className="wfu_conquestion_subcontainer";
314
+ var mainprops=document.createElement("DIV");mainprops.className="wfu_conquestion_mainprops";var mainpropstitle=document.createElement("LABEL");mainpropstitle.className="wfu_conquestion_mainpropstitle";mainpropstitle.innerHTML="Main Properties";var titlelabel=document.createElement("LABEL");titlelabel.className="wfu_conquestion_titlelabel";titlelabel.innerHTML="Title";var titletext=document.createElement("INPUT");titletext.className="wfu_conquestion_titletext";titletext.value=question.title;wfu_attach_element_handlers(titletext,
315
+ wfu_conquestion_mainprops_handler);var titlelocationlabel=document.createElement("LABEL");titlelocationlabel.className="wfu_conquestion_titlelocationlabel";titlelocationlabel.innerHTML="Title Location";var titlelocationlist=document.createElement("SELECT");titlelocationlist.className="wfu_conquestion_titlelocationlist";var opt=document.createElement("OPTION");opt.value="top";opt.innerHTML="Top";opt.selected=question.location=="top";titlelocationlist.add(opt);var opt=document.createElement("OPTION");
316
+ opt.value="bottom";opt.innerHTML="Bottom";opt.selected=question.location=="bottom";titlelocationlist.add(opt);wfu_addEventHandler(titlelocationlist,"change",wfu_conquestion_mainprops_handler);var matrixlabel=document.createElement("LABEL");matrixlabel.className="wfu_conquestion_matrixlabel";matrixlabel.innerHTML="Number of Items";var matrix_x=document.createElement("INPUT");matrix_x.className="wfu_conquestion_matrix_x";matrix_x.type="number";matrix_x.min=1;var qx=parseInt(question.x);if(qx<=0)qx=
317
+ 1;question.x=qx;matrix_x.value=qx;wfu_attach_element_handlers(matrix_x,wfu_conquestion_mainprops_handler);var matrixsep=document.createElement("LABEL");matrixsep.className="wfu_conquestion_matrixsep";matrixsep.innerHTML="x";var matrix_y=document.createElement("INPUT");matrix_y.className="wfu_conquestion_matrix_y";matrix_y.type="number";matrix_y.min=1;var qy=parseInt(question.y);if(qy<=0)qy=1;question.y=qy;matrix_y.value=qy;wfu_attach_element_handlers(matrix_y,wfu_conquestion_mainprops_handler);var groupedlabel=
318
+ document.createElement("LABEL");groupedlabel.className="wfu_conquestion_groupedlabel";groupedlabel.innerHTML="Grouped";var groupedbox=document.createElement("INPUT");groupedbox.className="wfu_conquestion_groupedbox";groupedbox.type="checkbox";groupedbox.checked=question.grouped==1;wfu_addEventHandler(groupedbox,"change",wfu_conquestion_mainprops_handler);var typelabel=document.createElement("LABEL");typelabel.className="wfu_conquestion_typelabel";typelabel.innerHTML="Type";var typelist=document.createElement("SELECT");
319
+ typelist.className="wfu_conquestion_typelist";var opt=document.createElement("OPTION");opt.value="checkbox";opt.innerHTML="Checkbox";opt.selected=question.type=="checkbox";typelist.add(opt);var opt=document.createElement("OPTION");opt.value="radio";opt.innerHTML="Radio";opt.selected=question.type=="radio";typelist.add(opt);var opt=document.createElement("OPTION");opt.value="prompt";opt.innerHTML="Prompt";opt.selected=question.type=="prompt";typelist.add(opt);wfu_addEventHandler(typelist,"change",
320
+ wfu_conquestion_mainprops_handler);mainprops.appendChild(mainpropstitle);mainprops.appendChild(matrixlabel);mainprops.appendChild(matrix_x);mainprops.appendChild(matrixsep);mainprops.appendChild(matrix_y);mainprops.appendChild(titlelabel);mainprops.appendChild(titletext);mainprops.appendChild(titlelocationlabel);mainprops.appendChild(titlelocationlist);mainprops.appendChild(groupedlabel);mainprops.appendChild(groupedbox);mainprops.appendChild(typelabel);mainprops.appendChild(typelist);var itemspreview=
321
+ document.createElement("DIV");itemspreview.className="wfu_conquestion_itemspreview";var itemspreviewtitle=document.createElement("LABEL");itemspreviewtitle.className="wfu_conquestion_itemspreviewtitle";itemspreviewtitle.innerHTML="Items";var displayedtitle=document.createElement("LABEL");displayedtitle.className="wfu_conquestion_displayedtitle";displayedtitle.innerHTML=question.title;var itemtable=document.createElement("TABLE");itemtable.className="wfu_conquestion_itemtable";itemspreview.appendChild(itemspreviewtitle);
322
+ if(question.location!="bottom")itemspreview.appendChild(displayedtitle);itemspreview.appendChild(itemtable);if(question.location=="bottom")itemspreview.appendChild(displayedtitle);wfu_addEventHandler(itemspreview,"click",wfu_conquestion_itempreviewer_handler);var itemprops=document.createElement("DIV");itemprops.className="wfu_conquestion_itemprops";var itempropstitle=document.createElement("LABEL");itempropstitle.className="wfu_conquestion_itempropstitle";itempropstitle.innerHTML="Item Properties";
323
+ var labellabel=document.createElement("LABEL");labellabel.className="wfu_conquestion_labellabel";labellabel.innerHTML="Label";var labeltext=document.createElement("INPUT");labeltext.className="wfu_conquestion_labeltext";labeltext.value="";wfu_attach_element_handlers(labeltext,wfu_conquestion_mainprops_handler);var labellocationlabel=document.createElement("LABEL");labellocationlabel.className="wfu_conquestion_labellocationlabel";labellocationlabel.innerHTML="Label Location";var labellocationlist=
324
+ document.createElement("SELECT");labellocationlist.className="wfu_conquestion_labellocationlist";var opt=document.createElement("OPTION");opt.value="top";opt.innerHTML="Top";opt.selected=false;labellocationlist.add(opt);var opt=document.createElement("OPTION");opt.value="left";opt.innerHTML="Left";opt.selected=false;labellocationlist.add(opt);var opt=document.createElement("OPTION");opt.value="right";opt.innerHTML="Right";opt.selected=true;labellocationlist.add(opt);var opt=document.createElement("OPTION");
325
+ opt.value="bottom";opt.innerHTML="Bottom";opt.selected=false;labellocationlist.add(opt);wfu_addEventHandler(labellocationlist,"change",wfu_conquestion_mainprops_handler);var preselectedlabel=document.createElement("LABEL");preselectedlabel.className="wfu_conquestion_preselectedlabel";preselectedlabel.innerHTML="Preselected";var preselectedbox=document.createElement("INPUT");preselectedbox.className="wfu_conquestion_preselectedbox";preselectedbox.type="checkbox";preselectedbox.checked=false;wfu_addEventHandler(preselectedbox,
326
+ "change",wfu_conquestion_mainprops_handler);var visiblelabel=document.createElement("LABEL");visiblelabel.className="wfu_conquestion_visiblelabel";visiblelabel.innerHTML="Visible";var visiblebox=document.createElement("INPUT");visiblebox.className="wfu_conquestion_visiblebox";visiblebox.type="checkbox";visiblebox.checked=true;wfu_addEventHandler(visiblebox,"change",wfu_conquestion_mainprops_handler);itemprops.appendChild(itempropstitle);itemprops.appendChild(labellabel);itemprops.appendChild(labeltext);
327
+ itemprops.appendChild(labellocationlabel);itemprops.appendChild(labellocationlist);itemprops.appendChild(preselectedlabel);itemprops.appendChild(preselectedbox);itemprops.appendChild(visiblelabel);itemprops.appendChild(visiblebox);subcontainer.appendChild(mainprops);subcontainer.appendChild(itemspreview);subcontainer.appendChild(itemprops);container.appendChild(header);container.appendChild(subcontainer);return container}
328
+ function wfu_consent_question_action(action,index){var policy=wfu_get_consent_policy();if(!policy)return;var maincontainer=document.getElementById("wfu_conquestions_container");var qcount=document.querySelectorAll(".wfu_conquestion_container").length;if(action=="add"){var question={title:"",location:"top",x:1,y:1,grouped:0,type:"checkbox",items:[{index:1,label:"I agree to allow the plugin to use my personal data",location:"right",preselect:0,visible:true,operations:{}}]};policy.questions.splice(index+
329
+ 1,0,question);wfu_set_consent_policy(policy);var container=wfu_render_consent_question(index+1);if(container){for(var j=index+2;j<=qcount;j++)document.getElementById("wfu_conquestion_container_"+j).id="wfu_conquestion_container_"+(j+1);maincontainer.insertBefore(container,document.getElementById("wfu_conquestion_container_"+(index+3)));wfu_update_consent_question(index+1,true);wfu_update_consent_question_itemprops(index+1,-1)}}else if(action=="remove"){if(qcount<=1)return;policy.questions.splice(index,
330
+ 1);wfu_set_consent_policy(policy);maincontainer.removeChild(document.getElementById("wfu_conquestion_container_"+(index+1)));for(var j=index+2;j<=qcount;j++)document.getElementById("wfu_conquestion_container_"+j).id="wfu_conquestion_container_"+(j-1)}else if(action=="up"){if(index<=0)return;var tempq=policy.questions[index];policy.questions[index]=policy.questions[index-1];policy.questions[index-1]=tempq;wfu_set_consent_policy(policy);var container1=document.getElementById("wfu_conquestion_container_"+
331
+ (index+1));var container2=document.getElementById("wfu_conquestion_container_"+index);container1.id="wfu_conquestion_container_"+index+"_temp";container2.id="wfu_conquestion_container_"+(index+1);container1.id="wfu_conquestion_container_"+index;maincontainer.insertBefore(container1,container2)}else if(action=="down"){if(index>=qcount-1)return;var tempq=policy.questions[index];policy.questions[index]=policy.questions[index+1];policy.questions[index+1]=tempq;wfu_set_consent_policy(policy);var container1=
332
+ document.getElementById("wfu_conquestion_container_"+(index+2));var container2=document.getElementById("wfu_conquestion_container_"+(index+1));container1.id="wfu_conquestion_container_"+(index+1)+"_temp";container2.id="wfu_conquestion_container_"+(index+2);container1.id="wfu_conquestion_container_"+(index+1);maincontainer.insertBefore(container1,container2)}}
333
+ function wfu_update_consent_question(index,recreate){var policy=wfu_get_consent_policy();if(!policy)return;var question=policy.questions[index];var i=index+1;var itemspreview=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_itemspreview");var itemtable=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_itemtable");var displayedtitle=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_displayedtitle");if(!itemspreview)return;if(recreate){var matrix_x=
334
+ document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_matrix_x");var matrix_y=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_matrix_y");var titletext=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_titletext");var titlelocationlist=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_titlelocationlist");var groupedbox=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_groupedbox");
335
+ matrix_x.value=question.x;matrix_y.value=question.y;titletext.value=question.title;titlelocationlist.value=question.location;groupedbox.checked=question.grouped==1;matrix_x.disabled=question.type=="prompt";matrix_y.disabled=question.type=="prompt";titletext.disabled=question.type=="prompt";titlelocationlist.disabled=question.type=="prompt";groupedbox.disabled=question.type=="prompt";displayedtitle.style.display=question.type=="prompt"?"none":"block";while(itemtable.rows.length>0)itemtable.deleteRow(0)}var qnum=
336
+ question.x*question.y;var qitems=[];for(var j=0;j<qnum;j++)qitems.push({label:"",location:"right",preselect:false,visible:true,operations:{}});for(var j=0;j<question.items.length;j++)if(typeof question.items[j].visible=="undefined")question.items[j].visible=1;for(var j=0;j<question.items.length;j++){var ind=question.items[j].index-1;if(ind>=0&&ind<qnum){qitems[ind].label=question.items[j].label;qitems[ind].location=question.items[j].location;qitems[ind].preselect=question.items[j].preselect==1;qitems[ind].visible=
337
+ typeof question.items[j].visible=="undefined"||question.items[j].visible==1;qitems[ind].operations=question.items[j].operations}}var j=0;for(var k=0;k<question.x;k++){var row;if(recreate)row=itemtable.insertRow(k);else row=itemtable.rows[k];for(var l=0;l<question.y;l++){var cell;if(recreate){cell=row.insertCell(l);cell.classList.add("wfu_conquestion_itemcontainer")}else cell=row.cells[l];while(cell.childNodes.length>0)cell.removeChild(cell.childNodes[0]);if(qitems[j].visible)cell.classList.add("wfu_item_visible");
338
+ else cell.classList.remove("wfu_item_visible");var itemlabel=document.createElement("LABEL");itemlabel.className="wfu_conquestion_itemlabel";if(qitems[j].label==""){itemlabel.classList.add("wfu_empty_label");itemlabel.innerHTML="{no label}"}else{itemlabel.classList.remove("wfu_empty_label");itemlabel.innerHTML=qitems[j].label}if(question.type=="prompt")cell.appendChild(itemlabel);else{var itembox=document.createElement("INPUT");itembox.className="wfu_conquestion_itembox wfu_frozen";itembox.type=question.type;
339
+ itembox.checked=qitems[j].preselect;if(qitems[j].location=="top"){cell.appendChild(itemlabel);cell.appendChild(document.createElement("BR"));cell.appendChild(itembox)}else if(qitems[j].location=="left"){cell.appendChild(itemlabel);cell.appendChild(itembox)}else if(qitems[j].location=="bottom"){cell.appendChild(itembox);cell.appendChild(document.createElement("BR"));cell.appendChild(itemlabel)}else{cell.appendChild(itembox);cell.appendChild(itemlabel)}}j++}}if(question.title==""){displayedtitle.classList.add("wfu_empty_label");
340
+ displayedtitle.innerHTML="{no title}"}else{displayedtitle.classList.remove("wfu_empty_label");displayedtitle.innerHTML=question.title}if(question.location!="bottom")itemspreview.insertBefore(displayedtitle,itemtable);else itemspreview.insertBefore(displayedtitle,null)}
341
+ function wfu_conquestion_mainprops_handler(e){if(wfu_allops_freeze_events)return;var policy=wfu_get_consent_policy();if(!policy)return;e=e||window.event;var item=par=e.target;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var i=parseInt(par.id.replace("wfu_conquestion_container_",""));var index=i-1;var question=policy.questions[index];var recreate=true;var is_mainprop=true;var update_optable=false;if(item.classList.contains("wfu_conquestion_titletext"))question.title=
342
+ item.value;else if(item.classList.contains("wfu_conquestion_matrix_x"))question.x=item.value;else if(item.classList.contains("wfu_conquestion_matrix_y"))question.y=item.value;else if(item.classList.contains("wfu_conquestion_titlelocationlist"))question.location=item.value;else if(item.classList.contains("wfu_conquestion_groupedbox")){question.grouped=item.checked?1:0;if(question.grouped==1){var qpreselect_count=0;for(var j=0;j<question.items.length;j++)if(qpreselect_count==1)question.items[j].preselect=
343
+ 0;else if(question.items[j].preselect==1)qpreselect_count++}}else if(item.classList.contains("wfu_conquestion_typelist")){question.type=item.value;if(question.type=="prompt"){question.x=1;question.y=1;question.title="";question.location="top";question.grouped=0}}else{var itemcontainers=document.querySelectorAll("#wfu_conquestion_container_"+i+" .wfu_conquestion_itemcontainer.wfu_item_selected");if(itemcontainers.length==0)return;var itemindex=itemcontainers[0].parentNode.rowIndex*itemcontainers[0].parentNode.cells.length+
344
+ itemcontainers[0].cellIndex+1;var qitem=null;var qindex=question.items.length;for(var j=0;j<question.items.length;j++)if(question.items[j].index==itemindex){qitem=question.items[j];break}else if(question.items[j].index>itemindex){qindex=j;break}if(!qitem){qitem={index:itemindex,label:"",location:"right",preselect:false,visible:1,operations:{}};question.items.splice(qindex,0,qitem)}if(item.classList.contains("wfu_conquestion_labeltext"))qitem.label=item.value;else if(item.classList.contains("wfu_conquestion_labellocationlist"))qitem.location=
345
+ item.value;else if(item.classList.contains("wfu_conquestion_preselectedbox")){if(item.checked&&question.grouped==1)for(var j=0;j<question.items.length;j++)question.items[j].preselect=0;qitem.preselect=item.checked?1:0}else if(item.classList.contains("wfu_conquestion_visiblebox")){qitem.visible=item.checked?1:0;update_optable=true}recreate=false;is_mainprop=false}wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_update_consent_question(index,recreate);if(is_mainprop){wfu_update_consent_question_itemprops(index,
346
+ -1);wfu_consent_question_operations_reassign()}if(update_optable){wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(i,itemindex)}wfu_allops_freeze_events=false}
347
+ function wfu_conquestion_itempreviewer_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=par=e.target;var qcount=document.querySelectorAll(".wfu_conquestion_container").length;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var i=parseInt(par.id.replace("wfu_conquestion_container_",""));var index=i-1;if(!item.classList.contains("wfu_conquestion_itemcontainer"))item=item.parentNode;var itemindex=-1;if(item.classList.contains("wfu_conquestion_itemcontainer"))itemindex=
348
+ item.parentNode.rowIndex*item.parentNode.cells.length+item.cellIndex+1;wfu_allops_freeze_events=true;for(var j=0;j<qcount;j++)wfu_update_consent_question_itemprops(j,-1);wfu_update_consent_question_itemprops(index,itemindex);wfu_allops_freeze_events=false}
349
+ function wfu_update_consent_question_itemprops(index,itemindex){var policy=wfu_get_consent_policy();if(!policy)return;var question=policy.questions[index];var i=index+1;var itemcontainers=document.querySelectorAll("#wfu_conquestions_container .wfu_conquestion_itemcontainer");var itemcontainer=null;var contindex=0;var contitemindex=1;for(var j=0;j<itemcontainers.length;j++){itemcontainers[j].classList.remove("wfu_item_selected");var par=itemcontainers[j];while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));
350
+ if(parseInt(par.id.replace("wfu_conquestion_container_",""))>contindex){contindex++;contitemindex=1}if(contindex==i&&contitemindex==itemindex)itemcontainer=itemcontainers[j];contitemindex++}if(itemcontainer)itemcontainer.classList.add("wfu_item_selected");var labeltext=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_labeltext");var labellocationlist=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_labellocationlist");var preselectedbox=document.querySelector("#wfu_conquestion_container_"+
351
+ i+" .wfu_conquestion_preselectedbox");var visiblebox=document.querySelector("#wfu_conquestion_container_"+i+" .wfu_conquestion_visiblebox");var qindex=-1;for(var j=0;j<question.items.length;j++)if(question.items[j].index==itemindex){qindex=j;break}if(qindex<0){labeltext.value="";labeltext.disabled=itemindex<1;labellocationlist.value="right";labellocationlist.disabled=itemindex<1;preselectedbox.checked=false;preselectedbox.disabled=itemindex<1;visiblebox.checked=true;visiblebox.disabled=itemindex<
352
+ 1}else{labeltext.disabled=false;labeltext.value=question.items[qindex].label;labellocationlist.disabled=question.type=="prompt";labellocationlist.value=question.type=="prompt"?"":question.items[qindex].location;preselectedbox.disabled=question.type=="prompt";preselectedbox.checked=question.type=="prompt"?false:question.items[qindex].preselect==1;visiblebox.disabled=question.type=="prompt"?true:index==0&&itemindex==1;visiblebox.checked=question.type=="prompt"?true:typeof question.items[qindex].visible==
353
+ "undefined"||question.items[qindex].visible==1}wfu_consent_question_optable_update(i,itemindex)}
354
+ function wfu_consent_question_optable_recreate(){var oplist=[];var policy=wfu_get_consent_policy();if(policy){if(typeof wfu_PD_bank.conops!="undefined")for(var id in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(id))wfu_PD_bank.conops[id].active=false;var optable=document.getElementById("wfu_conquestions_optable");var body=optable.tBodies[0];while(body.rows.length>0)optable.rows[0].remove();var i=0;for(var id in wfu_PD_bank.allowedstatus)if(wfu_PD_bank.allowedstatus.hasOwnProperty(id)){var included=
355
+ true;included=included&&(policy.children_index[id].length==0&&(wfu_PD_bank.params.oplevels<1||wfu_PD_bank.level[id]<=wfu_PD_bank.params.oplevels)||policy.children_index[id].length>0&&wfu_PD_bank.level[id]==wfu_PD_bank.params.oplevels);included=included&&wfu_PD_bank.needsconsentstatus[id]==1;included=included&&wfu_PD_bank.visible[id];if(included){if(typeof wfu_PD_bank.conops=="undefined")wfu_PD_bank.conops={};wfu_PD_bank.conops[id]={active:true,qindex:[1],itemindex:[1],inverse:[false],unassigned:true,
356
+ nonevisible:false};var row=body.insertRow(i);row.id="wfu_conquestions_oprow_"+id;var cell=row.insertCell(0);var name=policy.operations[id].Name;var parid=id;while((parid=policy.operations[parid].Parent)>0)name=policy.operations[parid].Name+"/"+name;cell.innerHTML=name;var cell=row.insertCell(1);var selbox=document.createElement("INPUT");selbox.type="radio";selbox.className="wfu_conquestions_opsel wfu_frozen";wfu_addEventHandler(selbox,"click",wfu_conquestion_optable_handler);cell.appendChild(selbox);
357
+ var cell=row.insertCell(2);var invbox=document.createElement("INPUT");invbox.type="checkbox";invbox.className="wfu_conquestions_opinv wfu_frozen";invbox.disabled=true;wfu_addEventHandler(invbox,"change",wfu_conquestion_optable_handler);cell.appendChild(invbox);i++}}}}
358
+ function wfu_consent_question_operations_reassign(){var policy=wfu_get_consent_policy();if(policy){for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)){wfu_PD_bank.conops[opid].qindex=[];wfu_PD_bank.conops[opid].itemindex=[];wfu_PD_bank.conops[opid].inverse=[];wfu_PD_bank.conops[opid].unassigned=true;wfu_PD_bank.conops[opid].nonevisible=true}for(var i=0;i<policy.questions.length;i++){var question=policy.questions[i];for(var j=0;j<question.items.length;j++){var qitem=question.items[j];
359
+ for(var opid in qitem.operations)if(qitem.operations.hasOwnProperty(opid))if(typeof wfu_PD_bank.conops[opid]!="undefined")if(wfu_PD_bank.params.multi_op_assignments||wfu_PD_bank.conops[opid].qindex.length==0){wfu_PD_bank.conops[opid].qindex.push(i+1);wfu_PD_bank.conops[opid].itemindex.push(j+1);wfu_PD_bank.conops[opid].inverse.push(qitem.operations[opid]==-1);wfu_PD_bank.conops[opid].unassigned=false}else delete qitem.operations[opid]}}for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)){var j=
360
+ 0;while(j<wfu_PD_bank.conops[opid].qindex.length){var qindex=wfu_PD_bank.conops[opid].qindex[j];var itemindex=wfu_PD_bank.conops[opid].itemindex[j];var remove=false;if(qindex<1||qindex>policy.questions.length)remove=true;else{var question=policy.questions[qindex-1];var qnum=question.x*question.y;if(itemindex<1||itemindex>qnum)remove=true}if(remove){wfu_PD_bank.conops[opid].qindex.splice(j,1);wfu_PD_bank.conops[opid].itemindex.splice(j,1);wfu_PD_bank.conops[opid].inverse.splice(j,1)}else{var qitem=
361
+ policy.questions[qindex-1].items[itemindex-1];if(typeof qitem.visible=="undefined"||qitem.visible)wfu_PD_bank.conops[opid].nonevisible=false;j++}}if(wfu_PD_bank.conops[opid].nonevisible){wfu_PD_bank.conops[opid].unassigned=wfu_PD_bank.conops[opid].qindex.length==0;wfu_PD_bank.conops[opid].qindex.splice(0,0,1);wfu_PD_bank.conops[opid].itemindex.splice(0,0,1);wfu_PD_bank.conops[opid].inverse.splice(0,0,false)}}wfu_set_consent_policy(policy);wfu_update_consent_question_item_assignments()}}
362
+ function wfu_update_consent_question_item_assignments(){var containers=document.querySelectorAll("#wfu_conquestions_container .wfu_conquestion_itemcontainer");for(var i=0;i<containers.length;i++)containers[i].classList.remove("wfu_item_assigned");for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)&&wfu_PD_bank.conops[opid].active)for(var j=0;j<wfu_PD_bank.conops[opid].qindex.length;j++){var qindex=wfu_PD_bank.conops[opid].qindex[j];var itemindex=wfu_PD_bank.conops[opid].itemindex[j];
363
+ var itemtable=document.querySelector("#wfu_conquestion_container_"+qindex+" .wfu_conquestion_itemtable");var x=itemtable.rows[0].cells.length;var rowindex=Math.floor((itemindex-1)/x);var cellindex=(itemindex-1)%x;itemtable.rows[rowindex].cells[cellindex].classList.add("wfu_item_assigned")}}
364
+ function wfu_conquestion_conop_bankpos(opid,index,itemindex){var pos=-1;for(var i=0;i<wfu_PD_bank.conops[opid].qindex.length;i++)if(wfu_PD_bank.conops[opid].qindex[i]==index&&wfu_PD_bank.conops[opid].itemindex[i]==itemindex){pos=i;break}return pos}
365
+ function wfu_consent_question_optable_update(index,itemindex){var freeze=index<1||itemindex<1;for(var opid in wfu_PD_bank.conops)if(wfu_PD_bank.conops.hasOwnProperty(opid)&&wfu_PD_bank.conops[opid].active){var oprow=document.getElementById("wfu_conquestions_oprow_"+opid);var selbox=document.querySelector("#wfu_conquestions_oprow_"+opid+" .wfu_conquestions_opsel");var invbox=document.querySelector("#wfu_conquestions_oprow_"+opid+" .wfu_conquestions_opinv");if(wfu_PD_bank.conops[opid].unassigned||wfu_PD_bank.conops[opid].nonevisible)oprow.classList.add("wfu_op_unassigned");
366
+ else oprow.classList.remove("wfu_op_unassigned");var pos=wfu_conquestion_conop_bankpos(opid,index,itemindex);selbox.checked=!freeze&&pos>-1;if(!freeze&&pos>-1&&(wfu_PD_bank.conops[opid].unassigned||wfu_PD_bank.conops[opid].nonevisible)&&index==1&&itemindex==1)selbox.classList.add("wfu_forced_selection");else selbox.classList.remove("wfu_forced_selection");invbox.checked=!freeze&&pos>-1&&wfu_PD_bank.conops[opid].inverse[pos];invbox.disabled=!(!freeze&&pos>-1);if(freeze){selbox.classList.add("wfu_frozen");
367
+ invbox.classList.add("wfu_frozen")}else{selbox.classList.remove("wfu_frozen");invbox.classList.remove("wfu_frozen")}}}
368
+ function wfu_conquestion_optable_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;var itemcontainer=document.querySelector("#wfu_conquestions_container .wfu_conquestion_itemcontainer.wfu_item_selected");if(!itemcontainer)return;var par=itemcontainer;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var index=parseInt(par.id.replace("wfu_conquestion_container_",""));var itemcontainers=document.querySelectorAll("#wfu_conquestion_container_"+
369
+ index+" .wfu_conquestion_itemcontainer");var itemindex=-1;for(var j=0;j<itemcontainers.length;j++)if(itemcontainers[j]==itemcontainer){itemindex=j+1;break}var policy=wfu_get_consent_policy();if(!policy)return;if(!item.classList.contains("wfu_conquestions_opsel")&&!item.classList.contains("wfu_conquestions_opinv"))return;var opid=parseInt(item.parentNode.parentNode.id.replace("wfu_conquestions_oprow_",""));var opas=wfu_PD_bank.conops[opid];var pos=wfu_conquestion_conop_bankpos(opid,index,itemindex);
370
+ if(pos<0||opas.unassigned){if(!wfu_PD_bank.params.multi_op_assignments||opas.unassigned){var question=policy.questions[opas.qindex[0]-1];for(var j=0;j<question.items.length;j++)if(question.items[j].index==opas.itemindex[0]){if(typeof question.items[j].operations[opid]!="undefined")delete question.items[j].operations[opid];break}opas.qindex.splice(0,1);opas.itemindex.splice(0,1);opas.inverse.splice(0,1)}opas.qindex.push(index);opas.itemindex.push(itemindex);opas.inverse.push(document.querySelector("#wfu_conquestions_oprow_"+
371
+ opid+" .wfu_conquestions_opinv").checked);opas.unassigned=false;pos=opas.qindex.length-1;var question=policy.questions[opas.qindex[pos]-1];var qitem=null;var qindex=question.items.length;for(var j=0;j<question.items.length;j++)if(question.items[j].index==opas.itemindex[pos]){qitem=question.items[j];qitem.operations[opid]=opas.inverse[pos]?-1:1;break}else if(question.items[j].index>itemindex){qindex=j;break}if(!qitem){qitem={index:opas.itemindex[pos],label:"",location:"right",preselect:false,operations:{}};
372
+ qitem.operations[opid]=opas.inverse[pos]?-1:1;question.items.splice(qindex,0,qitem)}wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(index,itemindex);wfu_update_consent_question_item_assignments();wfu_allops_freeze_events=false}else if(item.classList.contains("wfu_conquestions_opsel")&&pos>=0){var question=policy.questions[opas.qindex[pos]-1];for(var j=0;j<question.items.length;j++)if(question.items[j].index==
373
+ opas.itemindex[pos]){if(typeof question.items[j].operations[opid]!="undefined")delete question.items[j].operations[opid];break}opas.qindex.splice(pos,1);opas.itemindex.splice(pos,1);opas.inverse.splice(pos,1);wfu_set_consent_policy(policy);wfu_allops_freeze_events=true;item.checked=false;wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(index,itemindex);wfu_update_consent_question_item_assignments();wfu_allops_freeze_events=false}else if(item.classList.contains("wfu_conquestions_opinv")){opas.inverse[pos]=
374
+ item.checked;var question=policy.questions[opas.qindex[pos]-1];for(var j=0;j<question.items.length;j++)if(question.items[j].index==opas.itemindex[pos]){question.items[j].operations[opid]=opas.inverse[pos]?-1:1;break}wfu_set_consent_policy(policy)}}
375
+ function wfu_conquestion_tools_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;var qcount=document.querySelectorAll(".wfu_conquestion_container").length;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_conquestion_container"));var index=parseInt(par.id.replace("wfu_conquestion_container_",""))-1;wfu_allops_freeze_events=true;var action="";if(item.classList.contains("wfu_conquestion_add"))action="add";else if(item.classList.contains("wfu_conquestion_remove")&&
376
+ qcount>1)action="remove";else if(item.classList.contains("wfu_conquestion_up")&&index>0)action="up";else if(item.classList.contains("wfu_conquestion_down")&&index<qcount-1)action="down";if(action!=""){wfu_update_consent_question_itemprops(0,-1);wfu_consent_question_action(action,index);wfu_consent_question_operations_reassign();wfu_consent_question_optable_update(0,0);wfu_update_conquestion_header()}wfu_allops_freeze_events=false}
377
+ function wfu_update_conquestion_header(){var labels=document.querySelectorAll(".wfu_conquestion_headerlabel");var add_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_add");var remove_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_remove");var up_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_up");var down_btns=document.querySelectorAll(".wfu_conquestion_tools .wfu_conquestion_btn.wfu_conquestion_down");
378
+ for(var i=0;i<labels.length;i++){labels[i].innerHTML="Question "+(i+1);if(labels.length>1)remove_btns[i].classList.remove("wfu_tool_disabled");else remove_btns[i].classList.add("wfu_tool_disabled");if(i>0)up_btns[i].classList.remove("wfu_tool_disabled");else up_btns[i].classList.add("wfu_tool_disabled");if(i<labels.length-1)down_btns[i].classList.remove("wfu_tool_disabled");else down_btns[i].classList.add("wfu_tool_disabled")}}
379
+ function wfu_permissions_update(updatehtml){function _wfu_nested_perms_update(item,level){var id=item.ID;if(item.children.length>0){policy.permissions[id].allowedstatus={};for(var j=0;j<item.children.length;j++){_wfu_nested_perms_update(item.children[j],level+1);var id2=item.children[j].ID;for(var locid in policy.permissions[id2].allowedstatus)if(policy.permissions[id2].allowedstatus.hasOwnProperty(locid)){var allowedstatus2=policy.permissions[id2].allowedstatus[locid];if(typeof policy.permissions[id].allowedstatus[locid]==
380
+ "undefined")policy.permissions[id].allowedstatus[locid]=allowedstatus2;else if(policy.permissions[id].allowedstatus[locid]*allowedstatus2<1)policy.permissions[id].allowedstatus[locid]=0}}}else{var allowed=policy.permissions[id].Allowed;policy.permissions[id].allowedstatus={};for(var k=0;k<policy.permissions[id].Locations.length;k++){var locid=policy.permissions[id].Locations[k];policy.permissions[id].allowedstatus[locid]=allowed.indexOf(locid)>-1?1:-1}}if(typeof wfu_PD_bank.perallowedstatus=="undefined")wfu_PD_bank.perallowedstatus=
381
+ {};wfu_PD_bank.perallowedstatus[id]=policy.permissions[id].allowedstatus;if(updatehtml){var row=document.getElementById("wfu_perm_row_"+id);for(var locid in policy.permissions[id].allowedstatus)if(policy.permissions[id].allowedstatus.hasOwnProperty(locid)){var check=document.querySelector("#wfu_perm_row_"+id+" .wfu_location_cell:nth-child("+(parseInt(locid)+1)+") input");wfu_set_checkbox_status(check,policy.permissions[id].allowedstatus[locid])}}}var policy=wfu_get_permissions_policy();if(policy){console.log(policy);
382
+ wfu_allops_freeze_events=true;for(var i=0;i<policy.structure.length;i++)_wfu_nested_perms_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
383
+ function wfu_adjust_permissions_levels(){function _wfu_force_permission_update_nested(item,locid){var id=item.ID;if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_force_permission_update_nested(item.children[j],locid);else if(policy.permissions[id].Allowed.indexOf(locid)==-1&&policy.permissions[id].Locations.indexOf(locid)>-1)policy.permissions[id].Allowed.push(locid)}function _wfu_nested_adjust_permissions_levels(item,level){if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_nested_adjust_permissions_levels(item.children[j],
384
+ level+1);var id=item.ID;for(var locid in wfu_PD_bank.perallowedstatus[id])if(wfu_PD_bank.perallowedstatus[id].hasOwnProperty(locid))if(wfu_PD_bank.perallowedstatus[id][locid]==0&&level==wfu_PD_bank.params.perlevels){_wfu_force_permission_update_nested(item,parseInt(locid));wfu_PD_bank.perallowedstatus[id][locid]=1;policy_needs_update=true}}wfu_permissions_update(false);var policy=wfu_get_permissions_policy();if(policy){var policy_needs_update=false;for(var i=0;i<policy.structure.length;i++)_wfu_nested_adjust_permissions_levels(policy.structure[i],
385
+ 1);if(policy_needs_update)wfu_set_permissions_policy(policy)}}
386
+ function wfu_perm_toggle(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_location_selector"))return;var id=obj.parentNode.parentNode.id.replace("wfu_perm_row_","");var locid=obj.parentNode.cellIndex;var policy=wfu_get_permissions_policy();if(policy){if(typeof policy.permissions[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)obj.classList.remove("indeterminate");
387
+ if(policy.children_index[id].length>0){var level=1;var parid=id;while((parid=policy.permissions[parid].Parent)>0)level++;if((wfu_PD_bank.params.perlevels<1||level<wfu_PD_bank.params.perlevels)&&!confirm("This will make all children permissions "+(new_status?"allowed":"not allowed")+". Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==
388
+ 0){var locindex2=policy.permissions[id2].Allowed.indexOf(locid);if(new_status&&locindex2==-1&&policy.permissions[id2].Locations.indexOf(locid)>-1)policy.permissions[id2].Allowed.push(locid);else if(!new_status&&locindex2>-1)policy.permissions[id2].Allowed.splice(locindex2,1)}}}else{var locindex=policy.permissions[id].Allowed.indexOf(locid);if(new_status&&locindex==-1&&policy.permissions[id].Locations.indexOf(locid)>-1)policy.permissions[id].Allowed.push(locid);else if(!new_status&&locindex>-1)policy.permissions[id].Allowed.splice(locindex,
389
+ 1)}wfu_set_permissions_policy(policy);wfu_allops_freeze_events=true;wfu_permissions_update(true);wfu_allops_freeze_events=false}}
390
+ function wfu_perm_button_action(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_perm_button"))return;var policy=wfu_get_permissions_policy();if(policy){var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_perm_row"));var id=parseInt(par.id.replace("wfu_perm_row_",""));obj.classList.toggle("expanded");for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];var parid=id2;var visible=true;while((parid=policy.permissions[parid].Parent)>
391
+ 0)visible=visible&&document.querySelector("#wfu_perm_row_"+parid+" .wfu_perm_button")&&document.querySelector("#wfu_perm_row_"+parid+" .wfu_perm_button").classList.contains("expanded");document.getElementById("wfu_perm_row_"+id2).style.display=visible?"table-row":"none"}}}
392
+ function wfu_logactions_update(updatehtml){function _wfu_nested_logactions_update(item,level){var id=item.ID;if(item.children.length>0){policy.logactions[id].allowedstatus={};for(var j=0;j<item.children.length;j++){_wfu_nested_logactions_update(item.children[j],level+1);var id2=item.children[j].ID;for(var entid in policy.logactions[id2].allowedstatus)if(policy.logactions[id2].allowedstatus.hasOwnProperty(entid)){var allowedstatus2=policy.logactions[id2].allowedstatus[entid];if(typeof policy.logactions[id].allowedstatus[entid]==
393
+ "undefined")policy.logactions[id].allowedstatus[entid]=allowedstatus2;else if(policy.logactions[id].allowedstatus[entid]*allowedstatus2<1)policy.logactions[id].allowedstatus[entid]=0}}}else{var allowed=policy.logactions[id].Allowed;policy.logactions[id].allowedstatus={};for(var k=0;k<policy.logactions[id].Entities.length;k++){var entid=policy.logactions[id].Entities[k];policy.logactions[id].allowedstatus[entid]=allowed.indexOf(entid)>-1?1:-1}}if(typeof wfu_PD_bank.logallowedstatus=="undefined")wfu_PD_bank.logallowedstatus=
394
+ {};wfu_PD_bank.logallowedstatus[id]=policy.logactions[id].allowedstatus;if(updatehtml){var row=document.getElementById("wfu_log_row_"+id);for(var entid in policy.logactions[id].allowedstatus)if(policy.logactions[id].allowedstatus.hasOwnProperty(entid)){var check=document.querySelector("#wfu_log_row_"+id+" .wfu_entity_cell:nth-child("+(parseInt(entid)+1)+") input");wfu_set_checkbox_status(check,policy.logactions[id].allowedstatus[entid])}}}var policy=wfu_get_logactions_policy();if(policy){console.log(policy);
395
+ wfu_allops_freeze_events=true;for(var i=0;i<policy.structure.length;i++)_wfu_nested_logactions_update(policy.structure[i],1);wfu_allops_freeze_events=false}}
396
+ function wfu_adjust_logactions_levels(){function _wfu_force_logaction_update_nested(item,entid){var id=item.ID;if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_force_logaction_update_nested(item.children[j],entid);else if(policy.logactions[id].Allowed.indexOf(entid)==-1&&policy.logactions[id].Entities.indexOf(entid)>-1)policy.logactions[id].Allowed.push(entid)}function _wfu_nested_adjust_logactions_levels(item,level){if(item.children.length>0)for(var j=0;j<item.children.length;j++)_wfu_nested_adjust_logactions_levels(item.children[j],
397
+ level+1);var id=item.ID;for(var entid in wfu_PD_bank.logallowedstatus[id])if(wfu_PD_bank.logallowedstatus[id].hasOwnProperty(entid))if(wfu_PD_bank.logallowedstatus[id][entid]==0&&level==wfu_PD_bank.params.loglevels){_wfu_force_logaction_update_nested(item,parseInt(entid));wfu_PD_bank.logallowedstatus[id][entid]=1;policy_needs_update=true}}wfu_logactions_update(false);var policy=wfu_get_logactions_policy();if(policy){var policy_needs_update=false;for(var i=0;i<policy.structure.length;i++)_wfu_nested_adjust_logactions_levels(policy.structure[i],
398
+ 1);if(policy_needs_update)wfu_set_logactions_policy(policy)}}
399
+ function wfu_log_toggle(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_entity_selector"))return;var id=obj.parentNode.parentNode.id.replace("wfu_log_row_","");var entid=obj.parentNode.cellIndex;var policy=wfu_get_logactions_policy();if(policy){if(typeof policy.logactions[id]=="undefined")return;var prev_status=obj.classList.contains("indeterminate")?0:obj.checked?-1:1;var new_status=obj.classList.contains("indeterminate")?true:obj.checked;if(!obj.indeterminate)obj.classList.remove("indeterminate");
400
+ if(policy.children_index[id].length>0){var level=1;var parid=id;while((parid=policy.logactions[parid].Parent)>0)level++;if((wfu_PD_bank.params.loglevels<1||level<wfu_PD_bank.params.loglevels)&&!confirm("This will make all children log actions "+(new_status?"allowed":"not allowed")+". Continue?")){wfu_allops_freeze_events=true;wfu_set_checkbox_status(obj,prev_status);wfu_allops_freeze_events=false;return}for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];if(policy.children_index[id2].length==
401
+ 0){var entindex2=policy.logactions[id2].Allowed.indexOf(entid);if(new_status&&entindex2==-1&&policy.logactions[id2].Entities.indexOf(entid)>-1)policy.logactions[id2].Allowed.push(entid);else if(!new_status&&entindex2>-1)policy.logactions[id2].Allowed.splice(entindex2,1)}}}else{var entindex=policy.logactions[id].Allowed.indexOf(entid);if(new_status&&entindex==-1&&policy.logactions[id].Entities.indexOf(entid)>-1)policy.logactions[id].Allowed.push(entid);else if(!new_status&&entindex>-1)policy.logactions[id].Allowed.splice(entindex,
402
+ 1)}wfu_set_logactions_policy(policy);wfu_allops_freeze_events=true;wfu_logactions_update(true);wfu_allops_freeze_events=false}}
403
+ function wfu_log_button_action(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_log_button"))return;var policy=wfu_get_logactions_policy();if(policy){var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_log_row"));var id=parseInt(par.id.replace("wfu_log_row_",""));obj.classList.toggle("expanded");for(var i=0;i<policy.children_index[id].length;i++){var id2=policy.children_index[id][i];var parid=id2;var visible=true;while((parid=policy.logactions[parid].Parent)>
404
+ 0)visible=visible&&document.querySelector("#wfu_log_row_"+parid+" .wfu_log_button")&&document.querySelector("#wfu_log_row_"+parid+" .wfu_log_button").classList.contains("expanded");document.getElementById("wfu_log_row_"+id2).style.display=visible?"table-row":"none"}}}
405
+ function wfu_pdusers_addrole_handler(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_pdusers_roles_add"))return;var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_roles_container"));var type=par.id.replace(/^wfu_pdusers_roles_(in|out)_container$/,"$1");var roles=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_list");var names=[];for(var i=0;i<roles.options.length;i++)if(roles.options[i].selected)names.push(roles.options[i].value);
406
+ wfu_allops_freeze_events=true;wfu_pdusers_add_roles(type,names);wfu_allops_freeze_events=false}
407
+ function wfu_pdusers_add_roles(type,names){var show=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_show");var roles=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_list");var selected=document.querySelectorAll("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_rightpanel .wfu_pdusers_roles_role");var source=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]').checked?"in":"out";var btype=type=="in"?
408
+ "included":"excluded";var count=selected.length;for(var i=0;i<names.length;i++){var title="";if(names[i]=="all")title="All";else for(var j=0;j<roles.options.length;j++)if(roles.options[j].value==names[i]){title=roles.options[j].innerHTML;break}if(title!=""){var already_in=false;for(var j=0;j<selected.length;j++)if(selected[j].roleName==names[i]){already_in=true;break}if(!already_in){var pos=wfu_PD_bank.pdusers.rolestates[source][btype].indexOf(names[i]);if(pos==-1)wfu_PD_bank.pdusers.rolestates[source][btype].push(names[i]);
409
+ if(count>0)show.appendChild(document.createElement("BR"));var role=document.createElement("DIV");role.classList.add("wfu_pdusers_roles_role");role.roleName=names[i];role.innerHTML=title;if(names[i]=="all")role.classList.add("wfu_pdusers_roles_all");else{var delbtn=document.createElement("SPAN");wfu_addEventHandler(delbtn,"click",wfu_pdusers_removerole_handler);role.appendChild(delbtn)}show.appendChild(role);count++}}}}
410
+ function wfu_pdusers_clear_roles(type){var show=document.querySelector("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_show");var selected=document.querySelectorAll("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_rightpanel .wfu_pdusers_roles_role");var brs=document.querySelectorAll("#wfu_pdusers_roles_"+type+"_container .wfu_pdusers_roles_rightpanel br");for(var i=0;i<selected.length;i++)show.removeChild(selected[i]);for(var i=0;i<brs.length;i++)show.removeChild(brs[i])}
411
+ function wfu_pdusers_removerole_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;if(!item.parentNode.classList.contains("wfu_pdusers_roles_role"))return;var role=item.parentNode.roleName;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_roles_container"));var type=par.id.replace(/^wfu_pdusers_roles_(in|out)_container$/,"$1");var source=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]').checked?"in":"out";var btype=
412
+ type=="in"?"included":"excluded";var pos=wfu_PD_bank.pdusers.rolestates[source][btype].indexOf(role);if(pos>-1)wfu_PD_bank.pdusers.rolestates[source][btype].splice(pos,1);var br1=item.parentNode.previousSibling;var br2=item.parentNode.nextSibling;var show=document.querySelector("#"+par.id+" .wfu_pdusers_roles_show");wfu_allops_freeze_events=true;show.removeChild(item.parentNode);if(br1&&br1.tagName&&br1.tagName=="BR")show.removeChild(br1);else if(br2&&br2.tagName&&br2.tagName=="BR")show.removeChild(br2);
413
+ wfu_allops_freeze_events=false}
414
+ function wfu_pdusers_update(){var pd_users=wfu_get_pd_users();if(pd_users){console.log(pd_users);wfu_PD_bank.pdusers={rolestates:{"in":{included:[],excluded:[]},out:{included:["all"],excluded:[]}}};var userin_input=document.querySelector('#wfu_pdusers_users_in_container .wfu_pdusers_users_leftpanel input[type="text"]');wfu_attach_element_handlers(userin_input,wfu_pdusers_get_users);var userout_input=document.querySelector('#wfu_pdusers_users_out_container .wfu_pdusers_users_leftpanel input[type="text"]');wfu_attach_element_handlers(userout_input,
415
+ wfu_pdusers_get_users);wfu_PD_bank.pdusers.userinput={"in":{prev_value:""},out:{prev_value:""},xhr:null};var radioin=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]');var rolein_list=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_list");var rolein_back=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_back");var radioout=document.querySelector('#wfu_pdusers_roles_out_container input[type="radio"]');var roleout_list=document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_list");
416
+ var roleout_back=document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_back");if(pd_users.roles_included.length>0&&pd_users.roles_included[0]!="all"||pd_users.roles_excluded.length==1&&pd_users.roles_excluded[0]=="all"||pd_users.roles_included.length==0&&pd_users.roles_excluded.length==0){wfu_PD_bank.pdusers.rolestates["in"].included=pd_users.roles_included;rolein_list.disabled=false;rolein_back.classList.add("active");roleout_list.disabled=true;roleout_back.classList.remove("active");
417
+ radioin.checked=true;wfu_pdusers_add_roles("in",pd_users.roles_included);wfu_pdusers_add_roles("out",[])}else{wfu_PD_bank.pdusers.rolestates.out.excluded=pd_users.roles_excluded;rolein_list.disabled=true;rolein_back.classList.remove("active");roleout_list.disabled=false;roleout_back.classList.add("active");radioout.checked=true;wfu_pdusers_add_roles("in",["all"]);wfu_pdusers_add_roles("out",pd_users.roles_excluded)}}}
418
+ function wfu_pdusers_roletype_handler(obj){if(wfu_allops_freeze_events)return;if(obj.name!="wfu_pdusers_roletypes")return;var radioin=document.querySelector('#wfu_pdusers_roles_in_container input[type="radio"]');var rolein_list=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_list");var rolein_back=document.querySelector("#wfu_pdusers_roles_in_container .wfu_pdusers_roles_back");var radioout=document.querySelector('#wfu_pdusers_roles_out_container input[type="radio"]');var roleout_list=
419
+ document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_list");var roleout_back=document.querySelector("#wfu_pdusers_roles_out_container .wfu_pdusers_roles_back");wfu_allops_freeze_events=true;wfu_pdusers_clear_roles("in");wfu_pdusers_clear_roles("out");if(obj.value=="include"){rolein_list.disabled=false;rolein_back.classList.add("active");roleout_list.disabled=true;roleout_back.classList.remove("active");radioin.checked=true;wfu_pdusers_add_roles("in",wfu_PD_bank.pdusers.rolestates["in"].included);
420
+ wfu_pdusers_add_roles("out",wfu_PD_bank.pdusers.rolestates["in"].excluded)}else{rolein_list.disabled=true;rolein_back.classList.remove("active");roleout_list.disabled=false;roleout_back.classList.add("active");radioout.checked=true;wfu_pdusers_add_roles("in",wfu_PD_bank.pdusers.rolestates.out.included);wfu_pdusers_add_roles("out",wfu_PD_bank.pdusers.rolestates.out.excluded)}wfu_allops_freeze_events=false}
421
+ function wfu_pdusers_adduser_handler(obj){if(wfu_allops_freeze_events)return;if(!obj.classList.contains("wfu_pdusers_users_add"))return;var par=obj;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_users_container"));var type=par.id.replace(/^wfu_pdusers_users_(in|out)_container$/,"$1");var users=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_list");var names=[];for(var i=0;i<users.options.length;i++)if(users.options[i].selected)names.push(users.options[i].value);
422
+ wfu_allops_freeze_events=true;wfu_pdusers_add_users(type,names);wfu_allops_freeze_events=false}
423
+ function wfu_pdusers_add_users(type,names){var show=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_show");var users=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_list");var selected=document.querySelectorAll("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_rightpanel .wfu_pdusers_users_user");var otherselected=document.querySelectorAll("#wfu_pdusers_users_"+(type=="in"?"out":"in")+"_container .wfu_pdusers_users_rightpanel .wfu_pdusers_users_user");
424
+ var count=selected.length;for(var i=0;i<names.length;i++){var title="";for(var j=0;j<users.options.length;j++)if(users.options[j].value==names[i]){title=users.options[j].innerHTML;break}if(title!=""){var already_in=false;for(var j=0;j<selected.length;j++)if(selected[j].userName==names[i]){already_in=true;break}if(!already_in){if(count>0)show.appendChild(document.createElement("BR"));for(var j=0;j<otherselected.length;j++)if(otherselected[j].userName==names[i]){var prev_wfu_allops_freeze_events=wfu_allops_freeze_events;
425
+ wfu_allops_freeze_events=false;wfu_pdusers_removeuser_handler({target:otherselected[j].children[0]});wfu_allops_freeze_events=prev_wfu_allops_freeze_events;break}var user=document.createElement("DIV");user.classList.add("wfu_pdusers_users_user");user.userName=names[i];user.innerHTML=title;var delbtn=document.createElement("SPAN");wfu_addEventHandler(delbtn,"click",wfu_pdusers_removeuser_handler);user.appendChild(delbtn);show.appendChild(user);count++}}}}
426
+ function wfu_pdusers_removeuser_handler(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;if(!item.parentNode.classList.contains("wfu_pdusers_users_user"))return;var user=item.parentNode.userName;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_users_container"));var type=par.id.replace(/^wfu_pdusers_users_(in|out)_container$/,"$1");var br1=item.parentNode.previousSibling;var br2=item.parentNode.nextSibling;var show=document.querySelector("#"+
427
+ par.id+" .wfu_pdusers_users_show");wfu_allops_freeze_events=true;show.removeChild(item.parentNode);if(br1&&br1.tagName&&br1.tagName=="BR")show.removeChild(br1);else if(br2&&br2.tagName&&br2.tagName=="BR")show.removeChild(br2);wfu_allops_freeze_events=false}
428
+ function wfu_pdusers_get_users(e){if(wfu_allops_freeze_events)return;e=e||window.event;var item=e.target;if(!item.parentNode.classList.contains("wfu_pdusers_users_leftpanel"))return;var par=item;while((par=par.parentElement)&&!par.classList.contains("wfu_pdusers_users_container"));var type=par.id.replace(/^wfu_pdusers_users_(in|out)_container$/,"$1");if(item.value==wfu_PD_bank.pdusers.userinput[type].prev_value)return;wfu_PD_bank.pdusers.userinput[type].prev_value=item.value;if(wfu_PD_bank.pdusers.xhr!=
429
+ null){wfu_PD_bank.pdusers.xhr.abort();wfu_PD_bank.pdusers.xhr=null}var userlist=document.querySelector("#wfu_pdusers_users_"+type+"_container .wfu_pdusers_users_list");if(item.value==""){var length=userlist.options.length;for(i=0;i<length;i++)userlist.options[0]=null;return}var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_pdusers_get_users";params[1]=new Array(2);params[1][0]=
430
+ "nonce";params[1][1]=document.getElementById("_wpnonce").value;params[2]=new Array(2);params[2][0]="query";params[2][1]=item.value;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="pdusers_get_users:";var pos=xhr.responseText.indexOf(start_text);
431
+ if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);var users_str=wfu_plugin_decode_string(response);var users=null;try{users=JSON.parse(users_str)}catch(e$2){}var length=userlist.options.length;for(i=0;i<length;i++)userlist.options[i]=null;for(i=0;i<users.length;i++){var opt=document.createElement("OPTION");opt.value=users[i].user_login;opt.innerHTML=users[i].display_name+
432
+ " ("+users[i].user_login+")";userlist.options.add(opt)}}};wfu_PD_bank.pdusers.xhr=xhr;xhr.send(parameters)}function wfu_initialize_consent_policy_basic(){wfu_PD_bank.userinput={prev_value:"",xhr:null,prev_select:-1};wfu_attach_element_handlers(document.getElementById("wfu_pd_user_box0"),wfu_pd_get_users_basic)}
433
+ function wfu_pd_get_users_basic(e){e=e||window.event;var item=e.target;if(!item.classList.contains("wfu_pd_user_box0"))return;if(item.value==wfu_PD_bank.userinput)return;var userlist=document.getElementById("wfu_pd_user_select0");wfu_PD_bank.userinput=item.value;if(wfu_PD_bank.userinput.xhr!=null){wfu_PD_bank.userinput.xhr.abort();wfu_PD_bank.userinput.xhr=null}if(item.value==""){var length=userlist.options.length;for(i=0;i<length;i++)userlist.options[0]=null;return}var xhr=wfu_GetHttpRequestObject();
434
+ if(xhr==null)return;var url=AdminParams.wfu_ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_pdusers_get_users";params[1]=new Array(2);params[1][0]="nonce";params[1][1]=document.getElementById("_wpnonce").value;params[2]=new Array(2);params[2][0]="query";params[2][1]=item.value;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type",
435
+ "application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var start_text="pdusers_get_users:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);var users_str=wfu_plugin_decode_string(response);var users=null;try{users=JSON.parse(users_str)}catch(e$3){}var length=
436
+ userlist.options.length;for(i=0;i<length;i++)userlist.options[0]=null;for(i=0;i<users.length;i++){var opt=document.createElement("OPTION");opt.value=users[i].user_login;opt.innerHTML=users[i].display_name+" ("+users[i].user_login+")";userlist.options.add(opt)}}};wfu_PD_bank.userinput.xhr=xhr;xhr.send(parameters)}
437
+ function wfu_export_user_data(){var userlist=document.getElementById("wfu_pd_user_select0");if(userlist.selectedIndex<0){alert("No user has been selected!");return}var params={username:userlist.options[userlist.selectedIndex].value};var params_str=JSON.stringify(params);wfu_download_file("exportdata:"+params_str,1)}
438
+ function wfu_erase_user_data_check(){var userlist=document.getElementById("wfu_pd_user_select0");var anchor=document.getElementById("wfu_erase_userdata0");if(userlist.selectedIndex<0){alert("No user has been selected!");return false}else{anchor.href=anchor.href.replace(/action=erase_userdata_ask.*$/,"action=erase_userdata_ask&username="+userlist.options[userlist.selectedIndex].value);return true}}
439
+ function wfu_pd_pre_save_actions(){var wfu_PD_bank_str=JSON.stringify(wfu_PD_bank);document.getElementById("wfu_PD_bank").value=wfu_plugin_encode_string(wfu_PD_bank_str)};
js/wordpress_file_upload_functions.js CHANGED
@@ -1,152 +1,152 @@
1
- GlobalData={};Code_Initializators=[];GlobalData.WFU={n:[]};GlobalData.WFUB={n:[]};GlobalData.filestatematch={};GlobalData.filestatematch.success=[0,1,2,2];GlobalData.filestatematch.warning=[1,1,2,2];GlobalData.filestatematch.error1=[3,3,2,3];GlobalData.filestatematch.error2=[2,2,2,3];GlobalData.UploadInProgressString="";GlobalData.FreeChangeHandler=false;wfu_Check_Browser_Capabilities();
2
- if(typeof wfu_js_decode_obj=="undefined")wfu_js_decode_obj=function(obj_str){var obj=null;if(obj_str=="window")obj=window;else{var dbs=String.fromCharCode(92);var match=obj_str.match(new RegExp("GlobalData("+dbs+".(WFU|WFUB)"+dbs+"[(.*?)"+dbs+"]("+dbs+".(.*))?)?$"));if(match){obj=GlobalData;if(match[3])obj=obj[match[2]][match[3]];if(match[5])obj=obj[match[5]]}}return obj};
3
- function wfu_run_js_from_bank(){if(typeof WFU_JS_BANK!="undefined")while(WFU_JS_BANK.length>0){var obj=wfu_js_decode_obj(WFU_JS_BANK[0].obj_str);if(obj)obj[WFU_JS_BANK[0].func].call(obj);WFU_JS_BANK.splice(0,1)}}
4
- function wfu_Initialize_Consts(consts){if(typeof GlobalData.consts!="undefined")return;GlobalData.consts=new Object;var consts_arr=consts.split(";");var const_arr;for(var i=0;i<consts_arr.length;i++){const_txt=consts_arr[i].split(":");GlobalData.consts[wfu_plugin_decode_string(const_txt[0])]=wfu_plugin_decode_string(const_txt[1])}}
5
- function wfu_Load_Code_Connectors(sid){if(typeof wfu_Code_Objects=="undefined")wfu_Code_Objects={};wfu_Code_Objects[sid]=new wfu_Code_Object(sid);for(var i=0;i<Code_Initializators.length;i++)wfu_Code_Objects[sid].additem(Code_Initializators[i](sid))}
6
- function wfu_Code_Object(sid){this.sid=sid;this.items=[];this._calc_prioritized_list=function(section){var item,list=[],idlist=[],nolist=[],priority;for(var i=0;i<this.items.length;i++){item=this.items[i];if(item[section]){priority=-1;if(item.priority)priority=item.priority;if(item[section].priority)priority=item[section].priority;if(priority>=0){list.push(priority);idlist.push(i)}else nolist.push(i)}}for(var i=1;i<list.length;i++)for(var j=i;j<list.length;j++)if(list[j]<list[i-1]){var temp=list[j];
7
- list[j]=list[i-1];list[i-1]=temp;var temp=idlist[j];idlist[j]=idlist[i-1];idlist[i-1]=temp}return idlist.concat(nolist)};this.additem=function(item){this.items.push(item)};this.apply_filters=function(section,val){if(typeof val=="undefined")return null;var idlist=this._calc_prioritized_list(section);if(idlist.length==0)return val;for(var i=0;i<idlist.length;i++){var item=this.items[idlist[i]];var func=null;if(typeof item[section]=="function")func=item[section];else if(typeof item[section].func=="function")func=
8
- item[section].func;if(func!=null){val=func.apply(this,Array.prototype.slice.call(arguments,1));arguments[1]=val}}return val};this.do_action=function(section){var idlist=this._calc_prioritized_list(section);if(idlist.length==0)return;for(var i=0;i<idlist.length;i++){var item=this.items[idlist[i]];var func=null;if(typeof item[section]=="function")func=item[section];else if(typeof item[section].func=="function")func=item[section].func;if(func!=null)func.apply(this,Array.prototype.slice.call(arguments,
9
- 1))}}}
10
- function wfu_plugin_load_action(sid){var WFU=GlobalData.WFU[sid];wfu_install_unload_hook();if(!!WFU.visualeditorbutton_exist){WFU.visualeditorbutton.init();var invoke_function=function(){wfu_invoke_shortcode_editor(WFU)};WFU.visualeditorbutton.attachInvokeHandler(invoke_function)}if(WFU.is_formupload)WFU.uploadaction=function(){wfu_redirect_to_classic(sid,0,0)};else WFU.uploadaction=function(){wfu_HTML5UploadFile(sid)};var clickaction=function(){wfu_selectbutton_clicked(sid)};var changeaction=function(fileselected){var WFU=
11
- GlobalData.WFU[sid];var usefilearray=0;wfu_selectbutton_changed(sid,usefilearray);wfu_update_uploadbutton_status(sid);if(WFU.singlebutton&&fileselected)WFU.uploadaction()};if(!!WFU.uploadform_exist)WFU.uploadform.attachActions(clickaction,changeaction);var completeaction=function(status){document.getElementById("consentresult_"+sid).value=status?"yes":"no"};if(!!WFU.consent_exist){WFU.consent.attachActions(completeaction);WFU.consent.update("init")}if(!!WFU.submit_exist){if(WFU.testmode)clickaction=
12
- function(){alert(GlobalData.consts.notify_testmode)};else clickaction=function(){WFU.uploadaction()};WFU.submit.attachClickAction(clickaction)}}function wfu_install_unload_hook(){window.onbeforeunload=wfu_unload_hook}function wfu_unload_hook(){if(GlobalData.UploadInProgressString!="")if(GlobalData.UploadInProgressString.trim()!="")return GlobalData.consts.wfu_pageexit_prompt}
13
- function wfu_Check_Browser_Capabilities(){if(typeof wfu_BrowserCaps!="undefined")return;wfu_BrowserCaps=new Object;var xmlhttp=wfu_GetHttpRequestObject();wfu_BrowserCaps.supportsAJAX=xmlhttp!=null;wfu_BrowserCaps.supportsUploadProgress=!!(xmlhttp&&"upload"in xmlhttp&&"onprogress"in xmlhttp.upload);var fd=null;try{var fd=new FormData}catch(e$0){}wfu_BrowserCaps.supportsHTML5=fd!=null;var e=document.createElement("iframe");wfu_BrowserCaps.supportsIFRAME=e!=null;wfu_BrowserCaps.supportsDRAGDROP=window.FileReader?
14
- true:false;wfu_BrowserCaps.supportsAnimation=wfu_check_animation();wfu_BrowserCaps.isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0}
15
- function wfu_check_animation(){var animation=false,animationstring="animation",keyframeprefix="",domPrefixes="Webkit Moz O ms Khtml".split(" "),pfx="";var elm=document.createElement("DIV");if(elm.style.animationName)animation=true;if(animation===false)for(var i=0;i<domPrefixes.length;i++)if(elm.style[domPrefixes[i]+"AnimationName"]!==undefined){pfx=domPrefixes[i];animationstring=pfx+"Animation";keyframeprefix="-"+pfx.toLowerCase()+"-";animation=true;break}return animation}
16
- function wfu_join_strings(delimeter){var args=[].slice.call(arguments);var str="";var delim="";for(var i=1;i<args.length;i++){if(str==""||args[i]=="")delim="";else delim=delimeter;str+=delim+args[i]}return str}
17
- function wfu_plugin_decode_string(str){var i=0;var newstr="";var num,val;while(i<str.length){num=parseInt(str.substr(i,2),16);if(num<128)val=num;else if(num<224)val=((num&31)<<6)+(parseInt(str.substr(i+=2,2),16)&63);else val=((num&15)<<12)+((parseInt(str.substr(i+=2,2),16)&63)<<6)+(parseInt(str.substr(i+=2,2),16)&63);newstr+=String.fromCharCode(val);i+=2}return newstr}
18
- function wfu_plugin_encode_string(str){var i=0;var newstr="";var hex="";for(i=0;i<str.length;i++){num=str.charCodeAt(i);if(num>=2048)num=((num&16773120|917504)<<4)+((num&4032|8192)<<2)+(num&63|128);else if(num>=128)num=((num&65472|12288)<<2)+(num&63|128);hex=num.toString(16);if(hex.length==1||hex.length==3||hex.length==5)hex="0"+hex;newstr+=hex}return newstr}
19
- function wfu_randomString(len){var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var string_length=len;var randomstring="";for(var i=0;i<string_length;i++){var rnum=Math.floor(Math.random()*chars.length);randomstring+=chars.substring(rnum,rnum+1)}return randomstring}function wfu_addEventHandler(obj,evt,handler){if(obj.addEventListener)obj.addEventListener(evt,handler,false);else if(obj.attachEvent)obj.attachEvent("on"+evt,handler);else obj["on"+evt]=handler}
20
- function wfu_attach_element_handlers(item,handler){var elem_events=["DOMAttrModified","textInput","input","change","keypress","paste","focus","propertychange"];for(var i=0;i<elem_events.length;i++)wfu_addEventHandler(item,elem_events[i],handler)}
21
- function wfu_GetHttpRequestObject(){var xhr=null;try{xhr=new XMLHttpRequest}catch(e$1){try{xhr=new ActiveXObject("Msxml2.XMLHTTP")}catch(e2){try{xhr=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}}if(xhr==null&&window.createRequest)try{xmlhttp=window.createRequest()}catch(e$2){}return xhr}
22
- function wfu_get_filelist(sid,include_filearray){var WFU=GlobalData.WFU[sid];include_filearray=typeof include_filearray!=="undefined"?include_filearray:true;var farr=[];if(!!WFU.uploadform_exist)farr=WFU.uploadform.files();if(include_filearray&&typeof WFU.filearray!=="undefined")farr=WFU.filearray;return farr}
23
- function wfu_add_files(sid,files){var WFU=GlobalData.WFU[sid];if(typeof WFU.filearray=="undefined"){WFU.filearray=Array();WFU.filearrayprops=Array()}if(!!WFU.uploadform_exist)WFU.uploadform.reset();WFU.filearray.length=WFU.filearrayprops.length=0;for(var i=0;i<files.length;i++){WFU.filearray.push(files[i].file);WFU.filearrayprops.push(files[i].props)}}
24
- function wfu_attach_cancel_event(sid,unique_upload_id){function wfu_cancel_classic_upload_final(){var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id="";Params.general.files_count=0;Params.general.state=16;wfu_ProcessUploadComplete(sid,0,Params,"no-ajax","",[false,null,false]);if(!!WFU.uploadform_exist){WFU.uploadform.reset();WFU.uploadform.submit();WFU.uploadform.lock()}}function wfu_cancel_classic_upload(){var url=GlobalData.consts.ajax_url+"?action=wfu_ajax_action_cancel_upload&wfu_uploader_nonce="+
25
- document.getElementById("wfu_uploader_nonce_"+sid).value+"&sid="+sid+"&unique_id="+unique_upload_id+"&session_token="+GlobalData.WFU[sid].session;var xmlhttp=wfu_GetHttpRequestObject();if(xmlhttp==null){var i=document.createElement("iframe");if(i){i.style.display="none";i.src=url;document.body.appendChild(i);i.onload=function(){wfu_cancel_classic_upload_final()};return}}xmlhttp.open("GET",url,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200)wfu_cancel_classic_upload_final()};
26
- xmlhttp.send(null)}var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist){var textbox_cancel_function=function(){var answer=false;if(WFU.is_formupload){answer=confirm(GlobalData.consts.cancel_upload_prompt);if(answer==true)wfu_cancel_classic_upload()}else{if(!GlobalData[sid]||GlobalData[sid].xhrs.length==0)return false;var answer=confirm(GlobalData.consts.cancel_upload_prompt);if(answer==true){var farr=wfu_get_filelist(sid);var firstxhr=[];var filename=[];for(var i=0;i<farr.length;i++){firstxhr.push(null);
27
- filename.push(farr[i].name)}for(var i=0;i<GlobalData[sid].xhrs.length;i++){var file_ind=GlobalData[sid].xhrs[i].file_id-1;if(file_ind>=0&&firstxhr[file_ind]==null)firstxhr[file_ind]=GlobalData[sid].xhrs[i]}if(WFU.debugmode)console.log("upload cancelled!");for(var i=0;i<firstxhr.length;i++){if(firstxhr[i]==null){firstxhr[i]=wfu_GetHttpRequestObject();if(firstxhr[i]!=null)wfu_initialize_fileupload_xhr(firstxhr[i],sid,unique_upload_id,i,filename[i])}if(firstxhr[i]!=-1){var evt={target:{responseText:"force_cancel_code",
28
- shortcode_id:sid}};wfu_uploadComplete.call(firstxhr[i],evt)}}}}return answer};WFU.textbox.attachCancelHandler(textbox_cancel_function)}}function wfu_dettach_cancel_event(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist)WFU.textbox.dettachCancelHandler()}
29
- function wfu_selectbutton_changed(sid,usefilearray){if(!wfu_BrowserCaps.supportsAJAX||!wfu_BrowserCaps.supportsHTML5)usefilearray=0;var farr=wfu_get_filelist(sid,false);if(usefilearray==1){if(typeof GlobalData.WFU[sid].filearray=="undefined")GlobalData.WFU[sid].filearray=Array();for(var i=0;i<farr.length;i++)GlobalData.WFU[sid].filearray.push(farr[i])}else if(typeof GlobalData.WFU[sid].filearray!="undefined")delete GlobalData.WFU[sid].filearray;wfu_update_filename_text(sid)}
30
- function wfu_selectbutton_clicked(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.message_exist)WFU.message.reset();var resetform=true;if(resetform)if(!!WFU.uploadform_exist)WFU.uploadform.reset()}function wfu_update_uploadbutton_status(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.submit_exist){var submit=WFU.submit;var farr=wfu_get_filelist(sid);var status=farr.length>0||WFU.allownofile;status=wfu_Code_Objects[sid].apply_filters("uploadbutton_status",status);submit.toggle(status)}}
31
- function wfu_update_filename_text(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist){var farr=wfu_get_filelist(sid);var filenames=[];for(var i=0;i<farr.length;i++)filenames.push(farr[i].name);WFU.textbox.update("set",filenames)}}
32
- function wfu_init_userdata_handlers(sid,key){var WFU=GlobalData.WFU[sid];var props=WFU.userdata.props[key];var JS=WFU.userdata.codes[key];var obj=WFU.userdata;JS.init=function(){};JS.value=function(){return""};JS.lock=function(){};JS.unlock=function(){};JS.reset=function(){};JS.empty=function(){return""};JS.validate=null;JS.typehook=null;if(props.type=="text"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};
33
- JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}else if(props.type=="multitext"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===
34
- ""?obj.error_empty:""}}else if(props.type=="number"){JS.init=function(){obj.attachHandlers(props,function(e){if(props.typehook)JS.typehook(e);else props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){var re=/^(\+|\-)?[0-9]*$/i;if(props.format==
35
- "f")re=/^(\+|\-)?[0-9]*?\.?[0-9]*$/i;return re.test(obj.getValue(props))?"":obj.error_invalid_number};JS.typehook=function(e){var re=/^(\+|\-)?[0-9]*$/i;if(props.format=="f")re=/^(\+|\-)?[0-9]*?\.?[0-9]*$/i;if(re.test(e.target.value))props.store();else e.target.value=props.getstored()}}else if(props.type=="email"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};
36
- JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){if(obj.getValue(props)=="")return"";var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(obj.getValue(props))?"":obj.error_invalid_email}}else if(props.type=="confirmemail"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};
37
- JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){var baseprops=null;for(var i=0;i<WFU.userdata.props.length;i++)if(WFU.userdata.props[i]&&WFU.userdata.props[i].type=="email"&&WFU.userdata.props[i].group==props.group){baseprops=WFU.userdata.props[i];break}return baseprops!=null?obj.getValue(props)==obj.getValue(baseprops)?
38
- "":obj.error_confirm_email_nomatch:obj.error_confirm_email_nobase}}else if(props.type=="password"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}else if(props.type=="confirmpassword"){JS.init=function(){obj.attachHandlers(props,
39
- function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){var baseprops=null;for(var i=0;i<WFU.userdata.props.length;i++)if(WFU.userdata.props[i]&&WFU.userdata.props[i].type=="password"&&WFU.userdata.props[i].group==props.group){baseprops=
40
- WFU.userdata.props[i];break}return baseprops!=null?obj.getValue(props)==obj.getValue(baseprops)?"":obj.error_confirm_password_nomatch:obj.error_confirm_password_nobase}}else if(props.type=="checkbox"){JS.init=function(){obj.initField(props);obj.setValue(props,props["default"]=="true");obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)?"true":"false"};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,
41
- props["default"]=="true");props.store()};JS.empty=function(){return!obj.getValue(props)?obj.error_checkbox_notchecked:""}}else if(props.type=="radiobutton"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?
42
- obj.error_radio_notselected:""}}else if(props.type=="date"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){def=props["default"].trim();if(def.substr(0,1)=="("&&def.substr(def.length-1,1)==")")def=def.substr(1,def.length-2);else def="";obj.setValue(props,def);props.store()};JS.empty=function(){return obj.getValue(props)===
43
- ""?obj.error_empty:""}}else if(props.type=="time"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){def=props["default"].trim();if(def.substr(0,1)=="("&&def.substr(def.length-1,1)==")")def=def.substr(1,def.length-2);else def="";obj.setValue(props,def);props.store()};JS.empty=function(){return obj.getValue(props)===
44
- ""?obj.error_empty:""}}else if(props.type=="datetime"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){def=props["default"].trim();if(def.substr(0,1)=="("&&def.substr(def.length-1,1)==")")def=def.substr(1,def.length-2);else def="";obj.setValue(props,def);props.store()};JS.empty=function(){return obj.getValue(props)===
45
- ""?obj.error_empty:""}}else if(props.type=="list"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}else if(props.type=="dropdown"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,
46
- function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}JS.init()}function wfu_Redirect(link){window.location=link}function wfu_loadStart(evt){}
47
- function wfu_update_upload_metrics(sid){var totalsize=0;var totalloaded=0;var totaldelta=0;var metrics=Array();var farr=wfu_get_filelist(sid);for(var i=0;i<farr.length;i++)metrics[i]={size:farr[i].size,aborted:false,loaded:0,delta:0};for(var i=0;i<GlobalData[sid].xhrs.length;i++){var file_id=GlobalData[sid].xhrs[i].file_id;if(file_id>0&&GlobalData[sid].xhrs[i].aborted)metrics[file_id-1].aborted=true}for(var i=0;i<GlobalData[sid].xhrs.length;i++){var file_id=GlobalData[sid].xhrs[i].file_id;if(file_id>
48
- 0&&!metrics[file_id-1].aborted){metrics[file_id-1].size=Math.max(GlobalData[sid].xhrs[i].totalsize,metrics[file_id-1].size);metrics[file_id-1].loaded+=GlobalData[sid].xhrs[i].sizeloaded;metrics[file_id-1].delta+=Math.max(GlobalData[sid].xhrs[i].deltaloaded,0)}}for(var i=0;i<farr.length;i++){var Gm=GlobalData[sid].metrics[i];if(!metrics[i].aborted&&metrics[i].size>0){Gm.size=metrics[i].size;if(GlobalData.consts.wfu_uploadprogress_mode=="incremental")Gm.progress_pos=Math.min(Gm.progress_pos+(1-Gm.progress_pos)*
49
- metrics[i].delta/(Gm.size-Gm.loaded),1);else Gm.progress_pos=metrics[i].loaded/metrics[i].size;Gm.loaded=metrics[i].loaded;totalsize+=Gm.size;totalloaded+=Gm.loaded;totaldelta+=metrics[i].delta}else{Gm.size=0;Gm.progress_pos=0;Gm.loaded=0}}var Gm=GlobalData[sid].metricstotal;Gm.size=totalsize;if(GlobalData.consts.wfu_uploadprogress_mode=="incremental")Gm.progress_pos=Math.min(Gm.progress_pos+(1-Gm.progress_pos)*totaldelta/(Gm.size-Gm.loaded),1);else Gm.progress_pos=totalloaded/totalsize;Gm.loaded=
50
- totalloaded}
51
- function wfu_uploadProgress(evt,sid,xhrid,debugmode){var WFU=GlobalData.WFU[sid];if(debugmode&&typeof this.xhr=="undefined"){console.log("total="+evt.total+", loaded="+evt.loaded);console.log(evt)}var this_xhr=GlobalData[sid].xhrs[xhrid];if(this_xhr.file_id==0)return;var percentComplete=0;var delta=0;var simplebar_exists=!!WFU.progressbar_exist;if(evt.lengthComputable){this_xhr.deltaloaded=evt.loaded-this_xhr.sizeloaded;this_xhr.sizeloaded=evt.loaded;if(this_xhr.size<evt.total&&evt.total>0){delta=
52
- evt.total-this_xhr.size;this_xhr.deltasize+=delta;this_xhr.size+=delta;for(var i=0;i<GlobalData[sid].xhrs.length;i++)if(GlobalData[sid].xhrs[i].file_id==this_xhr.file_id)GlobalData[sid].xhrs[i].totalsize+=delta}wfu_update_upload_metrics(sid);this_xhr.deltaloaded=0;if(simplebar_exists){percentComplete=Math.round(GlobalData[sid].metricstotal.progress_pos*100);WFU.progressbar.update(percentComplete)}}else if(simplebar_exists)WFU.progressbar.update(0)}
53
- function wfu_notify_WPFilebase(params_index,session_token){var xhr=wfu_GetHttpRequestObject();if(xhr==null){var i=document.createElement("iframe");i.style.display="none";i.src=GlobalData.consts.ajax_url+"?action=wfu_ajax_action_notify_wpfilebase&params_index="+params_index+"&session_token="+session_token;document.body.appendChild(i);return}var url=GlobalData.consts.ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_notify_wpfilebase";params[1]=
54
- new Array(2);params[1][0]="params_index";params[1][1]=params_index;params[2]=new Array(2);params[2][0]="session_token";params[2][1]=session_token;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){};xhr.send(parameters)}
55
- function wfu_send_email_notification(sid,unique_id){var WFU=GlobalData.WFU[sid];var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=GlobalData.consts.ajax_url;params=new Array(4);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_send_email_notification";params[1]=new Array(2);params[1][0]="params_index";params[1][1]=WFU.params_index;params[2]=new Array(2);params[2][0]="session_token";params[2][1]=WFU.session;params[3]=new Array(2);params[3][0]="uniqueuploadid_"+
56
- sid;params[3][1]=unique_id;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);wfu_initialize_fileupload_xhr(xhr,sid,unique_id,-1,"");xhr.error_message_header="";xhr.error_adminmessage_unknown="";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.addEventListener("load",wfu_uploadComplete,false);xhr.addEventListener("error",wfu_uploadFailed,false);xhr.addEventListener("abort",wfu_uploadCanceled,
57
- false);xhr.send(parameters)}
58
- function wfu_uploadComplete(evt){var d=new Date;var sid=this.shortcode_id;var WFU=GlobalData.WFU[sid];var i=this.file_id;var last=false;var js_script_enc="";var upload_params="";var safe_params="";var file_status="unknown";var uploaded_file_props="";var debug_data=null;var success_txt="wfu_fileupload_success:";this.loading=false;this.end_time=d.getTime();var txt=evt.target.responseText;var result_data=txt;var error_code="error";if(txt!=-1){if(txt.indexOf("force_errorabort_code")>-1){error_code="errorabort";
59
- txt=txt.replace("force_errorabort_code","")}if(txt.indexOf("force_cancel_code")>-1){error_code="errorcancel";txt=txt.replace("force_cancel_code","")}}if(txt!=-1){var pos=txt.indexOf(success_txt);var debug_data_str="";if(pos>-1){if(WFU.debugmode)debug_data_str=txt.substr(0,pos);result_data=txt.substr(pos+success_txt.length);pos=result_data.indexOf(":");js_script_enc=result_data.substr(0,pos);result_data=result_data.substr(pos+1);pos=result_data.indexOf(":");safe_params=result_data.substr(0,pos);upload_params=
60
- result_data.substr(pos+1)}if(debug_data_str!=""){var title="";if(this.requesttype=="fileupload")title="Debug Data - File: "+this.file_id;else if(this.requesttype=="email")title="Debug Data - Email Notification";debug_data={title:title,data:debug_data_str}}if(safe_params!=""){var safe_parts=safe_params.split(";");if(parseInt(safe_parts[2])==1){var filedata=safe_parts[3].split(",");file_status=wfu_plugin_decode_string(filedata[0]);uploaded_file_props=filedata[4]}}}if(upload_params==""||safe_params==
61
- ""){var error_colors=WFU.fail_colors.split(",");var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id=this.unique_id;Params.general.state=7;Params.general.files_count=this.requesttype=="fileupload"?1:0;Params.general.upload_finish_time=this.finish_time;if(error_code!="errorcancel"){Params.general.fail_message=GlobalData.consts.message_unknown;Params.general.fail_admin_message=wfu_join_strings("<br />",this.error_adminmessage_unknown,this.requesttype+":"+result_data)}else{Params.general.fail_message=
62
- GlobalData.consts.file_cancelled;Params.general.fail_admin_message=""}if(Params.general.files_count>0){Params[0]={};Params[0]["color"]=error_colors[0];Params[0]["bgcolor"]=error_colors[1];Params[0]["borcolor"]=error_colors[2];Params[0]["message_type"]=error_code;file_status=error_code;Params[0]["header"]=this.error_message_header;Params[0]["message"]=GlobalData.consts.message_timelimit;Params[0]["admin_messages"]=WFU.is_admin?GlobalData.consts.message_admin_timelimit:""}else Params.general.admin_messages.other=
63
- WFU.is_admin?GlobalData.consts.message_admin_timelimit:"";if(Params.general.upload_finish_time>0)if(d.getTime()<Params.general.upload_finish_time)if(Params.general.files_count>0){Params[0]["message"]=Params.general.fail_message;Params[0]["admin_messages"]=WFU.is_admin?Params.general.fail_admin_message:""}else Params.general.admin_messages.other=WFU.is_admin?Params.general.fail_admin_message:""}if(upload_params==""||safe_params==""){if(WFU.debugmode)console.log("wfu_ProcessUploadComplete: ",sid,this.file_id,
64
- "Params obj",this.unique_id,"",[WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,"");last=wfu_ProcessUploadComplete(sid,this.file_id,Params,this.unique_id,"",[WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,"")}else{if(WFU.debugmode)console.log("wfu_ProcessUploadComplete: ",sid,this.file_id,"Params str",this.unique_id,safe_params,[WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,js_script_enc);last=wfu_ProcessUploadComplete(sid,this.file_id,upload_params,this.unique_id,safe_params,
65
- [WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,js_script_enc)}if(last){wfu_dettach_cancel_event(sid);wfu_unlock_upload(sid);if(!!WFU.progressbar_exist)WFU.progressbar.hide();wfu_clear(sid)}if(evt.target.return_status)return file_status}
66
- function wfu_ProcessUploadComplete(sid,file_id,upload_params,unique_id,safe_output,debug_data,request_type,js_script_enc){var WFU=GlobalData.WFU[sid];if(!sid||sid<0)return;if(upload_params==null||upload_params=="")return;if(unique_id=="")return;if(unique_id!="no-ajax"&&!GlobalData[sid])return;var do_redirect=false;if(typeof upload_params==="string"){upload_params=wfu_plugin_decode_string(upload_params.replace(/^\s+|\s+$/g,""));var Params=null;try{Params=JSON.parse(upload_params)}catch(e){}if(Params==
67
- null){var safe_parts=safe_output.split(";");Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id=unique_id;Params.general.state=safe_parts[0];if(Params.general.state==4)Params.general.state++;var default_colors=safe_parts[1].split(",");var filedata="";var error_jsonparse_filemessage=GlobalData.consts.jsonparse_filemessage;var error_jsonparse_message=GlobalData.consts.jsonparse_message;var error_jsonparse_adminmessage=GlobalData.consts.jsonparse_adminmessage;Params.general.files_count=
68
- parseInt(safe_parts[2]);for(var i=0;i<Params.general.files_count;i++){Params[i]={};Params[i]["color"]=default_colors[0];Params[i]["bgcolor"]=default_colors[1];Params[i]["borcolor"]=default_colors[2];filedata=safe_parts[i+3].split(",");Params[i]["message_type"]=wfu_plugin_decode_string(filedata[0]);Params[i]["header"]=wfu_plugin_decode_string(filedata[1]);if(Params[i]["message_type"]=="success"){Params[i]["header"]+=error_jsonparse_filemessage;Params[i]["message_type"]="warning"}Params[i]["message"]=
69
- wfu_join_strings("<br />",error_jsonparse_message,wfu_plugin_decode_string(filedata[2]));Params[i]["admin_messages"]=wfu_join_strings("<br />",error_jsonparse_adminmessage,wfu_plugin_decode_string(filedata[3]))}}}else if(typeof upload_params==="object")var Params=upload_params;else return;if(WFU.debugmode)console.log("wfu_ProcessUploadComplete debug: ",debug_data);if(WFU.debugmode)console.log("wfu_ProcessUploadComplete Params: ",Params);i=0;while(Params[i]){if(Params[i].message_type)if(Params[i].message_type.substr(0,
70
- 5)=="error")Params[i].message_type=Params[i].message_type.substr(0,5);i++}if(!GlobalData[sid])GlobalData[sid]=Object();var G=GlobalData[sid];if(unique_id=="no-ajax"){G.last=false;G.unique_id="";G.files_count=Params.general.files_count;if(Params.general.state==0)Params.general.files_count=0;G.files_processed=Params.general.files_count;G.upload_state=Params.general.state;G.nofileupload=Params.general.state>12&&Params.general.state<16;if(!("message"in G))G.message=[];if(Params.general.message!="")G.message.push(Params.general.message);
71
- else G.message=[];G.update_wpfilebase=Params.general.update_wpfilebase;G.redirect_link=Params.general.redirect_link;G.notify_by_email=0;G.admin_messages={};G.admin_messages.wpfilebase=Params.general.admin_messages.wpfilebase;G.admin_messages.notify=Params.general.admin_messages.notify;G.admin_messages.redirect=Params.general.admin_messages.redirect;if(!("debug"in G.admin_messages))G.admin_messages.debug=[];if(debug_data[1]!==null)G.admin_messages.debug.push(debug_data[1]);if(!("other"in G.admin_messages))G.admin_messages.other=
72
- [];if(Params.general.admin_messages.other!="")G.admin_messages.other.push(Params.general.admin_messages.other);G.errors={};G.errors.wpfilebase=Params.general.errors.wpfilebase;G.errors.notify=Params.general.errors.notify;G.errors.redirect=Params.general.errors.redirect;G.current_size=0;G.total_size=0}else{if(G.unique_id==""||G.unique_id!=unique_id||G.unique_id!=Params.general.unique_id)return;if(G.last)return;if(Params.general.files_count==0&&Params[0])if(Params[0].message_type=="error")Params.general.files_count=
73
- 1;var file_status="";for(var i=0;i<Params.general.files_count;i++){if(Params[i].message_type=="error"&&G.files_processed==0)file_status="error1";else if(Params[i].message_type=="error"&&G.files_processed>0)file_status="error2";else file_status=Params[i].message_type;G.upload_state=GlobalData.filestatematch[file_status][G.upload_state]}G.files_processed+=Params.general.files_count;if(Params.general.message!="")G.message.push(Params.general.message);if(G.update_wpfilebase=="")G.update_wpfilebase=Params.general.update_wpfilebase;
74
- if(!request_type||request_type&&request_type!="email")G.redirect_link=Params.general.redirect_link;G.notify_by_email+=parseInt("0"+Params.general.notify_by_email);if(debug_data[1]!==null)G.admin_messages.debug.push(debug_data[1]);if(Params.general.admin_messages.other!="")G.admin_messages.other.push(Params.general.admin_messages.other);if(G.admin_messages.wpfilebase=="")G.admin_messages.wpfilebase=Params.general.admin_messages.wpfilebase;if(G.admin_messages.notify=="")G.admin_messages.notify=Params.general.admin_messages.notify;
75
- if(G.admin_messages.redirect=="")G.admin_messages.redirect=Params.general.admin_messages.redirect;if(G.errors.wpfilebase=="")G.errors.wpfilebase=Params.general.errors.wpfilebase;if(G.errors.notify=="")G.errors.notify=Params.general.errors.notify;if(G.errors.redirect=="")G.errors.redirect=Params.general.errors.redirect}if(G.files_processed==G.files_count){G.last=true;if(G.update_wpfilebase!=""){G.admin_messages.wpfilebase="";wfu_notify_WPFilebase(WFU.params_index,WFU.session)}if(G.notify_by_email>
76
- 0){G.admin_messages.notify="";wfu_send_email_notification(sid,unique_id);G.last=false;G.notify_by_email=0}if(G.last){if(unique_id!="no-ajax"&&!G.nofileupload)wfu_notify_server_upload_ended(sid,unique_id);GlobalData.UploadInProgressString=GlobalData.UploadInProgressString.replace(new RegExp("\\["+unique_id+"\\]","g"),"")}if(G.errors.redirect!="")G.redirect_link="";if(G.redirect_link!=""&&G.last&&GlobalData.UploadInProgressString.trim()==""){G.upload_state=11;do_redirect=true}}var nonadmin_message=
77
- G.message;var admin_message=[].concat(G.admin_messages.other,G.admin_messages.wpfilebase!=""?[G.admin_messages.wpfilebase]:[],G.admin_messages.notify!=""?[G.admin_messages.notify]:[],G.admin_messages.redirect!=""?[G.admin_messages.redirect]:[]);if(G.last)if(G.nofileupload){if(unique_id!="no-ajax")if(G.upload_state==0)G.upload_state=14;else if(G.upload_state<4)G.upload_state=15;if(G.upload_state==15&&Params[0]){nonadmin_message.push(Params[0].message);admin_message.push(Params[0].admin_messages)}}else{if(G.files_count==
78
- 0&&G.upload_state!=12&&G.upload_state<16)G.upload_state=8;else if(G.upload_state<4)G.upload_state+=4;if(G.upload_state==4&&admin_message.length>0)G.upload_state++;else if(G.upload_state==5&&admin_message.length==0&&nonadmin_message.length==0)G.upload_state--}if(!!WFU.message_exist){var suffix="";if(G.files_count==1&&(G.upload_state==5||G.upload_state==7))suffix="_singlefile";var final_upload_state=G.upload_state==0&&G.nofileupload?13:G.upload_state;var data={files_count:!G.nofileupload?G.files_count:
79
- 0,files_processed:!G.nofileupload?G.files_processed:0,state:final_upload_state,single:G.files_count==1&&nonadmin_message.length==0&&admin_message.length==0&&G.last&&!do_redirect&&!G.nofileupload,color:GlobalData.States["State"+final_upload_state+suffix].color,bgcolor:GlobalData.States["State"+final_upload_state+suffix].bgcolor,borcolor:GlobalData.States["State"+final_upload_state+suffix].borcolor,message1:GlobalData.States["State"+final_upload_state+suffix].message,message2:nonadmin_message,message3:admin_message,
80
- debug_data:G.admin_messages.debug,files:[]};for(var i=0;i<Params.general.files_count;i++)data.files[i]={index:i+file_id,result:Params[i].message_type,message1:Params[i].header,message2:Params[i].message,message3:Params[i].admin_messages};WFU.message.update(data)}if(js_script_enc)eval(wfu_plugin_decode_string(js_script_enc));if(do_redirect)wfu_Redirect(G.redirect_link);return G.last}
81
- function wfu_uploadFailed(evt,debugmode){if(debugmode){console.log("failure report following");console.log(evt)}var xhr=evt.target;var new_evt={target:{responseText:"",shortcode_id:xhr.shortcode_id}};wfu_uploadComplete.call(xhr,new_evt)}function wfu_uploadCanceled(evt){}
82
- function wfu_notify_server_upload_ended(sid,unique_id){var WFU=GlobalData.WFU[sid];var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=GlobalData.consts.ajax_url;params=new Array(6);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action";params[1]=new Array(2);params[1][0]="wfu_uploader_nonce";params[1][1]=document.getElementById("wfu_uploader_nonce_"+sid).value;params[2]=new Array(2);params[2][0]="uniqueuploadid_"+sid;params[2][1]=unique_id;params[3]=new Array(2);params[3][0]=
83
- "params_index";params[3][1]=WFU.params_index;params[4]=new Array(2);params[4][0]="session_token";params[4][1]=WFU.session;params[5]=new Array(2);params[5][0]="upload_finished";params[5][1]=1;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200)wfu_Code_Objects[sid].do_action("after_upload",
84
- xhr.responseText)};xhr.send(parameters)}
85
- function wfu_Initialize_Params(){var params={};params.version="full";params.general={};params.general.shortcode_id=0;params.general.unique_id="";params.general.state=0;params.general.files_count=0;params.general.update_wpfilebase="";params.general.redirect_link="";params.general.upload_finish_time=0;params.general.message="";params.general.message_type="";params.general.admin_messages={};params.general.admin_messages.wpfilebase="";params.general.admin_messages.notify="";params.general.admin_messages.redirect=
86
- "";params.general.admin_messages.other="";params.general.errors={};params.general.errors.wpfilebase="";params.general.errors.notify="";params.general.errors.redirect="";params.general.color="";params.general.bgcolor="";params.general.borcolor="";params.general.notify_by_email=0;params.general.fail_message="";params.general.fail_admin_message="";return params}
87
- function wfu_redirect_to_classic(sid,flag,adminerrorcode){var WFU=GlobalData.WFU[sid];WFU.is_formupload=true;var numfiles=wfu_filesselected(sid);if(numfiles==0&&!WFU.allownofile)return;if(!!WFU.subfolders_exist&&numfiles>0&&!WFU.subfolders.check())return;if(!wfu_check_required_userdata(sid,true))return;if(!wfu_Code_Objects[sid].apply_filters("pre_start_check",true))return;wfu_redirect_to_classic_cont(sid,flag,adminerrorcode)}
88
- function wfu_redirect_to_classic_cont(sid,flag,adminerrorcode){var process_function=function(responseText){var WFU=GlobalData.WFU[sid];var txt_value="";var session_token=WFU.session;var success_txt="wfu_askserver_success:";var error_txt="wfu_askserver_error:";var pos_success=responseText.indexOf(success_txt);var pos_error=responseText.indexOf(error_txt);if(pos_success>-1){txt_value=responseText.substr(pos_success+success_txt.length);var numfiles=wfu_filesselected(sid);var nofileupload=numfiles==0&&
89
- WFU.allownofile;wfu_Code_Objects[sid].do_action("askserver_success",txt_value,"no-ajax");if(!!WFU.progressbar_exist&&!nofileupload)WFU.progressbar.show("shuffle");wfu_attach_cancel_event(sid,unique_id);var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id="";Params.general.files_count=numfiles;if(nofileupload)Params.general.state=13;wfu_ProcessUploadComplete(sid,0,Params,"no-ajax","",[false,null,false]);document.getElementById("uniqueuploadid_"+sid).value=unique_id;
90
- document.getElementById("nofileupload_"+sid).value=nofileupload?"1":"0";var suffix="";var redirected_txt="";if(flag==1)redirected_txt="_redirected";if(!!WFU.uploadform_exist){WFU.uploadform.changeFileName("uploadedfile_"+sid+redirected_txt+suffix);document.getElementById("uploadedfile_"+sid+"_name").name="uploadedfile_"+sid+redirected_txt+"_name";document.getElementById("uploadedfile_"+sid+"_size").name="uploadedfile_"+sid+redirected_txt+"_size"}if(adminerrorcode>0)document.getElementById("adminerrorcodes_"+
91
- sid).value=adminerrorcode;else document.getElementById("adminerrorcodes_"+sid).value="";if(!!WFU.uploadform_exist){WFU.uploadform.submit();WFU.uploadform.lock()}}else if(pos_error>-1){txt_value=responseText.substr(pos_error+error_txt.length);wfu_unlock_upload(sid);wfu_Code_Objects[sid].do_action("askserver_error",txt_value)}};var unique_id=wfu_randomString(10);wfu_lock_upload(sid);wfu_Code_Objects[sid].do_action("pre_start");var pass_params="";var params_obj=wfu_Code_Objects[sid].apply_filters("askserver_pass_params",
92
- {});for(var prop in params_obj)if(params_obj.hasOwnProperty(prop))pass_params+="&"+prop+"="+params_obj[prop];var d=new Date;var url=GlobalData.consts.ajax_url+"?action=wfu_ajax_action_ask_server&wfu_uploader_nonce="+document.getElementById("wfu_uploader_nonce_"+sid).value+"&sid="+sid+"&unique_id="+unique_id+"&start_time="+d.getTime()+"&session_token="+GlobalData.WFU[sid].session+pass_params;var xmlhttp=wfu_GetHttpRequestObject();if(xmlhttp==null){var i=document.createElement("iframe");if(i){i.style.display=
93
- "none";i.src=url;document.body.appendChild(i);i.onload=function(){process_function(i.contentDocument.body.innerHTML)};return}else{wfu_Code_Objects[sid].do_action("not_supported");return}}xmlhttp.open("GET",url,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4)if(xmlhttp.status==200)process_function(xmlhttp.responseText);else{alert(GlobalData.consts.remoteserver_noresult);wfu_Code_Objects[sid].do_action("askserver_noresult")}};xmlhttp.send(null)}
94
- Code_Initializators[Code_Initializators.length]=function(sid){var CBUV_Code_Objects={};CBUV_Code_Objects.pre_start_check=function(attr){if(!attr)return attr;var sid=this.sid;var result=true;if(!!GlobalData.WFU[sid].consent_exist)if(GlobalData.WFU[sid].consent_format!="prompt"&&document.getElementById("consentresult_"+sid).value==""){alert(GlobalData.consts.wfu_consent_notcompleted);result=false}else if(GlobalData.WFU[sid].consent_format=="prompt"){document.getElementById("consentresult_"+sid).value=
95
- confirm(GlobalData.WFU[sid].consent_question)?"yes":"no";result=true}return result};CBUV_Code_Objects.pre_start_ask_server=function(attr,has_filters){if(attr)return attr;var sid=this.sid;return has_filters=="true"};CBUV_Code_Objects.askserver_pass_params=function(params){var sid=this.sid;var farr=wfu_get_filelist(sid);var filenames="";var filesizes="";for(var i=0;i<farr.length;i++){if(i>0){filenames+=";";filesizes+=";"}filenames+=wfu_plugin_encode_string(farr[i].name);filesizes+=farr[i].size}params.filenames=
96
- filenames;params.filesizes=filesizes;return params};CBUV_Code_Objects.askserver_success=function(response,mode){var sid=this.sid;var upload_status="success";var txt_match=response.match(/CBUVJS\[(.*?)\]/);var txt_header=txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!="")eval(wfu_plugin_decode_string(txt_header))};CBUV_Code_Objects.askserver_error=function(response,mode){var sid=this.sid;var upload_status="error";var txt_match=response.match(/CBUVJS\[(.*?)\]/);var txt_header=
97
- txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!="")eval(wfu_plugin_decode_string(txt_header));txt_match=response.match(/CBUV\[(.*?)\]/);txt_header=txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!=""){var Params=wfu_Initialize_Params();GlobalData[sid]={};Params.general.shortcode_id=sid;Params.general.message=txt_header;Params.general.state=12;wfu_ProcessUploadComplete(sid,0,Params,"no-ajax","",[false,null,false]);wfu_clear(sid)}};CBUV_Code_Objects.lock_upload=
98
- function(){var sid=this.sid;if(!!GlobalData.WFU[sid].consent_exist)GlobalData.WFU[sid].consent.update("lock")};CBUV_Code_Objects.unlock_upload=function(){var sid=this.sid;if(!!GlobalData.WFU[sid].consent_exist)GlobalData.WFU[sid].consent.update("unlock")};CBUV_Code_Objects.clear_upload=function(){var sid=this.sid;if(!!GlobalData.WFU[sid].consent_exist){GlobalData.WFU[sid].consent.update("clear");GlobalData.WFU[sid].consent_exist=false}};CBUV_Code_Objects.upload_pass_params=function(params,mode){var sid=
99
- this.sid;if(!!GlobalData.WFU[sid].consent_exist)params.consent_result=document.getElementById("consentresult_"+sid).value;return params};CBUV_Code_Objects.after_upload=function(response){var sid=this.sid;var txt_match=response.match(/CBUVJS\[(.*?)\]/);var txt_header=txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!="")eval(wfu_plugin_decode_string(txt_header))};return CBUV_Code_Objects};
100
- function wfu_filesselected(sid){var WFU=GlobalData.WFU[sid];var farr=wfu_get_filelist(sid);if(farr.length==0&&!WFU.allownofile&&!!WFU.textbox_exist)WFU.textbox.update("nofile");return farr.length}
101
- function wfu_check_required_userdata(sid,prompt){var WFU=GlobalData.WFU[sid];var userdata_count=wfu_get_userdata_count(sid);var req_empty=false;for(var i=0;i<userdata_count;i++){WFU.userdata.props[i].store();var error_message="";if(WFU.userdata.props[i].required)error_message=WFU.userdata.codes[i].empty();if(error_message===""&&WFU.userdata.codes[i].validate!=null&&WFU.userdata.props[i].validate)error_message=WFU.userdata.codes[i].validate();if(error_message!==""){if(prompt)WFU.userdata.prompt(WFU.userdata.props[i],
102
- error_message);req_empty=true}}return!req_empty}
103
- function wfu_HTML5UploadFile(sid){var WFU=GlobalData.WFU[sid];if(!wfu_BrowserCaps.supportsAJAX){wfu_redirect_to_classic(sid,1,1);return}if(!wfu_BrowserCaps.supportsHTML5){wfu_redirect_to_classic(sid,1,2);return}var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var numfiles=wfu_filesselected(sid);if(numfiles==0&&!WFU.allownofile)return;if(numfiles==0)wfu_selectbutton_clicked(sid);if(!!WFU.subfolders_exist&&numfiles>0&&!WFU.subfolders.check()){if(WFU.singlebutton)wfu_clear_files(sid);return}var numpasses=
104
- numfiles;numpasses+=numpasses;if(!wfu_check_required_userdata(sid,true)){if(WFU.singlebutton)wfu_clear_files(sid);return}if(!wfu_Code_Objects[sid].apply_filters("pre_start_check",true))return;var unique_upload_id=wfu_randomString(10);wfu_lock_upload(sid);wfu_Code_Objects[sid].do_action("pre_start");if(!wfu_Code_Objects[sid].apply_filters("pre_start_ask_server",false,WFU.has_filters?"true":"false"))wfu_HTML5UploadFile_cont(sid,unique_upload_id);else{var url=GlobalData.consts.ajax_url;params=new Array(5);
105
- params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_ask_server";params[1]=new Array(2);params[1][0]="session_token";params[1][1]=WFU.session;params[2]=new Array(2);params[2][0]="sid";params[2][1]=sid;params[3]=new Array(2);params[3][0]="unique_id";params[3][1]=unique_upload_id;params[4]=new Array(2);params[4][0]="wfu_uploader_nonce";params[4][1]=document.getElementById("wfu_uploader_nonce_"+sid).value;var params_obj=wfu_Code_Objects[sid].apply_filters("askserver_pass_params",
106
- {});for(var prop in params_obj)if(params_obj.hasOwnProperty(prop))params.push([prop,params_obj[prop]]);var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var txt=xhr.responseText;var txt_value="";var success_txt="wfu_askserver_success:";var error_txt="wfu_askserver_error:";
107
- var pos_success=txt.indexOf(success_txt);var pos_error=txt.indexOf(error_txt);var pos=-1;if(pos_success>-1){txt_value=txt.substr(pos_success+success_txt.length);wfu_Code_Objects[sid].do_action("askserver_success",txt_value,"ajax");wfu_HTML5UploadFile_cont(sid,unique_upload_id)}else if(pos_error>-1){txt_value=txt.substr(pos_error+error_txt.length);wfu_unlock_upload(sid);wfu_Code_Objects[sid].do_action("askserver_error",txt_value)}}else{alert(GlobalData.consts.remoteserver_noresult);wfu_unlock_upload(sid);
108
- wfu_Code_Objects[sid].do_action("askserver_noresult")}};xhr.send(parameters)}}
109
- function wfu_HTML5UploadFile_cont(sid,unique_upload_id){function sendfile(ind,file,only_check,force_close_connection){ret_status=true;var xhr=wfu_GetHttpRequestObject();var xhr_close_connection=wfu_GetHttpRequestObject();if(xhr==null||xhr_close_connection==null)return;var fd=null;var fd_close_connection=null;try{var fd=new FormData;var fd_close_connection=new FormData}catch(e){}if(fd==null||fd_close_connection==null)return;fd.append("action","wfu_ajax_action");fd.append("wfu_uploader_nonce",document.getElementById("wfu_uploader_nonce_"+
110
- sid).value);if(!only_check)fd.append("uploadedfile_"+sid+suffice,file);fd.append("uploadedfile_"+sid+"_index",ind);fd.append("uploadedfile_"+sid+"_name",wfu_plugin_encode_string(farr[ind].name));fd.append("uploadedfile_"+sid+"_size",farr[ind].size);fd.append("uniqueuploadid_"+sid,unique_upload_id);fd.append("params_index",WFU.params_index);fd.append("subdir_sel_index",subdir_sel_index);fd.append("nofileupload_"+sid,nofileupload?"1":"0");if(only_check)fd.append("only_check","1");else fd.append("only_check",
111
- "0");fd.append("session_token",WFU.session);var other_params=wfu_Code_Objects[sid].apply_filters("upload_pass_params",{},"ajax");for(var prop in other_params)if(other_params.hasOwnProperty(prop))fd.append(prop,other_params[prop]);var userdata_count=wfu_get_userdata_count(sid);for(var ii=0;ii<userdata_count;ii++)fd.append("hiddeninput_"+sid+"_userdata_"+ii,document.getElementById("hiddeninput_"+sid+"_userdata_"+ii).value);wfu_initialize_fileupload_xhr(xhr,sid,unique_upload_id,ind,farr[ind].name);xhr.loading=
112
- true;if(!only_check){xhr.size=file.size;xhr.totalsize=farr[ind].size}if(force_close_connection){fd_close_connection.append("action","wfu_ajax_action");fd_close_connection.append("wfu_uploader_nonce",document.getElementById("wfu_uploader_nonce_"+sid).value);fd_close_connection.append("params_index",WFU.params_index);fd_close_connection.append("session_token",WFU.session);fd_close_connection.append("force_connection_close","1");xhr_close_connection.open("POST",GlobalData.consts.ajax_url,false);try{xhr_close_connection.send(fd_close_connection)}catch(err){}ret_status=
113
- xhr_close_connection.responseText.indexOf("success")>-1}if(ret_status)if(!only_check){xhr.upload.xhr=xhr;xhr.upload.dummy=1;xhr.upload.addEventListener("loadstart",wfu_loadStart,false);xhr.upload.addEventListener("progress",new Function("evt","wfu_uploadProgress(evt, "+sid+", "+xhr.xhrid+", "+(WFU.debugmode?"true":"false")+");"),false);xhr.addEventListener("load",wfu_uploadComplete,false);xhr.addEventListener("error",new Function("evt","wfu_uploadFailed(evt, "+(WFU.debugmode?"true":"false")+");"),
114
- false);xhr.addEventListener("abort",wfu_uploadCanceled,false);xhr.open("POST",GlobalData.consts.ajax_url,true);xhr.send(fd)}else{xhr.addEventListener("load",function(evt){evt={target:{responseText:evt.target.responseText,shortcode_id:sid,return_status:true}};var file_status=wfu_uploadComplete.call(xhr,evt);xhr.file_id=0;ret_status=file_status=="success"||file_status=="warning";if(ret_status&&!nofileupload)sendfile(ind,file,false,false);else if(ret_status&&nofileupload);},false);xhr.addEventListener("error",
115
- function(evt){return},false);xhr.open("POST",GlobalData.consts.ajax_url,true);xhr.send(fd)}else{var evt={target:{responseText:"",shortcode_id:sid}};wfu_uploadComplete.call(xhr,evt)}inc++;return ret_status}var WFU=GlobalData.WFU[sid];var subdir_sel_index=-1;if(!!WFU.subfolders_exist)subdir_sel_index=WFU.subfolders.index();var farr=wfu_get_filelist(sid);var nofileupload=false;if(farr.length==0&&WFU.allownofile){nofileupload=true;farr=[{name:"dummy.txt",size:0}]}var suffice="";GlobalData.UploadInProgressString+=
116
- "["+unique_upload_id+"]";GlobalData[sid]={};GlobalData[sid].unique_id=unique_upload_id;GlobalData[sid].last=false;GlobalData[sid].files_count=1;GlobalData[sid].files_processed=0;GlobalData[sid].upload_state=0;GlobalData[sid].nofileupload=nofileupload;GlobalData[sid].message=[];GlobalData[sid].update_wpfilebase="";GlobalData[sid].redirect_link="";GlobalData[sid].notify_by_email=0;GlobalData[sid].admin_messages={};GlobalData[sid].admin_messages.wpfilebase="";GlobalData[sid].admin_messages.notify="";
117
- GlobalData[sid].admin_messages.redirect="";GlobalData[sid].admin_messages.debug=[];GlobalData[sid].admin_messages.other=[];GlobalData[sid].errors={};GlobalData[sid].errors.wpfilebase="";GlobalData[sid].errors.notify="";GlobalData[sid].errors.redirect="";GlobalData[sid].xhrs=Array();GlobalData[sid].metricstotal={size:farr[0].size,loaded:0,progress_pos:0};GlobalData[sid].metrics=[{size:farr[0].size,loaded:0,progress_pos:0}];if(!!WFU.progressbar_exist&&!nofileupload)WFU.progressbar.show("progressive");
118
- wfu_attach_cancel_event(sid,unique_upload_id);var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id=unique_upload_id;wfu_ProcessUploadComplete(sid,0,Params,unique_upload_id,"",[false,null,false]);var inc=0;var ret_status=true;var i=0;var fprops=[];sendfile(i,farr[i],true,false)}
119
- function wfu_initialize_fileupload_xhr(xhr,sid,unique_upload_id,file_ind,filename){var WFU=GlobalData.WFU[sid];var xhrid=file_ind>=0?GlobalData[sid].xhrs.push(xhr)-1:-1;var d=new Date;xhr.xhrid=xhrid;xhr.shortcode_id=sid;xhr.requesttype=file_ind>=0?"fileupload":"email";xhr.file_id=file_ind+1;xhr.size=0;xhr.totalsize=0;xhr.loading=false;xhr.deltasize=0;xhr.deltaloaded=0;xhr.sizeloaded=0;xhr.aborted=false;xhr.unique_id=unique_upload_id;xhr.start_time=d.getTime();xhr.end_time=xhr.start_time;xhr.finish_time=
120
- xhr.start_time+parseInt(GlobalData.consts.max_time_limit)*1E3;xhr.error_message_header=WFU.error_header.replace(/%username%/g,"no data");xhr.error_message_header=xhr.error_message_header.replace(/%useremail%/g,"no data");xhr.error_message_header=xhr.error_message_header.replace(/%filename%/g,filename);xhr.error_message_header=xhr.error_message_header.replace(/%filepath%/g,filename);xhr.error_message_failed=GlobalData.consts.message_failed;xhr.error_message_cancelled=GlobalData.consts.message_cancelled;
121
- xhr.error_adminmessage_unknown=GlobalData.consts.adminmessage_unknown.replace(/%username%/g,"no data");xhr.error_adminmessage_unknown=xhr.error_adminmessage_unknown.replace(/%useremail%/g,"no data");xhr.error_adminmessage_unknown=xhr.error_adminmessage_unknown.replace(/%filename%/g,filename);xhr.error_adminmessage_unknown=xhr.error_adminmessage_unknown.replace(/%filepath%/g,filename)}
122
- function wfu_get_userdata_count(sid){var WFU=GlobalData.WFU[sid];var fields_count=0;if(!!WFU.userdata_exist)fields_count=WFU.userdata.props.length;return fields_count}
123
- function wfu_lock_upload(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist)WFU.textbox.update("lock");if(!!WFU.uploadform_exist)WFU.uploadform.lock();if(!!WFU.subfolders_exist)WFU.subfolders.toggle(false);if(!!WFU.submit_exist)WFU.submit.toggle(false);var userdata_count=wfu_get_userdata_count(sid);for(var i=0;i<userdata_count;i++)WFU.userdata.codes[i].lock();wfu_Code_Objects[sid].do_action("lock_upload")}
124
- function wfu_unlock_upload(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist)WFU.textbox.update("unlock");if(!!WFU.uploadform_exist)WFU.uploadform.unlock();if(!!WFU.subfolders_exist)WFU.subfolders.toggle(true);if(!!WFU.submit_exist)WFU.submit.toggle(true);var userdata_count=wfu_get_userdata_count(sid);for(var i=0;i<userdata_count;i++)WFU.userdata.codes[i].unlock();wfu_Code_Objects[sid].do_action("unlock_upload")}
125
- function wfu_clear_files(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.uploadform_exist)WFU.uploadform.reset();if(typeof WFU.filearray!="undefined"){WFU.filearray.length=0;WFU.filearrayprops.length=0}if(!!WFU.textbox_exist)WFU.textbox.update("clear")}
126
- function wfu_clear(sid){var WFU=GlobalData.WFU[sid];wfu_clear_files(sid);if(!!WFU.subfolders_exist)WFU.subfolders.reset();var userdata_count=wfu_get_userdata_count(sid);for(var i=0;i<userdata_count;i++)WFU.userdata.codes[i].reset();wfu_Code_Objects[sid].do_action("clear_upload")}
127
- function wfu_invoke_shortcode_editor(WFU){var sid=WFU.shortcode_id;var same=0;var n=GlobalData.WFU.n;if(WFU.shortcode_tag=="wordpress_file_upload_browser")n=GlobalData.WFUB.n;for(var i=0;i<n.length;i++)if(n[i]==sid)same++;if(same==0)return;if(same>1){alert(GlobalData.consts.same_pluginid);return}var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;WFU.visualeditorbutton.update("on_invoke");var url=GlobalData.consts.ajax_url;params=new Array(6);params[0]=new Array(2);params[0][0]="action";params[0][1]=
128
- "wfu_ajax_action_edit_shortcode";params[1]=new Array(2);params[1][0]="upload_id";params[1][1]=sid;params[2]=new Array(2);params[2][0]="post_id";params[2][1]=WFU.post_id;params[3]=new Array(2);params[3][0]="post_hash";params[3][1]=WFU.post_hash;params[4]=new Array(2);params[4][0]="shortcode_tag";params[4][1]=WFU.shortcode_tag;params[5]=new Array(2);params[5][0]="widget_id";params[5][1]=WFU.widgetid?WFU.widgetid:"";var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+
129
- "="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){WFU.visualeditorbutton.update("on_open");var start_text="wfu_edit_shortcode:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);
130
- pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){var editor_window=window.open(wfu_plugin_decode_string(txt_value),"_blank");if(editor_window)editor_window.plugin_window=window;else alert(GlobalData.consts.enable_popups)}else if(txt_header=="check_page_obsolete")alert(txt_value)}};xhr.send(parameters)}
131
- wfu_initialize_webcam=function(sid,mode,audiocapture,videowidth,videoheight,videoaspectratio,videoframerate,camerafacing,maxrecordtime){if(typeof wfu_parse_video_width=="undefined")wfu_parse_video_width=function(videowidth){var vw=parseInt(videowidth);if(vw>0){this.empty=false;this.video.width=vw}};if(typeof wfu_parse_video_height=="undefined")wfu_parse_video_height=function(videoheight){var vh=parseInt(videoheight);if(vh>0){this.empty=false;this.video.height=vh}};if(typeof wfu_parse_video_aspectratio==
132
- "undefined")wfu_parse_video_aspectratio=function(videoaspectratio){var ar=parseFloat(videoaspectratio);if(ar>0){this.empty=false;this.video.aspectRatio=ar}};if(typeof wfu_parse_video_framerate=="undefined")wfu_parse_video_framerate=function(videoframerate){var fr=parseFloat(videoframerate);if(fr>0){this.empty=false;this.video.frameRate=fr}};if(typeof wfu_parse_video_facingmode=="undefined")wfu_parse_video_facingmode=function(camerafacing){var cf=camerafacing=="front"?"user":camerafacing=="back"?"environment":
133
- "";if(cf!=""){this.empty=false;this.video.facingMode=cf}};var video_settings={empty:true,video:{}};wfu_parse_video_width.call(video_settings,videowidth);wfu_parse_video_height.call(video_settings,videoheight);wfu_parse_video_aspectratio.call(video_settings,videoaspectratio);wfu_parse_video_framerate.call(video_settings,videoframerate);wfu_parse_video_facingmode.call(video_settings,camerafacing);var WebcamProps={mode:mode,audio:audiocapture=="true",video:video_settings.empty?true:video_settings.video,
134
- maxrecordtime:maxrecordtime};GlobalData.WFU[sid].webcamProps=WebcamProps;wfu_reinitialize_webcam(sid)};
135
- wfu_reinitialize_webcam=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_props.active=true;webcam_props.width=0;webcam_props.width=0;webcam_props.timeStart=0;webcam_props.duration=0;webcam_props.counting=false;webcam_props.stream=null;webcam_props.media=null;webcam_props.blobs=null;webcam_props.playing=false;var WebcamProps=webcam_props;webcam_obj.updateStatus("idle");var constraints={audio:WebcamProps.audio,video:WebcamProps.video};if(typeof Promise==
136
- "undefined"){Promise=function(mainCallback){this.mainCallback=mainCallback;this.then=function(successCallback){this.successCallback=successCallback;return this};this["catch"]=function(errorCallback){mainCallback(this.successCallback,errorCallback)}};PromiseRejected=function(error){this.then=function(successCallback){return this};this["catch"]=function(errorCallback){errorCallback(error)}};Promise.reject=function(error){return new PromiseRejected(error)}}var promisifiedOldGUM=function(constraints,
137
- successCallback,errorCallback){var getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;if(!getUserMedia||typeof MediaRecorder=="undefined")return Promise.reject(new Error("getUserMedia is not implemented in this browser"));return new Promise(function(successCallback,errorCallback){getUserMedia.call(navigator,constraints,successCallback,errorCallback)})};if(navigator.mediaDevices===undefined)navigator.mediaDevices={};if(navigator.mediaDevices.getUserMedia===
138
- undefined)navigator.mediaDevices.getUserMedia=promisifiedOldGUM;navigator.mediaDevices.getUserMedia(constraints).then(function(stream){webcam_props.stream=stream;webcam_obj.setVideoProperties({autoplay:true,ontimeupdate:null,onerror:null,onloadeddata:function(e){wfu_webcam_init_callback(sid)},src:window.URL.createObjectURL(stream)});webcam_obj.initButtons(WebcamProps.mode)})["catch"](function(e){console.log("Video not supported!",e);webcam_obj.updateStatus("video_notsupported")})};
139
- wfu_webcam_init_callback=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;var video_size=webcam_obj.videoSize();webcam_props.width=video_size.width;webcam_props.height=video_size.height;webcam_obj.initCallback()};
140
- wfu_webcam_counter_status=function(sid,action){var webcam_props=GlobalData.WFU[sid].webcamProps;if(action=="start"){var d=new Date;webcam_props.duration=0;webcam_props.timeStart=d.getTime()/1E3;webcam_props.counting=true;wfu_webcam_update_counter(sid)}else{var d=new Date;webcam_props.duration=d.getTime()/1E3-webcam_props.timeStart;webcam_props.counting=false}};
141
- wfu_webcam_update_counter=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.counting){var d=new Date;var dif=d.getTime()/1E3-webcam_props.timeStart;webcam_obj.updateTimer(dif);setTimeout(function(){wfu_webcam_update_counter(sid)},100)}};
142
- wfu_webcam_onoff=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.active){webcam_obj.updateStatus("off");webcam_obj.updateButtonStatus("hidden");if(webcam_props.stream&&webcam_props.stream.stop)webcam_props.stream.stop();webcam_props.stream=null;webcam_props.media=null;webcam_props.blobs=null;webcam_props.active=false}else wfu_reinitialize_webcam(sid);wfu_selectbutton_clicked(sid)};
143
- wfu_webcam_golive=function(sid){var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.playing)return;wfu_reinitialize_webcam(sid);wfu_add_files(sid,[],false);wfu_selectbutton_clicked(sid);wfu_update_uploadbutton_status(sid)};
144
- wfu_webcam_start_rec=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.media&&webcam_props.media.state&&webcam_props.media.state=="recording")return;try{webcam_props.media=new MediaRecorder(webcam_props.stream)}catch(err){alert(GlobalData.consts.webcam_video_notsupported);return}webcam_props.blobs=[];webcam_props.media.ondataavailable=function(e){var d=new Date;var dif=d.getTime()/1E3-webcam_props.timeStart;if(webcam_props.maxrecordtime==
145
- -1||webcam_props.maxrecordtime>0&&dif<=webcam_props.maxrecordtime){if(e.data&&e.data.size>0)webcam_props.blobs.push(e.data)}else wfu_webcam_stop_rec(sid)};webcam_obj.updateButtonStatus("recording");wfu_webcam_counter_status(sid,"start");webcam_props.media.onstop=function(e){wfu_webcam_counter_status(sid,"stop");webcam_obj.updateButtonStatus("after_recording");wfu_webcam_onstop(e,sid)};webcam_props.media.start(10)};
146
- wfu_webcam_stop_rec=function(sid){var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_props.media.stop()};
147
- wfu_webcam_onstop=function(e,sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.blobs.length==0){alert(GlobalData.consts.webcam_video_nothingrecorded);wfu_webcam_golive(sid)}else{if(webcam_props.stream)webcam_obj.screenshot();var superBuffer=new Blob(webcam_props.blobs,{type:"video/mp4"});webcam_obj.setVideoProperties({autoplay:false,ontimeupdate:function(e){wfu_webcam_update_pos(sid)},onended:function(e){wfu_webcam_ended(sid)},onloadeddata:function(e){if(webcam_obj.readyState()>=
148
- 2)webcam_obj.updateButtonStatus("ready_playback")},onerror:function(e){webcam_obj.setVideoProperties({onloadeddata:null,src:window.URL.createObjectURL(webcam_props.stream)})},src:window.URL.createObjectURL(superBuffer)});superBuffer.name="video.mp4";wfu_add_files(sid,[{file:superBuffer,props:{}}],false);wfu_update_uploadbutton_status(sid)}};
149
- wfu_webcam_play=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.playing)return;webcam_obj.updateButtonStatus("playing");webcam_props.playing=true;webcam_obj.play()};wfu_webcam_ended=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.ended();webcam_obj.updateButtonStatus("ready_playback");webcam_props.playing=false};
150
- wfu_webcam_pause=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.pause();webcam_obj.updateButtonStatus("ready_playback");webcam_props.playing=false};wfu_webcam_back=function(sid){GlobalData.WFU[sid].webcam.back()};wfu_webcam_fwd=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.fwd(webcam_props.duration)};
151
- wfu_webcam_take_picture=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.stream){webcam_obj.screenshot(function(image_file){image_file.name="image.png";wfu_add_files(sid,[{file:image_file,props:{}}],false);wfu_update_uploadbutton_status(sid)},"image/png");webcam_obj.updateButtonStatus("after_screenshot")}};
152
- wfu_webcam_update_pos=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.updatePlayProgress(webcam_props.duration);webcam_obj.updateTimer(video.currentTime)};wfu_run_js_from_bank();
1
+ GlobalData={};Code_Initializators=[];GlobalData.WFU={n:[]};GlobalData.WFUB={n:[]};GlobalData.filestatematch={};GlobalData.filestatematch.success=[0,1,2,2];GlobalData.filestatematch.warning=[1,1,2,2];GlobalData.filestatematch.error1=[3,3,2,3];GlobalData.filestatematch.error2=[2,2,2,3];GlobalData.UploadInProgressString="";GlobalData.FreeChangeHandler=false;wfu_Check_Browser_Capabilities();
2
+ if(typeof wfu_js_decode_obj=="undefined")wfu_js_decode_obj=function(obj_str){var obj=null;if(obj_str=="window")obj=window;else{var dbs=String.fromCharCode(92);var match=obj_str.match(new RegExp("GlobalData("+dbs+".(WFU|WFUB)"+dbs+"[(.*?)"+dbs+"]("+dbs+".(.*))?)?$"));if(match){obj=GlobalData;if(match[3])obj=obj[match[2]][match[3]];if(match[5])obj=obj[match[5]]}}return obj};
3
+ function wfu_run_js_from_bank(){if(typeof WFU_JS_BANK!="undefined")while(WFU_JS_BANK.length>0){var obj=wfu_js_decode_obj(WFU_JS_BANK[0].obj_str);if(obj)obj[WFU_JS_BANK[0].func].call(obj);WFU_JS_BANK.splice(0,1)}}
4
+ function wfu_Initialize_Consts(consts){if(typeof GlobalData.consts!="undefined")return;GlobalData.consts=new Object;var consts_arr=consts.split(";");var const_arr;for(var i=0;i<consts_arr.length;i++){const_txt=consts_arr[i].split(":");GlobalData.consts[wfu_plugin_decode_string(const_txt[0])]=wfu_plugin_decode_string(const_txt[1])}}
5
+ function wfu_Load_Code_Connectors(sid){if(typeof wfu_Code_Objects=="undefined")wfu_Code_Objects={};wfu_Code_Objects[sid]=new wfu_Code_Object(sid);for(var i=0;i<Code_Initializators.length;i++)wfu_Code_Objects[sid].additem(Code_Initializators[i](sid))}
6
+ function wfu_Code_Object(sid){this.sid=sid;this.items=[];this._calc_prioritized_list=function(section){var item,list=[],idlist=[],nolist=[],priority;for(var i=0;i<this.items.length;i++){item=this.items[i];if(item[section]){priority=-1;if(item.priority)priority=item.priority;if(item[section].priority)priority=item[section].priority;if(priority>=0){list.push(priority);idlist.push(i)}else nolist.push(i)}}for(var i=1;i<list.length;i++)for(var j=i;j<list.length;j++)if(list[j]<list[i-1]){var temp=list[j];
7
+ list[j]=list[i-1];list[i-1]=temp;var temp=idlist[j];idlist[j]=idlist[i-1];idlist[i-1]=temp}return idlist.concat(nolist)};this.additem=function(item){this.items.push(item)};this.apply_filters=function(section,val){if(typeof val=="undefined")return null;var idlist=this._calc_prioritized_list(section);if(idlist.length==0)return val;for(var i=0;i<idlist.length;i++){var item=this.items[idlist[i]];var func=null;if(typeof item[section]=="function")func=item[section];else if(typeof item[section].func=="function")func=
8
+ item[section].func;if(func!=null){val=func.apply(this,Array.prototype.slice.call(arguments,1));arguments[1]=val}}return val};this.do_action=function(section){var idlist=this._calc_prioritized_list(section);if(idlist.length==0)return;for(var i=0;i<idlist.length;i++){var item=this.items[idlist[i]];var func=null;if(typeof item[section]=="function")func=item[section];else if(typeof item[section].func=="function")func=item[section].func;if(func!=null)func.apply(this,Array.prototype.slice.call(arguments,
9
+ 1))}}}
10
+ function wfu_plugin_load_action(sid){var WFU=GlobalData.WFU[sid];wfu_install_unload_hook();if(!!WFU.visualeditorbutton_exist){WFU.visualeditorbutton.init();var invoke_function=function(){wfu_invoke_shortcode_editor(WFU)};WFU.visualeditorbutton.attachInvokeHandler(invoke_function)}if(WFU.is_formupload)WFU.uploadaction=function(){wfu_redirect_to_classic(sid,0,0)};else WFU.uploadaction=function(){wfu_HTML5UploadFile(sid)};var clickaction=function(){wfu_selectbutton_clicked(sid)};var changeaction=function(fileselected){var WFU=
11
+ GlobalData.WFU[sid];var usefilearray=0;wfu_selectbutton_changed(sid,usefilearray);wfu_update_uploadbutton_status(sid);if(WFU.singlebutton&&fileselected)WFU.uploadaction()};if(!!WFU.uploadform_exist)WFU.uploadform.attachActions(clickaction,changeaction);var completeaction=function(status){document.getElementById("consentresult_"+sid).value=status?"yes":"no"};if(!!WFU.consent_exist){WFU.consent.attachActions(completeaction);WFU.consent.update("init")}if(!!WFU.submit_exist){if(WFU.testmode)clickaction=
12
+ function(){alert(GlobalData.consts.notify_testmode)};else clickaction=function(){WFU.uploadaction()};WFU.submit.attachClickAction(clickaction)}}function wfu_install_unload_hook(){window.onbeforeunload=wfu_unload_hook}function wfu_unload_hook(){if(GlobalData.UploadInProgressString!="")if(GlobalData.UploadInProgressString.trim()!="")return GlobalData.consts.wfu_pageexit_prompt}
13
+ function wfu_Check_Browser_Capabilities(){if(typeof wfu_BrowserCaps!="undefined")return;wfu_BrowserCaps=new Object;var xmlhttp=wfu_GetHttpRequestObject();wfu_BrowserCaps.supportsAJAX=xmlhttp!=null;wfu_BrowserCaps.supportsUploadProgress=!!(xmlhttp&&"upload"in xmlhttp&&"onprogress"in xmlhttp.upload);var fd=null;try{var fd=new FormData}catch(e$0){}wfu_BrowserCaps.supportsHTML5=fd!=null;var e=document.createElement("iframe");wfu_BrowserCaps.supportsIFRAME=e!=null;wfu_BrowserCaps.supportsDRAGDROP=window.FileReader?
14
+ true:false;wfu_BrowserCaps.supportsAnimation=wfu_check_animation();wfu_BrowserCaps.isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0}
15
+ function wfu_check_animation(){var animation=false,animationstring="animation",keyframeprefix="",domPrefixes="Webkit Moz O ms Khtml".split(" "),pfx="";var elm=document.createElement("DIV");if(elm.style.animationName)animation=true;if(animation===false)for(var i=0;i<domPrefixes.length;i++)if(elm.style[domPrefixes[i]+"AnimationName"]!==undefined){pfx=domPrefixes[i];animationstring=pfx+"Animation";keyframeprefix="-"+pfx.toLowerCase()+"-";animation=true;break}return animation}
16
+ function wfu_join_strings(delimeter){var args=[].slice.call(arguments);var str="";var delim="";for(var i=1;i<args.length;i++){if(str==""||args[i]=="")delim="";else delim=delimeter;str+=delim+args[i]}return str}
17
+ function wfu_plugin_decode_string(str){var i=0;var newstr="";var num,val;while(i<str.length){num=parseInt(str.substr(i,2),16);if(num<128)val=num;else if(num<224)val=((num&31)<<6)+(parseInt(str.substr(i+=2,2),16)&63);else val=((num&15)<<12)+((parseInt(str.substr(i+=2,2),16)&63)<<6)+(parseInt(str.substr(i+=2,2),16)&63);newstr+=String.fromCharCode(val);i+=2}return newstr}
18
+ function wfu_plugin_encode_string(str){var i=0;var newstr="";var hex="";for(i=0;i<str.length;i++){num=str.charCodeAt(i);if(num>=2048)num=((num&16773120|917504)<<4)+((num&4032|8192)<<2)+(num&63|128);else if(num>=128)num=((num&65472|12288)<<2)+(num&63|128);hex=num.toString(16);if(hex.length==1||hex.length==3||hex.length==5)hex="0"+hex;newstr+=hex}return newstr}
19
+ function wfu_randomString(len){var chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var string_length=len;var randomstring="";for(var i=0;i<string_length;i++){var rnum=Math.floor(Math.random()*chars.length);randomstring+=chars.substring(rnum,rnum+1)}return randomstring}function wfu_addEventHandler(obj,evt,handler){if(obj.addEventListener)obj.addEventListener(evt,handler,false);else if(obj.attachEvent)obj.attachEvent("on"+evt,handler);else obj["on"+evt]=handler}
20
+ function wfu_attach_element_handlers(item,handler){var elem_events=["DOMAttrModified","textInput","input","change","keypress","paste","focus","propertychange"];for(var i=0;i<elem_events.length;i++)wfu_addEventHandler(item,elem_events[i],handler)}
21
+ function wfu_GetHttpRequestObject(){var xhr=null;try{xhr=new XMLHttpRequest}catch(e$1){try{xhr=new ActiveXObject("Msxml2.XMLHTTP")}catch(e2){try{xhr=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}}if(xhr==null&&window.createRequest)try{xmlhttp=window.createRequest()}catch(e$2){}return xhr}
22
+ function wfu_get_filelist(sid,include_filearray){var WFU=GlobalData.WFU[sid];include_filearray=typeof include_filearray!=="undefined"?include_filearray:true;var farr=[];if(!!WFU.uploadform_exist)farr=WFU.uploadform.files();if(include_filearray&&typeof WFU.filearray!=="undefined")farr=WFU.filearray;return farr}
23
+ function wfu_add_files(sid,files){var WFU=GlobalData.WFU[sid];if(typeof WFU.filearray=="undefined"){WFU.filearray=Array();WFU.filearrayprops=Array()}if(!!WFU.uploadform_exist)WFU.uploadform.reset();WFU.filearray.length=WFU.filearrayprops.length=0;for(var i=0;i<files.length;i++){WFU.filearray.push(files[i].file);WFU.filearrayprops.push(files[i].props)}}
24
+ function wfu_attach_cancel_event(sid,unique_upload_id){function wfu_cancel_classic_upload_final(){var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id="";Params.general.files_count=0;Params.general.state=16;wfu_ProcessUploadComplete(sid,0,Params,"no-ajax","",[false,null,false]);if(!!WFU.uploadform_exist){WFU.uploadform.reset();WFU.uploadform.submit();WFU.uploadform.lock()}}function wfu_cancel_classic_upload(){var url=GlobalData.consts.ajax_url+"?action=wfu_ajax_action_cancel_upload&wfu_uploader_nonce="+
25
+ document.getElementById("wfu_uploader_nonce_"+sid).value+"&sid="+sid+"&unique_id="+unique_upload_id+"&session_token="+GlobalData.WFU[sid].session;var xmlhttp=wfu_GetHttpRequestObject();if(xmlhttp==null){var i=document.createElement("iframe");if(i){i.style.display="none";i.src=url;document.body.appendChild(i);i.onload=function(){wfu_cancel_classic_upload_final()};return}}xmlhttp.open("GET",url,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.status==200)wfu_cancel_classic_upload_final()};
26
+ xmlhttp.send(null)}var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist){var textbox_cancel_function=function(){var answer=false;if(WFU.is_formupload){answer=confirm(GlobalData.consts.cancel_upload_prompt);if(answer==true)wfu_cancel_classic_upload()}else{if(!GlobalData[sid]||GlobalData[sid].xhrs.length==0)return false;var answer=confirm(GlobalData.consts.cancel_upload_prompt);if(answer==true){var farr=wfu_get_filelist(sid);var firstxhr=[];var filename=[];for(var i=0;i<farr.length;i++){firstxhr.push(null);
27
+ filename.push(farr[i].name)}for(var i=0;i<GlobalData[sid].xhrs.length;i++){var file_ind=GlobalData[sid].xhrs[i].file_id-1;if(file_ind>=0&&firstxhr[file_ind]==null)firstxhr[file_ind]=GlobalData[sid].xhrs[i]}if(WFU.debugmode)console.log("upload cancelled!");for(var i=0;i<firstxhr.length;i++){if(firstxhr[i]==null){firstxhr[i]=wfu_GetHttpRequestObject();if(firstxhr[i]!=null)wfu_initialize_fileupload_xhr(firstxhr[i],sid,unique_upload_id,i,filename[i])}if(firstxhr[i]!=-1){var evt={target:{responseText:"force_cancel_code",
28
+ shortcode_id:sid}};wfu_uploadComplete.call(firstxhr[i],evt)}}}}return answer};WFU.textbox.attachCancelHandler(textbox_cancel_function)}}function wfu_dettach_cancel_event(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist)WFU.textbox.dettachCancelHandler()}
29
+ function wfu_selectbutton_changed(sid,usefilearray){if(!wfu_BrowserCaps.supportsAJAX||!wfu_BrowserCaps.supportsHTML5)usefilearray=0;var farr=wfu_get_filelist(sid,false);if(usefilearray==1){if(typeof GlobalData.WFU[sid].filearray=="undefined")GlobalData.WFU[sid].filearray=Array();for(var i=0;i<farr.length;i++)GlobalData.WFU[sid].filearray.push(farr[i])}else if(typeof GlobalData.WFU[sid].filearray!="undefined")delete GlobalData.WFU[sid].filearray;wfu_update_filename_text(sid)}
30
+ function wfu_selectbutton_clicked(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.message_exist)WFU.message.reset();var resetform=true;if(resetform)if(!!WFU.uploadform_exist)WFU.uploadform.reset()}function wfu_update_uploadbutton_status(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.submit_exist){var submit=WFU.submit;var farr=wfu_get_filelist(sid);var status=farr.length>0||WFU.allownofile;status=wfu_Code_Objects[sid].apply_filters("uploadbutton_status",status);submit.toggle(status)}}
31
+ function wfu_update_filename_text(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist){var farr=wfu_get_filelist(sid);var filenames=[];for(var i=0;i<farr.length;i++)filenames.push(farr[i].name);WFU.textbox.update("set",filenames)}}
32
+ function wfu_init_userdata_handlers(sid,key){var WFU=GlobalData.WFU[sid];var props=WFU.userdata.props[key];var JS=WFU.userdata.codes[key];var obj=WFU.userdata;JS.init=function(){};JS.value=function(){return""};JS.lock=function(){};JS.unlock=function(){};JS.reset=function(){};JS.empty=function(){return""};JS.validate=null;JS.typehook=null;if(props.type=="text"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};
33
+ JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}else if(props.type=="multitext"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===
34
+ ""?obj.error_empty:""}}else if(props.type=="number"){JS.init=function(){obj.attachHandlers(props,function(e){if(props.typehook)JS.typehook(e);else props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){var re=/^(\+|\-)?[0-9]*$/i;if(props.format==
35
+ "f")re=/^(\+|\-)?[0-9]*?\.?[0-9]*$/i;return re.test(obj.getValue(props))?"":obj.error_invalid_number};JS.typehook=function(e){var re=/^(\+|\-)?[0-9]*$/i;if(props.format=="f")re=/^(\+|\-)?[0-9]*?\.?[0-9]*$/i;if(re.test(e.target.value))props.store();else e.target.value=props.getstored()}}else if(props.type=="email"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};
36
+ JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){if(obj.getValue(props)=="")return"";var re=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;return re.test(obj.getValue(props))?"":obj.error_invalid_email}}else if(props.type=="confirmemail"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};
37
+ JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){var baseprops=null;for(var i=0;i<WFU.userdata.props.length;i++)if(WFU.userdata.props[i]&&WFU.userdata.props[i].type=="email"&&WFU.userdata.props[i].group==props.group){baseprops=WFU.userdata.props[i];break}return baseprops!=null?obj.getValue(props)==obj.getValue(baseprops)?
38
+ "":obj.error_confirm_email_nomatch:obj.error_confirm_email_nobase}}else if(props.type=="password"){JS.init=function(){obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}else if(props.type=="confirmpassword"){JS.init=function(){obj.attachHandlers(props,
39
+ function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""};JS.validate=function(){var baseprops=null;for(var i=0;i<WFU.userdata.props.length;i++)if(WFU.userdata.props[i]&&WFU.userdata.props[i].type=="password"&&WFU.userdata.props[i].group==props.group){baseprops=
40
+ WFU.userdata.props[i];break}return baseprops!=null?obj.getValue(props)==obj.getValue(baseprops)?"":obj.error_confirm_password_nomatch:obj.error_confirm_password_nobase}}else if(props.type=="checkbox"){JS.init=function(){obj.initField(props);obj.setValue(props,props["default"]=="true");obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)?"true":"false"};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,
41
+ props["default"]=="true");props.store()};JS.empty=function(){return!obj.getValue(props)?obj.error_checkbox_notchecked:""}}else if(props.type=="radiobutton"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?
42
+ obj.error_radio_notselected:""}}else if(props.type=="date"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){def=props["default"].trim();if(def.substr(0,1)=="("&&def.substr(def.length-1,1)==")")def=def.substr(1,def.length-2);else def="";obj.setValue(props,def);props.store()};JS.empty=function(){return obj.getValue(props)===
43
+ ""?obj.error_empty:""}}else if(props.type=="time"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){def=props["default"].trim();if(def.substr(0,1)=="("&&def.substr(def.length-1,1)==")")def=def.substr(1,def.length-2);else def="";obj.setValue(props,def);props.store()};JS.empty=function(){return obj.getValue(props)===
44
+ ""?obj.error_empty:""}}else if(props.type=="datetime"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){def=props["default"].trim();if(def.substr(0,1)=="("&&def.substr(def.length-1,1)==")")def=def.substr(1,def.length-2);else def="";obj.setValue(props,def);props.store()};JS.empty=function(){return obj.getValue(props)===
45
+ ""?obj.error_empty:""}}else if(props.type=="list"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}else if(props.type=="dropdown"){JS.init=function(){obj.initField(props);obj.attachHandlers(props,
46
+ function(e){props.store()})};JS.value=function(){return obj.getValue(props)};JS.lock=function(){obj.disable(props)};JS.unlock=function(){obj.enable(props)};JS.reset=function(){obj.setValue(props,props["default"]);props.store()};JS.empty=function(){return obj.getValue(props)===""?obj.error_empty:""}}JS.init()}function wfu_Redirect(link){window.location=link}function wfu_loadStart(evt){}
47
+ function wfu_update_upload_metrics(sid){var totalsize=0;var totalloaded=0;var totaldelta=0;var metrics=Array();var farr=wfu_get_filelist(sid);for(var i=0;i<farr.length;i++)metrics[i]={size:farr[i].size,aborted:false,loaded:0,delta:0};for(var i=0;i<GlobalData[sid].xhrs.length;i++){var file_id=GlobalData[sid].xhrs[i].file_id;if(file_id>0&&GlobalData[sid].xhrs[i].aborted)metrics[file_id-1].aborted=true}for(var i=0;i<GlobalData[sid].xhrs.length;i++){var file_id=GlobalData[sid].xhrs[i].file_id;if(file_id>
48
+ 0&&!metrics[file_id-1].aborted){metrics[file_id-1].size=Math.max(GlobalData[sid].xhrs[i].totalsize,metrics[file_id-1].size);metrics[file_id-1].loaded+=GlobalData[sid].xhrs[i].sizeloaded;metrics[file_id-1].delta+=Math.max(GlobalData[sid].xhrs[i].deltaloaded,0)}}for(var i=0;i<farr.length;i++){var Gm=GlobalData[sid].metrics[i];if(!metrics[i].aborted&&metrics[i].size>0){Gm.size=metrics[i].size;if(GlobalData.consts.wfu_uploadprogress_mode=="incremental")Gm.progress_pos=Math.min(Gm.progress_pos+(1-Gm.progress_pos)*
49
+ metrics[i].delta/(Gm.size-Gm.loaded),1);else Gm.progress_pos=metrics[i].loaded/metrics[i].size;Gm.loaded=metrics[i].loaded;totalsize+=Gm.size;totalloaded+=Gm.loaded;totaldelta+=metrics[i].delta}else{Gm.size=0;Gm.progress_pos=0;Gm.loaded=0}}var Gm=GlobalData[sid].metricstotal;Gm.size=totalsize;if(GlobalData.consts.wfu_uploadprogress_mode=="incremental")Gm.progress_pos=Math.min(Gm.progress_pos+(1-Gm.progress_pos)*totaldelta/(Gm.size-Gm.loaded),1);else Gm.progress_pos=totalloaded/totalsize;Gm.loaded=
50
+ totalloaded}
51
+ function wfu_uploadProgress(evt,sid,xhrid,debugmode){var WFU=GlobalData.WFU[sid];if(debugmode&&typeof this.xhr=="undefined"){console.log("total="+evt.total+", loaded="+evt.loaded);console.log(evt)}var this_xhr=GlobalData[sid].xhrs[xhrid];if(this_xhr.file_id==0)return;var percentComplete=0;var delta=0;var simplebar_exists=!!WFU.progressbar_exist;if(evt.lengthComputable){this_xhr.deltaloaded=evt.loaded-this_xhr.sizeloaded;this_xhr.sizeloaded=evt.loaded;if(this_xhr.size<evt.total&&evt.total>0){delta=
52
+ evt.total-this_xhr.size;this_xhr.deltasize+=delta;this_xhr.size+=delta;for(var i=0;i<GlobalData[sid].xhrs.length;i++)if(GlobalData[sid].xhrs[i].file_id==this_xhr.file_id)GlobalData[sid].xhrs[i].totalsize+=delta}wfu_update_upload_metrics(sid);this_xhr.deltaloaded=0;if(simplebar_exists){percentComplete=Math.round(GlobalData[sid].metricstotal.progress_pos*100);WFU.progressbar.update(percentComplete)}}else if(simplebar_exists)WFU.progressbar.update(0)}
53
+ function wfu_notify_WPFilebase(params_index,session_token){var xhr=wfu_GetHttpRequestObject();if(xhr==null){var i=document.createElement("iframe");i.style.display="none";i.src=GlobalData.consts.ajax_url+"?action=wfu_ajax_action_notify_wpfilebase&params_index="+params_index+"&session_token="+session_token;document.body.appendChild(i);return}var url=GlobalData.consts.ajax_url;params=new Array(3);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_notify_wpfilebase";params[1]=
54
+ new Array(2);params[1][0]="params_index";params[1][1]=params_index;params[2]=new Array(2);params[2][0]="session_token";params[2][1]=session_token;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){};xhr.send(parameters)}
55
+ function wfu_send_email_notification(sid,unique_id){var WFU=GlobalData.WFU[sid];var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=GlobalData.consts.ajax_url;params=new Array(4);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_send_email_notification";params[1]=new Array(2);params[1][0]="params_index";params[1][1]=WFU.params_index;params[2]=new Array(2);params[2][0]="session_token";params[2][1]=WFU.session;params[3]=new Array(2);params[3][0]="uniqueuploadid_"+
56
+ sid;params[3][1]=unique_id;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);wfu_initialize_fileupload_xhr(xhr,sid,unique_id,-1,"");xhr.error_message_header="";xhr.error_adminmessage_unknown="";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.addEventListener("load",wfu_uploadComplete,false);xhr.addEventListener("error",wfu_uploadFailed,false);xhr.addEventListener("abort",wfu_uploadCanceled,
57
+ false);xhr.send(parameters)}
58
+ function wfu_uploadComplete(evt){var d=new Date;var sid=this.shortcode_id;var WFU=GlobalData.WFU[sid];var i=this.file_id;var last=false;var js_script_enc="";var upload_params="";var safe_params="";var file_status="unknown";var uploaded_file_props="";var debug_data=null;var success_txt="wfu_fileupload_success:";this.loading=false;this.end_time=d.getTime();var txt=evt.target.responseText;var result_data=txt;var error_code="error";if(txt!=-1){if(txt.indexOf("force_errorabort_code")>-1){error_code="errorabort";
59
+ txt=txt.replace("force_errorabort_code","")}if(txt.indexOf("force_cancel_code")>-1){error_code="errorcancel";txt=txt.replace("force_cancel_code","")}}if(txt!=-1){var pos=txt.indexOf(success_txt);var debug_data_str="";if(pos>-1){if(WFU.debugmode)debug_data_str=txt.substr(0,pos);result_data=txt.substr(pos+success_txt.length);pos=result_data.indexOf(":");js_script_enc=result_data.substr(0,pos);result_data=result_data.substr(pos+1);pos=result_data.indexOf(":");safe_params=result_data.substr(0,pos);upload_params=
60
+ result_data.substr(pos+1)}if(debug_data_str!=""){var title="";if(this.requesttype=="fileupload")title="Debug Data - File: "+this.file_id;else if(this.requesttype=="email")title="Debug Data - Email Notification";debug_data={title:title,data:debug_data_str}}if(safe_params!=""){var safe_parts=safe_params.split(";");if(parseInt(safe_parts[2])==1){var filedata=safe_parts[3].split(",");file_status=wfu_plugin_decode_string(filedata[0]);uploaded_file_props=filedata[4]}}}if(upload_params==""||safe_params==
61
+ ""){var error_colors=WFU.fail_colors.split(",");var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id=this.unique_id;Params.general.state=7;Params.general.files_count=this.requesttype=="fileupload"?1:0;Params.general.upload_finish_time=this.finish_time;if(error_code!="errorcancel"){Params.general.fail_message=GlobalData.consts.message_unknown;Params.general.fail_admin_message=wfu_join_strings("<br />",this.error_adminmessage_unknown,this.requesttype+":"+result_data)}else{Params.general.fail_message=
62
+ GlobalData.consts.file_cancelled;Params.general.fail_admin_message=""}if(Params.general.files_count>0){Params[0]={};Params[0]["color"]=error_colors[0];Params[0]["bgcolor"]=error_colors[1];Params[0]["borcolor"]=error_colors[2];Params[0]["message_type"]=error_code;file_status=error_code;Params[0]["header"]=this.error_message_header;Params[0]["message"]=GlobalData.consts.message_timelimit;Params[0]["admin_messages"]=WFU.is_admin?GlobalData.consts.message_admin_timelimit:""}else Params.general.admin_messages.other=
63
+ WFU.is_admin?GlobalData.consts.message_admin_timelimit:"";if(Params.general.upload_finish_time>0)if(d.getTime()<Params.general.upload_finish_time)if(Params.general.files_count>0){Params[0]["message"]=Params.general.fail_message;Params[0]["admin_messages"]=WFU.is_admin?Params.general.fail_admin_message:""}else Params.general.admin_messages.other=WFU.is_admin?Params.general.fail_admin_message:""}if(upload_params==""||safe_params==""){if(WFU.debugmode)console.log("wfu_ProcessUploadComplete: ",sid,this.file_id,
64
+ "Params obj",this.unique_id,"",[WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,"");last=wfu_ProcessUploadComplete(sid,this.file_id,Params,this.unique_id,"",[WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,"")}else{if(WFU.debugmode)console.log("wfu_ProcessUploadComplete: ",sid,this.file_id,"Params str",this.unique_id,safe_params,[WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,js_script_enc);last=wfu_ProcessUploadComplete(sid,this.file_id,upload_params,this.unique_id,safe_params,
65
+ [WFU.debugmode,debug_data,WFU.is_admin],this.requesttype,js_script_enc)}if(last){wfu_dettach_cancel_event(sid);wfu_unlock_upload(sid);if(!!WFU.progressbar_exist)WFU.progressbar.hide();wfu_clear(sid)}if(evt.target.return_status)return file_status}
66
+ function wfu_ProcessUploadComplete(sid,file_id,upload_params,unique_id,safe_output,debug_data,request_type,js_script_enc){var WFU=GlobalData.WFU[sid];if(!sid||sid<0)return;if(upload_params==null||upload_params=="")return;if(unique_id=="")return;if(unique_id!="no-ajax"&&!GlobalData[sid])return;var do_redirect=false;if(typeof upload_params==="string"){upload_params=wfu_plugin_decode_string(upload_params.replace(/^\s+|\s+$/g,""));var Params=null;try{Params=JSON.parse(upload_params)}catch(e){}if(Params==
67
+ null){var safe_parts=safe_output.split(";");Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id=unique_id;Params.general.state=safe_parts[0];if(Params.general.state==4)Params.general.state++;var default_colors=safe_parts[1].split(",");var filedata="";var error_jsonparse_filemessage=GlobalData.consts.jsonparse_filemessage;var error_jsonparse_message=GlobalData.consts.jsonparse_message;var error_jsonparse_adminmessage=GlobalData.consts.jsonparse_adminmessage;Params.general.files_count=
68
+ parseInt(safe_parts[2]);for(var i=0;i<Params.general.files_count;i++){Params[i]={};Params[i]["color"]=default_colors[0];Params[i]["bgcolor"]=default_colors[1];Params[i]["borcolor"]=default_colors[2];filedata=safe_parts[i+3].split(",");Params[i]["message_type"]=wfu_plugin_decode_string(filedata[0]);Params[i]["header"]=wfu_plugin_decode_string(filedata[1]);if(Params[i]["message_type"]=="success"){Params[i]["header"]+=error_jsonparse_filemessage;Params[i]["message_type"]="warning"}Params[i]["message"]=
69
+ wfu_join_strings("<br />",error_jsonparse_message,wfu_plugin_decode_string(filedata[2]));Params[i]["admin_messages"]=wfu_join_strings("<br />",error_jsonparse_adminmessage,wfu_plugin_decode_string(filedata[3]))}}}else if(typeof upload_params==="object")var Params=upload_params;else return;if(WFU.debugmode)console.log("wfu_ProcessUploadComplete debug: ",debug_data);if(WFU.debugmode)console.log("wfu_ProcessUploadComplete Params: ",Params);i=0;while(Params[i]){if(Params[i].message_type)if(Params[i].message_type.substr(0,
70
+ 5)=="error")Params[i].message_type=Params[i].message_type.substr(0,5);i++}if(!GlobalData[sid])GlobalData[sid]=Object();var G=GlobalData[sid];if(unique_id=="no-ajax"){G.last=false;G.unique_id="";G.files_count=Params.general.files_count;if(Params.general.state==0)Params.general.files_count=0;G.files_processed=Params.general.files_count;G.upload_state=Params.general.state;G.nofileupload=Params.general.state>12&&Params.general.state<16;if(!("message"in G))G.message=[];if(Params.general.message!="")G.message.push(Params.general.message);
71
+ else G.message=[];G.update_wpfilebase=Params.general.update_wpfilebase;G.redirect_link=Params.general.redirect_link;G.notify_by_email=0;G.admin_messages={};G.admin_messages.wpfilebase=Params.general.admin_messages.wpfilebase;G.admin_messages.notify=Params.general.admin_messages.notify;G.admin_messages.redirect=Params.general.admin_messages.redirect;if(!("debug"in G.admin_messages))G.admin_messages.debug=[];if(debug_data[1]!==null)G.admin_messages.debug.push(debug_data[1]);if(!("other"in G.admin_messages))G.admin_messages.other=
72
+ [];if(Params.general.admin_messages.other!="")G.admin_messages.other.push(Params.general.admin_messages.other);G.errors={};G.errors.wpfilebase=Params.general.errors.wpfilebase;G.errors.notify=Params.general.errors.notify;G.errors.redirect=Params.general.errors.redirect;G.current_size=0;G.total_size=0}else{if(G.unique_id==""||G.unique_id!=unique_id||G.unique_id!=Params.general.unique_id)return;if(G.last)return;if(Params.general.files_count==0&&Params[0])if(Params[0].message_type=="error")Params.general.files_count=
73
+ 1;var file_status="";for(var i=0;i<Params.general.files_count;i++){if(Params[i].message_type=="error"&&G.files_processed==0)file_status="error1";else if(Params[i].message_type=="error"&&G.files_processed>0)file_status="error2";else file_status=Params[i].message_type;G.upload_state=GlobalData.filestatematch[file_status][G.upload_state]}G.files_processed+=Params.general.files_count;if(Params.general.message!="")G.message.push(Params.general.message);if(G.update_wpfilebase=="")G.update_wpfilebase=Params.general.update_wpfilebase;
74
+ if(!request_type||request_type&&request_type!="email")G.redirect_link=Params.general.redirect_link;G.notify_by_email+=parseInt("0"+Params.general.notify_by_email);if(debug_data[1]!==null)G.admin_messages.debug.push(debug_data[1]);if(Params.general.admin_messages.other!="")G.admin_messages.other.push(Params.general.admin_messages.other);if(G.admin_messages.wpfilebase=="")G.admin_messages.wpfilebase=Params.general.admin_messages.wpfilebase;if(G.admin_messages.notify=="")G.admin_messages.notify=Params.general.admin_messages.notify;
75
+ if(G.admin_messages.redirect=="")G.admin_messages.redirect=Params.general.admin_messages.redirect;if(G.errors.wpfilebase=="")G.errors.wpfilebase=Params.general.errors.wpfilebase;if(G.errors.notify=="")G.errors.notify=Params.general.errors.notify;if(G.errors.redirect=="")G.errors.redirect=Params.general.errors.redirect}if(G.files_processed==G.files_count){G.last=true;if(G.update_wpfilebase!=""){G.admin_messages.wpfilebase="";wfu_notify_WPFilebase(WFU.params_index,WFU.session)}if(G.notify_by_email>
76
+ 0){G.admin_messages.notify="";wfu_send_email_notification(sid,unique_id);G.last=false;G.notify_by_email=0}if(G.last){if(unique_id!="no-ajax"&&!G.nofileupload)wfu_notify_server_upload_ended(sid,unique_id);GlobalData.UploadInProgressString=GlobalData.UploadInProgressString.replace(new RegExp("\\["+unique_id+"\\]","g"),"")}if(G.errors.redirect!="")G.redirect_link="";if(G.redirect_link!=""&&G.last&&GlobalData.UploadInProgressString.trim()==""){G.upload_state=11;do_redirect=true}}var nonadmin_message=
77
+ G.message;var admin_message=[].concat(G.admin_messages.other,G.admin_messages.wpfilebase!=""?[G.admin_messages.wpfilebase]:[],G.admin_messages.notify!=""?[G.admin_messages.notify]:[],G.admin_messages.redirect!=""?[G.admin_messages.redirect]:[]);if(G.last)if(G.nofileupload){if(unique_id!="no-ajax")if(G.upload_state==0)G.upload_state=14;else if(G.upload_state<4)G.upload_state=15;if(G.upload_state==15&&Params[0]){nonadmin_message.push(Params[0].message);admin_message.push(Params[0].admin_messages)}}else{if(G.files_count==
78
+ 0&&G.upload_state!=12&&G.upload_state<16)G.upload_state=8;else if(G.upload_state<4)G.upload_state+=4;if(G.upload_state==4&&admin_message.length>0)G.upload_state++;else if(G.upload_state==5&&admin_message.length==0&&nonadmin_message.length==0)G.upload_state--}if(!!WFU.message_exist){var suffix="";if(G.files_count==1&&(G.upload_state==5||G.upload_state==7))suffix="_singlefile";var final_upload_state=G.upload_state==0&&G.nofileupload?13:G.upload_state;var data={files_count:!G.nofileupload?G.files_count:
79
+ 0,files_processed:!G.nofileupload?G.files_processed:0,state:final_upload_state,single:G.files_count==1&&nonadmin_message.length==0&&admin_message.length==0&&G.last&&!do_redirect&&!G.nofileupload,color:GlobalData.States["State"+final_upload_state+suffix].color,bgcolor:GlobalData.States["State"+final_upload_state+suffix].bgcolor,borcolor:GlobalData.States["State"+final_upload_state+suffix].borcolor,message1:GlobalData.States["State"+final_upload_state+suffix].message,message2:nonadmin_message,message3:admin_message,
80
+ debug_data:G.admin_messages.debug,files:[]};for(var i=0;i<Params.general.files_count;i++)data.files[i]={index:i+file_id,result:Params[i].message_type,message1:Params[i].header,message2:Params[i].message,message3:Params[i].admin_messages};WFU.message.update(data)}if(js_script_enc)eval(wfu_plugin_decode_string(js_script_enc));if(do_redirect)wfu_Redirect(G.redirect_link);return G.last}
81
+ function wfu_uploadFailed(evt,debugmode){if(debugmode){console.log("failure report following");console.log(evt)}var xhr=evt.target;var new_evt={target:{responseText:"",shortcode_id:xhr.shortcode_id}};wfu_uploadComplete.call(xhr,new_evt)}function wfu_uploadCanceled(evt){}
82
+ function wfu_notify_server_upload_ended(sid,unique_id){var WFU=GlobalData.WFU[sid];var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var url=GlobalData.consts.ajax_url;params=new Array(6);params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action";params[1]=new Array(2);params[1][0]="wfu_uploader_nonce";params[1][1]=document.getElementById("wfu_uploader_nonce_"+sid).value;params[2]=new Array(2);params[2][0]="uniqueuploadid_"+sid;params[2][1]=unique_id;params[3]=new Array(2);params[3][0]=
83
+ "params_index";params[3][1]=WFU.params_index;params[4]=new Array(2);params[4][0]="session_token";params[4][1]=WFU.session;params[5]=new Array(2);params[5][0]="upload_finished";params[5][1]=1;var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200)wfu_Code_Objects[sid].do_action("after_upload",
84
+ xhr.responseText)};xhr.send(parameters)}
85
+ function wfu_Initialize_Params(){var params={};params.version="full";params.general={};params.general.shortcode_id=0;params.general.unique_id="";params.general.state=0;params.general.files_count=0;params.general.update_wpfilebase="";params.general.redirect_link="";params.general.upload_finish_time=0;params.general.message="";params.general.message_type="";params.general.admin_messages={};params.general.admin_messages.wpfilebase="";params.general.admin_messages.notify="";params.general.admin_messages.redirect=
86
+ "";params.general.admin_messages.other="";params.general.errors={};params.general.errors.wpfilebase="";params.general.errors.notify="";params.general.errors.redirect="";params.general.color="";params.general.bgcolor="";params.general.borcolor="";params.general.notify_by_email=0;params.general.fail_message="";params.general.fail_admin_message="";return params}
87
+ function wfu_redirect_to_classic(sid,flag,adminerrorcode){var WFU=GlobalData.WFU[sid];WFU.is_formupload=true;var numfiles=wfu_filesselected(sid);if(numfiles==0&&!WFU.allownofile)return;if(!!WFU.subfolders_exist&&numfiles>0&&!WFU.subfolders.check())return;if(!wfu_check_required_userdata(sid,true))return;if(!wfu_Code_Objects[sid].apply_filters("pre_start_check",true))return;wfu_redirect_to_classic_cont(sid,flag,adminerrorcode)}
88
+ function wfu_redirect_to_classic_cont(sid,flag,adminerrorcode){var process_function=function(responseText){var WFU=GlobalData.WFU[sid];var txt_value="";var session_token=WFU.session;var success_txt="wfu_askserver_success:";var error_txt="wfu_askserver_error:";var pos_success=responseText.indexOf(success_txt);var pos_error=responseText.indexOf(error_txt);if(pos_success>-1){txt_value=responseText.substr(pos_success+success_txt.length);var numfiles=wfu_filesselected(sid);var nofileupload=numfiles==0&&
89
+ WFU.allownofile;wfu_Code_Objects[sid].do_action("askserver_success",txt_value,"no-ajax");if(!!WFU.progressbar_exist&&!nofileupload)WFU.progressbar.show("shuffle");wfu_attach_cancel_event(sid,unique_id);var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id="";Params.general.files_count=numfiles;if(nofileupload)Params.general.state=13;wfu_ProcessUploadComplete(sid,0,Params,"no-ajax","",[false,null,false]);document.getElementById("uniqueuploadid_"+sid).value=unique_id;
90
+ document.getElementById("nofileupload_"+sid).value=nofileupload?"1":"0";var suffix="";var redirected_txt="";if(flag==1)redirected_txt="_redirected";if(!!WFU.uploadform_exist){WFU.uploadform.changeFileName("uploadedfile_"+sid+redirected_txt+suffix);document.getElementById("uploadedfile_"+sid+"_name").name="uploadedfile_"+sid+redirected_txt+"_name";document.getElementById("uploadedfile_"+sid+"_size").name="uploadedfile_"+sid+redirected_txt+"_size"}if(adminerrorcode>0)document.getElementById("adminerrorcodes_"+
91
+ sid).value=adminerrorcode;else document.getElementById("adminerrorcodes_"+sid).value="";if(!!WFU.uploadform_exist){WFU.uploadform.submit();WFU.uploadform.lock()}}else if(pos_error>-1){txt_value=responseText.substr(pos_error+error_txt.length);wfu_unlock_upload(sid);wfu_Code_Objects[sid].do_action("askserver_error",txt_value)}};var unique_id=wfu_randomString(10);wfu_lock_upload(sid);wfu_Code_Objects[sid].do_action("pre_start");var pass_params="";var params_obj=wfu_Code_Objects[sid].apply_filters("askserver_pass_params",
92
+ {});for(var prop in params_obj)if(params_obj.hasOwnProperty(prop))pass_params+="&"+prop+"="+params_obj[prop];var d=new Date;var url=GlobalData.consts.ajax_url+"?action=wfu_ajax_action_ask_server&wfu_uploader_nonce="+document.getElementById("wfu_uploader_nonce_"+sid).value+"&sid="+sid+"&unique_id="+unique_id+"&start_time="+d.getTime()+"&session_token="+GlobalData.WFU[sid].session+pass_params;var xmlhttp=wfu_GetHttpRequestObject();if(xmlhttp==null){var i=document.createElement("iframe");if(i){i.style.display=
93
+ "none";i.src=url;document.body.appendChild(i);i.onload=function(){process_function(i.contentDocument.body.innerHTML)};return}else{wfu_Code_Objects[sid].do_action("not_supported");return}}xmlhttp.open("GET",url,true);xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4)if(xmlhttp.status==200)process_function(xmlhttp.responseText);else{alert(GlobalData.consts.remoteserver_noresult);wfu_Code_Objects[sid].do_action("askserver_noresult")}};xmlhttp.send(null)}
94
+ Code_Initializators[Code_Initializators.length]=function(sid){var CBUV_Code_Objects={};CBUV_Code_Objects.pre_start_check=function(attr){if(!attr)return attr;var sid=this.sid;var result=true;if(!!GlobalData.WFU[sid].consent_exist)if(GlobalData.WFU[sid].consent_format!="prompt"&&document.getElementById("consentresult_"+sid).value==""){alert(GlobalData.consts.wfu_consent_notcompleted);result=false}else if(GlobalData.WFU[sid].consent_format=="prompt"){document.getElementById("consentresult_"+sid).value=
95
+ confirm(GlobalData.WFU[sid].consent_question)?"yes":"no";result=true}return result};CBUV_Code_Objects.pre_start_ask_server=function(attr,has_filters){if(attr)return attr;var sid=this.sid;return has_filters=="true"};CBUV_Code_Objects.askserver_pass_params=function(params){var sid=this.sid;var farr=wfu_get_filelist(sid);var filenames="";var filesizes="";for(var i=0;i<farr.length;i++){if(i>0){filenames+=";";filesizes+=";"}filenames+=wfu_plugin_encode_string(farr[i].name);filesizes+=farr[i].size}params.filenames=
96
+ filenames;params.filesizes=filesizes;return params};CBUV_Code_Objects.askserver_success=function(response,mode){var sid=this.sid;var upload_status="success";var txt_match=response.match(/CBUVJS\[(.*?)\]/);var txt_header=txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!="")eval(wfu_plugin_decode_string(txt_header))};CBUV_Code_Objects.askserver_error=function(response,mode){var sid=this.sid;var upload_status="error";var txt_match=response.match(/CBUVJS\[(.*?)\]/);var txt_header=
97
+ txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!="")eval(wfu_plugin_decode_string(txt_header));txt_match=response.match(/CBUV\[(.*?)\]/);txt_header=txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!=""){var Params=wfu_Initialize_Params();GlobalData[sid]={};Params.general.shortcode_id=sid;Params.general.message=txt_header;Params.general.state=12;wfu_ProcessUploadComplete(sid,0,Params,"no-ajax","",[false,null,false]);wfu_clear(sid)}};CBUV_Code_Objects.lock_upload=
98
+ function(){var sid=this.sid;if(!!GlobalData.WFU[sid].consent_exist)GlobalData.WFU[sid].consent.update("lock")};CBUV_Code_Objects.unlock_upload=function(){var sid=this.sid;if(!!GlobalData.WFU[sid].consent_exist)GlobalData.WFU[sid].consent.update("unlock")};CBUV_Code_Objects.clear_upload=function(){var sid=this.sid;if(!!GlobalData.WFU[sid].consent_exist){GlobalData.WFU[sid].consent.update("clear");GlobalData.WFU[sid].consent_exist=false}};CBUV_Code_Objects.upload_pass_params=function(params,mode){var sid=
99
+ this.sid;if(!!GlobalData.WFU[sid].consent_exist)params.consent_result=document.getElementById("consentresult_"+sid).value;return params};CBUV_Code_Objects.after_upload=function(response){var sid=this.sid;var txt_match=response.match(/CBUVJS\[(.*?)\]/);var txt_header=txt_match?typeof txt_match[1]!="undefined"?txt_match[1]:"":"";if(txt_header!="")eval(wfu_plugin_decode_string(txt_header))};return CBUV_Code_Objects};
100
+ function wfu_filesselected(sid){var WFU=GlobalData.WFU[sid];var farr=wfu_get_filelist(sid);if(farr.length==0&&!WFU.allownofile&&!!WFU.textbox_exist)WFU.textbox.update("nofile");return farr.length}
101
+ function wfu_check_required_userdata(sid,prompt){var WFU=GlobalData.WFU[sid];var userdata_count=wfu_get_userdata_count(sid);var req_empty=false;for(var i=0;i<userdata_count;i++){WFU.userdata.props[i].store();var error_message="";if(WFU.userdata.props[i].required)error_message=WFU.userdata.codes[i].empty();if(error_message===""&&WFU.userdata.codes[i].validate!=null&&WFU.userdata.props[i].validate)error_message=WFU.userdata.codes[i].validate();if(error_message!==""){if(prompt)WFU.userdata.prompt(WFU.userdata.props[i],
102
+ error_message);req_empty=true}}return!req_empty}
103
+ function wfu_HTML5UploadFile(sid){var WFU=GlobalData.WFU[sid];if(!wfu_BrowserCaps.supportsAJAX){wfu_redirect_to_classic(sid,1,1);return}if(!wfu_BrowserCaps.supportsHTML5){wfu_redirect_to_classic(sid,1,2);return}var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;var numfiles=wfu_filesselected(sid);if(numfiles==0&&!WFU.allownofile)return;if(numfiles==0)wfu_selectbutton_clicked(sid);if(!!WFU.subfolders_exist&&numfiles>0&&!WFU.subfolders.check()){if(WFU.singlebutton)wfu_clear_files(sid);return}var numpasses=
104
+ numfiles;numpasses+=numpasses;if(!wfu_check_required_userdata(sid,true)){if(WFU.singlebutton)wfu_clear_files(sid);return}if(!wfu_Code_Objects[sid].apply_filters("pre_start_check",true))return;var unique_upload_id=wfu_randomString(10);wfu_lock_upload(sid);wfu_Code_Objects[sid].do_action("pre_start");if(!wfu_Code_Objects[sid].apply_filters("pre_start_ask_server",false,WFU.has_filters?"true":"false"))wfu_HTML5UploadFile_cont(sid,unique_upload_id);else{var url=GlobalData.consts.ajax_url;params=new Array(5);
105
+ params[0]=new Array(2);params[0][0]="action";params[0][1]="wfu_ajax_action_ask_server";params[1]=new Array(2);params[1][0]="session_token";params[1][1]=WFU.session;params[2]=new Array(2);params[2][0]="sid";params[2][1]=sid;params[3]=new Array(2);params[3][0]="unique_id";params[3][1]=unique_upload_id;params[4]=new Array(2);params[4][0]="wfu_uploader_nonce";params[4][1]=document.getElementById("wfu_uploader_nonce_"+sid).value;var params_obj=wfu_Code_Objects[sid].apply_filters("askserver_pass_params",
106
+ {});for(var prop in params_obj)if(params_obj.hasOwnProperty(prop))params.push([prop,params_obj[prop]]);var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+"="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){var txt=xhr.responseText;var txt_value="";var success_txt="wfu_askserver_success:";var error_txt="wfu_askserver_error:";
107
+ var pos_success=txt.indexOf(success_txt);var pos_error=txt.indexOf(error_txt);var pos=-1;if(pos_success>-1){txt_value=txt.substr(pos_success+success_txt.length);wfu_Code_Objects[sid].do_action("askserver_success",txt_value,"ajax");wfu_HTML5UploadFile_cont(sid,unique_upload_id)}else if(pos_error>-1){txt_value=txt.substr(pos_error+error_txt.length);wfu_unlock_upload(sid);wfu_Code_Objects[sid].do_action("askserver_error",txt_value)}}else{alert(GlobalData.consts.remoteserver_noresult);wfu_unlock_upload(sid);
108
+ wfu_Code_Objects[sid].do_action("askserver_noresult")}};xhr.send(parameters)}}
109
+ function wfu_HTML5UploadFile_cont(sid,unique_upload_id){function sendfile(ind,file,only_check,force_close_connection){ret_status=true;var xhr=wfu_GetHttpRequestObject();var xhr_close_connection=wfu_GetHttpRequestObject();if(xhr==null||xhr_close_connection==null)return;var fd=null;var fd_close_connection=null;try{var fd=new FormData;var fd_close_connection=new FormData}catch(e){}if(fd==null||fd_close_connection==null)return;fd.append("action","wfu_ajax_action");fd.append("wfu_uploader_nonce",document.getElementById("wfu_uploader_nonce_"+
110
+ sid).value);if(!only_check)fd.append("uploadedfile_"+sid+suffice,file);fd.append("uploadedfile_"+sid+"_index",ind);fd.append("uploadedfile_"+sid+"_name",wfu_plugin_encode_string(farr[ind].name));fd.append("uploadedfile_"+sid+"_size",farr[ind].size);fd.append("uniqueuploadid_"+sid,unique_upload_id);fd.append("params_index",WFU.params_index);fd.append("subdir_sel_index",subdir_sel_index);fd.append("nofileupload_"+sid,nofileupload?"1":"0");if(only_check)fd.append("only_check","1");else fd.append("only_check",
111
+ "0");fd.append("session_token",WFU.session);var other_params=wfu_Code_Objects[sid].apply_filters("upload_pass_params",{},"ajax");for(var prop in other_params)if(other_params.hasOwnProperty(prop))fd.append(prop,other_params[prop]);var userdata_count=wfu_get_userdata_count(sid);for(var ii=0;ii<userdata_count;ii++)fd.append("hiddeninput_"+sid+"_userdata_"+ii,document.getElementById("hiddeninput_"+sid+"_userdata_"+ii).value);wfu_initialize_fileupload_xhr(xhr,sid,unique_upload_id,ind,farr[ind].name);xhr.loading=
112
+ true;if(!only_check){xhr.size=file.size;xhr.totalsize=farr[ind].size}if(force_close_connection){fd_close_connection.append("action","wfu_ajax_action");fd_close_connection.append("wfu_uploader_nonce",document.getElementById("wfu_uploader_nonce_"+sid).value);fd_close_connection.append("params_index",WFU.params_index);fd_close_connection.append("session_token",WFU.session);fd_close_connection.append("force_connection_close","1");xhr_close_connection.open("POST",GlobalData.consts.ajax_url,false);try{xhr_close_connection.send(fd_close_connection)}catch(err){}ret_status=
113
+ xhr_close_connection.responseText.indexOf("success")>-1}if(ret_status)if(!only_check){xhr.upload.xhr=xhr;xhr.upload.dummy=1;xhr.upload.addEventListener("loadstart",wfu_loadStart,false);xhr.upload.addEventListener("progress",new Function("evt","wfu_uploadProgress(evt, "+sid+", "+xhr.xhrid+", "+(WFU.debugmode?"true":"false")+");"),false);xhr.addEventListener("load",wfu_uploadComplete,false);xhr.addEventListener("error",new Function("evt","wfu_uploadFailed(evt, "+(WFU.debugmode?"true":"false")+");"),
114
+ false);xhr.addEventListener("abort",wfu_uploadCanceled,false);xhr.open("POST",GlobalData.consts.ajax_url,true);xhr.send(fd)}else{xhr.addEventListener("load",function(evt){evt={target:{responseText:evt.target.responseText,shortcode_id:sid,return_status:true}};var file_status=wfu_uploadComplete.call(xhr,evt);xhr.file_id=0;ret_status=file_status=="success"||file_status=="warning";if(ret_status&&!nofileupload)sendfile(ind,file,false,false);else if(ret_status&&nofileupload);},false);xhr.addEventListener("error",
115
+ function(evt){return},false);xhr.open("POST",GlobalData.consts.ajax_url,true);xhr.send(fd)}else{var evt={target:{responseText:"",shortcode_id:sid}};wfu_uploadComplete.call(xhr,evt)}inc++;return ret_status}var WFU=GlobalData.WFU[sid];var subdir_sel_index=-1;if(!!WFU.subfolders_exist)subdir_sel_index=WFU.subfolders.index();var farr=wfu_get_filelist(sid);var nofileupload=false;if(farr.length==0&&WFU.allownofile){nofileupload=true;farr=[{name:"dummy.txt",size:0}]}var suffice="";GlobalData.UploadInProgressString+=
116
+ "["+unique_upload_id+"]";GlobalData[sid]={};GlobalData[sid].unique_id=unique_upload_id;GlobalData[sid].last=false;GlobalData[sid].files_count=1;GlobalData[sid].files_processed=0;GlobalData[sid].upload_state=0;GlobalData[sid].nofileupload=nofileupload;GlobalData[sid].message=[];GlobalData[sid].update_wpfilebase="";GlobalData[sid].redirect_link="";GlobalData[sid].notify_by_email=0;GlobalData[sid].admin_messages={};GlobalData[sid].admin_messages.wpfilebase="";GlobalData[sid].admin_messages.notify="";
117
+ GlobalData[sid].admin_messages.redirect="";GlobalData[sid].admin_messages.debug=[];GlobalData[sid].admin_messages.other=[];GlobalData[sid].errors={};GlobalData[sid].errors.wpfilebase="";GlobalData[sid].errors.notify="";GlobalData[sid].errors.redirect="";GlobalData[sid].xhrs=Array();GlobalData[sid].metricstotal={size:farr[0].size,loaded:0,progress_pos:0};GlobalData[sid].metrics=[{size:farr[0].size,loaded:0,progress_pos:0}];if(!!WFU.progressbar_exist&&!nofileupload)WFU.progressbar.show("progressive");
118
+ wfu_attach_cancel_event(sid,unique_upload_id);var Params=wfu_Initialize_Params();Params.general.shortcode_id=sid;Params.general.unique_id=unique_upload_id;wfu_ProcessUploadComplete(sid,0,Params,unique_upload_id,"",[false,null,false]);var inc=0;var ret_status=true;var i=0;var fprops=[];sendfile(i,farr[i],true,false)}
119
+ function wfu_initialize_fileupload_xhr(xhr,sid,unique_upload_id,file_ind,filename){var WFU=GlobalData.WFU[sid];var xhrid=file_ind>=0?GlobalData[sid].xhrs.push(xhr)-1:-1;var d=new Date;xhr.xhrid=xhrid;xhr.shortcode_id=sid;xhr.requesttype=file_ind>=0?"fileupload":"email";xhr.file_id=file_ind+1;xhr.size=0;xhr.totalsize=0;xhr.loading=false;xhr.deltasize=0;xhr.deltaloaded=0;xhr.sizeloaded=0;xhr.aborted=false;xhr.unique_id=unique_upload_id;xhr.start_time=d.getTime();xhr.end_time=xhr.start_time;xhr.finish_time=
120
+ xhr.start_time+parseInt(GlobalData.consts.max_time_limit)*1E3;xhr.error_message_header=WFU.error_header.replace(/%username%/g,"no data");xhr.error_message_header=xhr.error_message_header.replace(/%useremail%/g,"no data");xhr.error_message_header=xhr.error_message_header.replace(/%filename%/g,filename);xhr.error_message_header=xhr.error_message_header.replace(/%filepath%/g,filename);xhr.error_message_failed=GlobalData.consts.message_failed;xhr.error_message_cancelled=GlobalData.consts.message_cancelled;
121
+ xhr.error_adminmessage_unknown=GlobalData.consts.adminmessage_unknown.replace(/%username%/g,"no data");xhr.error_adminmessage_unknown=xhr.error_adminmessage_unknown.replace(/%useremail%/g,"no data");xhr.error_adminmessage_unknown=xhr.error_adminmessage_unknown.replace(/%filename%/g,filename);xhr.error_adminmessage_unknown=xhr.error_adminmessage_unknown.replace(/%filepath%/g,filename)}
122
+ function wfu_get_userdata_count(sid){var WFU=GlobalData.WFU[sid];var fields_count=0;if(!!WFU.userdata_exist)fields_count=WFU.userdata.props.length;return fields_count}
123
+ function wfu_lock_upload(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist)WFU.textbox.update("lock");if(!!WFU.uploadform_exist)WFU.uploadform.lock();if(!!WFU.subfolders_exist)WFU.subfolders.toggle(false);if(!!WFU.submit_exist)WFU.submit.toggle(false);var userdata_count=wfu_get_userdata_count(sid);for(var i=0;i<userdata_count;i++)WFU.userdata.codes[i].lock();wfu_Code_Objects[sid].do_action("lock_upload")}
124
+ function wfu_unlock_upload(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.textbox_exist)WFU.textbox.update("unlock");if(!!WFU.uploadform_exist)WFU.uploadform.unlock();if(!!WFU.subfolders_exist)WFU.subfolders.toggle(true);if(!!WFU.submit_exist)WFU.submit.toggle(true);var userdata_count=wfu_get_userdata_count(sid);for(var i=0;i<userdata_count;i++)WFU.userdata.codes[i].unlock();wfu_Code_Objects[sid].do_action("unlock_upload")}
125
+ function wfu_clear_files(sid){var WFU=GlobalData.WFU[sid];if(!!WFU.uploadform_exist)WFU.uploadform.reset();if(typeof WFU.filearray!="undefined"){WFU.filearray.length=0;WFU.filearrayprops.length=0}if(!!WFU.textbox_exist)WFU.textbox.update("clear")}
126
+ function wfu_clear(sid){var WFU=GlobalData.WFU[sid];wfu_clear_files(sid);if(!!WFU.subfolders_exist)WFU.subfolders.reset();var userdata_count=wfu_get_userdata_count(sid);for(var i=0;i<userdata_count;i++)WFU.userdata.codes[i].reset();wfu_Code_Objects[sid].do_action("clear_upload")}
127
+ function wfu_invoke_shortcode_editor(WFU){var sid=WFU.shortcode_id;var same=0;var n=GlobalData.WFU.n;if(WFU.shortcode_tag=="wordpress_file_upload_browser")n=GlobalData.WFUB.n;for(var i=0;i<n.length;i++)if(n[i]==sid)same++;if(same==0)return;if(same>1){alert(GlobalData.consts.same_pluginid);return}var xhr=wfu_GetHttpRequestObject();if(xhr==null)return;WFU.visualeditorbutton.update("on_invoke");var url=GlobalData.consts.ajax_url;params=new Array(6);params[0]=new Array(2);params[0][0]="action";params[0][1]=
128
+ "wfu_ajax_action_edit_shortcode";params[1]=new Array(2);params[1][0]="upload_id";params[1][1]=sid;params[2]=new Array(2);params[2][0]="post_id";params[2][1]=WFU.post_id;params[3]=new Array(2);params[3][0]="post_hash";params[3][1]=WFU.post_hash;params[4]=new Array(2);params[4][0]="shortcode_tag";params[4][1]=WFU.shortcode_tag;params[5]=new Array(2);params[5][0]="widget_id";params[5][1]=WFU.widgetid?WFU.widgetid:"";var parameters="";for(var i=0;i<params.length;i++)parameters+=(i>0?"&":"")+params[i][0]+
129
+ "="+encodeURI(params[i][1]);xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.onreadystatechange=function(){if(xhr.readyState==4)if(xhr.status==200){WFU.visualeditorbutton.update("on_open");var start_text="wfu_edit_shortcode:";var pos=xhr.responseText.indexOf(start_text);if(pos==-1)pos=xhr.responseText.length;var messages=xhr.responseText.substr(0,pos);var response=xhr.responseText.substr(pos+start_text.length,xhr.responseText.length-pos-start_text.length);
130
+ pos=response.indexOf(":");var txt_header=response.substr(0,pos);txt_value=response.substr(pos+1,response.length-pos-1);if(txt_header=="success"){var editor_window=window.open(wfu_plugin_decode_string(txt_value),"_blank");if(editor_window)editor_window.plugin_window=window;else alert(GlobalData.consts.enable_popups)}else if(txt_header=="check_page_obsolete")alert(txt_value)}};xhr.send(parameters)}
131
+ wfu_initialize_webcam=function(sid,mode,audiocapture,videowidth,videoheight,videoaspectratio,videoframerate,camerafacing,maxrecordtime){if(typeof wfu_parse_video_width=="undefined")wfu_parse_video_width=function(videowidth){var vw=parseInt(videowidth);if(vw>0){this.empty=false;this.video.width=vw}};if(typeof wfu_parse_video_height=="undefined")wfu_parse_video_height=function(videoheight){var vh=parseInt(videoheight);if(vh>0){this.empty=false;this.video.height=vh}};if(typeof wfu_parse_video_aspectratio==
132
+ "undefined")wfu_parse_video_aspectratio=function(videoaspectratio){var ar=parseFloat(videoaspectratio);if(ar>0){this.empty=false;this.video.aspectRatio=ar}};if(typeof wfu_parse_video_framerate=="undefined")wfu_parse_video_framerate=function(videoframerate){var fr=parseFloat(videoframerate);if(fr>0){this.empty=false;this.video.frameRate=fr}};if(typeof wfu_parse_video_facingmode=="undefined")wfu_parse_video_facingmode=function(camerafacing){var cf=camerafacing=="front"?"user":camerafacing=="back"?"environment":
133
+ "";if(cf!=""){this.empty=false;this.video.facingMode=cf}};var video_settings={empty:true,video:{}};wfu_parse_video_width.call(video_settings,videowidth);wfu_parse_video_height.call(video_settings,videoheight);wfu_parse_video_aspectratio.call(video_settings,videoaspectratio);wfu_parse_video_framerate.call(video_settings,videoframerate);wfu_parse_video_facingmode.call(video_settings,camerafacing);var WebcamProps={mode:mode,audio:audiocapture=="true",video:video_settings.empty?true:video_settings.video,
134
+ maxrecordtime:maxrecordtime};GlobalData.WFU[sid].webcamProps=WebcamProps;wfu_reinitialize_webcam(sid)};
135
+ wfu_reinitialize_webcam=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_props.active=true;webcam_props.width=0;webcam_props.width=0;webcam_props.timeStart=0;webcam_props.duration=0;webcam_props.counting=false;webcam_props.stream=null;webcam_props.media=null;webcam_props.blobs=null;webcam_props.playing=false;var WebcamProps=webcam_props;webcam_obj.updateStatus("idle");var constraints={audio:WebcamProps.audio,video:WebcamProps.video};if(typeof Promise==
136
+ "undefined"){Promise=function(mainCallback){this.mainCallback=mainCallback;this.then=function(successCallback){this.successCallback=successCallback;return this};this["catch"]=function(errorCallback){mainCallback(this.successCallback,errorCallback)}};PromiseRejected=function(error){this.then=function(successCallback){return this};this["catch"]=function(errorCallback){errorCallback(error)}};Promise.reject=function(error){return new PromiseRejected(error)}}var promisifiedOldGUM=function(constraints,
137
+ successCallback,errorCallback){var getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;if(!getUserMedia||typeof MediaRecorder=="undefined")return Promise.reject(new Error("getUserMedia is not implemented in this browser"));return new Promise(function(successCallback,errorCallback){getUserMedia.call(navigator,constraints,successCallback,errorCallback)})};if(navigator.mediaDevices===undefined)navigator.mediaDevices={};if(navigator.mediaDevices.getUserMedia===
138
+ undefined)navigator.mediaDevices.getUserMedia=promisifiedOldGUM;navigator.mediaDevices.getUserMedia(constraints).then(function(stream){webcam_props.stream=stream;webcam_obj.setVideoProperties({autoplay:true,ontimeupdate:null,onerror:null,onloadeddata:function(e){wfu_webcam_init_callback(sid)},src:window.URL.createObjectURL(stream)});webcam_obj.initButtons(WebcamProps.mode)})["catch"](function(e){console.log("Video not supported!",e);webcam_obj.updateStatus("video_notsupported")})};
139
+ wfu_webcam_init_callback=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;var video_size=webcam_obj.videoSize();webcam_props.width=video_size.width;webcam_props.height=video_size.height;webcam_obj.initCallback()};
140
+ wfu_webcam_counter_status=function(sid,action){var webcam_props=GlobalData.WFU[sid].webcamProps;if(action=="start"){var d=new Date;webcam_props.duration=0;webcam_props.timeStart=d.getTime()/1E3;webcam_props.counting=true;wfu_webcam_update_counter(sid)}else{var d=new Date;webcam_props.duration=d.getTime()/1E3-webcam_props.timeStart;webcam_props.counting=false}};
141
+ wfu_webcam_update_counter=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.counting){var d=new Date;var dif=d.getTime()/1E3-webcam_props.timeStart;webcam_obj.updateTimer(dif);setTimeout(function(){wfu_webcam_update_counter(sid)},100)}};
142
+ wfu_webcam_onoff=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.active){webcam_obj.updateStatus("off");webcam_obj.updateButtonStatus("hidden");if(webcam_props.stream&&webcam_props.stream.stop)webcam_props.stream.stop();webcam_props.stream=null;webcam_props.media=null;webcam_props.blobs=null;webcam_props.active=false}else wfu_reinitialize_webcam(sid);wfu_selectbutton_clicked(sid)};
143
+ wfu_webcam_golive=function(sid){var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.playing)return;wfu_reinitialize_webcam(sid);wfu_add_files(sid,[],false);wfu_selectbutton_clicked(sid);wfu_update_uploadbutton_status(sid)};
144
+ wfu_webcam_start_rec=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.media&&webcam_props.media.state&&webcam_props.media.state=="recording")return;try{webcam_props.media=new MediaRecorder(webcam_props.stream)}catch(err){alert(GlobalData.consts.webcam_video_notsupported);return}webcam_props.blobs=[];webcam_props.media.ondataavailable=function(e){var d=new Date;var dif=d.getTime()/1E3-webcam_props.timeStart;if(webcam_props.maxrecordtime==
145
+ -1||webcam_props.maxrecordtime>0&&dif<=webcam_props.maxrecordtime){if(e.data&&e.data.size>0)webcam_props.blobs.push(e.data)}else wfu_webcam_stop_rec(sid)};webcam_obj.updateButtonStatus("recording");wfu_webcam_counter_status(sid,"start");webcam_props.media.onstop=function(e){wfu_webcam_counter_status(sid,"stop");webcam_obj.updateButtonStatus("after_recording");wfu_webcam_onstop(e,sid)};webcam_props.media.start(10)};
146
+ wfu_webcam_stop_rec=function(sid){var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_props.media.stop()};
147
+ wfu_webcam_onstop=function(e,sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.blobs.length==0){alert(GlobalData.consts.webcam_video_nothingrecorded);wfu_webcam_golive(sid)}else{if(webcam_props.stream)webcam_obj.screenshot();var superBuffer=new Blob(webcam_props.blobs,{type:"video/mp4"});webcam_obj.setVideoProperties({autoplay:false,ontimeupdate:function(e){wfu_webcam_update_pos(sid)},onended:function(e){wfu_webcam_ended(sid)},onloadeddata:function(e){if(webcam_obj.readyState()>=
148
+ 2)webcam_obj.updateButtonStatus("ready_playback")},onerror:function(e){webcam_obj.setVideoProperties({onloadeddata:null,src:window.URL.createObjectURL(webcam_props.stream)})},src:window.URL.createObjectURL(superBuffer)});superBuffer.name="video.mp4";wfu_add_files(sid,[{file:superBuffer,props:{}}],false);wfu_update_uploadbutton_status(sid)}};
149
+ wfu_webcam_play=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.playing)return;webcam_obj.updateButtonStatus("playing");webcam_props.playing=true;webcam_obj.play()};wfu_webcam_ended=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.ended();webcam_obj.updateButtonStatus("ready_playback");webcam_props.playing=false};
150
+ wfu_webcam_pause=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.pause();webcam_obj.updateButtonStatus("ready_playback");webcam_props.playing=false};wfu_webcam_back=function(sid){GlobalData.WFU[sid].webcam.back()};wfu_webcam_fwd=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.fwd(webcam_props.duration)};
151
+ wfu_webcam_take_picture=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;if(webcam_props.stream){webcam_obj.screenshot(function(image_file){image_file.name="image.png";wfu_add_files(sid,[{file:image_file,props:{}}],false);wfu_update_uploadbutton_status(sid)},"image/png");webcam_obj.updateButtonStatus("after_screenshot")}};
152
+ wfu_webcam_update_pos=function(sid){var webcam_obj=GlobalData.WFU[sid].webcam;var webcam_props=GlobalData.WFU[sid].webcamProps;webcam_obj.updatePlayProgress(webcam_props.duration);webcam_obj.updateTimer(video.currentTime)};wfu_run_js_from_bank();
lib/wfu_admin.php CHANGED
@@ -1,757 +1,788 @@
1
- <?php
2
-
3
- function wordpress_file_upload_admin_init() {
4
- $uri = $_SERVER['REQUEST_URI'];
5
- $is_admin = current_user_can( 'manage_options' );
6
- if ( is_admin() && ( ( $is_admin && strpos($uri, "options-general.php") !== false ) ) ) {
7
- //apply wfu_before_admin_scripts to get additional settings
8
- $changable_data = array();
9
- $ret_data = apply_filters('wfu_before_admin_scripts', $changable_data);
10
- //if $ret_data contains 'return_value' key then no scripts will be
11
- //registered
12
- if ( isset($ret_data['return_value']) ) return $ret_data['return_value'];
13
- //continue with script and style registering
14
- wp_register_style('wordpress-file-upload-admin-style', WPFILEUPLOAD_DIR.'css/wordpress_file_upload_adminstyle.css',false,'1.0','all');
15
- wp_register_script('wordpress_file_upload_admin_script', WPFILEUPLOAD_DIR.'js/wordpress_file_upload_adminfunctions.js', array( 'wp-color-picker' ), false, true);
16
- }
17
- }
18
-
19
- function wordpress_file_upload_add_admin_pages() {
20
- $page_hook_suffix = false;
21
- if ( current_user_can( 'manage_options' ) ) $page_hook_suffix = add_options_page('Wordpress File Upload', 'Wordpress File Upload', 'manage_options', 'wordpress_file_upload', 'wordpress_file_upload_manage_dashboard');
22
- if ( $page_hook_suffix !== false ) add_action('admin_print_scripts-'.$page_hook_suffix, 'wfu_enqueue_admin_scripts');
23
- }
24
-
25
- function wfu_enqueue_admin_scripts() {
26
- $uri = $_SERVER['REQUEST_URI'];
27
- $is_admin = current_user_can( 'manage_options' );
28
- if ( is_admin() && ( ( $is_admin && strpos($uri, "options-general.php") !== false ) ) ) {
29
- //apply wfu_before_admin_scripts to get additional settings
30
- $changable_data = array();
31
- $ret_data = apply_filters('wfu_before_admin_scripts', $changable_data);
32
- //if $ret_data contains 'return_value' key then no scripts will be
33
- //enqueued
34
- if ( isset($ret_data['return_value']) ) return $ret_data['return_value'];
35
- //continue with script and style enqueuing
36
- wp_enqueue_style('wordpress-file-upload-admin-style');
37
- wp_enqueue_style( 'wp-color-picker' );
38
- wp_enqueue_script('wordpress_file_upload_admin_script');
39
- $AdminParams = array("wfu_ajax_url" => site_url()."/wp-admin/admin-ajax.php");
40
- wp_localize_script( 'wordpress_file_upload_admin_script', 'AdminParams', $AdminParams );
41
- }
42
- }
43
-
44
- function wordpress_file_upload_install() {
45
- global $wpdb;
46
- global $wfu_tb_log_version;
47
- global $wfu_tb_userdata_version;
48
- global $wfu_tb_dbxqueue_version;
49
- require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
50
-
51
- //define database tables
52
- $table_name1 = $wpdb->prefix . "wfu_log";
53
- $installed_ver = get_option( "wordpress_file_upload_table_log_version" );
54
- if( $installed_ver != $wfu_tb_log_version ) {
55
- $sql = "CREATE TABLE " . $table_name1 . " (
56
- idlog mediumint(9) NOT NULL AUTO_INCREMENT,
57
- userid int NOT NULL,
58
- uploaduserid int NOT NULL,
59
- uploadtime bigint,
60
- sessionid VARCHAR(40),
61
- filepath TEXT NOT NULL,
62
- filehash VARCHAR(100) NOT NULL,
63
- filesize bigint NOT NULL,
64
- uploadid VARCHAR(20) NOT NULL,
65
- pageid mediumint(9),
66
- blogid mediumint(9),
67
- sid VARCHAR(10),
68
- date_from DATETIME,
69
- date_to DATETIME,
70
- action VARCHAR(20) NOT NULL,
71
- linkedto mediumint(9),
72
- filedata TEXT,
73
- PRIMARY KEY (idlog))
74
- DEFAULT CHARACTER SET = utf8
75
- DEFAULT COLLATE = utf8_general_ci;";
76
- dbDelta($sql);
77
- update_option("wordpress_file_upload_table_log_version", $wfu_tb_log_version);
78
- }
79
-
80
- $table_name2 = $wpdb->prefix . "wfu_userdata";
81
- $installed_ver = get_option( "wordpress_file_upload_table_userdata_version" );
82
- if( $installed_ver != $wfu_tb_userdata_version ) {
83
- $sql = "CREATE TABLE " . $table_name2 . " (
84
- iduserdata mediumint(9) NOT NULL AUTO_INCREMENT,
85
- uploadid VARCHAR(20) NOT NULL,
86
- property VARCHAR(100) NOT NULL,
87
- propkey mediumint(9) NOT NULL,
88
- propvalue TEXT,
89
- date_from DATETIME,
90
- date_to DATETIME,
91
- PRIMARY KEY (iduserdata))
92
- DEFAULT CHARACTER SET = utf8
93
- DEFAULT COLLATE = utf8_general_ci;";
94
- dbDelta($sql);
95
- update_option("wordpress_file_upload_table_userdata_version", $wfu_tb_userdata_version);
96
- }
97
-
98
- $table_name3 = $wpdb->prefix . "wfu_dbxqueue";
99
- $installed_ver = get_option( "wordpress_file_upload_table_dbxqueue_version" );
100
- if( $installed_ver != $wfu_tb_dbxqueue_version ) {
101
- $sql = "CREATE TABLE " . $table_name3 . " (
102
- iddbxqueue mediumint(9) NOT NULL AUTO_INCREMENT,
103
- fileid mediumint(9) NOT NULL,
104
- priority mediumint(9) NOT NULL,
105
- status mediumint(9) NOT NULL,
106
- jobid VARCHAR(10) NOT NULL,
107
- start_time bigint,
108
- PRIMARY KEY (iddbxqueue))
109
- DEFAULT CHARACTER SET = utf8
110
- DEFAULT COLLATE = utf8_general_ci;";
111
- dbDelta($sql);
112
- update_option("wordpress_file_upload_table_dbxqueue_version", $wfu_tb_dbxqueue_version);
113
- }
114
- }
115
-
116
- function wordpress_file_upload_uninstall() {
117
- }
118
-
119
- function wordpress_file_upload_update_db_check() {
120
- global $wfu_tb_log_version;
121
- global $wfu_tb_userdata_version;
122
- global $wfu_tb_dbxqueue_version;
123
- // update_option("wordpress_file_upload_table_log_version", "0");
124
- // update_option("wordpress_file_upload_table_userdata_version", "0");
125
- // update_option("wordpress_file_upload_table_dbxqueue_version", "0");
126
- if ( get_option('wordpress_file_upload_table_log_version') != $wfu_tb_log_version || get_option('wordpress_file_upload_table_userdata_version') != $wfu_tb_userdata_version || get_option('wordpress_file_upload_table_dbxqueue_version') != $wfu_tb_dbxqueue_version ) {
127
- wordpress_file_upload_install();
128
- }
129
- }
130
-
131
- // This is the callback function that generates dashboard page content
132
- function wordpress_file_upload_manage_dashboard() {
133
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
134
- $_POST = stripslashes_deep($_POST);
135
- $_GET = stripslashes_deep($_GET);
136
- $action = (!empty($_POST['action']) ? $_POST['action'] : (!empty($_GET['action']) ? $_GET['action'] : ''));
137
- $dir = (!empty($_POST['dir']) ? $_POST['dir'] : (!empty($_GET['dir']) ? $_GET['dir'] : ''));
138
- $file = (!empty($_POST['file']) ? $_POST['file'] : (!empty($_GET['file']) ? $_GET['file'] : ''));
139
- $referer = (!empty($_POST['referer']) ? $_POST['referer'] : (!empty($_GET['referer']) ? $_GET['referer'] : ''));
140
- $data_enc = (!empty($_POST['data']) ? $_POST['data'] : (!empty($_GET['data']) ? $_GET['data'] : ''));
141
- $postid = (!empty($_POST['postid']) ? $_POST['postid'] : (!empty($_GET['postid']) ? $_GET['postid'] : ''));
142
- $nonce = (!empty($_POST['nonce']) ? $_POST['nonce'] : (!empty($_GET['nonce']) ? $_GET['nonce'] : ''));
143
- $tag = (!empty($_POST['tag']) ? $_POST['tag'] : (!empty($_GET['tag']) ? $_GET['tag'] : ''));
144
- $username = (!empty($_POST['username']) ? $_POST['username'] : (!empty($_GET['username']) ? $_GET['username'] : ''));
145
- $echo_str = "";
146
-
147
- if ( $action == 'edit_settings' ) {
148
- wfu_update_settings();
149
- $echo_str = wfu_manage_settings();
150
- }
151
- elseif ( $action == 'shortcode_composer' ) {
152
- $echo_str = wfu_shortcode_composer();
153
- }
154
- elseif ( $action == 'file_browser' ) {
155
- $echo_str = wfu_browse_files($dir);
156
- }
157
- elseif ( $action == 'view_log' ) {
158
- $echo_str = wfu_view_log();
159
- }
160
- elseif ( $action == 'rename_file' && $file != "" ) {
161
- $echo_str = wfu_rename_file_prompt($file, 'file', false);
162
- }
163
- elseif ( $action == 'rename_dir' && $file != "" ) {
164
- $echo_str = wfu_rename_file_prompt($file, 'dir', false);
165
- }
166
- elseif ( $action == 'renamefile' && $file != "" ) {
167
- if ( wfu_rename_file($file, 'file') ) $echo_str = wfu_browse_files($dir);
168
- else $echo_str = wfu_rename_file_prompt($file, 'file', true);
169
- }
170
- elseif ( $action == 'renamedir' && $file != "" ) {
171
- if ( wfu_rename_file($file, 'dir') ) $echo_str = wfu_browse_files($dir);
172
- else $echo_str = wfu_rename_file_prompt($file, 'dir', true);
173
- }
174
- elseif ( $action == 'delete_file' && $file != "" && $referer != "" ) {
175
- if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
176
- $echo_str = wfu_delete_file_prompt($file, 'file', $referer);
177
- }
178
- elseif ( $action == 'delete_dir' && $file != "" && $referer != "" ) {
179
- $echo_str = wfu_delete_file_prompt($file, 'dir', $referer);
180
- }
181
- elseif ( $action == 'deletefile' && $file != "" ) {
182
- if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
183
- wfu_delete_file($file, 'file');
184
- $referer_url = wfu_flatten_path(wfu_get_filepath_from_safe(wfu_sanitize_code($referer)));
185
- if ( $referer_url === false ) $referer_url = "";
186
- $match = array();
187
- preg_match("/\&dir=(.*)/", $referer_url, $match);
188
- $dir = ( isset($match[1]) ? $match[1] : "" );
189
- $echo_str = wfu_browse_files($dir);
190
- }
191
- elseif ( $action == 'deletedir' && $file != "" ) {
192
- wfu_delete_file($file, 'dir');
193
- $referer_url = wfu_flatten_path(wfu_get_filepath_from_safe(wfu_sanitize_code($referer)));
194
- if ( $referer_url === false ) $referer_url = "";
195
- $match = array();
196
- preg_match("/\&dir=(.*)/", $referer_url, $match);
197
- $dir = ( isset($match[1]) ? $match[1] : "" );
198
- $echo_str = wfu_browse_files($dir);
199
- }
200
- elseif ( $action == 'create_dir' ) {
201
- $echo_str = wfu_create_dir_prompt($dir, false);
202
- }
203
- elseif ( $action == 'createdir' ) {
204
- if ( wfu_create_dir($dir) ) $echo_str = wfu_browse_files($dir);
205
- else $echo_str = wfu_create_dir_prompt($dir, true);
206
- }
207
- elseif ( $action == 'include_file' && $file != "" && $referer != "" ) {
208
- if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
209
- $echo_str = wfu_include_file_prompt($file, $referer);
210
- }
211
- elseif ( $action == 'includefile' && $file != "" ) {
212
- if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
213
- wfu_include_file($file);
214
- $referer_url = wfu_flatten_path(wfu_get_filepath_from_safe(wfu_sanitize_code($referer)));
215
- if ( $referer_url === false ) $referer_url = "";
216
- $match = array();
217
- preg_match("/\&dir=(.*)/", $referer_url, $match);
218
- $dir = ( isset($match[1]) ? $match[1] : "" );
219
- $echo_str = wfu_browse_files($dir);
220
- }
221
- elseif ( $action == 'file_details' && $file != "" ) {
222
- $echo_str = wfu_file_details($file, false);
223
- }
224
- elseif ( $action == 'edit_filedetails' && $file != "" ) {
225
- wfu_edit_filedetails($file);
226
- $echo_str = wfu_file_details($file, false);
227
- }
228
- elseif ( $action == 'personal_data' && $plugin_options["personaldata"] == "1" ) {
229
- $echo_str = wfu_manage_personaldata_policies();
230
- }
231
- elseif ( $action == 'erase_userdata_ask' && $plugin_options["personaldata"] == "1" && $username != "" ) {
232
- $echo_str = wfu_erase_userdata_ask_prompt($username);
233
- }
234
- elseif ( $action == 'erase_userdata' && $plugin_options["personaldata"] == "1" && $username != "" ) {
235
- $ret = wfu_erase_userdata($username);
236
- if ( $ret <= -1 ) $echo_str = wfu_manage_personaldata_policies();
237
- else $echo_str = wfu_manage_personaldata_policies('Database cleaned. '.$ret.' items where affected.');
238
- }
239
- elseif ( $action == 'maintenance_actions' ) {
240
- $echo_str = wfu_maintenance_actions();
241
- }
242
- elseif ( $action == 'sync_db' ) {
243
- $affected_items = wfu_sync_database();
244
- $echo_str = wfu_maintenance_actions('Database updated. '.$affected_items.' items where affected.');
245
- }
246
- elseif ( $action == 'clean_log_ask' ) {
247
- $echo_str = wfu_clean_log_prompt();
248
- }
249
- elseif ( $action == 'clean_log' ) {
250
- $ret = wfu_clean_log();
251
- if ( $ret <= -1 ) $echo_str = wfu_maintenance_actions();
252
- else $echo_str = wfu_maintenance_actions('Database cleaned. '.$ret.' items where affected.');
253
- }
254
- elseif ( $action == 'plugin_settings' ) {
255
- $echo_str = wfu_manage_settings();
256
- }
257
- elseif ( $action == 'add_shortcode' && $postid != "" && $nonce != "" && $tag != "" ) {
258
- if ( WFU_USVAR('wfu_add_shortcode_ticket_for_'.$tag) != $nonce ) $echo_str = wfu_manage_mainmenu();
259
- elseif ( wfu_add_shortcode($postid, $tag) ) $echo_str = wfu_manage_mainmenu();
260
- else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_ADD_SHORTCODE_REJECTED);
261
- WFU_USVAR_store('wfu_add_shortcode_ticket', 'noticket');
262
- }
263
- elseif ( $action == 'edit_shortcode' && $data_enc != "" && $tag != "" ) {
264
- $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
265
- if ( $data['post_id'] == "" || wfu_check_edit_shortcode($data) ) wfu_shortcode_composer($data, $tag);
266
- else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_EDIT_SHORTCODE_REJECTED);
267
- }
268
- elseif ( $action == 'delete_shortcode' && $data_enc != "" ) {
269
- $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
270
- if ( wfu_check_edit_shortcode($data) ) $echo_str = wfu_delete_shortcode_prompt($data_enc);
271
- else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_DELETE_SHORTCODE_REJECTED);
272
- }
273
- elseif ( $action == 'deleteshortcode' && $data_enc != "" ) {
274
- $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
275
- if ( wfu_check_edit_shortcode($data) ) {
276
- if ( wfu_delete_shortcode($data) ) wfu_clear_shortcode_data_from_safe($data_enc);
277
- $echo_str = wfu_manage_mainmenu();
278
- }
279
- else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_DELETE_SHORTCODE_REJECTED);
280
- }
281
- elseif ( $action == 'add_policy' ) {
282
- $echo_str = wfu_edit_pd_policy();
283
- }
284
- else {
285
- $echo_str = wfu_manage_mainmenu();
286
- }
287
-
288
- echo $echo_str;
289
- }
290
-
291
- function wfu_manage_mainmenu($message = '') {
292
- if ( !current_user_can( 'manage_options' ) ) return;
293
-
294
- //get php version
295
- $php_version = preg_replace("/-.*/", "", phpversion());
296
-
297
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
298
-
299
- $echo_str = '<div class="wrap">';
300
- $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
301
- if ( $message != '' ) {
302
- $echo_str .= "\n\t".'<div class="updated">';
303
- $echo_str .= "\n\t\t".'<p>'.$message.'</p>';
304
- $echo_str .= "\n\t".'</div>';
305
- }
306
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
307
- $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "Main");
308
- $echo_str .= "\n\t\t".'<h3 style="margin-bottom: 10px;">Status';
309
- if ( $plugin_options["altserver"] == "1" && substr(trim(WFU_VAR("WFU_ALT_IPTANUS_SERVER")), 0, 5) == "http:" ) {
310
- $echo_str .= '<div style="display: inline-block; margin-left:20px;" title="'.WFU_WARNING_ALT_IPTANUS_SERVER_ACTIVATED.'"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 200 800" version="1.1" style="background:darkorange; border-radius:13px; padding:2px; vertical-align:middle; border: 1px solid silver;"><path d="M 110,567 L 90,567 L 42,132 C 40,114 40,100 40,90 C 40,70 45,49 56,35 C 70,22 83,15 100,15 C 117,15 130,22 144,35 C 155,49 160,70 160,90 C 160,100 160,114 158,132 z M 100,640 A 60,60 0 1,1 100,760 A 60,60 0 1,1 100,640 z"/></svg></div>';
311
- }
312
- $echo_str .= '</h3>';
313
- $echo_str .= "\n\t\t".'<table class="form-table">';
314
- $echo_str .= "\n\t\t\t".'<tbody>';
315
- //plugin edition
316
- $echo_str .= "\n\t\t\t\t".'<tr>';
317
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
318
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Edition</label>';
319
- $echo_str .= "\n\t\t\t\t\t".'</th>';
320
- $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px; vertical-align:top;">';
321
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">Free</label>';
322
- $echo_str .= "\n\t\t\t\t\t".'</td>';
323
- $echo_str .= "\n\t\t\t\t\t".'<td>';
324
- $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:bisque; padding:0 0 0 4px; border-left:3px solid lightcoral;">';
325
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">Consider </label><a href="'.WFU_PRO_VERSION_URL.'">Upgrading</a><label style="cursor:default;"> to the Professional Version. </label>';
326
- $echo_str .= "\n\t\t\t\t\t\t\t".'<button onclick="if (this.innerText == \'See why >>\') {this.innerText = \'<< Close\'; document.getElementById(\'wfu_version_comparison\').style.display = \'inline-block\';} else {this.innerText = \'See why >>\'; document.getElementById(\'wfu_version_comparison\').style.display = \'none\';}">See why >></button>';
327
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
328
- $echo_str .= "\n\t\t\t\t\t\t".'<br /><div id="wfu_version_comparison" style="display:none; background-color:lightyellow; border:1px solid yellow; margin:10px 0; padding:10px;">';
329
- $echo_str .= "\n\t\t\t\t\t\t\t".'<img src="'.WFU_IMAGE_VERSION_COMPARISON.'" style="display:block; margin-bottom:6px;" />';
330
- $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button-primary" href="'.WFU_PRO_VERSION_URL.'">Go for the PRO version</a>';
331
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
332
- $echo_str .= "\n\t\t\t\t\t".'</td>';
333
- $echo_str .= "\n\t\t\t\t".'</tr>';
334
- //plugin version
335
- $echo_str .= "\n\t\t\t\t".'<tr>';
336
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
337
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Version</label>';
338
- $echo_str .= "\n\t\t\t\t\t".'</th>';
339
- $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px;">';
340
- $cur_version = wfu_get_plugin_version();
341
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">'.$cur_version.'</label>';
342
- $echo_str .= "\n\t\t\t\t\t".'</td>';
343
- $echo_str .= "\n\t\t\t\t\t".'<td>';
344
- $lat_version = wfu_get_latest_version();
345
- $ret = wfu_compare_versions($cur_version, $lat_version);
346
- if ( $lat_version == "" && WFU_VAR("WFU_DISABLE_VERSION_CHECK") != "true" ) {
347
- $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:transparent; padding:0 0 0 4px; color:red;">';
348
- $echo_str .= "\n\t\t\t\t\t\t\t".'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 200 800" version="1.1" style="background:transparent; border-radius:13px; padding:2px; vertical-align:middle; border: 2px solid red; fill:red;"><path d="M 110,567 L 90,567 L 42,132 C 40,114 40,100 40,90 C 40,70 45,49 56,35 C 70,22 83,15 100,15 C 117,15 130,22 144,35 C 155,49 160,70 160,90 C 160,100 160,114 158,132 z M 100,640 A 60,60 0 1,1 100,760 A 60,60 0 1,1 100,640 z"/></svg>';
349
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">'.WFU_WARNING_IPTANUS_SERVER_UNREACHABLE.'</label>';
350
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
351
- }
352
- elseif ( $ret['status'] && $ret['result'] == 'lower' ) {
353
- $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:bisque; padding:0 0 0 4px; border-left:3px solid lightcoral;">';
354
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">Version <strong>'.$lat_version.'</strong> of the plugin is available. Go to Plugins page of your Dashboard to update to the latest version.</label>';
355
- if ( $ret['custom'] ) $echo_str .= '<label style="cursor:default; color: purple;"> <em>Please note that you are using a custom version of the plugin. If you upgrade to the newest version, custom changes will be lost.</em></label>';
356
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
357
- }
358
- elseif ( $ret['status'] && $ret['result'] == 'equal' ) {
359
- $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:rgb(220,255,220); padding:0 0 0 4px; border-left:3px solid limegreen;">';
360
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">You have the latest version.</label>';
361
- if ( $ret['custom'] ) $echo_str .= '<label style="cursor:default; color: purple;"> <em>(Please note that your version is custom)</em></label>';
362
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
363
- }
364
- $echo_str .= "\n\t\t\t\t\t".'</td>';
365
- $echo_str .= "\n\t\t\t\t".'</tr>';
366
- //server environment
367
- $php_env = wfu_get_server_environment();
368
- $echo_str .= "\n\t\t\t\t".'<tr>';
369
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
370
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Server Environment</label>';
371
- $echo_str .= "\n\t\t\t\t\t".'</th>';
372
- $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px;">';
373
- if ( $php_env == '64bit' ) $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">64bit</label></td><td><label style="font-weight:normal; font-style:italic; cursor:default;">(Your server supports files up to 1 Exabyte, practically unlimited)</label>';
374
- if ( $php_env == '32bit' ) $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">32bit</label></td><td><label style="font-weight:normal; font-style:italic; cursor:default;">(Your server does not support files larger than 2GB)</label>';
375
- if ( $php_env == '' ) $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">Unknown</label></td><td><label style="font-weight:normal; font-style:italic; cursor:default;">(The maximum file size supported by the server cannot be determined)</label>';
376
- $echo_str .= "\n\t\t\t\t\t".'</td>';
377
- $echo_str .= "\n\t\t\t\t".'</tr>';
378
- $echo_str .= "\n\t\t\t\t".'<tr>';
379
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
380
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">PHP Version</label>';
381
- $echo_str .= "\n\t\t\t\t\t".'</th>';
382
- $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px;">';
383
- $cur_version = wfu_get_plugin_version();
384
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">'.$php_version.'</label>';
385
- $echo_str .= "\n\t\t\t\t\t".'</td>';
386
- $echo_str .= "\n\t\t\t\t\t".'<td>';
387
- $echo_str .= "\n\t\t\t\t\t".'</td>';
388
- $echo_str .= "\n\t\t\t\t".'</tr>';
389
- $echo_str .= "\n\t\t\t\t".'<tr>';
390
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
391
- $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Release Notes</label>';
392
- $echo_str .= "\n\t\t\t\t\t".'</th>';
393
- $echo_str .= "\n\t\t\t\t\t".'<td colspan="2" style="width:100px;">';
394
- $rel_path = ABSWPFILEUPLOAD_DIR.'release_notes.txt';
395
- $rel_notes = '';
396
- if ( file_exists($rel_path) ) $rel_notes = file_get_contents($rel_path);
397
- $echo_str .= "\n\t\t\t\t\t\t".'<div style="text-align:justify;">'.$rel_notes.'</div>';
398
- $echo_str .= "\n\t\t\t\t\t".'</td>';
399
- $echo_str .= "\n\t\t\t\t".'</tr>';
400
- $echo_str .= "\n\t\t\t".'</tbody>';
401
- $echo_str .= "\n\t\t".'</table>';
402
-
403
- $echo_str .= wfu_manage_instances();
404
-
405
- $echo_str .= "\n\t".'</div>';
406
- $echo_str .= "\n".'</div>';
407
-
408
- echo $echo_str;
409
- }
410
-
411
- function wfu_generate_dashboard_menu($dlp, $active) {
412
- $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
413
- $siteurl = site_url();
414
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
415
-
416
- $echo_str = $dlp.'<h2 class="nav-tab-wrapper" style="margin-bottom:40px;">';
417
- $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="nav-tab'.( $active == "Main" ? ' nav-tab-active' : '' ).'" title="Main">Main</a>';
418
- $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=plugin_settings" class="nav-tab'.( $active == "Settings" ? ' nav-tab-active' : '' ).'" title="Settings">Settings</a>';
419
- $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser" class="nav-tab'.( $active == "File Browser" ? ' nav-tab-active' : '' ).'" title="File browser">File Browser</a>';
420
- $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=view_log" class="nav-tab'.( $active == "View Log" ? ' nav-tab-active' : '' ).'" title="View log">View Log</a>';
421
- if ( $plugin_options["personaldata"] == "1" )
422
- $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=personal_data" class="nav-tab'.( $active == "Personal Data" ? ' nav-tab-active' : '' ).'" title="Personal Data">Personal Data</a>';
423
- $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=maintenance_actions" class="nav-tab'.( $active == "Maintenance Actions" ? ' nav-tab-active' : '' ).'" title="Maintenance Actions">Maintenance Actions</a>';
424
- $echo_str .= $dlp.'</h2>';
425
-
426
- return $echo_str;
427
- }
428
-
429
- function wfu_test_function() {
430
- $str = 'hello τεστ A piñata Ёнвидюнт';
431
-
432
- echo "pass: ".$str;
433
- }
434
-
435
- function wfu_construct_post_list($posts) {
436
- $ids = array();
437
- $list = array();
438
- $id_keys = array();
439
- //construct item indices
440
- foreach ( $posts as $key => $post ) {
441
- if ( !array_key_exists($post->post_type, $ids) ) {
442
- $ids[$post->post_type] = array();
443
- $list[$post->post_type] = array();
444
- }
445
- array_push($ids[$post->post_type], $post->ID);
446
- $id_keys[$post->ID] = $key;
447
- }
448
- //create post list in tree order; items are sorted by post status (publish, private, draft) and then by title
449
- $i = 0;
450
- while ( $i < count($posts) ) {
451
- $post = $posts[$i];
452
- //find topmost element in family tree
453
- $tree = array( $post->ID );
454
- $topmost = $post;
455
- $par_id = $topmost->post_parent;
456
- while ( in_array($par_id, $ids[$post->post_type]) ) {
457
- $topmost = $posts[$id_keys[$par_id]];
458
- array_splice($tree, 0, 0, $par_id);
459
- $par_id = $topmost->post_parent;
460
- }
461
- //find which needs to be processed
462
- $level = 0;
463
- $host = &$list[$post->post_type];
464
- foreach ( $tree as $process_id ) {
465
- $found_key = -1;
466
- foreach ( $host as $key => $item )
467
- if ( $item['id'] == $process_id ) {
468
- $found_key = $key;
469
- break;
470
- }
471
- if ( $found_key == -1 ) break;
472
- $level++;
473
- $host = &$host[$found_key]['children'];
474
- }
475
- if ( $found_key == -1 ) {
476
- $processed = $posts[$id_keys[$process_id]];
477
- //add the processed item in the right position in children's list
478
- $pos = 0;
479
- $status = ( $processed->post_status == 'publish' ? 0 : ( $processed->post_status == 'private' ? 1 : 2 ) );
480
- foreach ($host as $item) {
481
- if ( $status < $item['status'] ) break;
482
- if ( $status == $item['status'] && strcmp($processed->post_title, $item['title']) < 0 ) break;
483
- $pos++;
484
- }
485
- $new_item = array(
486
- 'id' => $process_id,
487
- 'title' => $processed->post_title,
488
- 'status' => $status,
489
- 'level' => $level,
490
- 'children' => array()
491
- );
492
- array_splice($host, $pos, 0, array($new_item));
493
- }
494
- //advance index if we have finished processing all the tree
495
- if ( $process_id == $post->ID ) $i++;
496
- }
497
- return $list;
498
- }
499
-
500
- function wfu_flatten_post_list($list) {
501
- $flat = array();
502
- if ( !is_array($list) ) return $flat;
503
- foreach( $list as $item ) {
504
- $flat_item = array(
505
- 'id' => $item['id'],
506
- 'title' => $item['title'],
507
- 'status' => $item['status'],
508
- 'level' => $item['level']
509
- );
510
- array_push($flat, $flat_item);
511
- $flat = array_merge($flat, wfu_flatten_post_list($item['children']));
512
- }
513
- return $flat;
514
- }
515
-
516
- function wfu_manage_instances() {
517
- $echo_str = wfu_manage_instances_of_shortcode('wordpress_file_upload', 'Uploader Instances', 'uploader', 1);
518
-
519
- return $echo_str;
520
- }
521
-
522
- function wfu_manage_instances_of_shortcode($tag, $title, $slug, $inc) {
523
- global $wp_registered_widgets, $wp_registered_sidebars;
524
-
525
- $siteurl = site_url();
526
- $args = array( 'post_type' => array( "post", "page" ), 'post_status' => "publish,private,draft", 'posts_per_page' => -1 );
527
- $args = apply_filters("_wfu_get_posts", $args, "manage_instances");
528
- $posts = get_posts($args);
529
- $wfu_shortcodes = array();
530
- //get shortcode instances from page/posts
531
- foreach ( $posts as $post ) {
532
- $ret = wfu_get_content_shortcodes($post, $tag);
533
- if ( $ret !== false ) $wfu_shortcodes = array_merge($wfu_shortcodes, $ret);
534
- }
535
- //get shortcode instances from sidebars
536
- $data = array();
537
- $widget_base = $tag.'_widget';
538
- if ( is_array($wp_registered_widgets) ) {
539
- foreach ( $wp_registered_widgets as $id => $widget ) {
540
- if ( substr($id, 0, strlen($widget_base)) == $widget_base ) {
541
- $widget_obj = ( isset($widget['callback']) ? ( isset($widget['callback'][0]) ? ( $widget['callback'][0] instanceof WP_Widget ? $widget['callback'][0] : false ) : false ) : false );
542
- $widget_sidebar = is_active_widget(false, $id, $widget_base);
543
- if ( $widget_obj !== false && $widget_sidebar !== false ) {
544
- if ( isset($wp_registered_sidebars[$widget_sidebar]) && isset($wp_registered_sidebars[$widget_sidebar]['name']) ) $widget_sidebar = $wp_registered_sidebars[$widget_sidebar]['name'];
545
- $data['post_id'] = "";
546
- $data['post_hash'] = "";
547
- $data['shortcode'] = $widget_obj->shortcode();
548
- $data['position'] = 0;
549
- $data['widgetid'] = $id;
550
- $data['sidebar'] = $widget_sidebar;
551
- array_push($wfu_shortcodes, $data);
552
- }
553
- }
554
- }
555
- }
556
-
557
- $list = wfu_construct_post_list($posts);
558
- $pagelist = wfu_flatten_post_list($list["page"]);
559
- $postlist = wfu_flatten_post_list($list["post"]);
560
-
561
- $echo_str = "\n\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">'.$title.'</h3>';
562
- $onchange_js = 'document.getElementById(\'wfu_add_plugin_ok_'.$inc.'\').disabled = !((document.getElementById(\'wfu_page_type_'.$inc.'\').value == \'page\' && document.getElementById(\'wfu_page_list_'.$inc.'\').value != \'\') || (document.getElementById(\'wfu_page_type_'.$inc.'\').value == \'post\' && document.getElementById(\'wfu_post_list_'.$inc.'\').value != \'\'));';
563
- $no_shortcodes = ( count($wfu_shortcodes) == 0 );
564
- $echo_str .= "\n\t\t".'<div id="wfu_add_plugin_button_'.$inc.'" style="'. ( !$no_shortcodes ? '' : 'color:blue; font-weight:bold; font-size:larger;' ).'margin-bottom: 20px; margin-top: 10px;">';
565
- $addbutton_pre = ( !$no_shortcodes ? '' : '<label>Press </label>');
566
- $addbutton_post = ( !$no_shortcodes ? '' : '<label> to get started and add the '.$slug.' in a page</label>');
567
- $echo_str .= "\n\t\t\t".$addbutton_pre.'<button onclick="document.getElementById(\'wfu_add_plugin_button_'.$inc.'\').style.display = \'none\'; document.getElementById(\'wfu_add_plugin_'.$inc.'\').style.display = \'inline-block\'; '.$onchange_js.'">'.( !$no_shortcodes ? 'Add Plugin Instance' : 'here' ).'</button>'.$addbutton_post;
568
- $echo_str .= "\n\t\t".'</div>';
569
- $echo_str .= "\n\t\t".'<div id="wfu_add_plugin_'.$inc.'" style="margin-bottom: 20px; margin-top: 10px; position:relative; display:none;">';
570
- $echo_str .= "\n\t\t\t".'<div id="wfu_add_plugin_'.$inc.'_overlay" style="position:absolute; top:0; left:0; width:100%; height:100%; background-color:rgba(255,255,255,0.8); border:none; display:none;">';
571
- $echo_str .= "\n\t\t\t\t".'<table style="background:none; border:none; margin:0; padding:0; line-height:1; border-spacing:0; width:100%; height:100%; table-layout:fixed;"><tbody><tr><td style="text-align:center; vertical-align:middle;"><div style="display:inline-block;"><span class="spinner" style="opacity:1; float:left; margin:0; display:inline;"></span><label style="margin-left:4px;">please wait...</label></div></td></tr></tbody></table>';
572
- $echo_str .= "\n\t\t\t".'</div>';
573
- $echo_str .= "\n\t\t\t".'<label>Add '.$slug.' to </label><select id="wfu_page_type_'.$inc.'" onchange="document.getElementById(\'wfu_page_list_'.$inc.'\').style.display = (this.value == \'page\' ? \'inline-block\' : \'none\'); document.getElementById(\'wfu_post_list_'.$inc.'\').style.display = (this.value == \'post\' ? \'inline-block\' : \'none\'); '.$onchange_js.'"><option value="page" selected="selected">Page</option><option value="post">Post</option></select>';
574
- $echo_str .= "\n\t\t\t".'<select id="wfu_page_list_'.$inc.'" style="margin-bottom:6px;" onchange="'.$onchange_js.'">';
575
- $echo_str .= "\n\t\t\t\t".'<option value=""></option>';
576
- foreach ( $pagelist as $item )
577
- $echo_str .= "\n\t\t\t\t".'<option value="'.$item['id'].'">'.str_repeat('&nbsp;', 4 * $item['level']).( $item['status'] == 1 ? '[Private]' : ( $item['status'] == 2 ? '[Draft]' : '' ) ).$item['title'].'</option>';
578
- $echo_str .= "\n\t\t\t".'</select>';
579
- $echo_str .= "\n\t\t\t".'<select id="wfu_post_list_'.$inc.'" style="display:none; margin-bottom:6px;" onchange="'.$onchange_js.'">';
580
- $echo_str .= "\n\t\t\t\t".'<option value=""></option>';
581
- foreach ( $postlist as $item )
582
- $echo_str .= "\n\t\t\t\t".'<option value="'.$item['id'].'">'.str_repeat('&nbsp;', 4 * $item['level']).( $item['status'] == 1 ? '[Private]' : ( $item['status'] == 2 ? '[Draft]' : '' ) ).$item['title'].'</option>';
583
- $echo_str .= "\n\t\t\t".'</select><br />';
584
- $add_shortcode_ticket = wfu_create_random_string(16);
585
- WFU_USVAR_store('wfu_add_shortcode_ticket_for_'.$tag, $add_shortcode_ticket);
586
- $echo_str .= "\n\t\t".'<button id="wfu_add_plugin_ok_'.$inc.'" style="float:right; margin: 0 2px 0 4px;" disabled="disabled" onclick="document.getElementById(\'wfu_add_plugin_'.$inc.'_overlay\').style.display = \'block\'; window.location = \''.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=add_shortcode&amp;tag='.$tag.'&amp;postid=\' + (document.getElementById(\'wfu_page_type_'.$inc.'\').value == \'page\' ? document.getElementById(\'wfu_page_list_'.$inc.'\').value : document.getElementById(\'wfu_post_list_'.$inc.'\').value) + \'&amp;nonce='.$add_shortcode_ticket.'\';">Ok</button>';
587
- $echo_str .= "\n\t\t".'<button style="float:right;" onclick="document.getElementById(\'wfu_page_type_'.$inc.'\').value = \'page\'; document.getElementById(\'wfu_page_list_'.$inc.'\').value = \'\'; document.getElementById(\'wfu_post_list_'.$inc.'\').value = \'\'; document.getElementById(\'wfu_add_plugin_'.$inc.'\').style.display = \'none\'; document.getElementById(\'wfu_add_plugin_button_'.$inc.'\').style.display = \'inline-block\';">Cancel</button>';
588
- $echo_str .= "\n\t\t".'</div>';
589
- $echo_str .= "\n\t\t".'<table class="wp-list-table widefat fixed striped">';
590
- $echo_str .= "\n\t\t\t".'<thead>';
591
- $echo_str .= "\n\t\t\t\t".'<tr>';
592
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="5%" style="text-align:center;">';
593
- $echo_str .= "\n\t\t\t\t\t\t".'<label>#</label>';
594
- $echo_str .= "\n\t\t\t\t\t".'</th>';
595
- // $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
596
- // $echo_str .= "\n\t\t\t\t\t\t".'<label>ID</label>';
597
- // $echo_str .= "\n\t\t\t\t\t".'</th>';
598
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
599
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Contained In</label>';
600
- $echo_str .= "\n\t\t\t\t\t".'</th>';
601
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="30%" style="text-align:center;">';
602
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Page/Post Title</label>';
603
- $echo_str .= "\n\t\t\t\t\t".'</th>';
604
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="45%" style="text-align:center;">';
605
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Shortcode</label>';
606
- $echo_str .= "\n\t\t\t\t\t".'</th>';
607
- $echo_str .= "\n\t\t\t\t".'</tr>';
608
- $echo_str .= "\n\t\t\t".'</thead>';
609
- $echo_str .= "\n\t\t\t".'<tbody>';
610
- $i = 1;
611
- foreach ( $wfu_shortcodes as $key => $data ) {
612
- $widget_id = ( isset($data['widgetid']) ? $data['widgetid'] : '' );
613
- if ( $widget_id == "" ) {
614
- $id = $data['post_id'];
615
- $posttype_obj = get_post_type_object(get_post_type($id));
616
- $type = ( $posttype_obj ? $posttype_obj->labels->singular_name : "" );
617
- $title = get_the_title($id);
618
- if ( trim($title) == "" ) $title = 'ID: '.$id;
619
- }
620
- else {
621
- $type = 'Sidebar';
622
- $title = $data['sidebar'];
623
- }
624
- $data_enc = wfu_safe_store_shortcode_data(wfu_encode_array_to_string($data));
625
- $echo_str .= "\n\t\t\t\t".'<tr onmouseover="var actions=document.getElementsByName(\'wfu_shortcode_actions_'.$inc.'\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';} document.getElementById(\'wfu_shortcode_actions_'.$inc.'_'.$i.'\').style.visibility=\'visible\'" onmouseout="var actions=document.getElementsByName(\'wfu_shortcode_actions_'.$inc.'\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';}">';
626
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">';
627
- $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=edit_shortcode&tag='.$tag.'&data='.$data_enc.'" title="Instance #'.$i.'">Instance '.$i.'</a>';
628
- $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_shortcode_actions_'.$inc.'_'.$i.'" name="wfu_shortcode_actions_'.$inc.'" style="visibility:hidden;">';
629
- $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
630
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=edit_shortcode&tag='.$tag.'&data='.$data_enc.'" title="Edit this shortcode">Edit</a>';
631
- $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
632
- $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
633
- $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
634
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=delete_shortcode&data='.$data_enc.'" title="Delete this shortcode">Delete</a>';
635
- $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
636
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
637
- $echo_str .= "\n\t\t\t\t\t".'</td>';
638
- // $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$id.'</td>';
639
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$type.'</td>';
640
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$title.'</td>';
641
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;">';
642
- $echo_str .= "\n\t\t\t\t\t\t".'<textarea rows="3" disabled="disabled" style="width:100%;">'.trim($data['shortcode']).'</textarea>';
643
- $echo_str .= "\n\t\t\t\t\t".'</td>';
644
- $echo_str .= "\n\t\t\t\t".'</tr>';
645
- $i++;
646
- }
647
- $echo_str .= "\n\t\t\t".'</tbody>';
648
- $echo_str .= "\n\t\t".'</table>';
649
-
650
- return $echo_str;
651
- }
652
-
653
- function wfu_get_content_shortcodes($post, $tag) {
654
- global $shortcode_tags;
655
- $found_shortcodes = array();
656
- $content = $post->post_content;
657
- if ( false === strpos( $content, '[' ) ) return false;
658
- $hash = hash('md5', $content);
659
-
660
- if ( array_key_exists( $tag, $shortcode_tags ) ) wfu_match_shortcode_nested($tag, $post, $hash, $content, 0, $found_shortcodes);
661
-
662
- if ( count($found_shortcodes) == 0 ) return false;
663
- return $found_shortcodes;
664
- }
665
-
666
- function wfu_match_shortcode_nested($tag, $post, $hash, $content, $position, &$found_shortcodes) {
667
- if ( false === strpos( $content, '[' ) ) return false;
668
- preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE );
669
- if ( empty( $matches ) ) return false;
670
- foreach ( $matches as $shortcode ) {
671
- if ( $tag === $shortcode[2][0] ) {
672
- $data['post_id'] = $post->ID;
673
- $data['post_hash'] = $hash;
674
- $data['shortcode'] = $shortcode[0][0];
675
- $data['position'] = (int)$shortcode[0][1] + (int)$position;
676
- array_push($found_shortcodes, $data);
677
- }
678
- wfu_match_shortcode_nested($tag, $post, $hash, $shortcode[5][0], $shortcode[5][1] + (int)$position, $found_shortcodes);
679
- }
680
- return false;
681
- }
682
-
683
- function wfu_check_edit_shortcode($data) {
684
- $post = get_post($data['post_id']);
685
- $content = $post->post_content;
686
- $hash = hash('md5', $content);
687
-
688
- return ( $hash == $data['post_hash'] );
689
- }
690
-
691
- function wfu_add_shortcode($postid, $tag) {
692
- $post = get_post($postid);
693
- $new_content = '['.$tag.']'.$post->post_content;
694
- $new_post = array( 'ID' => $postid, 'post_content' => $new_content );
695
- return ( wp_update_post( wfu_slash($new_post) ) === 0 ? false : true );
696
- }
697
-
698
- function wfu_replace_shortcode($data, $new_shortcode) {
699
- $post = get_post($data['post_id']);
700
- $new_content = substr($post->post_content, 0, $data['position']).$new_shortcode.substr($post->post_content, (int)$data['position'] + strlen($data['shortcode']));
701
- $new_post = array( 'ID' => $data['post_id'], 'post_content' => $new_content );
702
- return ( wp_update_post( wfu_slash($new_post) ) === 0 ? false : true );
703
- }
704
-
705
- function wfu_delete_shortcode_prompt($data_enc) {
706
- $siteurl = site_url();
707
- $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
708
- $postid = $data['post_id'];
709
- $echo_str = "\n".'<div class="wrap">';
710
- $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
711
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
712
- $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=manage_mainmenu" class="button" title="go back">Go to Main Menu</a>';
713
- $echo_str .= "\n\t".'</div>';
714
- $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px; margin-top: 20px;">Delete Shortcode</h2>';
715
- $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="deletefile" id="deleteshortcode" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
716
- $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="deleteshortcode">';
717
- $echo_str .= "\n\t\t".'<input type="hidden" name="data" value="'.$data_enc.'">';
718
- $echo_str .= "\n\t\t".'<label>Are you sure that you want to delete shortcode for <strong>'.get_post_type($postid).' "'.get_the_title($postid).'" ('.$postid.') Position '.$data['position'].'</strong> ?</label><br/>';
719
- $echo_str .= "\n\t\t".'<p class="submit">';
720
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Delete">';
721
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
722
- $echo_str .= "\n\t\t".'</p>';
723
- $echo_str .= "\n\t".'</form>';
724
- $echo_str .= "\n".'</div>';
725
- return $echo_str;
726
- }
727
-
728
- function wfu_delete_shortcode($data) {
729
- //check if user is allowed to perform this action
730
- if ( !current_user_can( 'manage_options' ) ) return false;
731
-
732
- $res = true;
733
- if ( isset($_POST['submit']) ) {
734
- if ( $_POST['submit'] == "Delete" ) {
735
- $res = wfu_replace_shortcode($data, '');
736
- }
737
- }
738
- return $res;
739
- }
740
-
741
- function wfu_media_editor_properties() {
742
- $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
743
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
744
- if ( $plugin_options["mediacustom"] != "1" ) return;
745
-
746
- $post = get_post();
747
- $meta = wp_get_attachment_metadata( $post->ID );
748
-
749
- $echo_str = "";
750
- if ( isset($meta["WFU User Data"]) && is_array($meta["WFU User Data"]) ) {
751
- foreach ( $meta["WFU User Data"] as $label => $value )
752
- $echo_str .= '<div class="misc-pub-section misc-pub-userdata">'.$label.': <strong>'.$value.'</strong></div>';
753
- }
754
- echo $echo_str;
755
- }
756
-
757
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wordpress_file_upload_admin_init() {
4
+ $uri = $_SERVER['REQUEST_URI'];
5
+ $is_admin = current_user_can( 'manage_options' );
6
+ if ( is_admin() && ( ( $is_admin && strpos($uri, "options-general.php") !== false ) ) ) {
7
+ //apply wfu_before_admin_scripts to get additional settings
8
+ $changable_data = array();
9
+ $ret_data = apply_filters('wfu_before_admin_scripts', $changable_data);
10
+ //if $ret_data contains 'return_value' key then no scripts will be
11
+ //registered
12
+ if ( isset($ret_data['return_value']) ) return $ret_data['return_value'];
13
+ //continue with script and style registering
14
+ wp_register_style('wordpress-file-upload-admin-style', WPFILEUPLOAD_DIR.'css/wordpress_file_upload_adminstyle.css',false,'1.0','all');
15
+ //do not register JQuery UI css if $ret_data denotes incompatibility
16
+ //issues
17
+ if ( ( !isset($ret_data["correct_NextGenGallery_incompatibility"]) || $ret_data["correct_NextGenGallery_incompatibility"] != "true" ) &&
18
+ ( !isset($ret_data["correct_JQueryUI_incompatibility"]) || $ret_data["correct_JQueryUI_incompatibility"] != "true" ) )
19
+ wp_register_style('jquery-ui-css', WPFILEUPLOAD_DIR.'vendor/jquery/jquery-ui.min.css');
20
+ //don't load datepicker js if $ret_data exclude_datepicker flag is true
21
+ if ( !isset($ret_data["exclude_datepicker"]) || $ret_data["exclude_datepicker"] != "true" )
22
+ wp_register_script('jquery-ui-datepicker', false, array('jquery'));
23
+ wp_register_script('wordpress_file_upload_admin_script', WPFILEUPLOAD_DIR.'js/wordpress_file_upload_adminfunctions.js', array( 'wp-color-picker' ), false, true);
24
+ }
25
+ }
26
+
27
+ function wordpress_file_upload_add_admin_pages() {
28
+ $page_hook_suffix = false;
29
+ if ( current_user_can( 'manage_options' ) ) $page_hook_suffix = add_options_page('Wordpress File Upload', 'Wordpress File Upload', 'manage_options', 'wordpress_file_upload', 'wordpress_file_upload_manage_dashboard');
30
+ if ( $page_hook_suffix !== false ) add_action('admin_print_scripts-'.$page_hook_suffix, 'wfu_enqueue_admin_scripts');
31
+ }
32
+
33
+ function wfu_enqueue_admin_scripts() {
34
+ $uri = $_SERVER['REQUEST_URI'];
35
+ $is_admin = current_user_can( 'manage_options' );
36
+ if ( is_admin() && ( ( $is_admin && strpos($uri, "options-general.php") !== false ) ) ) {
37
+ //apply wfu_before_admin_scripts to get additional settings
38
+ $changable_data = array();
39
+ $ret_data = apply_filters('wfu_before_admin_scripts', $changable_data);
40
+ //if $ret_data contains 'return_value' key then no scripts will be
41
+ //enqueued
42
+ if ( isset($ret_data['return_value']) ) return $ret_data['return_value'];
43
+ //continue with script and style enqueuing
44
+ wp_enqueue_style('wordpress-file-upload-admin-style');
45
+ //do not enqueue JQuery UI css if $ret_data denotes incompatibility
46
+ //issues
47
+ if ( ( !isset($ret_data["correct_NextGenGallery_incompatibility"]) || $ret_data["correct_NextGenGallery_incompatibility"] != "true" ) &&
48
+ ( !isset($ret_data["correct_JQueryUI_incompatibility"]) || $ret_data["correct_JQueryUI_incompatibility"] != "true" ) )
49
+ wp_enqueue_style('jquery-ui-css');
50
+ wp_enqueue_style( 'wp-color-picker' );
51
+ //don't load datepicker js if $ret_data exclude_datepicker flag is true
52
+ if ( !isset($ret_data["exclude_datepicker"]) || $ret_data["exclude_datepicker"] != "true" )
53
+ wp_enqueue_script('jquery-ui-datepicker');
54
+ wp_enqueue_script('wordpress_file_upload_admin_script');
55
+ $AdminParams = array("wfu_ajax_url" => site_url()."/wp-admin/admin-ajax.php");
56
+ wp_localize_script( 'wordpress_file_upload_admin_script', 'AdminParams', $AdminParams );
57
+ }
58
+ }
59
+
60
+ function wordpress_file_upload_install() {
61
+ global $wpdb;
62
+ global $wfu_tb_log_version;
63
+ global $wfu_tb_userdata_version;
64
+ global $wfu_tb_dbxqueue_version;
65
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
66
+
67
+ //define database tables
68
+ $table_name1 = $wpdb->prefix . "wfu_log";
69
+ $installed_ver = get_option( "wordpress_file_upload_table_log_version" );
70
+ if( $installed_ver != $wfu_tb_log_version ) {
71
+ $sql = "CREATE TABLE " . $table_name1 . " (
72
+ idlog mediumint(9) NOT NULL AUTO_INCREMENT,
73
+ userid int NOT NULL,
74
+ uploaduserid int NOT NULL,
75
+ uploadtime bigint,
76
+ sessionid VARCHAR(40),
77
+ filepath TEXT NOT NULL,
78
+ filehash VARCHAR(100) NOT NULL,
79
+ filesize bigint NOT NULL,
80
+ uploadid VARCHAR(20) NOT NULL,
81
+ pageid mediumint(9),
82
+ blogid mediumint(9),
83
+ sid VARCHAR(10),
84
+ date_from DATETIME,
85
+ date_to DATETIME,
86
+ action VARCHAR(20) NOT NULL,
87
+ linkedto mediumint(9),
88
+ filedata TEXT,
89
+ PRIMARY KEY (idlog))
90
+ DEFAULT CHARACTER SET = utf8
91
+ DEFAULT COLLATE = utf8_general_ci;";
92
+ dbDelta($sql);
93
+ update_option("wordpress_file_upload_table_log_version", $wfu_tb_log_version);
94
+ }
95
+
96
+ $table_name2 = $wpdb->prefix . "wfu_userdata";
97
+ $installed_ver = get_option( "wordpress_file_upload_table_userdata_version" );
98
+ if( $installed_ver != $wfu_tb_userdata_version ) {
99
+ $sql = "CREATE TABLE " . $table_name2 . " (
100
+ iduserdata mediumint(9) NOT NULL AUTO_INCREMENT,
101
+ uploadid VARCHAR(20) NOT NULL,
102
+ property VARCHAR(100) NOT NULL,
103
+ propkey mediumint(9) NOT NULL,
104
+ propvalue TEXT,
105
+ date_from DATETIME,
106
+ date_to DATETIME,
107
+ PRIMARY KEY (iduserdata))
108
+ DEFAULT CHARACTER SET = utf8
109
+ DEFAULT COLLATE = utf8_general_ci;";
110
+ dbDelta($sql);
111
+ update_option("wordpress_file_upload_table_userdata_version", $wfu_tb_userdata_version);
112
+ }
113
+
114
+ $table_name3 = $wpdb->prefix . "wfu_dbxqueue";
115
+ $installed_ver = get_option( "wordpress_file_upload_table_dbxqueue_version" );
116
+ if( $installed_ver != $wfu_tb_dbxqueue_version ) {
117
+ $sql = "CREATE TABLE " . $table_name3 . " (
118
+ iddbxqueue mediumint(9) NOT NULL AUTO_INCREMENT,
119
+ fileid mediumint(9) NOT NULL,
120
+ priority mediumint(9) NOT NULL,
121
+ status mediumint(9) NOT NULL,
122
+ jobid VARCHAR(10) NOT NULL,
123
+ start_time bigint,
124
+ PRIMARY KEY (iddbxqueue))
125
+ DEFAULT CHARACTER SET = utf8
126
+ DEFAULT COLLATE = utf8_general_ci;";
127
+ dbDelta($sql);
128
+ update_option("wordpress_file_upload_table_dbxqueue_version", $wfu_tb_dbxqueue_version);
129
+ }
130
+ }
131
+
132
+ function wordpress_file_upload_uninstall() {
133
+ }
134
+
135
+ function wordpress_file_upload_update_db_check() {
136
+ global $wfu_tb_log_version;
137
+ global $wfu_tb_userdata_version;
138
+ global $wfu_tb_dbxqueue_version;
139
+ // update_option("wordpress_file_upload_table_log_version", "0");
140
+ // update_option("wordpress_file_upload_table_userdata_version", "0");
141
+ // update_option("wordpress_file_upload_table_dbxqueue_version", "0");
142
+ if ( get_option('wordpress_file_upload_table_log_version') != $wfu_tb_log_version || get_option('wordpress_file_upload_table_userdata_version') != $wfu_tb_userdata_version || get_option('wordpress_file_upload_table_dbxqueue_version') != $wfu_tb_dbxqueue_version ) {
143
+ wordpress_file_upload_install();
144
+ }
145
+ }
146
+
147
+ // This is the callback function that generates dashboard page content
148
+ function wordpress_file_upload_manage_dashboard() {
149
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
150
+ $_POST = stripslashes_deep($_POST);
151
+ $_GET = stripslashes_deep($_GET);
152
+ $action = (!empty($_POST['action']) ? $_POST['action'] : (!empty($_GET['action']) ? $_GET['action'] : ''));
153
+ $dir = (!empty($_POST['dir']) ? $_POST['dir'] : (!empty($_GET['dir']) ? $_GET['dir'] : ''));
154
+ $file = (!empty($_POST['file']) ? $_POST['file'] : (!empty($_GET['file']) ? $_GET['file'] : ''));
155
+ $referer = (!empty($_POST['referer']) ? $_POST['referer'] : (!empty($_GET['referer']) ? $_GET['referer'] : ''));
156
+ $data_enc = (!empty($_POST['data']) ? $_POST['data'] : (!empty($_GET['data']) ? $_GET['data'] : ''));
157
+ $postid = (!empty($_POST['postid']) ? $_POST['postid'] : (!empty($_GET['postid']) ? $_GET['postid'] : ''));
158
+ $nonce = (!empty($_POST['nonce']) ? $_POST['nonce'] : (!empty($_GET['nonce']) ? $_GET['nonce'] : ''));
159
+ $tag = (!empty($_POST['tag']) ? $_POST['tag'] : (!empty($_GET['tag']) ? $_GET['tag'] : ''));
160
+ $username = (!empty($_POST['username']) ? $_POST['username'] : (!empty($_GET['username']) ? $_GET['username'] : ''));
161
+ $invoker = (!empty($_POST['invoker']) ? $_POST['invoker'] : (!empty($_GET['invoker']) ? $_GET['invoker'] : ''));
162
+ $echo_str = "";
163
+
164
+ if ( $action == 'edit_settings' ) {
165
+ wfu_update_settings();
166
+ $echo_str = wfu_manage_settings();
167
+ }
168
+ elseif ( $action == 'shortcode_composer' ) {
169
+ $echo_str = wfu_shortcode_composer();
170
+ }
171
+ elseif ( $action == 'file_browser' ) {
172
+ $echo_str = wfu_browse_files($dir);
173
+ }
174
+ elseif ( $action == 'view_log' ) {
175
+ $page = $tag;
176
+ if ( $page == '' ) $page = 1;
177
+ $page = (int)wfu_sanitize_int($page);
178
+ $echo_str = wfu_view_log($page);
179
+ }
180
+ elseif ( $action == 'rename_file' && $file != "" ) {
181
+ $echo_str = wfu_rename_file_prompt($file, 'file', false);
182
+ }
183
+ elseif ( $action == 'rename_dir' && $file != "" ) {
184
+ $echo_str = wfu_rename_file_prompt($file, 'dir', false);
185
+ }
186
+ elseif ( $action == 'renamefile' && $file != "" ) {
187
+ if ( wfu_rename_file($file, 'file') ) $echo_str = wfu_browse_files($dir);
188
+ else $echo_str = wfu_rename_file_prompt($file, 'file', true);
189
+ }
190
+ elseif ( $action == 'renamedir' && $file != "" ) {
191
+ if ( wfu_rename_file($file, 'dir') ) $echo_str = wfu_browse_files($dir);
192
+ else $echo_str = wfu_rename_file_prompt($file, 'dir', true);
193
+ }
194
+ elseif ( $action == 'delete_file' && $file != "" && $referer != "" ) {
195
+ if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
196
+ $echo_str = wfu_delete_file_prompt($file, 'file', $referer);
197
+ }
198
+ elseif ( $action == 'delete_dir' && $file != "" && $referer != "" ) {
199
+ $echo_str = wfu_delete_file_prompt($file, 'dir', $referer);
200
+ }
201
+ elseif ( $action == 'deletefile' && $file != "" ) {
202
+ if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
203
+ wfu_delete_file($file, 'file');
204
+ $referer_url = wfu_flatten_path(wfu_get_filepath_from_safe(wfu_sanitize_code($referer)));
205
+ if ( $referer_url === false ) $referer_url = "";
206
+ $match = array();
207
+ preg_match("/\&dir=(.*)/", $referer_url, $match);
208
+ $dir = ( isset($match[1]) ? $match[1] : "" );
209
+ $echo_str = wfu_browse_files($dir);
210
+ }
211
+ elseif ( $action == 'deletedir' && $file != "" ) {
212
+ wfu_delete_file($file, 'dir');
213
+ $referer_url = wfu_flatten_path(wfu_get_filepath_from_safe(wfu_sanitize_code($referer)));
214
+ if ( $referer_url === false ) $referer_url = "";
215
+ $match = array();
216
+ preg_match("/\&dir=(.*)/", $referer_url, $match);
217
+ $dir = ( isset($match[1]) ? $match[1] : "" );
218
+ $echo_str = wfu_browse_files($dir);
219
+ }
220
+ elseif ( $action == 'create_dir' ) {
221
+ $echo_str = wfu_create_dir_prompt($dir, false);
222
+ }
223
+ elseif ( $action == 'createdir' ) {
224
+ if ( wfu_create_dir($dir) ) $echo_str = wfu_browse_files($dir);
225
+ else $echo_str = wfu_create_dir_prompt($dir, true);
226
+ }
227
+ elseif ( $action == 'include_file' && $file != "" && $referer != "" ) {
228
+ if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
229
+ $echo_str = wfu_include_file_prompt($file, $referer);
230
+ }
231
+ elseif ( $action == 'includefile' && $file != "" ) {
232
+ if ( substr($file, 0, 5) == "list:" ) $file = explode(",", substr($file, 5));
233
+ wfu_include_file($file);
234
+ $referer_url = wfu_flatten_path(wfu_get_filepath_from_safe(wfu_sanitize_code($referer)));
235
+ if ( $referer_url === false ) $referer_url = "";
236
+ $match = array();
237
+ preg_match("/\&dir=(.*)/", $referer_url, $match);
238
+ $dir = ( isset($match[1]) ? $match[1] : "" );
239
+ $echo_str = wfu_browse_files($dir);
240
+ }
241
+ elseif ( $action == 'file_details' && $file != "" ) {
242
+ $echo_str = wfu_file_details($file, false, $invoker);
243
+ }
244
+ elseif ( $action == 'edit_filedetails' && $file != "" ) {
245
+ wfu_edit_filedetails($file);
246
+ $echo_str = wfu_file_details($file, false);
247
+ }
248
+ elseif ( $action == 'personal_data' && $plugin_options["personaldata"] == "1" ) {
249
+ $echo_str = wfu_manage_personaldata_policies();
250
+ }
251
+ elseif ( $action == 'erase_userdata_ask' && $plugin_options["personaldata"] == "1" && $username != "" ) {
252
+ $echo_str = wfu_erase_userdata_ask_prompt($username);
253
+ }
254
+ elseif ( $action == 'erase_userdata' && $plugin_options["personaldata"] == "1" && $username != "" ) {
255
+ $ret = wfu_erase_userdata($username);
256
+ if ( $ret <= -1 ) $echo_str = wfu_manage_personaldata_policies();
257
+ else $echo_str = wfu_manage_personaldata_policies('Database cleaned. '.$ret.' items where affected.');
258
+ }
259
+ elseif ( $action == 'maintenance_actions' ) {
260
+ $echo_str = wfu_maintenance_actions();
261
+ }
262
+ elseif ( $action == 'sync_db' && $nonce != "" ) {
263
+ $affected_items = wfu_sync_database_controller($nonce);
264
+ if ( $affected_items > -1 ) $echo_str = wfu_maintenance_actions('Database updated. '.$affected_items.' items where affected.');
265
+ else $echo_str = wfu_maintenance_actions();
266
+ }
267
+ elseif ( $action == 'clean_log_ask' && $nonce != "" && $data_enc != "" ) {
268
+ $echo_str = wfu_clean_log_prompt($nonce, $data_enc);
269
+ }
270
+ elseif ( $action == 'clean_log' ) {
271
+ $ret = wfu_clean_log();
272
+ if ( $ret <= -1 ) $echo_str = wfu_maintenance_actions();
273
+ else $echo_str = wfu_maintenance_actions('Database cleaned. '.$ret.' items where affected.');
274
+ }
275
+ elseif ( $action == 'reset_all_transfers' && $nonce != "" ) {
276
+ if ( wfu_reset_all_transfers_controller($nonce) === true )
277
+ $echo_str = wfu_maintenance_actions('All file transfers were successfully reset.');
278
+ else $echo_str = wfu_maintenance_actions();
279
+ }
280
+ elseif ( $action == 'clear_all_transfers' && $nonce != "" ) {
281
+ if ( wfu_clear_all_transfers_controller($nonce) === true )
282
+ $echo_str = wfu_maintenance_actions('All file transfers were successfully cleared.');
283
+ else $echo_str = wfu_maintenance_actions();
284
+ }
285
+ elseif ( $action == 'plugin_settings' ) {
286
+ $echo_str = wfu_manage_settings();
287
+ }
288
+ elseif ( $action == 'add_shortcode' && $postid != "" && $nonce != "" && $tag != "" ) {
289
+ if ( WFU_USVAR('wfu_add_shortcode_ticket_for_'.$tag) != $nonce ) $echo_str = wfu_manage_mainmenu();
290
+ elseif ( wfu_add_shortcode($postid, $tag) ) $echo_str = wfu_manage_mainmenu();
291
+ else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_ADD_SHORTCODE_REJECTED);
292
+ WFU_USVAR_store('wfu_add_shortcode_ticket', 'noticket');
293
+ }
294
+ elseif ( $action == 'edit_shortcode' && $data_enc != "" && $tag != "" ) {
295
+ $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
296
+ if ( $data['post_id'] == "" || wfu_check_edit_shortcode($data) ) wfu_shortcode_composer($data, $tag);
297
+ else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_EDIT_SHORTCODE_REJECTED);
298
+ }
299
+ elseif ( $action == 'delete_shortcode' && $data_enc != "" ) {
300
+ $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
301
+ if ( wfu_check_edit_shortcode($data) ) $echo_str = wfu_delete_shortcode_prompt($data_enc);
302
+ else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_DELETE_SHORTCODE_REJECTED);
303
+ }
304
+ elseif ( $action == 'deleteshortcode' && $data_enc != "" ) {
305
+ $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
306
+ if ( wfu_check_edit_shortcode($data) ) {
307
+ if ( wfu_delete_shortcode($data) ) wfu_clear_shortcode_data_from_safe($data_enc);
308
+ $echo_str = wfu_manage_mainmenu();
309
+ }
310
+ else $echo_str = wfu_manage_mainmenu(WFU_DASHBOARD_DELETE_SHORTCODE_REJECTED);
311
+ }
312
+ elseif ( $action == 'add_policy' ) {
313
+ $echo_str = wfu_edit_pd_policy();
314
+ }
315
+ else {
316
+ $echo_str = wfu_manage_mainmenu();
317
+ }
318
+
319
+ echo $echo_str;
320
+ }
321
+
322
+ function wfu_manage_mainmenu($message = '') {
323
+ if ( !current_user_can( 'manage_options' ) ) return;
324
+
325
+ //get php version
326
+ $php_version = preg_replace("/-.*/", "", phpversion());
327
+
328
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
329
+
330
+ $echo_str = '<div class="wrap">';
331
+ $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
332
+ if ( $message != '' ) {
333
+ $echo_str .= "\n\t".'<div class="updated">';
334
+ $echo_str .= "\n\t\t".'<p>'.$message.'</p>';
335
+ $echo_str .= "\n\t".'</div>';
336
+ }
337
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
338
+ $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "Main");
339
+ $echo_str .= "\n\t\t".'<h3 style="margin-bottom: 10px;">Status';
340
+ if ( $plugin_options["altserver"] == "1" && substr(trim(WFU_VAR("WFU_ALT_IPTANUS_SERVER")), 0, 5) == "http:" ) {
341
+ $echo_str .= '<div style="display: inline-block; margin-left:20px;" title="'.WFU_WARNING_ALT_IPTANUS_SERVER_ACTIVATED.'"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 200 800" version="1.1" style="background:darkorange; border-radius:13px; padding:2px; vertical-align:middle; border: 1px solid silver;"><path d="M 110,567 L 90,567 L 42,132 C 40,114 40,100 40,90 C 40,70 45,49 56,35 C 70,22 83,15 100,15 C 117,15 130,22 144,35 C 155,49 160,70 160,90 C 160,100 160,114 158,132 z M 100,640 A 60,60 0 1,1 100,760 A 60,60 0 1,1 100,640 z"/></svg></div>';
342
+ }
343
+ $echo_str .= '</h3>';
344
+ $echo_str .= "\n\t\t".'<table class="form-table">';
345
+ $echo_str .= "\n\t\t\t".'<tbody>';
346
+ //plugin edition
347
+ $echo_str .= "\n\t\t\t\t".'<tr>';
348
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
349
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Edition</label>';
350
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
351
+ $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px; vertical-align:top;">';
352
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">Free</label>';
353
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
354
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
355
+ $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:bisque; padding:0 0 0 4px; border-left:3px solid lightcoral;">';
356
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">Consider </label><a href="'.WFU_PRO_VERSION_URL.'">Upgrading</a><label style="cursor:default;"> to the Professional Version. </label>';
357
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<button onclick="if (this.innerText == \'See why >>\') {this.innerText = \'<< Close\'; document.getElementById(\'wfu_version_comparison\').style.display = \'inline-block\';} else {this.innerText = \'See why >>\'; document.getElementById(\'wfu_version_comparison\').style.display = \'none\';}">See why >></button>';
358
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
359
+ $echo_str .= "\n\t\t\t\t\t\t".'<br /><div id="wfu_version_comparison" style="display:none; background-color:lightyellow; border:1px solid yellow; margin:10px 0; padding:10px;">';
360
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<img src="'.WFU_IMAGE_VERSION_COMPARISON.'" style="display:block; margin-bottom:6px;" />';
361
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button-primary" href="'.WFU_PRO_VERSION_URL.'">Go for the PRO version</a>';
362
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
363
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
364
+ $echo_str .= "\n\t\t\t\t".'</tr>';
365
+ //plugin version
366
+ $echo_str .= "\n\t\t\t\t".'<tr>';
367
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
368
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Version</label>';
369
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
370
+ $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px;">';
371
+ $cur_version = wfu_get_plugin_version();
372
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">'.$cur_version.'</label>';
373
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
374
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
375
+ $lat_version = wfu_get_latest_version();
376
+ $ret = wfu_compare_versions($cur_version, $lat_version);
377
+ if ( $lat_version == "" && WFU_VAR("WFU_DISABLE_VERSION_CHECK") != "true" ) {
378
+ $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:transparent; padding:0 0 0 4px; color:red;">';
379
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 200 800" version="1.1" style="background:transparent; border-radius:13px; padding:2px; vertical-align:middle; border: 2px solid red; fill:red;"><path d="M 110,567 L 90,567 L 42,132 C 40,114 40,100 40,90 C 40,70 45,49 56,35 C 70,22 83,15 100,15 C 117,15 130,22 144,35 C 155,49 160,70 160,90 C 160,100 160,114 158,132 z M 100,640 A 60,60 0 1,1 100,760 A 60,60 0 1,1 100,640 z"/></svg>';
380
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">'.WFU_WARNING_IPTANUS_SERVER_UNREACHABLE.'</label>';
381
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
382
+ }
383
+ elseif ( $ret['status'] && $ret['result'] == 'lower' ) {
384
+ $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:bisque; padding:0 0 0 4px; border-left:3px solid lightcoral;">';
385
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">Version <strong>'.$lat_version.'</strong> of the plugin is available. Go to Plugins page of your Dashboard to update to the latest version.</label>';
386
+ if ( $ret['custom'] ) $echo_str .= '<label style="cursor:default; color: purple;"> <em>Please note that you are using a custom version of the plugin. If you upgrade to the newest version, custom changes will be lost.</em></label>';
387
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
388
+ }
389
+ elseif ( $ret['status'] && $ret['result'] == 'equal' ) {
390
+ $echo_str .= "\n\t\t\t\t\t\t".'<div style="display:inline-block; background-color:rgb(220,255,220); padding:0 0 0 4px; border-left:3px solid limegreen;">';
391
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label style="cursor:default;">You have the latest version.</label>';
392
+ if ( $ret['custom'] ) $echo_str .= '<label style="cursor:default; color: purple;"> <em>(Please note that your version is custom)</em></label>';
393
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
394
+ }
395
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
396
+ $echo_str .= "\n\t\t\t\t".'</tr>';
397
+ //server environment
398
+ $php_env = wfu_get_server_environment();
399
+ $echo_str .= "\n\t\t\t\t".'<tr>';
400
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
401
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Server Environment</label>';
402
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
403
+ $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px;">';
404
+ if ( $php_env == '64bit' ) $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">64bit</label></td><td><label style="font-weight:normal; font-style:italic; cursor:default;">(Your server supports files up to 1 Exabyte, practically unlimited)</label>';
405
+ if ( $php_env == '32bit' ) $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">32bit</label></td><td><label style="font-weight:normal; font-style:italic; cursor:default;">(Your server does not support files larger than 2GB)</label>';
406
+ if ( $php_env == '' ) $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">Unknown</label></td><td><label style="font-weight:normal; font-style:italic; cursor:default;">(The maximum file size supported by the server cannot be determined)</label>';
407
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
408
+ $echo_str .= "\n\t\t\t\t".'</tr>';
409
+ $echo_str .= "\n\t\t\t\t".'<tr>';
410
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
411
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">PHP Version</label>';
412
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
413
+ $echo_str .= "\n\t\t\t\t\t".'<td style="width:100px;">';
414
+ $cur_version = wfu_get_plugin_version();
415
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="font-weight:bold; cursor:default;">'.$php_version.'</label>';
416
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
417
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
418
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
419
+ $echo_str .= "\n\t\t\t\t".'</tr>';
420
+ $echo_str .= "\n\t\t\t\t".'<tr>';
421
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
422
+ $echo_str .= "\n\t\t\t\t\t\t".'<label style="cursor:default;">Release Notes</label>';
423
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
424
+ $echo_str .= "\n\t\t\t\t\t".'<td colspan="2" style="width:100px;">';
425
+ $rel_path = ABSWPFILEUPLOAD_DIR.'release_notes.txt';
426
+ $rel_notes = '';
427
+ if ( file_exists($rel_path) ) $rel_notes = file_get_contents($rel_path);
428
+ $echo_str .= "\n\t\t\t\t\t\t".'<div style="text-align:justify;">'.$rel_notes.'</div>';
429
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
430
+ $echo_str .= "\n\t\t\t\t".'</tr>';
431
+ $echo_str .= "\n\t\t\t".'</tbody>';
432
+ $echo_str .= "\n\t\t".'</table>';
433
+
434
+ $echo_str .= wfu_manage_instances();
435
+
436
+ $echo_str .= "\n\t".'</div>';
437
+ $echo_str .= "\n".'</div>';
438
+
439
+ echo $echo_str;
440
+ }
441
+
442
+ function wfu_generate_dashboard_menu($dlp, $active) {
443
+ $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
444
+ $siteurl = site_url();
445
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
446
+
447
+ $echo_str = $dlp.'<h2 class="nav-tab-wrapper" style="margin-bottom:40px;">';
448
+ $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="nav-tab'.( $active == "Main" ? ' nav-tab-active' : '' ).'" title="Main">Main</a>';
449
+ $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=plugin_settings" class="nav-tab'.( $active == "Settings" ? ' nav-tab-active' : '' ).'" title="Settings">Settings</a>';
450
+ $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser" class="nav-tab'.( $active == "File Browser" ? ' nav-tab-active' : '' ).'" title="File browser">File Browser</a>';
451
+ $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=view_log" class="nav-tab'.( $active == "View Log" ? ' nav-tab-active' : '' ).'" title="View log">View Log</a>';
452
+ if ( $plugin_options["personaldata"] == "1" )
453
+ $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=personal_data" class="nav-tab'.( $active == "Personal Data" ? ' nav-tab-active' : '' ).'" title="Personal Data">Personal Data</a>';
454
+ $echo_str .= $dlp."\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=maintenance_actions" class="nav-tab'.( $active == "Maintenance Actions" ? ' nav-tab-active' : '' ).'" title="Maintenance Actions">Maintenance Actions</a>';
455
+ $echo_str .= $dlp.'</h2>';
456
+
457
+ return $echo_str;
458
+ }
459
+
460
+ function wfu_test_function() {
461
+ $str = 'hello τεστ A piñata Ёнвидюнт';
462
+
463
+ echo "pass: ".$str;
464
+ }
465
+
466
+ function wfu_construct_post_list($posts) {
467
+ $ids = array();
468
+ $list = array();
469
+ $id_keys = array();
470
+ //construct item indices
471
+ foreach ( $posts as $key => $post ) {
472
+ if ( !array_key_exists($post->post_type, $ids) ) {
473
+ $ids[$post->post_type] = array();
474
+ $list[$post->post_type] = array();
475
+ }
476
+ array_push($ids[$post->post_type], $post->ID);
477
+ $id_keys[$post->ID] = $key;
478
+ }
479
+ //create post list in tree order; items are sorted by post status (publish, private, draft) and then by title
480
+ $i = 0;
481
+ while ( $i < count($posts) ) {
482
+ $post = $posts[$i];
483
+ //find topmost element in family tree
484
+ $tree = array( $post->ID );
485
+ $topmost = $post;
486
+ $par_id = $topmost->post_parent;
487
+ while ( in_array($par_id, $ids[$post->post_type]) ) {
488
+ $topmost = $posts[$id_keys[$par_id]];
489
+ array_splice($tree, 0, 0, $par_id);
490
+ $par_id = $topmost->post_parent;
491
+ }
492
+ //find which needs to be processed
493
+ $level = 0;
494
+ $host = &$list[$post->post_type];
495
+ foreach ( $tree as $process_id ) {
496
+ $found_key = -1;
497
+ foreach ( $host as $key => $item )
498
+ if ( $item['id'] == $process_id ) {
499
+ $found_key = $key;
500
+ break;
501
+ }
502
+ if ( $found_key == -1 ) break;
503
+ $level++;
504
+ $host = &$host[$found_key]['children'];
505
+ }
506
+ if ( $found_key == -1 ) {
507
+ $processed = $posts[$id_keys[$process_id]];
508
+ //add the processed item in the right position in children's list
509
+ $pos = 0;
510
+ $status = ( $processed->post_status == 'publish' ? 0 : ( $processed->post_status == 'private' ? 1 : 2 ) );
511
+ foreach ($host as $item) {
512
+ if ( $status < $item['status'] ) break;
513
+ if ( $status == $item['status'] && strcmp($processed->post_title, $item['title']) < 0 ) break;
514
+ $pos++;
515
+ }
516
+ $new_item = array(
517
+ 'id' => $process_id,
518
+ 'title' => $processed->post_title,
519
+ 'status' => $status,
520
+ 'level' => $level,
521
+ 'children' => array()
522
+ );
523
+ array_splice($host, $pos, 0, array($new_item));
524
+ }
525
+ //advance index if we have finished processing all the tree
526
+ if ( $process_id == $post->ID ) $i++;
527
+ }
528
+ return $list;
529
+ }
530
+
531
+ function wfu_flatten_post_list($list) {
532
+ $flat = array();
533
+ if ( !is_array($list) ) return $flat;
534
+ foreach( $list as $item ) {
535
+ $flat_item = array(
536
+ 'id' => $item['id'],
537
+ 'title' => $item['title'],
538
+ 'status' => $item['status'],
539
+ 'level' => $item['level']
540
+ );
541
+ array_push($flat, $flat_item);
542
+ $flat = array_merge($flat, wfu_flatten_post_list($item['children']));
543
+ }
544
+ return $flat;
545
+ }
546
+
547
+ function wfu_manage_instances() {
548
+ $echo_str = wfu_manage_instances_of_shortcode('wordpress_file_upload', 'Uploader Instances', 'uploader', 1);
549
+
550
+ return $echo_str;
551
+ }
552
+
553
+ function wfu_manage_instances_of_shortcode($tag, $title, $slug, $inc) {
554
+ global $wp_registered_widgets, $wp_registered_sidebars;
555
+
556
+ $siteurl = site_url();
557
+ $args = array( 'post_type' => array( "post", "page" ), 'post_status' => "publish,private,draft", 'posts_per_page' => -1 );
558
+ $args = apply_filters("_wfu_get_posts", $args, "manage_instances");
559
+ $posts = get_posts($args);
560
+ $wfu_shortcodes = array();
561
+ //get shortcode instances from page/posts
562
+ foreach ( $posts as $post ) {
563
+ $ret = wfu_get_content_shortcodes($post, $tag);
564
+ if ( $ret !== false ) $wfu_shortcodes = array_merge($wfu_shortcodes, $ret);
565
+ }
566
+ //get shortcode instances from sidebars
567
+ $data = array();
568
+ $widget_base = $tag.'_widget';
569
+ if ( is_array($wp_registered_widgets) ) {
570
+ foreach ( $wp_registered_widgets as $id => $widget ) {
571
+ if ( substr($id, 0, strlen($widget_base)) == $widget_base ) {
572
+ $widget_obj = ( isset($widget['callback']) ? ( isset($widget['callback'][0]) ? ( $widget['callback'][0] instanceof WP_Widget ? $widget['callback'][0] : false ) : false ) : false );
573
+ $widget_sidebar = is_active_widget(false, $id, $widget_base);
574
+ if ( $widget_obj !== false && $widget_sidebar !== false ) {
575
+ if ( isset($wp_registered_sidebars[$widget_sidebar]) && isset($wp_registered_sidebars[$widget_sidebar]['name']) ) $widget_sidebar = $wp_registered_sidebars[$widget_sidebar]['name'];
576
+ $data['post_id'] = "";
577
+ $data['post_hash'] = "";
578
+ $data['shortcode'] = $widget_obj->shortcode();
579
+ $data['position'] = 0;
580
+ $data['widgetid'] = $id;
581
+ $data['sidebar'] = $widget_sidebar;
582
+ array_push($wfu_shortcodes, $data);
583
+ }
584
+ }
585
+ }
586
+ }
587
+
588
+ $list = wfu_construct_post_list($posts);
589
+ $pagelist = wfu_flatten_post_list($list["page"]);
590
+ $postlist = wfu_flatten_post_list($list["post"]);
591
+
592
+ $echo_str = "\n\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">'.$title.'</h3>';
593
+ $onchange_js = 'document.getElementById(\'wfu_add_plugin_ok_'.$inc.'\').disabled = !((document.getElementById(\'wfu_page_type_'.$inc.'\').value == \'page\' && document.getElementById(\'wfu_page_list_'.$inc.'\').value != \'\') || (document.getElementById(\'wfu_page_type_'.$inc.'\').value == \'post\' && document.getElementById(\'wfu_post_list_'.$inc.'\').value != \'\'));';
594
+ $no_shortcodes = ( count($wfu_shortcodes) == 0 );
595
+ $echo_str .= "\n\t\t".'<div id="wfu_add_plugin_button_'.$inc.'" style="'. ( !$no_shortcodes ? '' : 'color:blue; font-weight:bold; font-size:larger;' ).'margin-bottom: 20px; margin-top: 10px;">';
596
+ $addbutton_pre = ( !$no_shortcodes ? '' : '<label>Press </label>');
597
+ $addbutton_post = ( !$no_shortcodes ? '' : '<label> to get started and add the '.$slug.' in a page</label>');
598
+ $echo_str .= "\n\t\t\t".$addbutton_pre.'<button onclick="document.getElementById(\'wfu_add_plugin_button_'.$inc.'\').style.display = \'none\'; document.getElementById(\'wfu_add_plugin_'.$inc.'\').style.display = \'inline-block\'; '.$onchange_js.'">'.( !$no_shortcodes ? 'Add Plugin Instance' : 'here' ).'</button>'.$addbutton_post;
599
+ $echo_str .= "\n\t\t".'</div>';
600
+ $echo_str .= "\n\t\t".'<div id="wfu_add_plugin_'.$inc.'" style="margin-bottom: 20px; margin-top: 10px; position:relative; display:none;">';
601
+ $echo_str .= "\n\t\t\t".'<div id="wfu_add_plugin_'.$inc.'_overlay" style="position:absolute; top:0; left:0; width:100%; height:100%; background-color:rgba(255,255,255,0.8); border:none; display:none;">';
602
+ $echo_str .= "\n\t\t\t\t".'<table style="background:none; border:none; margin:0; padding:0; line-height:1; border-spacing:0; width:100%; height:100%; table-layout:fixed;"><tbody><tr><td style="text-align:center; vertical-align:middle;"><div style="display:inline-block;"><span class="spinner" style="opacity:1; float:left; margin:0; display:inline;"></span><label style="margin-left:4px;">please wait...</label></div></td></tr></tbody></table>';
603
+ $echo_str .= "\n\t\t\t".'</div>';
604
+ $echo_str .= "\n\t\t\t".'<label>Add '.$slug.' to </label><select id="wfu_page_type_'.$inc.'" onchange="document.getElementById(\'wfu_page_list_'.$inc.'\').style.display = (this.value == \'page\' ? \'inline-block\' : \'none\'); document.getElementById(\'wfu_post_list_'.$inc.'\').style.display = (this.value == \'post\' ? \'inline-block\' : \'none\'); '.$onchange_js.'"><option value="page" selected="selected">Page</option><option value="post">Post</option></select>';
605
+ $echo_str .= "\n\t\t\t".'<select id="wfu_page_list_'.$inc.'" style="margin-bottom:6px;" onchange="'.$onchange_js.'">';
606
+ $echo_str .= "\n\t\t\t\t".'<option value=""></option>';
607
+ foreach ( $pagelist as $item )
608
+ $echo_str .= "\n\t\t\t\t".'<option value="'.$item['id'].'">'.str_repeat('&nbsp;', 4 * $item['level']).( $item['status'] == 1 ? '[Private]' : ( $item['status'] == 2 ? '[Draft]' : '' ) ).$item['title'].'</option>';
609
+ $echo_str .= "\n\t\t\t".'</select>';
610
+ $echo_str .= "\n\t\t\t".'<select id="wfu_post_list_'.$inc.'" style="display:none; margin-bottom:6px;" onchange="'.$onchange_js.'">';
611
+ $echo_str .= "\n\t\t\t\t".'<option value=""></option>';
612
+ foreach ( $postlist as $item )
613
+ $echo_str .= "\n\t\t\t\t".'<option value="'.$item['id'].'">'.str_repeat('&nbsp;', 4 * $item['level']).( $item['status'] == 1 ? '[Private]' : ( $item['status'] == 2 ? '[Draft]' : '' ) ).$item['title'].'</option>';
614
+ $echo_str .= "\n\t\t\t".'</select><br />';
615
+ $add_shortcode_ticket = wfu_create_random_string(16);
616
+ WFU_USVAR_store('wfu_add_shortcode_ticket_for_'.$tag, $add_shortcode_ticket);
617
+ $echo_str .= "\n\t\t".'<button id="wfu_add_plugin_ok_'.$inc.'" style="float:right; margin: 0 2px 0 4px;" disabled="disabled" onclick="document.getElementById(\'wfu_add_plugin_'.$inc.'_overlay\').style.display = \'block\'; window.location = \''.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=add_shortcode&amp;tag='.$tag.'&amp;postid=\' + (document.getElementById(\'wfu_page_type_'.$inc.'\').value == \'page\' ? document.getElementById(\'wfu_page_list_'.$inc.'\').value : document.getElementById(\'wfu_post_list_'.$inc.'\').value) + \'&amp;nonce='.$add_shortcode_ticket.'\';">Ok</button>';
618
+ $echo_str .= "\n\t\t".'<button style="float:right;" onclick="document.getElementById(\'wfu_page_type_'.$inc.'\').value = \'page\'; document.getElementById(\'wfu_page_list_'.$inc.'\').value = \'\'; document.getElementById(\'wfu_post_list_'.$inc.'\').value = \'\'; document.getElementById(\'wfu_add_plugin_'.$inc.'\').style.display = \'none\'; document.getElementById(\'wfu_add_plugin_button_'.$inc.'\').style.display = \'inline-block\';">Cancel</button>';
619
+ $echo_str .= "\n\t\t".'</div>';
620
+ $echo_str .= "\n\t\t".'<table class="wp-list-table widefat fixed striped">';
621
+ $echo_str .= "\n\t\t\t".'<thead>';
622
+ $echo_str .= "\n\t\t\t\t".'<tr>';
623
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="5%" style="text-align:center;">';
624
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>#</label>';
625
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
626
+ // $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
627
+ // $echo_str .= "\n\t\t\t\t\t\t".'<label>ID</label>';
628
+ // $echo_str .= "\n\t\t\t\t\t".'</th>';
629
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
630
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Contained In</label>';
631
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
632
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="30%" style="text-align:center;">';
633
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Page/Post Title</label>';
634
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
635
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="45%" style="text-align:center;">';
636
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Shortcode</label>';
637
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
638
+ $echo_str .= "\n\t\t\t\t".'</tr>';
639
+ $echo_str .= "\n\t\t\t".'</thead>';
640
+ $echo_str .= "\n\t\t\t".'<tbody>';
641
+ $i = 1;
642
+ foreach ( $wfu_shortcodes as $key => $data ) {
643
+ $widget_id = ( isset($data['widgetid']) ? $data['widgetid'] : '' );
644
+ if ( $widget_id == "" ) {
645
+ $id = $data['post_id'];
646
+ $posttype_obj = get_post_type_object(get_post_type($id));
647
+ $type = ( $posttype_obj ? $posttype_obj->labels->singular_name : "" );
648
+ $title = get_the_title($id);
649
+ if ( trim($title) == "" ) $title = 'ID: '.$id;
650
+ }
651
+ else {
652
+ $type = 'Sidebar';
653
+ $title = $data['sidebar'];
654
+ }
655
+ $data_enc = wfu_safe_store_shortcode_data(wfu_encode_array_to_string($data));
656
+ $echo_str .= "\n\t\t\t\t".'<tr onmouseover="var actions=document.getElementsByName(\'wfu_shortcode_actions_'.$inc.'\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';} document.getElementById(\'wfu_shortcode_actions_'.$inc.'_'.$i.'\').style.visibility=\'visible\'" onmouseout="var actions=document.getElementsByName(\'wfu_shortcode_actions_'.$inc.'\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';}">';
657
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">';
658
+ $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=edit_shortcode&tag='.$tag.'&data='.$data_enc.'" title="Instance #'.$i.'">Instance '.$i.'</a>';
659
+ $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_shortcode_actions_'.$inc.'_'.$i.'" name="wfu_shortcode_actions_'.$inc.'" style="visibility:hidden;">';
660
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
661
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=edit_shortcode&tag='.$tag.'&data='.$data_enc.'" title="Edit this shortcode">Edit</a>';
662
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
663
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
664
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
665
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=delete_shortcode&data='.$data_enc.'" title="Delete this shortcode">Delete</a>';
666
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
667
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
668
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
669
+ // $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$id.'</td>';
670
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$type.'</td>';
671
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$title.'</td>';
672
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;">';
673
+ $echo_str .= "\n\t\t\t\t\t\t".'<textarea rows="3" disabled="disabled" style="width:100%;">'.trim($data['shortcode']).'</textarea>';
674
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
675
+ $echo_str .= "\n\t\t\t\t".'</tr>';
676
+ $i++;
677
+ }
678
+ $echo_str .= "\n\t\t\t".'</tbody>';
679
+ $echo_str .= "\n\t\t".'</table>';
680
+
681
+ return $echo_str;
682
+ }
683
+
684
+ function wfu_get_content_shortcodes($post, $tag) {
685
+ global $shortcode_tags;
686
+ $found_shortcodes = array();
687
+ $content = $post->post_content;
688
+ if ( false === strpos( $content, '[' ) ) return false;
689
+ $hash = hash('md5', $content);
690
+
691
+ if ( array_key_exists( $tag, $shortcode_tags ) ) wfu_match_shortcode_nested($tag, $post, $hash, $content, 0, $found_shortcodes);
692
+
693
+ if ( count($found_shortcodes) == 0 ) return false;
694
+ return $found_shortcodes;
695
+ }
696
+
697
+ function wfu_match_shortcode_nested($tag, $post, $hash, $content, $position, &$found_shortcodes) {
698
+ if ( false === strpos( $content, '[' ) ) return false;
699
+ preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE );
700
+ if ( empty( $matches ) ) return false;
701
+ foreach ( $matches as $shortcode ) {
702
+ if ( $tag === $shortcode[2][0] ) {
703
+ $data['post_id'] = $post->ID;
704
+ $data['post_hash'] = $hash;
705
+ $data['shortcode'] = $shortcode[0][0];
706
+ $data['position'] = (int)$shortcode[0][1] + (int)$position;
707
+ array_push($found_shortcodes, $data);
708
+ }
709
+ wfu_match_shortcode_nested($tag, $post, $hash, $shortcode[5][0], $shortcode[5][1] + (int)$position, $found_shortcodes);
710
+ }
711
+ return false;
712
+ }
713
+
714
+ function wfu_check_edit_shortcode($data) {
715
+ $post = get_post($data['post_id']);
716
+ $content = $post->post_content;
717
+ $hash = hash('md5', $content);
718
+
719
+ return ( $hash == $data['post_hash'] );
720
+ }
721
+
722
+ function wfu_add_shortcode($postid, $tag) {
723
+ $post = get_post($postid);
724
+ $new_content = '['.$tag.']'.$post->post_content;
725
+ $new_post = array( 'ID' => $postid, 'post_content' => $new_content );
726
+ return ( wp_update_post( wfu_slash($new_post) ) === 0 ? false : true );
727
+ }
728
+
729
+ function wfu_replace_shortcode($data, $new_shortcode) {
730
+ $post = get_post($data['post_id']);
731
+ $new_content = substr($post->post_content, 0, $data['position']).$new_shortcode.substr($post->post_content, (int)$data['position'] + strlen($data['shortcode']));
732
+ $new_post = array( 'ID' => $data['post_id'], 'post_content' => $new_content );
733
+ return ( wp_update_post( wfu_slash($new_post) ) === 0 ? false : true );
734
+ }
735
+
736
+ function wfu_delete_shortcode_prompt($data_enc) {
737
+ $siteurl = site_url();
738
+ $data = wfu_decode_array_from_string(wfu_get_shortcode_data_from_safe($data_enc));
739
+ $postid = $data['post_id'];
740
+ $echo_str = "\n".'<div class="wrap">';
741
+ $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
742
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
743
+ $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=manage_mainmenu" class="button" title="go back">Go to Main Menu</a>';
744
+ $echo_str .= "\n\t".'</div>';
745
+ $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px; margin-top: 20px;">Delete Shortcode</h2>';
746
+ $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="deletefile" id="deleteshortcode" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
747
+ $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="deleteshortcode">';
748
+ $echo_str .= "\n\t\t".'<input type="hidden" name="data" value="'.$data_enc.'">';
749
+ $echo_str .= "\n\t\t".'<label>Are you sure that you want to delete shortcode for <strong>'.get_post_type($postid).' "'.get_the_title($postid).'" ('.$postid.') Position '.$data['position'].'</strong> ?</label><br/>';
750
+ $echo_str .= "\n\t\t".'<p class="submit">';
751
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Delete">';
752
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
753
+ $echo_str .= "\n\t\t".'</p>';
754
+ $echo_str .= "\n\t".'</form>';
755
+ $echo_str .= "\n".'</div>';
756
+ return $echo_str;
757
+ }
758
+
759
+ function wfu_delete_shortcode($data) {
760
+ //check if user is allowed to perform this action
761
+ if ( !current_user_can( 'manage_options' ) ) return false;
762
+
763
+ $res = true;
764
+ if ( isset($_POST['submit']) ) {
765
+ if ( $_POST['submit'] == "Delete" ) {
766
+ $res = wfu_replace_shortcode($data, '');
767
+ }
768
+ }
769
+ return $res;
770
+ }
771
+
772
+ function wfu_media_editor_properties() {
773
+ $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
774
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
775
+ if ( $plugin_options["mediacustom"] != "1" ) return;
776
+
777
+ $post = get_post();
778
+ $meta = wp_get_attachment_metadata( $post->ID );
779
+
780
+ $echo_str = "";
781
+ if ( isset($meta["WFU User Data"]) && is_array($meta["WFU User Data"]) ) {
782
+ foreach ( $meta["WFU User Data"] as $label => $value )
783
+ $echo_str .= '<div class="misc-pub-section misc-pub-userdata">'.$label.': <strong>'.$value.'</strong></div>';
784
+ }
785
+ echo $echo_str;
786
+ }
787
+
788
+ ?>
lib/wfu_admin_browser.php CHANGED
@@ -1,1005 +1,1007 @@
1
- <?php
2
-
3
- function wfu_browse_files($basedir_code) {
4
- $siteurl = site_url();
5
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
6
- $user = wp_get_current_user();
7
- //store session variables for use from the downloader
8
-
9
- if ( !current_user_can( 'manage_options' ) ) return;
10
-
11
- //first decode basedir_code
12
- $basedir = wfu_get_filepath_from_safe($basedir_code);
13
- //clean session array holding dir and file paths if it is too big
14
- if ( WFU_USVAR_exists('wfu_filepath_safe_storage') && count(WFU_USVAR('wfu_filepath_safe_storage')) > WFU_VAR("WFU_PHP_ARRAY_MAXLEN") ) WFU_USVAR_store('wfu_filepath_safe_storage', array());
15
-
16
- //extract sort info from basedir
17
- $sort = "";
18
- if ( $basedir !== false ) {
19
- $ret = wfu_extract_sortdata_from_path($basedir);
20
- $basedir = $ret['path'];
21
- $sort = $ret['sort'];
22
- }
23
- if ( $sort == "" ) $sort = 'name';
24
- if ( substr($sort, 0, 1) == '-' ) $order = SORT_DESC;
25
- else $order = SORT_ASC;
26
-
27
- //adjust basedir to have a standard format
28
- if ( $basedir !== false ) {
29
- if ( substr($basedir, -1) != '/' ) $basedir .= '/';
30
- if ( substr($basedir, 0, 1) == '/' ) $basedir = substr($basedir, 1);
31
- //calculate the absolute path of basedir knowing that basedir is relative to website root
32
- $basedir = wfu_path_rel2abs($basedir);
33
- if ( !file_exists($basedir) ) $basedir = false;
34
- }
35
- //set basedit to default value if empty
36
- if ( $basedir === false ) {
37
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
38
- $basedir = ( isset($plugin_options['basedir']) ? $plugin_options['basedir'] : "" );
39
- $temp_params = array( 'uploadpath' => $basedir, 'accessmethod' => 'normal', 'ftpinfo' => '', 'useftpdomain' => 'false' );
40
- $basedir = wfu_upload_plugin_full_path($temp_params);
41
- }
42
- //find relative dir
43
- $reldir = str_replace(wfu_abspath(), "root/", $basedir);
44
- //save dir route to an array
45
- $parts = explode('/', $reldir);
46
- $route = array();
47
- $prev = "";
48
- foreach ( $parts as $part ) {
49
- $part = trim($part);
50
- if ( $part != "" ) {
51
- // if ( $part == 'root' && $prev == "" ) $prev = wfu_abspath();
52
- if ( $part == 'root' && $prev == "" ) $prev = "";
53
- else $prev .= $part.'/';
54
- array_push($route, array( 'item' => $part, 'path' => $prev ));
55
- }
56
- }
57
- //calculate upper directory
58
- $updir = substr($basedir, 0, -1);
59
- $delim_pos = strrpos($updir, '/');
60
- if ( $delim_pos !== false ) $updir = substr($updir, 0, $delim_pos + 1);
61
-
62
- $echo_str = "\n".'<div class="wrap">';
63
- $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
64
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
65
- $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "File Browser");
66
- $echo_str .= "\n\t".'<div>';
67
- $echo_str .= "\n\t\t".'<span><strong>Location:</strong> </span>';
68
- foreach ( $route as $item ) {
69
- // store dir path that we need to pass to other functions in session, instead of exposing it in the url
70
- $dir_code = wfu_safe_store_filepath($item['path']);
71
- $echo_str .= '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">'.$item['item'].'</a>';
72
- $echo_str .= '<span>/</span>';
73
- }
74
- //define referer (with sort data) to point to this url for use by the elements
75
- $referer = $siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$basedir_code;
76
- $referer_code = wfu_safe_store_filepath($referer.'[['.$sort.']]');
77
- //file browser header
78
- $echo_str .= "\n\t".'</div>';
79
- // $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.$sort.']]');
80
- // $echo_str .= "\n\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=create_dir&dir='.$dir_code.'" class="button" title="create folder" style="margin-top:6px">Create folder</a>';
81
- $echo_str .= "\n\t".'<div style="margin-top:10px;">';
82
- $echo_str .= "\n\t\t".'<div class="wfu_adminbrowser_header" style="width: 100%;">';
83
- $bulkactions = array(
84
- array( "name" => "delete", "title" => "Delete" ),
85
- array( "name" => "include", "title" => "Include" )
86
- );
87
- $echo_str .= wfu_add_bulkactions_header("\n\t\t\t", "adminbrowser", $bulkactions);
88
- $echo_str .= "\n\t\t\t".'<input id="wfu_adminbrowser_action_url" type="hidden" value="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" />';
89
- $echo_str .= "\n\t\t\t".'<input id="wfu_adminbrowser_referer" type="hidden" value="'.$referer_code.'" />';
90
- $echo_str .= "\n\t\t\t".'<input id="wfu_download_file_nonce" type="hidden" value="'.wp_create_nonce('wfu_download_file_invoker').'" />';
91
- $echo_str .= "\n\t\t\t".'<input id="wfu_include_file_nonce" type="hidden" value="'.wp_create_nonce('wfu_include_file').'" />';
92
- //define header parameters that can be later used when defining file actions
93
- $header_params = array();
94
- $echo_str .= "\n\t\t".'</div>';
95
- $echo_str .= "\n\t\t".'<table class="wp-list-table widefat fixed striped">';
96
- $echo_str .= "\n\t\t\t".'<thead>';
97
- $echo_str .= "\n\t\t\t\t".'<tr>';
98
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="5%" style="text-align:center;">';
99
- $echo_str .= "\n\t\t\t\t\t\t".'<input id="wfu_select_all_visible" type="checkbox" onchange="wfu_adminbrowser_select_all_visible_changed();" style="-webkit-appearance:checkbox;" />';
100
- $echo_str .= "\n\t\t\t\t\t".'</th>';
101
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="25%" style="text-align:left;">';
102
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'name' ? ( $order == SORT_ASC ? '-name' : 'name' ) : 'name' ).']]');
103
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Name'.( substr($sort, -4) == 'name' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
104
- $echo_str .= "\n\t\t\t\t\t".'</th>';
105
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:right;">';
106
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'size' ? ( $order == SORT_ASC ? '-size' : 'size' ) : 'size' ).']]');
107
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Size'.( substr($sort, -4) == 'size' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
108
- $echo_str .= "\n\t\t\t\t\t".'</th>';
109
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="20%" style="text-align:left;">';
110
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'date' ? ( $order == SORT_ASC ? '-date' : 'date' ) : 'date' ).']]');
111
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Date'.( substr($sort, -4) == 'date' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
112
- $echo_str .= "\n\t\t\t\t\t".'</th>';
113
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
114
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'user' ? ( $order == SORT_ASC ? '-user' : 'user' ) : 'user' ).']]');
115
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Uploaded By'.( substr($sort, -4) == 'user' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
116
- $echo_str .= "\n\t\t\t\t\t".'</th>';
117
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="30%" style="text-align:left;">';
118
- $echo_str .= "\n\t\t\t\t\t\t".'<label>User Data</label>';
119
- $echo_str .= "\n\t\t\t\t\t".'</th>';
120
- $echo_str .= "\n\t\t\t\t".'</tr>';
121
- $echo_str .= "\n\t\t\t".'</thead>';
122
- $echo_str .= "\n\t\t\t".'<tbody>';
123
-
124
- //find contents of current folder
125
- $dirlist = array();
126
- $filelist = array();
127
- if ( $handle = opendir($basedir) ) {
128
- $blacklist = array('.', '..');
129
- while ( false !== ($file = readdir($handle)) )
130
- if ( !in_array($file, $blacklist) ) {
131
- $filepath = $basedir.$file;
132
- $stat = stat($filepath);
133
- if ( is_dir($filepath) ) {
134
- array_push($dirlist, array( 'name' => $file, 'fullpath' => $filepath, 'mdate' => $stat['mtime'] ));
135
- }
136
- else {
137
- //find relative file record in database together with user data;
138
- //if the file is php, then file record is null meaning that the file can only be viewed
139
- //if file record is not found then the file can only be viewed
140
- if ( preg_match("/\.php$/", $filepath) ) $filerec = null;
141
- else $filerec = wfu_get_file_rec($filepath, true);
142
- //find user who uploaded the file
143
- $username = '';
144
- if ( $filerec != null ) $username = wfu_get_username_by_id($filerec->uploaduserid);
145
- array_push($filelist, array( 'name' => $file, 'fullpath' => $filepath, 'size' => $stat['size'], 'mdate' => $stat['mtime'], 'user' => $username, 'filedata' => $filerec ));
146
- }
147
- }
148
- closedir($handle);
149
- }
150
- $dirsort = ( substr($sort, -4) == 'date' ? 'mdate' : substr($sort, -4) );
151
- $filesort = $dirsort;
152
- $dirorder = $order;
153
- if ( $dirsort == 'size' ) { $dirsort = 'name'; $dirorder = SORT_ASC; }
154
- if ( $dirsort == 'user' ) { $dirsort = 'name'; $dirorder = SORT_ASC; }
155
- switch ( $dirsort ) {
156
- case "name": $dirsort .= ":s"; break;
157
- case "size": $dirsort .= ":n"; break;
158
- case "mdate": $dirsort .= ":n"; break;
159
- case "user": $dirsort .= ":s"; break;
160
- }
161
- $dirlist = wfu_array_sort($dirlist, $dirsort, $dirorder);
162
- switch ( $filesort ) {
163
- case "name": $filesort .= ":s"; break;
164
- case "size": $filesort .= ":n"; break;
165
- case "mdate": $filesort .= ":n"; break;
166
- case "user": $filesort .= ":s"; break;
167
- }
168
- $filelist = wfu_array_sort($filelist, $filesort, $order);
169
-
170
- //show subfolders first
171
- if ( $reldir != "root/" ) {
172
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($updir));
173
- $echo_str .= "\n\t\t\t\t".'<tr>';
174
- $echo_str .= "\n\t\t\t\t\t".'<td width="5%" style="padding: 5px 5px 5px 10px; text-align:center;"><input type="checkbox" disabled="disabled" /></td>';
175
- $echo_str .= "\n\t\t\t\t\t".'<td width="25%" style="padding: 5px 5px 5px 10px; text-align:left;">';
176
- $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'" title="go up">..</a>';
177
- $echo_str .= "\n\t\t\t\t\t".'</td>';
178
- $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:right;"> </td>';
179
- $echo_str .= "\n\t\t\t\t\t".'<td width="20%" style="padding: 5px 5px 5px 10px; text-align:left;"> </td>';
180
- $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:center;"> </td>';
181
- $echo_str .= "\n\t\t\t\t\t".'<td width="30%" style="padding: 5px 5px 5px 10px; text-align:left;"> </td>';
182
- $echo_str .= "\n\t\t\t\t".'</tr>';
183
- }
184
- $ii = 1;
185
- foreach ( $dirlist as $dir ) {
186
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($dir['fullpath']).'[['.$sort.']]');
187
- $echo_str .= "\n\t\t\t\t".'<tr onmouseover="var actions=document.getElementsByName(\'wfu_dir_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';} document.getElementById(\'wfu_dir_actions_'.$ii.'\').style.visibility=\'visible\'" onmouseout="var actions=document.getElementsByName(\'wfu_dir_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';}">';
188
- $echo_str .= "\n\t\t\t\t\t".'<td width="5%" style="padding: 5px 5px 5px 10px; text-align:center;"><input type="checkbox" disabled="disabled" /></td>';
189
- $echo_str .= "\n\t\t\t\t\t".'<td width="25%" style="padding: 5px 5px 5px 10px; text-align:left;">';
190
- $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'" title="'.$dir['name'].'">'.$dir['name'].'</a>';
191
- $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_dir_actions_'.$ii.'" name="wfu_dir_actions" style="visibility:hidden;">';
192
- $echo_str .= "\n\t\t\t\t\t\t\t".'<span style="visibility:hidden;">';
193
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir=">Noaction</a>';
194
- $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
195
- $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
196
- // $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
197
- // $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=rename_dir&file='.$dir_code.'" title="Rename this folder">Rename</a>';
198
- // $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
199
- // $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
200
- // $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
201
- // $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=delete_dir&file='.$dir_code.'" title="Delete this folder">Delete</a>';
202
- // $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
203
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
204
- $echo_str .= "\n\t\t\t\t\t".'</td>';
205
- $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:right;"> </td>';
206
- $echo_str .= "\n\t\t\t\t\t".'<td width="20%" style="padding: 5px 5px 5px 10px; text-align:left;">'.get_date_from_gmt(date("Y-m-d H:i:s", $dir['mdate']), "d/m/Y H:i:s").'</td>';
207
- $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:center;"> </td>';
208
- $echo_str .= "\n\t\t\t\t\t".'<td width="30%" style="padding: 5px 5px 5px 10px; text-align:left;"> </td>';
209
- $echo_str .= "\n\t\t\t\t".'</tr>';
210
- $ii ++;
211
- }
212
- //show contained files
213
- foreach ( $filelist as $file ) {
214
- $is_included = ( $file['filedata'] != null );
215
- $can_be_included = ( $plugin_options['includeotherfiles'] == "1" ) && !wfu_file_extension_blacklisted($file['name']);
216
- $file_code = '';
217
- if ( $is_included || $can_be_included ) $file_code = wfu_safe_store_filepath(wfu_path_abs2rel($file['fullpath']).'[['.$sort.']]');
218
- $echo_str .= "\n\t\t\t\t".'<tr onmouseover="var actions=document.getElementsByName(\'wfu_file_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';} document.getElementById(\'wfu_file_actions_'.$ii.'\').style.visibility=\'visible\'" onmouseout="var actions=document.getElementsByName(\'wfu_file_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';}">';
219
- $echo_str .= "\n\t\t\t\t\t".'<td width="5%" style="padding: 5px 5px 5px 10px; text-align:center;">';
220
- if ( $is_included || $can_be_included ) $echo_str .= "\n\t\t\t\t\t\t".'<input class="wfu_selectors'.( $is_included ? ' wfu_included' : '' ).' wfu_selcode_'.$file_code.'" type="checkbox" onchange="wfu_adminbrowser_selector_changed(this);" />';
221
- else $echo_str .= "\n\t\t\t\t\t\t".'<input type="checkbox" disabled="disabled" />';
222
- $echo_str .= "\n\t\t\t\t\t".'</td>';
223
- $echo_str .= "\n\t\t\t\t\t".'<td width="25%" style="padding: 5px 5px 5px 10px; text-align:left;">';
224
- if ( $is_included || $can_be_included )
225
- $echo_str .= "\n\t\t\t\t\t\t".'<a id="wfu_file_link_'.$ii.'" class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_details&file='.$file_code.'" title="View and edit file details" style="font-weight:normal;'.( $is_included ? '' : ' display:none;' ).'">'.$file['name'].'</a>';
226
- if ( !$is_included )
227
- $echo_str .= "\n\t\t\t\t\t\t".'<span id="wfu_file_flat_'.$ii.'">'.$file['name'].'</span>';
228
- //set additional $file properties for generating file actions
229
- $file["index"] = $ii;
230
- $file["code"] = $file_code;
231
- $file["referer_code"] = $referer_code;
232
- $file_actions = wfu_adminbrowser_file_actions($file, $header_params);
233
- $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_file_actions_'.$ii.'" name="wfu_file_actions" style="visibility:hidden;">';
234
- if ( $is_included || $can_be_included ) {
235
- $echo_str .= "\n\t\t\t\t\t\t\t".'<div id="wfu_file_is_included_actions_'.$ii.'" style="display:'.( $is_included ? 'block' : 'none' ).';">';
236
- //add file actions for files already included
237
- $array_keys = array_keys($file_actions["is_included"]);
238
- $lastkey = array_pop($array_keys);
239
- foreach ( $file_actions["is_included"] as $key => $action ) {
240
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<span>';
241
- foreach ( $action as $line )
242
- $echo_str .= "\n\t\t\t\t\t\t\t\t\t".$line;
243
- if ( $key != $lastkey ) $echo_str .= "\n\t\t\t\t\t\t\t\t\t".' | ';
244
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'</span>';
245
- }
246
- $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
247
- $echo_str .= "\n\t\t\t\t\t\t\t".'<div id="wfu_file_can_be_included_actions_'.$ii.'" style="display:'.( $is_included ? 'none' : 'block' ).';">';
248
- //add file actions for files that can be included
249
- $array_keys = array_keys($file_actions["can_be_included"]);
250
- $lastkey = array_pop($array_keys);
251
- foreach ( $file_actions["can_be_included"] as $key => $action ) {
252
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<span>';
253
- foreach ( $action as $line )
254
- $echo_str .= "\n\t\t\t\t\t\t\t\t\t".$line;
255
- if ( $key != $lastkey ) $echo_str .= "\n\t\t\t\t\t\t\t\t\t".' | ';
256
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'</span>';
257
- }
258
- $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
259
- }
260
- else {
261
- $echo_str .= "\n\t\t\t\t\t\t\t".'<span style="visibility:hidden;">';
262
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir=">Noaction</a>';
263
- $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
264
- $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
265
- }
266
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
267
- $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_file_download_container_'.$ii.'" style="display: none;"></div>';
268
- $echo_str .= "\n\t\t\t\t\t".'</td>';
269
- $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:right;">'.$file['size'].'</td>';
270
- $echo_str .= "\n\t\t\t\t\t".'<td width="20%" style="padding: 5px 5px 5px 10px; text-align:left;">'.get_date_from_gmt(date("Y-m-d H:i:s", $file['mdate']), "d/m/Y H:i:s").'</td>';
271
- $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:center;">'.$file['user'].'</td>';
272
- $echo_str .= "\n\t\t\t\t\t".'<td width="30%" style="padding: 5px 5px 5px 10px; text-align:left;">';
273
- if ( $is_included ) {
274
- if ( count($file['filedata']->userdata) > 0 ) {
275
- $echo_str .= "\n\t\t\t\t\t\t".'<select multiple="multiple" style="width:100%; height:40px; background:none; font-size:small;">';
276
- foreach ( $file['filedata']->userdata as $userdata )
277
- $echo_str .= "\n\t\t\t\t\t\t\t".'<option>'.$userdata->property.': '.$userdata->propvalue.'</option>';
278
- $echo_str .= "\n\t\t\t\t\t\t".'</select>';
279
- }
280
- }
281
- $echo_str .= "\n\t\t\t\t\t".'</td>';
282
- $echo_str .= "\n\t\t\t\t".'</tr>';
283
- $ii ++;
284
- }
285
- $echo_str .= "\n\t\t\t".'</tbody>';
286
- $echo_str .= "\n\t\t".'</table>';
287
- $echo_str .= "\n\t\t".'<iframe id="wfu_download_frame" style="display: none;"></iframe>';
288
- $echo_str .= "\n\t".'</div>';
289
- $echo_str .= "\n\t".'</div>';
290
- $echo_str .= "\n".'</div>';
291
-
292
- return $echo_str;
293
- }
294
-
295
- function wfu_adminbrowser_file_actions($file, $params) {
296
- $siteurl = site_url();
297
- $actions = array(
298
- "is_included" => array(),
299
- "can_be_included" => array()
300
- );
301
- //add file actions if file is already included
302
- $actions["is_included"] += array(
303
- array( '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_details&file='.$file["code"].'" title="View and edit file details">Details</a>' ),
304
- array( '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=rename_file&file='.$file["code"].'" title="Rename this file">Rename</a>' ),
305
- array( '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=delete_file&file='.$file["code"].'&referer='.$file["referer_code"].'" title="Delete this file">Delete</a>' ),
306
- array( '<a href="javascript:wfu_download_file(\''.$file["code"].'\', '.$file["index"].');" title="Download this file">Download</a>' )
307
- );
308
- //add file actions if file is already included
309
- $actions["can_be_included"] += array(
310
- array(
311
- '<a id="wfu_include_file_'.$file["index"].'_a" href="javascript:wfu_include_file(\''.$file["code"].'\', '.$file["index"].');" title="Include file in plugin\'s database">Include File</a>',
312
- '<img id="wfu_include_file_'.$file["index"].'_img" src="'.WFU_IMAGE_ADMIN_SUBFOLDER_LOADING.'" style="width:12px; display:none;" />',
313
- '<input id="wfu_include_file_'.$file["index"].'_inpfail" type="hidden" value="File could not be included!" />'
314
- )
315
- );
316
-
317
- return $actions;
318
- }
319
-
320
- function wfu_user_owns_file($userid, $filerec) {
321
- if ( 0 == $userid )
322
- return false;
323
- if ( current_user_can('manage_options') ) return true;
324
- return false;
325
- }
326
-
327
- function wfu_current_user_owes_file($filepath) {
328
- //first check if file has a restricted extension; for security reasons some file extensions cannot be owned
329
- if ( wfu_file_extension_blacklisted($filepath) ) return false;
330
- //then get file data from database, if exist
331
- $filerec = wfu_get_file_rec($filepath, false);
332
- if ( $filerec == null ) return false;
333
-
334
- $user = wp_get_current_user();
335
- return wfu_user_owns_file($user->ID, $filerec);
336
- }
337
-
338
- function wfu_current_user_allowed_action($action, $filepath) {
339
- //first get file data from database, if exist
340
- $filerec = wfu_get_file_rec($filepath, false);
341
-
342
- $user = wp_get_current_user();
343
- if ( 0 == $user->ID ) return null;
344
- else $is_admin = current_user_can('manage_options');
345
- if ( !$is_admin ) {
346
- return null;
347
- }
348
- return $user;
349
- }
350
-
351
- function wfu_current_user_allowed_action_remote($action, $filepath, $userid) {
352
- //first get file data from database, if exist
353
- $filerec = wfu_get_file_rec($filepath, false);
354
-
355
- if ( 0 == $userid ) return null;
356
- else $is_admin = user_can($userid, 'manage_options');
357
- if ( !$is_admin ) {
358
- return null;
359
- }
360
- return true;
361
- }
362
-
363
- function wfu_rename_file_prompt($file_code, $type, $error) {
364
- if ( $type == 'dir' ) return;
365
-
366
- $siteurl = site_url();
367
-
368
- $is_admin = current_user_can( 'manage_options' );
369
- //check if user is allowed to view file details
370
- if ( !$is_admin ) {
371
- return;
372
- }
373
- $file_code = wfu_sanitize_code($file_code);
374
- $dec_file = wfu_get_filepath_from_safe($file_code);
375
- if ( $dec_file === false ) return;
376
-
377
- //first extract sort info from dec_file
378
- $ret = wfu_extract_sortdata_from_path($dec_file);
379
- $dec_file = wfu_path_rel2abs($ret['path']);
380
- if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
381
-
382
- //check if user is allowed to perform this action
383
- if ( !wfu_current_user_owes_file($dec_file) ) return;
384
-
385
- $parts = pathinfo($dec_file);
386
- $newname = $parts['basename'];
387
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($parts['dirname']).'[['.$ret['sort'].']]');
388
-
389
- $echo_str = "\n".'<div class="wrap">';
390
- if ( $error ) {
391
- $rename_file = WFU_USVAR('wfu_rename_file');
392
- $newname = $rename_file['newname'];
393
- $echo_str .= "\n\t".'<div class="error">';
394
- $echo_str .= "\n\t\t".'<p>'.WFU_USVAR('wfu_rename_file_error').'</p>';
395
- $echo_str .= "\n\t".'</div>';
396
- }
397
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
398
- if ( $is_admin ) $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser&dir='.$dir_code.'" class="button" title="go back">Go back</a>';
399
- $echo_str .= "\n\t".'</div>';
400
- $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Rename '.( $type == 'dir' ? 'Folder' : 'File' ).'</h2>';
401
- if ( $is_admin ) $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="renamefile" id="renamefile" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
402
- $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="rename'.( $type == 'dir' ? 'dir' : 'file' ).'">';
403
- $echo_str .= "\n\t\t".'<input type="hidden" name="dir" value="'.$dir_code.'">';
404
- $echo_str .= "\n\t\t".'<input type="hidden" name="file" value="'.$file_code.'">';
405
- if ( $type == 'dir' ) $echo_str .= "\n\t\t".'<label>Enter new name for folder <strong>'.$dec_file.'</strong></label><br/>';
406
- elseif ( $is_admin ) $echo_str .= "\n\t\t".'<label>Enter new filename for file <strong>'.$dec_file.'</strong></label><br/>';
407
- $echo_str .= "\n\t\t".'<input name="wfu_newname" id="wfu_newname" type="text" value="'.$newname.'" style="width:50%;" />';
408
- $echo_str .= "\n\t\t".'<p class="submit">';
409
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Rename">';
410
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
411
- $echo_str .= "\n\t\t".'</p>';
412
- $echo_str .= "\n\t".'</form>';
413
- $echo_str .= "\n".'</div>';
414
- return $echo_str;
415
- }
416
-
417
- function wfu_rename_file($file_code, $type) {
418
- if ( $type == 'dir' ) return;
419
-
420
- $user = wp_get_current_user();
421
- $is_admin = current_user_can( 'manage_options' );
422
- //check if user is allowed to view file details
423
- if ( !$is_admin ) {
424
- return;
425
- }
426
- $file_code = wfu_sanitize_code($file_code);
427
- $dec_file = wfu_get_filepath_from_safe($file_code);
428
- if ( $dec_file === false ) return;
429
-
430
- $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
431
- if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
432
- if ( !file_exists($dec_file) ) return;
433
-
434
- //check if user is allowed to perform this action
435
- if ( !wfu_current_user_owes_file($dec_file) ) return;
436
-
437
- $parts = pathinfo($dec_file);
438
- $error = "";
439
- if ( isset($_POST['wfu_newname']) && isset($_POST['submit']) ) {
440
- if ( $_POST['submit'] == "Rename" && $_POST['wfu_newname'] != $parts['basename'] ) {
441
- $new_file = $parts['dirname'].'/'.$_POST['wfu_newname'];
442
- if ( $_POST['wfu_newname'] == "" ) $error = 'Error: New '.( $type == 'dir' ? 'folder ' : 'file' ).'name cannot be empty!';
443
- elseif ( preg_match("/[^A-Za-z0-9_.#\-$]/", $_POST['wfu_newname']) ) $error = 'Error: name contained invalid characters that were stripped off! Please try again.';
444
- elseif ( substr($_POST['wfu_newname'], -1 - strlen($parts['extension'])) != '.'.$parts['extension'] ) $error = 'Error: new and old file name extensions must be identical! Please correct.';
445
- elseif ( wfu_file_extension_blacklisted($_POST['wfu_newname']) ) $error = 'Error: the new file name has an extension that is forbidden for security reasons. Please correct.';
446
- elseif ( file_exists($new_file) ) $error = 'Error: The '.( $type == 'dir' ? 'folder' : 'file' ).' <strong>'.$_POST['wfu_newname'].'</strong> already exists! Please choose another one.';
447
- else {
448
- //pre-log rename action
449
- if ( $type == 'file' ) $retid = wfu_log_action('rename:'.$new_file, $dec_file, $user->ID, '', 0, 0, '', null);
450
- //perform rename action
451
- if ( rename($dec_file, $new_file) == false ) $error = 'Error: Rename of '.( $type == 'dir' ? 'folder' : 'file' ).' <strong>'.$parts['basename'].'</strong> failed!';
452
- //revert log action if file was not renamed
453
- if ( $type == 'file' && !file_exists($new_file) ) wfu_revert_log_action($retid);
454
- }
455
- }
456
- }
457
- if ( $error != "" ) {
458
- WFU_USVAR_store('wfu_rename_file_error', $error);
459
- $rename_file = WFU_USVAR('wfu_rename_file');
460
- $rename_file['newname'] = preg_replace("/[^A-Za-z0-9_.#\-$]/", "", $_POST['wfu_newname']);
461
- WFU_USVAR_store('wfu_rename_file', $rename_file);
462
- }
463
- return ( $error == "" );
464
- }
465
-
466
- function wfu_delete_file_prompt($file_code, $type, $referer) {
467
- if ( $type == 'dir' ) return;
468
-
469
- $siteurl = site_url();
470
-
471
- $is_admin = current_user_can( 'manage_options' );
472
- //check if user is allowed to view file details
473
- if ( !$is_admin ) {
474
- return;
475
- }
476
- if ( !is_array($file_code) ) $file_code = array( $file_code );
477
- $names = array();
478
- foreach ( $file_code as $index => $code ) {
479
- $file_code[$index] = wfu_sanitize_code($code);
480
- $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
481
- if ( $dec_file === false ) unset($file_code[$index]);
482
- else {
483
- //first extract sort info from dec_file
484
- $ret = wfu_extract_sortdata_from_path($dec_file);
485
- $dec_file = wfu_path_rel2abs($ret['path']);
486
- if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
487
- //check if user is allowed to perform this action
488
- if ( !wfu_current_user_owes_file($dec_file) ) unset($file_code[$index]);
489
- else {
490
- $parts = pathinfo($dec_file);
491
- array_push($names, $parts['basename']);
492
- }
493
- }
494
- }
495
- if ( count($file_code) == 0 ) return;
496
- $file_code_list = "list:".implode(",", $file_code);
497
-
498
- $referer_url = wfu_get_filepath_from_safe(wfu_sanitize_code($referer));
499
- $ret = wfu_extract_sortdata_from_path($referer_url);
500
- $referer_url = $ret['path'];
501
-
502
- $echo_str = "\n".'<div class="wrap">';
503
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
504
- if ( $is_admin ) $echo_str .= "\n\t\t".'<a href="'.$referer_url.'" class="button" title="go back">Go back</a>';
505
- $echo_str .= "\n\t".'</div>';
506
- $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Delete '.( $type == 'dir' ? 'Folder' : 'File'.( count($names) == 1 ? '' : 's' ) ).'</h2>';
507
- if ( $is_admin ) $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="deletefile" id="deletefile" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
508
- $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="delete'.( $type == 'dir' ? 'dir' : 'file' ).'">';
509
- $echo_str .= "\n\t\t".'<input type="hidden" name="referer" value="'.$referer.'">';
510
- $echo_str .= "\n\t\t".'<input type="hidden" name="file" value="'.$file_code_list.'">';
511
- if ( count($names) == 1 )
512
- $echo_str .= "\n\t\t".'<label>Are you sure that you want to delete '.( $type == 'dir' ? 'folder' : 'file' ).' <strong>'.$names[0].'</strong>?</label><br/>';
513
- else {
514
- $echo_str .= "\n\t\t".'<label>Are you sure that you want to delete '.( $type == 'dir' ? 'folder' : 'files' ).':';
515
- $echo_str .= "\n\t\t".'<ul style="padding-left: 20px; list-style: initial;">';
516
- foreach ( $names as $name )
517
- $echo_str .= "\n\t\t\t".'<li><strong>'.$name.'</strong></li>';
518
- $echo_str .= "\n\t\t".'</ul>';
519
- }
520
- $echo_str .= "\n\t\t".'<p class="submit">';
521
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Delete">';
522
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
523
- $echo_str .= "\n\t\t".'</p>';
524
- $echo_str .= "\n\t".'</form>';
525
- $echo_str .= "\n".'</div>';
526
- return $echo_str;
527
- }
528
-
529
- function wfu_delete_file($file_code, $type) {
530
- if ( $type == 'dir' ) return;
531
-
532
- $user = wp_get_current_user();
533
- $is_admin = current_user_can( 'manage_options' );
534
- //check if user is allowed to view file details
535
- if ( !$is_admin ) {
536
- return;
537
- }
538
- if ( !is_array($file_code) ) $file_code = array( $file_code );
539
- $dec_files = array();
540
- foreach ( $file_code as $index => $code ) {
541
- $file_code[$index] = wfu_sanitize_code($code);
542
- $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
543
- if ( $dec_file !== false ) {
544
- $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
545
- if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
546
- //check if user is allowed to perform this action
547
- if ( wfu_current_user_owes_file($dec_file) ) array_push($dec_files, $dec_file);
548
- }
549
- }
550
- if ( count($dec_files) == 0 ) return;
551
-
552
- if ( isset($_POST['submit']) ) {
553
- if ( $_POST['submit'] == "Delete" ) {
554
- foreach ( $dec_files as $dec_file ) {
555
- //pre-log delete action
556
- if ( $type == 'file' ) wfu_delete_file_execute($dec_file, $user->ID);
557
- elseif ( $type == 'dir' && $dec_file != "" ) wfu_delTree($dec_file);
558
- }
559
- }
560
- }
561
- return true;
562
- }
563
-
564
- function wfu_create_dir_prompt($dir_code, $error) {
565
- return;
566
-
567
- $siteurl = site_url();
568
-
569
- if ( !current_user_can( 'manage_options' ) ) return;
570
-
571
- $dir_code = wfu_sanitize_code($dir_code);
572
- $dec_dir = wfu_get_filepath_from_safe($dir_code);
573
- if ( $dec_dir === false ) return;
574
-
575
- //first extract sort info from dec_dir
576
- $ret = wfu_extract_sortdata_from_path($dec_dir);
577
- $dec_dir = wfu_path_rel2abs($ret['path']);
578
- if ( substr($dec_dir, -1) != '/' ) $dec_dir .= '/';
579
- $newname = '';
580
-
581
- $echo_str = "\n".'<div class="wrap">';
582
- if ( $error ) {
583
- $create_dir = WFU_USVAR('wfu_create_dir');
584
- $newname = $create_dir['newname'];
585
- $echo_str .= "\n\t".'<div class="error">';
586
- $echo_str .= "\n\t\t".'<p>'.WFU_USVAR('wfu_create_dir_error').'</p>';
587
- $echo_str .= "\n\t".'</div>';
588
- }
589
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
590
- $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser&dir='.$dir_code.'" class="button" title="go back">Go back</a>';
591
- $echo_str .= "\n\t".'</div>';
592
- $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Create Folder</h2>';
593
- $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="createdir" id="createdir" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
594
- $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="createdir">';
595
- $echo_str .= "\n\t\t".'<input type="hidden" name="dir" value="'.$dir_code.'">';
596
- $echo_str .= "\n\t\t".'<label>Enter the name of the new folder inside <strong>'.$dec_dir.'</strong></label><br/>';
597
- $echo_str .= "\n\t\t".'<input name="wfu_newname" id="wfu_newname" type="text" value="'.$newname.'" style="width:50%;" />';
598
- $echo_str .= "\n\t\t".'<p class="submit">';
599
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Create">';
600
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
601
- $echo_str .= "\n\t\t".'</p>';
602
- $echo_str .= "\n\t".'</form>';
603
- $echo_str .= "\n".'</div>';
604
- return $echo_str;
605
- }
606
-
607
- function wfu_create_dir($dir_code) {
608
- return;
609
-
610
- if ( !current_user_can( 'manage_options' ) ) return;
611
-
612
- $dir_code = wfu_sanitize_code($dir_code);
613
- $dec_dir = wfu_get_filepath_from_safe($dir_code);
614
- if ( $dec_dir === false ) return;
615
-
616
- $dec_dir = wfu_path_rel2abs(wfu_flatten_path($dec_dir));
617
- if ( substr($dec_dir, -1) != '/' ) $dec_dir .= '/';
618
- if ( !file_exists($dec_dir) ) return;
619
- $error = "";
620
- if ( isset($_POST['wfu_newname']) && isset($_POST['submit']) ) {
621
- if ( $_POST['submit'] == "Create" ) {
622
- $new_dir = $dec_dir.$_POST['wfu_newname'];
623
- if ( $_POST['wfu_newname'] == "" ) $error = 'Error: New folder name cannot be empty!';
624
- elseif ( preg_match("/[^A-Za-z0-9_.#\-$]/", $_POST['wfu_newname']) ) $error = 'Error: name contained invalid characters that were stripped off! Please try again.';
625
- elseif ( file_exists($new_dir) ) $error = 'Error: The folder <strong>'.$_POST['wfu_newname'].'</strong> already exists! Please choose another one.';
626
- elseif ( mkdir($new_dir) == false ) $error = 'Error: Creation of folder <strong>'.$_POST['wfu_newname'].'</strong> failed!';
627
- }
628
- }
629
- if ( $error != "" ) {
630
- WFU_USVAR_store('wfu_create_dir_error', $error);
631
- $create_dir = WFU_USVAR('wfu_create_dir');
632
- $create_dir['newname'] = preg_replace("/[^A-Za-z0-9_.#\-$]/", "", $_POST['wfu_newname']);
633
- WFU_USVAR_store('wfu_create_dir', $create_dir);
634
- }
635
- return ( $error == "" );
636
- }
637
-
638
- function wfu_include_file_prompt($file_code, $referer) {
639
- if ( !current_user_can( 'manage_options' ) ) return;
640
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
641
- if ( $plugin_options['includeotherfiles'] != "1" ) return;
642
-
643
- $siteurl = site_url();
644
- if ( !is_array($file_code) ) $file_code = array( $file_code );
645
- $names = array();
646
- foreach ( $file_code as $index => $code ) {
647
- $file_code[$index] = wfu_sanitize_code($code);
648
- $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
649
- if ( $dec_file === false ) unset($file_code[$index]);
650
- else {
651
- $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
652
- //do not include file if it has a forbidden extention or it is already included
653
- if ( wfu_file_extension_blacklisted(wfu_basename($dec_file)) || wfu_get_file_rec($dec_file, false) != null )
654
- unset($file_code[$index]);
655
- else array_push($names, wfu_basename($dec_file));
656
- }
657
- }
658
- if ( count($file_code) == 0 ) return;
659
- $file_code_list = "list:".implode(",", $file_code);
660
-
661
- $referer_url = wfu_get_filepath_from_safe(wfu_sanitize_code($referer));
662
- $ret = wfu_extract_sortdata_from_path($referer_url);
663
- $referer_url = $ret['path'];
664
-
665
- $echo_str = "\n".'<div class="wrap">';
666
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
667
- $echo_str .= "\n\t\t".'<a href="'.$referer_url.'" class="button" title="go back">Go back</a>';
668
- $echo_str .= "\n\t".'</div>';
669
- $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Include File'.( count($names) == 1 ? '' : 's' ).'</h2>';
670
- $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="includefile" id="includefile" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
671
- $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="includefile">';
672
- $echo_str .= "\n\t\t".'<input type="hidden" name="referer" value="'.$referer.'">';
673
- $echo_str .= "\n\t\t".'<input type="hidden" name="file" value="'.$file_code_list.'">';
674
- if ( count($names) == 1 )
675
- $echo_str .= "\n\t\t".'<label>Are you sure that you want to include file <strong>'.$names[0].'</strong>?</label><br/>';
676
- else {
677
- $echo_str .= "\n\t\t".'<label>Are you sure that you want to include files:';
678
- $echo_str .= "\n\t\t".'<ul style="padding-left: 20px; list-style: initial;">';
679
- foreach ( $names as $name )
680
- $echo_str .= "\n\t\t\t".'<li><strong>'.$name.'</strong></li>';
681
- $echo_str .= "\n\t\t".'</ul>';
682
- }
683
- $echo_str .= "\n\t\t".'<p class="submit">';
684
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Include">';
685
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
686
- $echo_str .= "\n\t\t".'</p>';
687
- $echo_str .= "\n\t".'</form>';
688
- $echo_str .= "\n".'</div>';
689
- return $echo_str;
690
- }
691
-
692
- function wfu_include_file($file_code) {
693
- if ( !current_user_can( 'manage_options' ) ) return;
694
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
695
- if ( $plugin_options['includeotherfiles'] != "1" ) return;
696
-
697
- if ( !is_array($file_code) ) $file_code = array( $file_code );
698
- $dec_files = array();
699
- foreach ( $file_code as $index => $code ) {
700
- $file_code[$index] = wfu_sanitize_code($code);
701
- $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
702
- if ( $dec_file !== false ) {
703
- $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
704
- //include file if it does not have a forbidden extention and it not already included
705
- if ( !wfu_file_extension_blacklisted(wfu_basename($dec_file)) && wfu_get_file_rec($dec_file, false) == null )
706
- array_push($dec_files, $dec_file);
707
- }
708
- }
709
- if ( count($dec_files) == 0 ) return;
710
-
711
- $user = wp_get_current_user();
712
- if ( isset($_POST['submit']) ) {
713
- if ( $_POST['submit'] == "Include" ) {
714
- foreach ( $dec_files as $dec_file )
715
- $fileid = wfu_log_action('include', $dec_file, $user->ID, '', '', get_current_blog_id(), '', null);
716
- }
717
- }
718
- return true;
719
- }
720
-
721
- function wfu_file_details($file_code, $errorstatus) {
722
- global $wpdb;
723
- $table_name1 = $wpdb->prefix . "wfu_log";
724
- $siteurl = site_url();
725
-
726
- $user = wp_get_current_user();
727
- $is_admin = current_user_can( 'manage_options' );
728
- //check if user is allowed to view file details
729
- if ( !$is_admin ) {
730
- return;
731
- }
732
- $file_code = wfu_sanitize_code($file_code);
733
- $dec_file = wfu_get_filepath_from_safe($file_code);
734
- if ( $dec_file === false ) return;
735
-
736
- //extract file browser data from $file variable
737
- $ret = wfu_extract_sortdata_from_path($dec_file);
738
- $filepath = wfu_path_rel2abs($ret['path']);
739
-
740
- //check if user is allowed to perform this action
741
- if ( !wfu_current_user_owes_file($filepath) ) return;
742
-
743
- //get file data from database with user data
744
- $filedata = wfu_get_file_rec($filepath, true);
745
- if ( $filedata == null ) return;
746
-
747
- //get all users
748
- $users = get_users();
749
-
750
- //extract sort info and construct contained dir
751
- $parts = pathinfo($filepath);
752
- $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($parts['dirname']).'[['.$ret['sort'].']]');
753
-
754
- $stat = stat($filepath);
755
-
756
- $echo_str = '<div class="regev_wrap">';
757
- if ( $errorstatus == 'error' ) {
758
- $echo_str .= "\n\t".'<div class="error">';
759
- $echo_str .= "\n\t\t".'<p>'.WFU_USVAR('wfu_filedetails_error').'</p>';
760
- $echo_str .= "\n\t".'</div>';
761
- }
762
- //show file detais
763
- $echo_str .= "\n\t".'<h2>Detais of File: '.$parts['basename'].'</h2>';
764
- $echo_str .= "\n\t".'<div style="margin-top:10px;">';
765
- if ( $is_admin ) {
766
- $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser&dir='.$dir_code.'" class="button" title="go back">Go back</a>';
767
- $echo_str .= "\n\t\t".'<form enctype="multipart/form-data" name="editfiledetails" id="editfiledetails" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=edit_filedetails" class="validate">';
768
- }
769
- $echo_str .= "\n\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">Upload Details</h3>';
770
- $echo_str .= "\n\t\t\t".'<input type="hidden" name="action" value="edit_filedetails" />';
771
- $echo_str .= "\n\t\t\t".'<input type="hidden" name="dir" value="'.$dir_code.'">';
772
- $echo_str .= "\n\t\t\t".'<input type="hidden" name="file" value="'.$file_code.'">';
773
- $echo_str .= "\n\t\t\t".'<table class="form-table">';
774
- $echo_str .= "\n\t\t\t\t".'<tbody>';
775
- if ( $is_admin ) {
776
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
777
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
778
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Full Path</label>';
779
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
780
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
781
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.$filepath.'" readonly="readonly" />';
782
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
783
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
784
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
785
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
786
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Uploaded By User</label>';
787
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
788
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
789
- $echo_str .= "\n\t\t\t\t\t\t\t".'<select id="wfu_filedetails_users" disabled="disabled">';
790
- foreach ( $users as $userid => $user )
791
- $echo_str .= "\n\t\t\t\t\t\t\t\t".'<option value="'.$user->ID.'"'.( $filedata->uploaduserid == $user->ID ? ' selected="selected"' : '' ).'>'.$user->display_name.' ('.$user->user_login.')</option>';
792
- $echo_str .= "\n\t\t\t\t\t\t\t".'</select>';
793
- $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button" id="btn_change" href="" onclick="document.getElementById(\'wfu_filedetails_users\').disabled = false; this.style.display = \'none\'; document.getElementById(\'btn_ok\').style.display = \'inline-block\'; document.getElementById(\'btn_cancel\').style.display = \'inline-block\'; return false;"'.( $is_admin ? '' : ' style="display:none;"' ).'>Change User</a>';
794
- $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button" id="btn_ok" href="" onclick="document.getElementById(\'wfu_filedetails_users\').disabled = true; document.getElementById(\'btn_change\').style.display = \'inline-block\'; this.style.display=\'none\'; document.getElementById(\'btn_cancel\').style.display = \'none\'; document.getElementById(\'wfu_filedetails_userid\').value = document.getElementById(\'wfu_filedetails_users\').value; wfu_filedetails_changed(); return false;" style="display:none;">Ok</a>';
795
- $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button" id="btn_cancel" href="" onclick="document.getElementById(\'wfu_filedetails_users\').disabled = true; document.getElementById(\'btn_change\').style.display = \'inline-block\'; this.style.display=\'none\'; document.getElementById(\'btn_ok\').style.display = \'none\'; document.getElementById(\'wfu_filedetails_users\').value = document.getElementById(\'wfu_filedetails_userid\').value; return false;" style="display:none;">Cancel</a>';
796
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="hidden" id="wfu_filedetails_userid" name="wfu_filedetails_userid" value="'.$filedata->uploaduserid.'" />';
797
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="hidden" id="wfu_filedetails_userid_default" value="'.$filedata->uploaduserid.'" />';
798
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
799
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
800
- }
801
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
802
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
803
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>File Size</label>';
804
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
805
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
806
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.$filedata->filesize.'" readonly="readonly" style="width:auto;" />';
807
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
808
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
809
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
810
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
811
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>File Date</label>';
812
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
813
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
814
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.get_date_from_gmt(date("Y-m-d H:i:s", $stat['mtime']), "d/m/Y H:i:s").'" readonly="readonly" style="width:auto;" />';
815
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
816
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
817
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
818
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
819
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Uploaded From Page</label>';
820
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
821
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
822
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.get_the_title($filedata->pageid).' ('.$filedata->pageid.')'.'" readonly="readonly" style="width:50%;" />';
823
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
824
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
825
- if ( $is_admin ) {
826
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
827
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
828
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Upload Plugin ID</label>';
829
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
830
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
831
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.$filedata->sid.'" readonly="readonly" style="width:auto;" />';
832
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
833
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
834
- }
835
- $echo_str .= "\n\t\t\t\t".'</tbody>';
836
- $echo_str .= "\n\t\t\t".'</table>';
837
- if ( $is_admin ) {
838
- //show history details
839
- $echo_str .= "\n\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">File History</h3>';
840
- $echo_str .= "\n\t\t\t".'<table class="form-table">';
841
- $echo_str .= "\n\t\t\t\t".'<tbody>';
842
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
843
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
844
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label></label>';
845
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
846
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
847
- //read all linked records
848
- $filerecs = array();
849
- array_push($filerecs, $filedata);
850
- $currec = $filedata;
851
- while ( $currec->linkedto > 0 ) {
852
- $currec = $wpdb->get_row('SELECT * FROM '.$table_name1.' WHERE idlog = '.$currec->linkedto);
853
- if ( $currec != null ) array_push($filerecs, $currec);
854
- else break;
855
- }
856
- //construct report from db records
857
- $rep = '';
858
- foreach ( $filerecs as $filerec ) {
859
- $username = wfu_get_username_by_id($filerec->userid);
860
- $fileparts = pathinfo($filerec->filepath);
861
- if ( $rep != '' ) $rep .= "<br />";
862
- $rep .= '<strong>['.get_date_from_gmt($filerec->date_from).']</strong> ';
863
- if ( $filerec->action == 'upload' )
864
- $rep .= 'File uploaded with name <strong>'.$fileparts['basename'].'</strong> by user <strong>'.$username.'</strong>';
865
- elseif ( $filerec->action == 'include' )
866
- $rep .= 'File included in database with name <strong>'.$fileparts['basename'].'</strong> by user <strong>'.$username.'</strong>';
867
- elseif ( $filerec->action == 'download' )
868
- $rep .= 'File downloaded by user <strong>'.$username.'</strong>';
869
- elseif ( $filerec->action == 'rename' )
870
- $rep .= 'File renamed to <strong>'.$fileparts['basename'].'</strong> by user <strong>'.$username.'</strong>';
871
- elseif ( $filerec->action == 'delete' )
872
- $rep .= 'File deleted by user <strong>'.$username.'</strong>';
873
- elseif ( $filerec->action == 'modify' )
874
- $rep .= 'File userdata modified by user <strong>'.$username.'</strong>';
875
- elseif ( $filerec->action == 'changeuser' )
876
- $rep .= 'File upload user modified by user <strong>'.$username.'</strong>';
877
- }
878
- $echo_str .= "\n\t\t\t\t\t\t\t".'<div style="border:1px solid #dfdfdf; border-radius:3px; width:50%; overflow:scroll; padding:6px; height:100px; background-color:#eee;">';
879
- $echo_str .= "\n\t\t\t\t\t\t\t".'<span style="white-space:nowrap;">'.$rep.'</span>';
880
- $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
881
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
882
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
883
- $echo_str .= "\n\t\t\t\t".'</tbody>';
884
- $echo_str .= "\n\t\t\t".'</table>';
885
- }
886
-
887
- $echo_str .= "\n\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">User Data Details</h3>';
888
- $echo_str .= "\n\t\t\t".'<table class="form-table">';
889
- $echo_str .= "\n\t\t\t\t".'<tbody>';
890
- if ( count($filedata->userdata) > 0 ) {
891
- foreach ( $filedata->userdata as $userdata ) {
892
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
893
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
894
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>'.$userdata->property.'</label>';
895
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
896
- $echo_str .= "\n\t\t\t\t\t\t".'<td>';
897
- // $echo_str .= "\n\t\t\t\t\t\t\t".'<input id="wfu_filedetails_userdata_value_'.$userdata->propkey.'" name="wfu_filedetails_userdata" type="text"'.( $is_admin ? '' : ' readonly="readonly"' ).' value="'.$userdata->propvalue.'" />';
898
- $echo_str .= "\n\t\t\t\t\t\t\t".'<textarea id="wfu_filedetails_userdata_value_'.$userdata->propkey.'" name="wfu_filedetails_userdata" '.( $is_admin ? '' : ' readonly="readonly"' ).' value="'.$userdata->propvalue.'">'.$userdata->propvalue.'</textarea>';
899
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input id="wfu_filedetails_userdata_default_'.$userdata->propkey.'" type="hidden" value="'.$userdata->propvalue.'" />';
900
- $echo_str .= "\n\t\t\t\t\t\t\t".'<input id="wfu_filedetails_userdata_'.$userdata->propkey.'" name="wfu_filedetails_userdata_'.$userdata->propkey.'" type="hidden" value="'.$userdata->propvalue.'" />';
901
- $echo_str .= "\n\t\t\t\t\t\t".'</td>';
902
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
903
- }
904
- }
905
- else {
906
- $echo_str .= "\n\t\t\t\t\t".'<tr>';
907
- $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
908
- $echo_str .= "\n\t\t\t\t\t\t\t".'<label>No user data</label>';
909
- $echo_str .= "\n\t\t\t\t\t\t".'</th>';
910
- $echo_str .= "\n\t\t\t\t\t\t".'<td></td>';
911
- $echo_str .= "\n\t\t\t\t\t".'</tr>';
912
- }
913
- $echo_str .= "\n\t\t\t\t".'</tbody>';
914
- $echo_str .= "\n\t\t\t".'</table>';
915
- if ( $is_admin ) {
916
- $echo_str .= "\n\t\t\t".'<p class="submit">';
917
- $echo_str .= "\n\t\t\t\t".'<input id="dp_filedetails_submit_fields" type="submit" class="button-primary" name="submit" value="Update" disabled="disabled" />';
918
- $echo_str .= "\n\t\t\t".'</p>';
919
- }
920
- $echo_str .= "\n\t\t".'</form>';
921
- $echo_str .= "\n\t".'</div>';
922
- $handler = 'function() { wfu_Attach_FileDetails_Admin_Events(); }';
923
- $echo_str .= "\n\t".'<script type="text/javascript">if(window.addEventListener) { window.addEventListener("load", '.$handler.', false); } else if(window.attachEvent) { window.attachEvent("onload", '.$handler.'); } else { window["onload"] = '.$handler.'; }</script>';
924
- $echo_str .= '</div>';
925
-
926
- return $echo_str;
927
- }
928
-
929
- function wfu_edit_filedetails($file_code) {
930
- global $wpdb;
931
- $table_name2 = $wpdb->prefix . "wfu_userdata";
932
-
933
- $user = wp_get_current_user();
934
- $is_admin = current_user_can( 'manage_options' );
935
- //check if user is allowed to view file details
936
- if ( !$is_admin ) {
937
- return;
938
- }
939
- $file_code = wfu_sanitize_code($file_code);
940
- $dec_file = wfu_get_filepath_from_safe($file_code);
941
- if ( $dec_file === false ) return;
942
-
943
- $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
944
-
945
- //check if user is allowed to perform this action
946
- if ( !wfu_current_user_owes_file($dec_file) ) return;
947
-
948
- //get file data from database with user data
949
- $filedata = wfu_get_file_rec($dec_file, true);
950
- if ( $filedata == null ) return;
951
-
952
- if ( isset($_POST['submit']) ) {
953
- if ( $_POST['submit'] == "Update" ) {
954
- if ( !is_array($filedata->userdata) ) $filedata->userdata = array();
955
- //check for errors
956
- $is_error = false;
957
- foreach ( $filedata->userdata as $userdata ) {
958
- if ( !isset($_POST['wfu_filedetails_userdata_'.$userdata->propkey]) ) {
959
- $is_error = true;
960
- break;
961
- }
962
- }
963
- if ( !$is_error ) {
964
- $now_date = date('Y-m-d H:i:s');
965
- $userdata_count = 0;
966
- foreach ( $filedata->userdata as $userdata ) {
967
- $userdata_count ++;
968
- //make existing userdata record obsolete
969
- $wpdb->update($table_name2,
970
- array( 'date_to' => $now_date ),
971
- array( 'uploadid' => $userdata->uploadid, 'propkey' => $userdata->propkey ),
972
- array( '%s' ),
973
- array( '%s', '%s' )
974
- );
975
- //insert new userdata record
976
- $wpdb->insert($table_name2,
977
- array(
978
- 'uploadid' => $userdata->uploadid,
979
- 'property' => $userdata->property,
980
- 'propkey' => $userdata->propkey,
981
- 'propvalue' => $_POST['wfu_filedetails_userdata_'.$userdata->propkey],
982
- 'date_from' => $now_date,
983
- 'date_to' => 0
984
- ),
985
- array(
986
- '%s',
987
- '%s',
988
- '%d',
989
- '%s',
990
- '%s',
991
- '%s'
992
- )
993
- );
994
- }
995
- if ( $userdata_count > 0 ) wfu_log_action('modify:'.$now_date, $dec_file, $user->ID, '', 0, 0, '', null);
996
- }
997
- if ( isset($_POST['wfu_filedetails_userid']) && $_POST['wfu_filedetails_userid'] != $filedata->uploaduserid ) {
998
- wfu_log_action('changeuser:'.$_POST['wfu_filedetails_userid'], $dec_file, $user->ID, '', 0, 0, '', null);
999
- }
1000
- }
1001
- }
1002
- return true;
1003
- }
1004
-
1005
- ?>
 
 
1
+ <?php
2
+
3
+ function wfu_browse_files($basedir_code) {
4
+ $siteurl = site_url();
5
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
6
+ $user = wp_get_current_user();
7
+ //store session variables for use from the downloader
8
+
9
+ if ( !current_user_can( 'manage_options' ) ) return;
10
+
11
+ //first decode basedir_code
12
+ $basedir = wfu_get_filepath_from_safe($basedir_code);
13
+ //clean session array holding dir and file paths if it is too big
14
+ if ( WFU_USVAR_exists('wfu_filepath_safe_storage') && count(WFU_USVAR('wfu_filepath_safe_storage')) > WFU_VAR("WFU_PHP_ARRAY_MAXLEN") ) WFU_USVAR_store('wfu_filepath_safe_storage', array());
15
+
16
+ //extract sort info from basedir
17
+ $sort = "";
18
+ if ( $basedir !== false ) {
19
+ $ret = wfu_extract_sortdata_from_path($basedir);
20
+ $basedir = $ret['path'];
21
+ $sort = $ret['sort'];
22
+ }
23
+ if ( $sort == "" ) $sort = 'name';
24
+ if ( substr($sort, 0, 1) == '-' ) $order = SORT_DESC;
25
+ else $order = SORT_ASC;
26
+
27
+ //adjust basedir to have a standard format
28
+ if ( $basedir !== false ) {
29
+ if ( substr($basedir, -1) != '/' ) $basedir .= '/';
30
+ if ( substr($basedir, 0, 1) == '/' ) $basedir = substr($basedir, 1);
31
+ //calculate the absolute path of basedir knowing that basedir is relative to website root
32
+ $basedir = wfu_path_rel2abs($basedir);
33
+ if ( !file_exists($basedir) ) $basedir = false;
34
+ }
35
+ //set basedit to default value if empty
36
+ if ( $basedir === false ) {
37
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
38
+ $basedir = ( isset($plugin_options['basedir']) ? $plugin_options['basedir'] : "" );
39
+ $temp_params = array( 'uploadpath' => $basedir, 'accessmethod' => 'normal', 'ftpinfo' => '', 'useftpdomain' => 'false' );
40
+ $basedir = wfu_upload_plugin_full_path($temp_params);
41
+ }
42
+ //find relative dir
43
+ $reldir = str_replace(wfu_abspath(), "root/", $basedir);
44
+ //save dir route to an array
45
+ $parts = explode('/', $reldir);
46
+ $route = array();
47
+ $prev = "";
48
+ foreach ( $parts as $part ) {
49
+ $part = trim($part);
50
+ if ( $part != "" ) {
51
+ // if ( $part == 'root' && $prev == "" ) $prev = wfu_abspath();
52
+ if ( $part == 'root' && $prev == "" ) $prev = "";
53
+ else $prev .= $part.'/';
54
+ array_push($route, array( 'item' => $part, 'path' => $prev ));
55
+ }
56
+ }
57
+ //calculate upper directory
58
+ $updir = substr($basedir, 0, -1);
59
+ $delim_pos = strrpos($updir, '/');
60
+ if ( $delim_pos !== false ) $updir = substr($updir, 0, $delim_pos + 1);
61
+
62
+ $echo_str = "\n".'<div class="wrap">';
63
+ $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
64
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
65
+ $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "File Browser");
66
+ $echo_str .= "\n\t".'<div>';
67
+ $echo_str .= "\n\t\t".'<span><strong>Location:</strong> </span>';
68
+ foreach ( $route as $item ) {
69
+ // store dir path that we need to pass to other functions in session, instead of exposing it in the url
70
+ $dir_code = wfu_safe_store_filepath($item['path']);
71
+ $echo_str .= '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">'.$item['item'].'</a>';
72
+ $echo_str .= '<span>/</span>';
73
+ }
74
+ //define referer (with sort data) to point to this url for use by the elements
75
+ $referer = $siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$basedir_code;
76
+ $referer_code = wfu_safe_store_filepath($referer.'[['.$sort.']]');
77
+ //file browser header
78
+ $echo_str .= "\n\t".'</div>';
79
+ // $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.$sort.']]');
80
+ // $echo_str .= "\n\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=create_dir&dir='.$dir_code.'" class="button" title="create folder" style="margin-top:6px">Create folder</a>';
81
+ $echo_str .= "\n\t".'<div style="margin-top:10px;">';
82
+ $echo_str .= "\n\t\t".'<div class="wfu_adminbrowser_header" style="width: 100%;">';
83
+ $bulkactions = array(
84
+ array( "name" => "delete", "title" => "Delete" ),
85
+ array( "name" => "include", "title" => "Include" )
86
+ );
87
+ $echo_str .= wfu_add_bulkactions_header("\n\t\t\t", "adminbrowser", $bulkactions);
88
+ $echo_str .= "\n\t\t\t".'<input id="wfu_adminbrowser_action_url" type="hidden" value="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" />';
89
+ $echo_str .= "\n\t\t\t".'<input id="wfu_adminbrowser_referer" type="hidden" value="'.$referer_code.'" />';
90
+ $echo_str .= "\n\t\t\t".'<input id="wfu_download_file_nonce" type="hidden" value="'.wp_create_nonce('wfu_download_file_invoker').'" />';
91
+ $echo_str .= "\n\t\t\t".'<input id="wfu_include_file_nonce" type="hidden" value="'.wp_create_nonce('wfu_include_file').'" />';
92
+ //define header parameters that can be later used when defining file actions
93
+ $header_params = array();
94
+ $echo_str .= "\n\t\t".'</div>';
95
+ $echo_str .= "\n\t\t".'<table class="wp-list-table widefat fixed striped">';
96
+ $echo_str .= "\n\t\t\t".'<thead>';
97
+ $echo_str .= "\n\t\t\t\t".'<tr>';
98
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="5%" style="text-align:center;">';
99
+ $echo_str .= "\n\t\t\t\t\t\t".'<input id="wfu_select_all_visible" type="checkbox" onchange="wfu_adminbrowser_select_all_visible_changed();" style="-webkit-appearance:checkbox;" />';
100
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
101
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="25%" style="text-align:left;">';
102
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'name' ? ( $order == SORT_ASC ? '-name' : 'name' ) : 'name' ).']]');
103
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Name'.( substr($sort, -4) == 'name' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
104
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
105
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:right;">';
106
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'size' ? ( $order == SORT_ASC ? '-size' : 'size' ) : 'size' ).']]');
107
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Size'.( substr($sort, -4) == 'size' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
108
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
109
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="20%" style="text-align:left;">';
110
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'date' ? ( $order == SORT_ASC ? '-date' : 'date' ) : 'date' ).']]');
111
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Date'.( substr($sort, -4) == 'date' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
112
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
113
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
114
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($basedir).'[['.( substr($sort, -4) == 'user' ? ( $order == SORT_ASC ? '-user' : 'user' ) : 'user' ).']]');
115
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'">Uploaded By'.( substr($sort, -4) == 'user' ? ( $order == SORT_ASC ? ' &uarr;' : ' &darr;' ) : '' ).'</a>';
116
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
117
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="30%" style="text-align:left;">';
118
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>User Data</label>';
119
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
120
+ $echo_str .= "\n\t\t\t\t".'</tr>';
121
+ $echo_str .= "\n\t\t\t".'</thead>';
122
+ $echo_str .= "\n\t\t\t".'<tbody>';
123
+
124
+ //find contents of current folder
125
+ $dirlist = array();
126
+ $filelist = array();
127
+ if ( $handle = opendir($basedir) ) {
128
+ $blacklist = array('.', '..');
129
+ while ( false !== ($file = readdir($handle)) )
130
+ if ( !in_array($file, $blacklist) ) {
131
+ $filepath = $basedir.$file;
132
+ $stat = stat($filepath);
133
+ if ( is_dir($filepath) ) {
134
+ array_push($dirlist, array( 'name' => $file, 'fullpath' => $filepath, 'mdate' => $stat['mtime'] ));
135
+ }
136
+ else {
137
+ //find relative file record in database together with user data;
138
+ //if the file is php, then file record is null meaning that the file can only be viewed
139
+ //if file record is not found then the file can only be viewed
140
+ if ( preg_match("/\.php$/", $filepath) ) $filerec = null;
141
+ else $filerec = wfu_get_file_rec($filepath, true);
142
+ //find user who uploaded the file
143
+ $username = '';
144
+ if ( $filerec != null ) $username = wfu_get_username_by_id($filerec->uploaduserid);
145
+ array_push($filelist, array( 'name' => $file, 'fullpath' => $filepath, 'size' => $stat['size'], 'mdate' => $stat['mtime'], 'user' => $username, 'filedata' => $filerec ));
146
+ }
147
+ }
148
+ closedir($handle);
149
+ }
150
+ $dirsort = ( substr($sort, -4) == 'date' ? 'mdate' : substr($sort, -4) );
151
+ $filesort = $dirsort;
152
+ $dirorder = $order;
153
+ if ( $dirsort == 'size' ) { $dirsort = 'name'; $dirorder = SORT_ASC; }
154
+ if ( $dirsort == 'user' ) { $dirsort = 'name'; $dirorder = SORT_ASC; }
155
+ switch ( $dirsort ) {
156
+ case "name": $dirsort .= ":s"; break;
157
+ case "size": $dirsort .= ":n"; break;
158
+ case "mdate": $dirsort .= ":n"; break;
159
+ case "user": $dirsort .= ":s"; break;
160
+ }
161
+ $dirlist = wfu_array_sort($dirlist, $dirsort, $dirorder);
162
+ switch ( $filesort ) {
163
+ case "name": $filesort .= ":s"; break;
164
+ case "size": $filesort .= ":n"; break;
165
+ case "mdate": $filesort .= ":n"; break;
166
+ case "user": $filesort .= ":s"; break;
167
+ }
168
+ $filelist = wfu_array_sort($filelist, $filesort, $order);
169
+
170
+ //show subfolders first
171
+ if ( $reldir != "root/" ) {
172
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($updir));
173
+ $echo_str .= "\n\t\t\t\t".'<tr>';
174
+ $echo_str .= "\n\t\t\t\t\t".'<td width="5%" style="padding: 5px 5px 5px 10px; text-align:center;"><input type="checkbox" disabled="disabled" /></td>';
175
+ $echo_str .= "\n\t\t\t\t\t".'<td width="25%" style="padding: 5px 5px 5px 10px; text-align:left;">';
176
+ $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'" title="go up">..</a>';
177
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
178
+ $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:right;"> </td>';
179
+ $echo_str .= "\n\t\t\t\t\t".'<td width="20%" style="padding: 5px 5px 5px 10px; text-align:left;"> </td>';
180
+ $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:center;"> </td>';
181
+ $echo_str .= "\n\t\t\t\t\t".'<td width="30%" style="padding: 5px 5px 5px 10px; text-align:left;"> </td>';
182
+ $echo_str .= "\n\t\t\t\t".'</tr>';
183
+ }
184
+ $ii = 1;
185
+ foreach ( $dirlist as $dir ) {
186
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($dir['fullpath']).'[['.$sort.']]');
187
+ $echo_str .= "\n\t\t\t\t".'<tr onmouseover="var actions=document.getElementsByName(\'wfu_dir_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';} document.getElementById(\'wfu_dir_actions_'.$ii.'\').style.visibility=\'visible\'" onmouseout="var actions=document.getElementsByName(\'wfu_dir_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';}">';
188
+ $echo_str .= "\n\t\t\t\t\t".'<td width="5%" style="padding: 5px 5px 5px 10px; text-align:center;"><input type="checkbox" disabled="disabled" /></td>';
189
+ $echo_str .= "\n\t\t\t\t\t".'<td width="25%" style="padding: 5px 5px 5px 10px; text-align:left;">';
190
+ $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir='.$dir_code.'" title="'.$dir['name'].'">'.$dir['name'].'</a>';
191
+ $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_dir_actions_'.$ii.'" name="wfu_dir_actions" style="visibility:hidden;">';
192
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<span style="visibility:hidden;">';
193
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir=">Noaction</a>';
194
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
195
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
196
+ // $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
197
+ // $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=rename_dir&file='.$dir_code.'" title="Rename this folder">Rename</a>';
198
+ // $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
199
+ // $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
200
+ // $echo_str .= "\n\t\t\t\t\t\t\t".'<span>';
201
+ // $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=delete_dir&file='.$dir_code.'" title="Delete this folder">Delete</a>';
202
+ // $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
203
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
204
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
205
+ $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:right;"> </td>';
206
+ $echo_str .= "\n\t\t\t\t\t".'<td width="20%" style="padding: 5px 5px 5px 10px; text-align:left;">'.get_date_from_gmt(date("Y-m-d H:i:s", $dir['mdate']), "d/m/Y H:i:s").'</td>';
207
+ $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:center;"> </td>';
208
+ $echo_str .= "\n\t\t\t\t\t".'<td width="30%" style="padding: 5px 5px 5px 10px; text-align:left;"> </td>';
209
+ $echo_str .= "\n\t\t\t\t".'</tr>';
210
+ $ii ++;
211
+ }
212
+ //show contained files
213
+ foreach ( $filelist as $file ) {
214
+ $is_included = ( $file['filedata'] != null );
215
+ $can_be_included = ( $plugin_options['includeotherfiles'] == "1" ) && !wfu_file_extension_blacklisted($file['name']);
216
+ $file_code = '';
217
+ if ( $is_included || $can_be_included ) $file_code = wfu_safe_store_filepath(wfu_path_abs2rel($file['fullpath']).'[['.$sort.']]');
218
+ $echo_str .= "\n\t\t\t\t".'<tr onmouseover="var actions=document.getElementsByName(\'wfu_file_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';} document.getElementById(\'wfu_file_actions_'.$ii.'\').style.visibility=\'visible\'" onmouseout="var actions=document.getElementsByName(\'wfu_file_actions\'); for (var i=0; i<actions.length; i++) {actions[i].style.visibility=\'hidden\';}">';
219
+ $echo_str .= "\n\t\t\t\t\t".'<td width="5%" style="padding: 5px 5px 5px 10px; text-align:center;">';
220
+ if ( $is_included || $can_be_included ) $echo_str .= "\n\t\t\t\t\t\t".'<input class="wfu_selectors'.( $is_included ? ' wfu_included' : '' ).' wfu_selcode_'.$file_code.'" type="checkbox" onchange="wfu_adminbrowser_selector_changed(this);" />';
221
+ else $echo_str .= "\n\t\t\t\t\t\t".'<input type="checkbox" disabled="disabled" />';
222
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
223
+ $echo_str .= "\n\t\t\t\t\t".'<td width="25%" style="padding: 5px 5px 5px 10px; text-align:left;">';
224
+ if ( $is_included || $can_be_included )
225
+ $echo_str .= "\n\t\t\t\t\t\t".'<a id="wfu_file_link_'.$ii.'" class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_details&file='.$file_code.'" title="View and edit file details" style="font-weight:normal;'.( $is_included ? '' : ' display:none;' ).'">'.$file['name'].'</a>';
226
+ if ( !$is_included )
227
+ $echo_str .= "\n\t\t\t\t\t\t".'<span id="wfu_file_flat_'.$ii.'">'.$file['name'].'</span>';
228
+ //set additional $file properties for generating file actions
229
+ $file["index"] = $ii;
230
+ $file["code"] = $file_code;
231
+ $file["referer_code"] = $referer_code;
232
+ $file_actions = wfu_adminbrowser_file_actions($file, $header_params);
233
+ $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_file_actions_'.$ii.'" name="wfu_file_actions" style="visibility:hidden;">';
234
+ if ( $is_included || $can_be_included ) {
235
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div id="wfu_file_is_included_actions_'.$ii.'" style="display:'.( $is_included ? 'block' : 'none' ).';">';
236
+ //add file actions for files already included
237
+ $array_keys = array_keys($file_actions["is_included"]);
238
+ $lastkey = array_pop($array_keys);
239
+ foreach ( $file_actions["is_included"] as $key => $action ) {
240
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<span>';
241
+ foreach ( $action as $line )
242
+ $echo_str .= "\n\t\t\t\t\t\t\t\t\t".$line;
243
+ if ( $key != $lastkey ) $echo_str .= "\n\t\t\t\t\t\t\t\t\t".' | ';
244
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'</span>';
245
+ }
246
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
247
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div id="wfu_file_can_be_included_actions_'.$ii.'" style="display:'.( $is_included ? 'none' : 'block' ).';">';
248
+ //add file actions for files that can be included
249
+ $array_keys = array_keys($file_actions["can_be_included"]);
250
+ $lastkey = array_pop($array_keys);
251
+ foreach ( $file_actions["can_be_included"] as $key => $action ) {
252
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<span>';
253
+ foreach ( $action as $line )
254
+ $echo_str .= "\n\t\t\t\t\t\t\t\t\t".$line;
255
+ if ( $key != $lastkey ) $echo_str .= "\n\t\t\t\t\t\t\t\t\t".' | ';
256
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'</span>';
257
+ }
258
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
259
+ }
260
+ else {
261
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<span style="visibility:hidden;">';
262
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_browser&dir=">Noaction</a>';
263
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".' | ';
264
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</span>';
265
+ }
266
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
267
+ $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_file_download_container_'.$ii.'" style="display: none;"></div>';
268
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
269
+ $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:right;">'.$file['size'].'</td>';
270
+ $echo_str .= "\n\t\t\t\t\t".'<td width="20%" style="padding: 5px 5px 5px 10px; text-align:left;">'.get_date_from_gmt(date("Y-m-d H:i:s", $file['mdate']), "d/m/Y H:i:s").'</td>';
271
+ $echo_str .= "\n\t\t\t\t\t".'<td width="10%" style="padding: 5px 5px 5px 10px; text-align:center;">'.$file['user'].'</td>';
272
+ $echo_str .= "\n\t\t\t\t\t".'<td width="30%" style="padding: 5px 5px 5px 10px; text-align:left;">';
273
+ if ( $is_included ) {
274
+ if ( count($file['filedata']->userdata) > 0 ) {
275
+ $echo_str .= "\n\t\t\t\t\t\t".'<select multiple="multiple" style="width:100%; height:40px; background:none; font-size:small;">';
276
+ foreach ( $file['filedata']->userdata as $userdata )
277
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<option>'.$userdata->property.': '.$userdata->propvalue.'</option>';
278
+ $echo_str .= "\n\t\t\t\t\t\t".'</select>';
279
+ }
280
+ }
281
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
282
+ $echo_str .= "\n\t\t\t\t".'</tr>';
283
+ $ii ++;
284
+ }
285
+ $echo_str .= "\n\t\t\t".'</tbody>';
286
+ $echo_str .= "\n\t\t".'</table>';
287
+ $echo_str .= "\n\t\t".'<iframe id="wfu_download_frame" style="display: none;"></iframe>';
288
+ $echo_str .= "\n\t".'</div>';
289
+ $echo_str .= "\n\t".'</div>';
290
+ $echo_str .= "\n".'</div>';
291
+
292
+ return $echo_str;
293
+ }
294
+
295
+ function wfu_adminbrowser_file_actions($file, $params) {
296
+ $siteurl = site_url();
297
+ $actions = array(
298
+ "is_included" => array(),
299
+ "can_be_included" => array()
300
+ );
301
+ //add file actions if file is already included
302
+ $actions["is_included"] += array(
303
+ array( '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_details&file='.$file["code"].'" title="View and edit file details">Details</a>' ),
304
+ array( '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=rename_file&file='.$file["code"].'" title="Rename this file">Rename</a>' ),
305
+ array( '<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=delete_file&file='.$file["code"].'&referer='.$file["referer_code"].'" title="Delete this file">Delete</a>' ),
306
+ array( '<a href="javascript:wfu_download_file(\''.$file["code"].'\', '.$file["index"].');" title="Download this file">Download</a>' )
307
+ );
308
+ //add file actions if file is already included
309
+ $actions["can_be_included"] += array(
310
+ array(
311
+ '<a id="wfu_include_file_'.$file["index"].'_a" href="javascript:wfu_include_file(\''.$file["code"].'\', '.$file["index"].');" title="Include file in plugin\'s database">Include File</a>',
312
+ '<img id="wfu_include_file_'.$file["index"].'_img" src="'.WFU_IMAGE_ADMIN_SUBFOLDER_LOADING.'" style="width:12px; display:none;" />',
313
+ '<input id="wfu_include_file_'.$file["index"].'_inpfail" type="hidden" value="File could not be included!" />'
314
+ )
315
+ );
316
+
317
+ return $actions;
318
+ }
319
+
320
+ function wfu_user_owns_file($userid, $filerec) {
321
+ if ( 0 == $userid )
322
+ return false;
323
+ if ( current_user_can('manage_options') ) return true;
324
+ return false;
325
+ }
326
+
327
+ function wfu_current_user_owes_file($filepath) {
328
+ //first check if file has a restricted extension; for security reasons some file extensions cannot be owned
329
+ if ( wfu_file_extension_blacklisted($filepath) ) return false;
330
+ //then get file data from database, if exist
331
+ $filerec = wfu_get_file_rec($filepath, false);
332
+ if ( $filerec == null ) return false;
333
+
334
+ $user = wp_get_current_user();
335
+ return wfu_user_owns_file($user->ID, $filerec);
336
+ }
337
+
338
+ function wfu_current_user_allowed_action($action, $filepath) {
339
+ //first get file data from database, if exist
340
+ $filerec = wfu_get_file_rec($filepath, false);
341
+
342
+ $user = wp_get_current_user();
343
+ if ( 0 == $user->ID ) return null;
344
+ else $is_admin = current_user_can('manage_options');
345
+ if ( !$is_admin ) {
346
+ return null;
347
+ }
348
+ return $user;
349
+ }
350
+
351
+ function wfu_current_user_allowed_action_remote($action, $filepath, $userid) {
352
+ //first get file data from database, if exist
353
+ $filerec = wfu_get_file_rec($filepath, false);
354
+
355
+ if ( 0 == $userid ) return null;
356
+ else $is_admin = user_can($userid, 'manage_options');
357
+ if ( !$is_admin ) {
358
+ return null;
359
+ }
360
+ return true;
361
+ }
362
+
363
+ function wfu_rename_file_prompt($file_code, $type, $error) {
364
+ if ( $type == 'dir' ) return;
365
+
366
+ $siteurl = site_url();
367
+
368
+ $is_admin = current_user_can( 'manage_options' );
369
+ //check if user is allowed to view file details
370
+ if ( !$is_admin ) {
371
+ return;
372
+ }
373
+ $file_code = wfu_sanitize_code($file_code);
374
+ $dec_file = wfu_get_filepath_from_safe($file_code);
375
+ if ( $dec_file === false ) return;
376
+
377
+ //first extract sort info from dec_file
378
+ $ret = wfu_extract_sortdata_from_path($dec_file);
379
+ $dec_file = wfu_path_rel2abs($ret['path']);
380
+ if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
381
+
382
+ //check if user is allowed to perform this action
383
+ if ( !wfu_current_user_owes_file($dec_file) ) return;
384
+
385
+ $parts = pathinfo($dec_file);
386
+ $newname = $parts['basename'];
387
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($parts['dirname']).'[['.$ret['sort'].']]');
388
+
389
+ $echo_str = "\n".'<div class="wrap">';
390
+ if ( $error ) {
391
+ $rename_file = WFU_USVAR('wfu_rename_file');
392
+ $newname = $rename_file['newname'];
393
+ $echo_str .= "\n\t".'<div class="error">';
394
+ $echo_str .= "\n\t\t".'<p>'.WFU_USVAR('wfu_rename_file_error').'</p>';
395
+ $echo_str .= "\n\t".'</div>';
396
+ }
397
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
398
+ if ( $is_admin ) $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser&dir='.$dir_code.'" class="button" title="go back">Go back</a>';
399
+ $echo_str .= "\n\t".'</div>';
400
+ $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Rename '.( $type == 'dir' ? 'Folder' : 'File' ).'</h2>';
401
+ if ( $is_admin ) $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="renamefile" id="renamefile" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
402
+ $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="rename'.( $type == 'dir' ? 'dir' : 'file' ).'">';
403
+ $echo_str .= "\n\t\t".'<input type="hidden" name="dir" value="'.$dir_code.'">';
404
+ $echo_str .= "\n\t\t".'<input type="hidden" name="file" value="'.$file_code.'">';
405
+ if ( $type == 'dir' ) $echo_str .= "\n\t\t".'<label>Enter new name for folder <strong>'.$dec_file.'</strong></label><br/>';
406
+ elseif ( $is_admin ) $echo_str .= "\n\t\t".'<label>Enter new filename for file <strong>'.$dec_file.'</strong></label><br/>';
407
+ $echo_str .= "\n\t\t".'<input name="wfu_newname" id="wfu_newname" type="text" value="'.$newname.'" style="width:50%;" />';
408
+ $echo_str .= "\n\t\t".'<p class="submit">';
409
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Rename">';
410
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
411
+ $echo_str .= "\n\t\t".'</p>';
412
+ $echo_str .= "\n\t".'</form>';
413
+ $echo_str .= "\n".'</div>';
414
+ return $echo_str;
415
+ }
416
+
417
+ function wfu_rename_file($file_code, $type) {
418
+ if ( $type == 'dir' ) return;
419
+
420
+ $user = wp_get_current_user();
421
+ $is_admin = current_user_can( 'manage_options' );
422
+ //check if user is allowed to view file details
423
+ if ( !$is_admin ) {
424
+ return;
425
+ }
426
+ $file_code = wfu_sanitize_code($file_code);
427
+ $dec_file = wfu_get_filepath_from_safe($file_code);
428
+ if ( $dec_file === false ) return;
429
+
430
+ $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
431
+ if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
432
+ if ( !file_exists($dec_file) ) return;
433
+
434
+ //check if user is allowed to perform this action
435
+ if ( !wfu_current_user_owes_file($dec_file) ) return;
436
+
437
+ $parts = pathinfo($dec_file);
438
+ $error = "";
439
+ if ( isset($_POST['wfu_newname']) && isset($_POST['submit']) ) {
440
+ if ( $_POST['submit'] == "Rename" && $_POST['wfu_newname'] != $parts['basename'] ) {
441
+ $new_file = $parts['dirname'].'/'.$_POST['wfu_newname'];
442
+ if ( $_POST['wfu_newname'] == "" ) $error = 'Error: New '.( $type == 'dir' ? 'folder ' : 'file' ).'name cannot be empty!';
443
+ elseif ( preg_match("/[^A-Za-z0-9_.#\-$]/", $_POST['wfu_newname']) ) $error = 'Error: name contained invalid characters that were stripped off! Please try again.';
444
+ elseif ( substr($_POST['wfu_newname'], -1 - strlen($parts['extension'])) != '.'.$parts['extension'] ) $error = 'Error: new and old file name extensions must be identical! Please correct.';
445
+ elseif ( wfu_file_extension_blacklisted($_POST['wfu_newname']) ) $error = 'Error: the new file name has an extension that is forbidden for security reasons. Please correct.';
446
+ elseif ( file_exists($new_file) ) $error = 'Error: The '.( $type == 'dir' ? 'folder' : 'file' ).' <strong>'.$_POST['wfu_newname'].'</strong> already exists! Please choose another one.';
447
+ else {
448
+ //pre-log rename action
449
+ if ( $type == 'file' ) $retid = wfu_log_action('rename:'.$new_file, $dec_file, $user->ID, '', 0, 0, '', null);
450
+ //perform rename action
451
+ if ( rename($dec_file, $new_file) == false ) $error = 'Error: Rename of '.( $type == 'dir' ? 'folder' : 'file' ).' <strong>'.$parts['basename'].'</strong> failed!';
452
+ //revert log action if file was not renamed
453
+ if ( $type == 'file' && !file_exists($new_file) ) wfu_revert_log_action($retid);
454
+ }
455
+ }
456
+ }
457
+ if ( $error != "" ) {
458
+ WFU_USVAR_store('wfu_rename_file_error', $error);
459
+ $rename_file = WFU_USVAR('wfu_rename_file');
460
+ $rename_file['newname'] = preg_replace("/[^A-Za-z0-9_.#\-$]/", "", $_POST['wfu_newname']);
461
+ WFU_USVAR_store('wfu_rename_file', $rename_file);
462
+ }
463
+ return ( $error == "" );
464
+ }
465
+
466
+ function wfu_delete_file_prompt($file_code, $type, $referer) {
467
+ if ( $type == 'dir' ) return;
468
+
469
+ $siteurl = site_url();
470
+
471
+ $is_admin = current_user_can( 'manage_options' );
472
+ //check if user is allowed to view file details
473
+ if ( !$is_admin ) {
474
+ return;
475
+ }
476
+ if ( !is_array($file_code) ) $file_code = array( $file_code );
477
+ $names = array();
478
+ foreach ( $file_code as $index => $code ) {
479
+ $file_code[$index] = wfu_sanitize_code($code);
480
+ $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
481
+ if ( $dec_file === false ) unset($file_code[$index]);
482
+ else {
483
+ //first extract sort info from dec_file
484
+ $ret = wfu_extract_sortdata_from_path($dec_file);
485
+ $dec_file = wfu_path_rel2abs($ret['path']);
486
+ if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
487
+ //check if user is allowed to perform this action
488
+ if ( !wfu_current_user_owes_file($dec_file) ) unset($file_code[$index]);
489
+ else {
490
+ $parts = pathinfo($dec_file);
491
+ array_push($names, $parts['basename']);
492
+ }
493
+ }
494
+ }
495
+ if ( count($file_code) == 0 ) return;
496
+ $file_code_list = "list:".implode(",", $file_code);
497
+
498
+ $referer_url = wfu_get_filepath_from_safe(wfu_sanitize_code($referer));
499
+ $ret = wfu_extract_sortdata_from_path($referer_url);
500
+ $referer_url = $ret['path'];
501
+
502
+ $echo_str = "\n".'<div class="wrap">';
503
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
504
+ if ( $is_admin ) $echo_str .= "\n\t\t".'<a href="'.$referer_url.'" class="button" title="go back">Go back</a>';
505
+ $echo_str .= "\n\t".'</div>';
506
+ $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Delete '.( $type == 'dir' ? 'Folder' : 'File'.( count($names) == 1 ? '' : 's' ) ).'</h2>';
507
+ if ( $is_admin ) $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="deletefile" id="deletefile" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
508
+ $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="delete'.( $type == 'dir' ? 'dir' : 'file' ).'">';
509
+ $echo_str .= "\n\t\t".'<input type="hidden" name="referer" value="'.$referer.'">';
510
+ $echo_str .= "\n\t\t".'<input type="hidden" name="file" value="'.$file_code_list.'">';
511
+ if ( count($names) == 1 )
512
+ $echo_str .= "\n\t\t".'<label>Are you sure that you want to delete '.( $type == 'dir' ? 'folder' : 'file' ).' <strong>'.$names[0].'</strong>?</label><br/>';
513
+ else {
514
+ $echo_str .= "\n\t\t".'<label>Are you sure that you want to delete '.( $type == 'dir' ? 'folder' : 'files' ).':';
515
+ $echo_str .= "\n\t\t".'<ul style="padding-left: 20px; list-style: initial;">';
516
+ foreach ( $names as $name )
517
+ $echo_str .= "\n\t\t\t".'<li><strong>'.$name.'</strong></li>';
518
+ $echo_str .= "\n\t\t".'</ul>';
519
+ }
520
+ $echo_str .= "\n\t\t".'<p class="submit">';
521
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Delete">';
522
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
523
+ $echo_str .= "\n\t\t".'</p>';
524
+ $echo_str .= "\n\t".'</form>';
525
+ $echo_str .= "\n".'</div>';
526
+ return $echo_str;
527
+ }
528
+
529
+ function wfu_delete_file($file_code, $type) {
530
+ if ( $type == 'dir' ) return;
531
+
532
+ $user = wp_get_current_user();
533
+ $is_admin = current_user_can( 'manage_options' );
534
+ //check if user is allowed to view file details
535
+ if ( !$is_admin ) {
536
+ return;
537
+ }
538
+ if ( !is_array($file_code) ) $file_code = array( $file_code );
539
+ $dec_files = array();
540
+ foreach ( $file_code as $index => $code ) {
541
+ $file_code[$index] = wfu_sanitize_code($code);
542
+ $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
543
+ if ( $dec_file !== false ) {
544
+ $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
545
+ if ( $type == 'dir' && substr($dec_file, -1) == '/' ) $dec_file = substr($dec_file, 0, -1);
546
+ //check if user is allowed to perform this action
547
+ if ( wfu_current_user_owes_file($dec_file) ) array_push($dec_files, $dec_file);
548
+ }
549
+ }
550
+ if ( count($dec_files) == 0 ) return;
551
+
552
+ if ( isset($_POST['submit']) ) {
553
+ if ( $_POST['submit'] == "Delete" ) {
554
+ foreach ( $dec_files as $dec_file ) {
555
+ //pre-log delete action
556
+ if ( $type == 'file' ) wfu_delete_file_execute($dec_file, $user->ID);
557
+ elseif ( $type == 'dir' && $dec_file != "" ) wfu_delTree($dec_file);
558
+ }
559
+ }
560
+ }
561
+ return true;
562
+ }
563
+
564
+ function wfu_create_dir_prompt($dir_code, $error) {
565
+ return;
566
+
567
+ $siteurl = site_url();
568
+
569
+ if ( !current_user_can( 'manage_options' ) ) return;
570
+
571
+ $dir_code = wfu_sanitize_code($dir_code);
572
+ $dec_dir = wfu_get_filepath_from_safe($dir_code);
573
+ if ( $dec_dir === false ) return;
574
+
575
+ //first extract sort info from dec_dir
576
+ $ret = wfu_extract_sortdata_from_path($dec_dir);
577
+ $dec_dir = wfu_path_rel2abs($ret['path']);
578
+ if ( substr($dec_dir, -1) != '/' ) $dec_dir .= '/';
579
+ $newname = '';
580
+
581
+ $echo_str = "\n".'<div class="wrap">';
582
+ if ( $error ) {
583
+ $create_dir = WFU_USVAR('wfu_create_dir');
584
+ $newname = $create_dir['newname'];
585
+ $echo_str .= "\n\t".'<div class="error">';
586
+ $echo_str .= "\n\t\t".'<p>'.WFU_USVAR('wfu_create_dir_error').'</p>';
587
+ $echo_str .= "\n\t".'</div>';
588
+ }
589
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
590
+ $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=file_browser&dir='.$dir_code.'" class="button" title="go back">Go back</a>';
591
+ $echo_str .= "\n\t".'</div>';
592
+ $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Create Folder</h2>';
593
+ $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="createdir" id="createdir" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
594
+ $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="createdir">';
595
+ $echo_str .= "\n\t\t".'<input type="hidden" name="dir" value="'.$dir_code.'">';
596
+ $echo_str .= "\n\t\t".'<label>Enter the name of the new folder inside <strong>'.$dec_dir.'</strong></label><br/>';
597
+ $echo_str .= "\n\t\t".'<input name="wfu_newname" id="wfu_newname" type="text" value="'.$newname.'" style="width:50%;" />';
598
+ $echo_str .= "\n\t\t".'<p class="submit">';
599
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Create">';
600
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
601
+ $echo_str .= "\n\t\t".'</p>';
602
+ $echo_str .= "\n\t".'</form>';
603
+ $echo_str .= "\n".'</div>';
604
+ return $echo_str;
605
+ }
606
+
607
+ function wfu_create_dir($dir_code) {
608
+ return;
609
+
610
+ if ( !current_user_can( 'manage_options' ) ) return;
611
+
612
+ $dir_code = wfu_sanitize_code($dir_code);
613
+ $dec_dir = wfu_get_filepath_from_safe($dir_code);
614
+ if ( $dec_dir === false ) return;
615
+
616
+ $dec_dir = wfu_path_rel2abs(wfu_flatten_path($dec_dir));
617
+ if ( substr($dec_dir, -1) != '/' ) $dec_dir .= '/';
618
+ if ( !file_exists($dec_dir) ) return;
619
+ $error = "";
620
+ if ( isset($_POST['wfu_newname']) && isset($_POST['submit']) ) {
621
+ if ( $_POST['submit'] == "Create" ) {
622
+ $new_dir = $dec_dir.$_POST['wfu_newname'];
623
+ if ( $_POST['wfu_newname'] == "" ) $error = 'Error: New folder name cannot be empty!';
624
+ elseif ( preg_match("/[^A-Za-z0-9_.#\-$]/", $_POST['wfu_newname']) ) $error = 'Error: name contained invalid characters that were stripped off! Please try again.';
625
+ elseif ( file_exists($new_dir) ) $error = 'Error: The folder <strong>'.$_POST['wfu_newname'].'</strong> already exists! Please choose another one.';
626
+ elseif ( mkdir($new_dir) == false ) $error = 'Error: Creation of folder <strong>'.$_POST['wfu_newname'].'</strong> failed!';
627
+ }
628
+ }
629
+ if ( $error != "" ) {
630
+ WFU_USVAR_store('wfu_create_dir_error', $error);
631
+ $create_dir = WFU_USVAR('wfu_create_dir');
632
+ $create_dir['newname'] = preg_replace("/[^A-Za-z0-9_.#\-$]/", "", $_POST['wfu_newname']);
633
+ WFU_USVAR_store('wfu_create_dir', $create_dir);
634
+ }
635
+ return ( $error == "" );
636
+ }
637
+
638
+ function wfu_include_file_prompt($file_code, $referer) {
639
+ if ( !current_user_can( 'manage_options' ) ) return;
640
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
641
+ if ( $plugin_options['includeotherfiles'] != "1" ) return;
642
+
643
+ $siteurl = site_url();
644
+ if ( !is_array($file_code) ) $file_code = array( $file_code );
645
+ $names = array();
646
+ foreach ( $file_code as $index => $code ) {
647
+ $file_code[$index] = wfu_sanitize_code($code);
648
+ $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
649
+ if ( $dec_file === false ) unset($file_code[$index]);
650
+ else {
651
+ $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
652
+ //do not include file if it has a forbidden extention or it is already included
653
+ if ( wfu_file_extension_blacklisted(wfu_basename($dec_file)) || wfu_get_file_rec($dec_file, false) != null )
654
+ unset($file_code[$index]);
655
+ else array_push($names, wfu_basename($dec_file));
656
+ }
657
+ }
658
+ if ( count($file_code) == 0 ) return;
659
+ $file_code_list = "list:".implode(",", $file_code);
660
+
661
+ $referer_url = wfu_get_filepath_from_safe(wfu_sanitize_code($referer));
662
+ $ret = wfu_extract_sortdata_from_path($referer_url);
663
+ $referer_url = $ret['path'];
664
+
665
+ $echo_str = "\n".'<div class="wrap">';
666
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
667
+ $echo_str .= "\n\t\t".'<a href="'.$referer_url.'" class="button" title="go back">Go back</a>';
668
+ $echo_str .= "\n\t".'</div>';
669
+ $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Include File'.( count($names) == 1 ? '' : 's' ).'</h2>';
670
+ $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="includefile" id="includefile" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
671
+ $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="includefile">';
672
+ $echo_str .= "\n\t\t".'<input type="hidden" name="referer" value="'.$referer.'">';
673
+ $echo_str .= "\n\t\t".'<input type="hidden" name="file" value="'.$file_code_list.'">';
674
+ if ( count($names) == 1 )
675
+ $echo_str .= "\n\t\t".'<label>Are you sure that you want to include file <strong>'.$names[0].'</strong>?</label><br/>';
676
+ else {
677
+ $echo_str .= "\n\t\t".'<label>Are you sure that you want to include files:';
678
+ $echo_str .= "\n\t\t".'<ul style="padding-left: 20px; list-style: initial;">';
679
+ foreach ( $names as $name )
680
+ $echo_str .= "\n\t\t\t".'<li><strong>'.$name.'</strong></li>';
681
+ $echo_str .= "\n\t\t".'</ul>';
682
+ }
683
+ $echo_str .= "\n\t\t".'<p class="submit">';
684
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Include">';
685
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
686
+ $echo_str .= "\n\t\t".'</p>';
687
+ $echo_str .= "\n\t".'</form>';
688
+ $echo_str .= "\n".'</div>';
689
+ return $echo_str;
690
+ }
691
+
692
+ function wfu_include_file($file_code) {
693
+ if ( !current_user_can( 'manage_options' ) ) return;
694
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
695
+ if ( $plugin_options['includeotherfiles'] != "1" ) return;
696
+
697
+ if ( !is_array($file_code) ) $file_code = array( $file_code );
698
+ $dec_files = array();
699
+ foreach ( $file_code as $index => $code ) {
700
+ $file_code[$index] = wfu_sanitize_code($code);
701
+ $dec_file = wfu_get_filepath_from_safe($file_code[$index]);
702
+ if ( $dec_file !== false ) {
703
+ $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
704
+ //include file if it does not have a forbidden extention and it not already included
705
+ if ( !wfu_file_extension_blacklisted(wfu_basename($dec_file)) && wfu_get_file_rec($dec_file, false) == null )
706
+ array_push($dec_files, $dec_file);
707
+ }
708
+ }
709
+ if ( count($dec_files) == 0 ) return;
710
+
711
+ $user = wp_get_current_user();
712
+ if ( isset($_POST['submit']) ) {
713
+ if ( $_POST['submit'] == "Include" ) {
714
+ foreach ( $dec_files as $dec_file )
715
+ $fileid = wfu_log_action('include', $dec_file, $user->ID, '', '', get_current_blog_id(), '', null);
716
+ }
717
+ }
718
+ return true;
719
+ }
720
+
721
+ function wfu_file_details($file_code, $errorstatus, $invoker = '') {
722
+ global $wpdb;
723
+ $table_name1 = $wpdb->prefix . "wfu_log";
724
+ $siteurl = site_url();
725
+
726
+ $user = wp_get_current_user();
727
+ $is_admin = current_user_can( 'manage_options' );
728
+ //check if user is allowed to view file details
729
+ if ( !$is_admin ) {
730
+ return;
731
+ }
732
+ $file_code = wfu_sanitize_code($file_code);
733
+ $dec_file = wfu_get_filepath_from_safe($file_code);
734
+ if ( $dec_file === false ) return;
735
+
736
+ //extract file browser data from $file variable
737
+ $ret = wfu_extract_sortdata_from_path($dec_file);
738
+ $filepath = wfu_path_rel2abs($ret['path']);
739
+
740
+ //check if user is allowed to perform this action
741
+ if ( !wfu_current_user_owes_file($filepath) ) return;
742
+
743
+ //get file data from database with user data
744
+ $filedata = wfu_get_file_rec($filepath, true);
745
+ if ( $filedata == null ) return;
746
+
747
+ //get all users
748
+ $users = get_users();
749
+
750
+ //extract sort info and construct contained dir
751
+ $parts = pathinfo($filepath);
752
+ $dir_code = wfu_safe_store_filepath(wfu_path_abs2rel($parts['dirname']).'[['.$ret['sort'].']]');
753
+
754
+ $stat = stat($filepath);
755
+
756
+ $echo_str = '<div class="regev_wrap">';
757
+ if ( $errorstatus == 'error' ) {
758
+ $echo_str .= "\n\t".'<div class="error">';
759
+ $echo_str .= "\n\t\t".'<p>'.WFU_USVAR('wfu_filedetails_error').'</p>';
760
+ $echo_str .= "\n\t".'</div>';
761
+ }
762
+ //show file detais
763
+ $echo_str .= "\n\t".'<h2>Detais of File: '.$parts['basename'].'</h2>';
764
+ $echo_str .= "\n\t".'<div style="margin-top:10px;">';
765
+ if ( $is_admin ) {
766
+ $invoker_action = ( $invoker == '' ? false : wfu_get_browser_params_from_safe($invoker) );
767
+ $goback_action = ( $invoker_action === false ? 'file_browser&dir='.$dir_code : $invoker_action );
768
+ $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action='.$goback_action.'" class="button" title="go back">Go back</a>';
769
+ $echo_str .= "\n\t\t".'<form enctype="multipart/form-data" name="editfiledetails" id="editfiledetails" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=edit_filedetails" class="validate">';
770
+ }
771
+ $echo_str .= "\n\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">Upload Details</h3>';
772
+ $echo_str .= "\n\t\t\t".'<input type="hidden" name="action" value="edit_filedetails" />';
773
+ $echo_str .= "\n\t\t\t".'<input type="hidden" name="dir" value="'.$dir_code.'">';
774
+ $echo_str .= "\n\t\t\t".'<input type="hidden" name="file" value="'.$file_code.'">';
775
+ $echo_str .= "\n\t\t\t".'<table class="form-table">';
776
+ $echo_str .= "\n\t\t\t\t".'<tbody>';
777
+ if ( $is_admin ) {
778
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
779
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
780
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Full Path</label>';
781
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
782
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
783
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.$filepath.'" readonly="readonly" />';
784
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
785
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
786
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
787
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
788
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Uploaded By User</label>';
789
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
790
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
791
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<select id="wfu_filedetails_users" disabled="disabled">';
792
+ foreach ( $users as $userid => $user )
793
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<option value="'.$user->ID.'"'.( $filedata->uploaduserid == $user->ID ? ' selected="selected"' : '' ).'>'.$user->display_name.' ('.$user->user_login.')</option>';
794
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</select>';
795
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button" id="btn_change" href="" onclick="document.getElementById(\'wfu_filedetails_users\').disabled = false; this.style.display = \'none\'; document.getElementById(\'btn_ok\').style.display = \'inline-block\'; document.getElementById(\'btn_cancel\').style.display = \'inline-block\'; return false;"'.( $is_admin ? '' : ' style="display:none;"' ).'>Change User</a>';
796
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button" id="btn_ok" href="" onclick="document.getElementById(\'wfu_filedetails_users\').disabled = true; document.getElementById(\'btn_change\').style.display = \'inline-block\'; this.style.display=\'none\'; document.getElementById(\'btn_cancel\').style.display = \'none\'; document.getElementById(\'wfu_filedetails_userid\').value = document.getElementById(\'wfu_filedetails_users\').value; wfu_filedetails_changed(); return false;" style="display:none;">Ok</a>';
797
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<a class="button" id="btn_cancel" href="" onclick="document.getElementById(\'wfu_filedetails_users\').disabled = true; document.getElementById(\'btn_change\').style.display = \'inline-block\'; this.style.display=\'none\'; document.getElementById(\'btn_ok\').style.display = \'none\'; document.getElementById(\'wfu_filedetails_users\').value = document.getElementById(\'wfu_filedetails_userid\').value; return false;" style="display:none;">Cancel</a>';
798
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="hidden" id="wfu_filedetails_userid" name="wfu_filedetails_userid" value="'.$filedata->uploaduserid.'" />';
799
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="hidden" id="wfu_filedetails_userid_default" value="'.$filedata->uploaduserid.'" />';
800
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
801
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
802
+ }
803
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
804
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
805
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>File Size</label>';
806
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
807
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
808
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.$filedata->filesize.'" readonly="readonly" style="width:auto;" />';
809
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
810
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
811
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
812
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
813
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>File Date</label>';
814
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
815
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
816
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.get_date_from_gmt(date("Y-m-d H:i:s", $stat['mtime']), "d/m/Y H:i:s").'" readonly="readonly" style="width:auto;" />';
817
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
818
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
819
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
820
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
821
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Uploaded From Page</label>';
822
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
823
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
824
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.get_the_title($filedata->pageid).' ('.$filedata->pageid.')'.'" readonly="readonly" style="width:50%;" />';
825
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
826
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
827
+ if ( $is_admin ) {
828
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
829
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
830
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Upload Plugin ID</label>';
831
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
832
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
833
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input type="text" value="'.$filedata->sid.'" readonly="readonly" style="width:auto;" />';
834
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
835
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
836
+ }
837
+ $echo_str .= "\n\t\t\t\t".'</tbody>';
838
+ $echo_str .= "\n\t\t\t".'</table>';
839
+ if ( $is_admin ) {
840
+ //show history details
841
+ $echo_str .= "\n\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">File History</h3>';
842
+ $echo_str .= "\n\t\t\t".'<table class="form-table">';
843
+ $echo_str .= "\n\t\t\t\t".'<tbody>';
844
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
845
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
846
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label></label>';
847
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
848
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
849
+ //read all linked records
850
+ $filerecs = array();
851
+ array_push($filerecs, $filedata);
852
+ $currec = $filedata;
853
+ while ( $currec->linkedto > 0 ) {
854
+ $currec = $wpdb->get_row('SELECT * FROM '.$table_name1.' WHERE idlog = '.$currec->linkedto);
855
+ if ( $currec != null ) array_push($filerecs, $currec);
856
+ else break;
857
+ }
858
+ //construct report from db records
859
+ $rep = '';
860
+ foreach ( $filerecs as $filerec ) {
861
+ $username = wfu_get_username_by_id($filerec->userid);
862
+ $fileparts = pathinfo($filerec->filepath);
863
+ if ( $rep != '' ) $rep .= "<br />";
864
+ $rep .= '<strong>['.get_date_from_gmt($filerec->date_from).']</strong> ';
865
+ if ( $filerec->action == 'upload' )
866
+ $rep .= 'File uploaded with name <strong>'.$fileparts['basename'].'</strong> by user <strong>'.$username.'</strong>';
867
+ elseif ( $filerec->action == 'include' )
868
+ $rep .= 'File included in database with name <strong>'.$fileparts['basename'].'</strong> by user <strong>'.$username.'</strong>';
869
+ elseif ( $filerec->action == 'download' )
870
+ $rep .= 'File downloaded by user <strong>'.$username.'</strong>';
871
+ elseif ( $filerec->action == 'rename' )
872
+ $rep .= 'File renamed to <strong>'.$fileparts['basename'].'</strong> by user <strong>'.$username.'</strong>';
873
+ elseif ( $filerec->action == 'delete' )
874
+ $rep .= 'File deleted by user <strong>'.$username.'</strong>';
875
+ elseif ( $filerec->action == 'modify' )
876
+ $rep .= 'File userdata modified by user <strong>'.$username.'</strong>';
877
+ elseif ( $filerec->action == 'changeuser' )
878
+ $rep .= 'File upload user modified by user <strong>'.$username.'</strong>';
879
+ }
880
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div style="border:1px solid #dfdfdf; border-radius:3px; width:50%; overflow:scroll; padding:6px; height:100px; background-color:#eee;">';
881
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<span style="white-space:nowrap;">'.$rep.'</span>';
882
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
883
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
884
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
885
+ $echo_str .= "\n\t\t\t\t".'</tbody>';
886
+ $echo_str .= "\n\t\t\t".'</table>';
887
+ }
888
+
889
+ $echo_str .= "\n\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 40px;">User Data Details</h3>';
890
+ $echo_str .= "\n\t\t\t".'<table class="form-table">';
891
+ $echo_str .= "\n\t\t\t\t".'<tbody>';
892
+ if ( count($filedata->userdata) > 0 ) {
893
+ foreach ( $filedata->userdata as $userdata ) {
894
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
895
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
896
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>'.$userdata->property.'</label>';
897
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
898
+ $echo_str .= "\n\t\t\t\t\t\t".'<td>';
899
+ // $echo_str .= "\n\t\t\t\t\t\t\t".'<input id="wfu_filedetails_userdata_value_'.$userdata->propkey.'" name="wfu_filedetails_userdata" type="text"'.( $is_admin ? '' : ' readonly="readonly"' ).' value="'.$userdata->propvalue.'" />';
900
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<textarea id="wfu_filedetails_userdata_value_'.$userdata->propkey.'" name="wfu_filedetails_userdata" '.( $is_admin ? '' : ' readonly="readonly"' ).' value="'.$userdata->propvalue.'">'.$userdata->propvalue.'</textarea>';
901
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input id="wfu_filedetails_userdata_default_'.$userdata->propkey.'" type="hidden" value="'.$userdata->propvalue.'" />';
902
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<input id="wfu_filedetails_userdata_'.$userdata->propkey.'" name="wfu_filedetails_userdata_'.$userdata->propkey.'" type="hidden" value="'.$userdata->propvalue.'" />';
903
+ $echo_str .= "\n\t\t\t\t\t\t".'</td>';
904
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
905
+ }
906
+ }
907
+ else {
908
+ $echo_str .= "\n\t\t\t\t\t".'<tr>';
909
+ $echo_str .= "\n\t\t\t\t\t\t".'<th scope="row">';
910
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>No user data</label>';
911
+ $echo_str .= "\n\t\t\t\t\t\t".'</th>';
912
+ $echo_str .= "\n\t\t\t\t\t\t".'<td></td>';
913
+ $echo_str .= "\n\t\t\t\t\t".'</tr>';
914
+ }
915
+ $echo_str .= "\n\t\t\t\t".'</tbody>';
916
+ $echo_str .= "\n\t\t\t".'</table>';
917
+ if ( $is_admin ) {
918
+ $echo_str .= "\n\t\t\t".'<p class="submit">';
919
+ $echo_str .= "\n\t\t\t\t".'<input id="dp_filedetails_submit_fields" type="submit" class="button-primary" name="submit" value="Update" disabled="disabled" />';
920
+ $echo_str .= "\n\t\t\t".'</p>';
921
+ }
922
+ $echo_str .= "\n\t\t".'</form>';
923
+ $echo_str .= "\n\t".'</div>';
924
+ $handler = 'function() { wfu_Attach_FileDetails_Admin_Events(); }';
925
+ $echo_str .= "\n\t".'<script type="text/javascript">if(window.addEventListener) { window.addEventListener("load", '.$handler.', false); } else if(window.attachEvent) { window.attachEvent("onload", '.$handler.'); } else { window["onload"] = '.$handler.'; }</script>';
926
+ $echo_str .= '</div>';
927
+
928
+ return $echo_str;
929
+ }
930
+
931
+ function wfu_edit_filedetails($file_code) {
932
+ global $wpdb;
933
+ $table_name2 = $wpdb->prefix . "wfu_userdata";
934
+
935
+ $user = wp_get_current_user();
936
+ $is_admin = current_user_can( 'manage_options' );
937
+ //check if user is allowed to view file details
938
+ if ( !$is_admin ) {
939
+ return;
940
+ }
941
+ $file_code = wfu_sanitize_code($file_code);
942
+ $dec_file = wfu_get_filepath_from_safe($file_code);
943
+ if ( $dec_file === false ) return;
944
+
945
+ $dec_file = wfu_path_rel2abs(wfu_flatten_path($dec_file));
946
+
947
+ //check if user is allowed to perform this action
948
+ if ( !wfu_current_user_owes_file($dec_file) ) return;
949
+
950
+ //get file data from database with user data
951
+ $filedata = wfu_get_file_rec($dec_file, true);
952
+ if ( $filedata == null ) return;
953
+
954
+ if ( isset($_POST['submit']) ) {
955
+ if ( $_POST['submit'] == "Update" ) {
956
+ if ( !is_array($filedata->userdata) ) $filedata->userdata = array();
957
+ //check for errors
958
+ $is_error = false;
959
+ foreach ( $filedata->userdata as $userdata ) {
960
+ if ( !isset($_POST['wfu_filedetails_userdata_'.$userdata->propkey]) ) {
961
+ $is_error = true;
962
+ break;
963
+ }
964
+ }
965
+ if ( !$is_error ) {
966
+ $now_date = date('Y-m-d H:i:s');
967
+ $userdata_count = 0;
968
+ foreach ( $filedata->userdata as $userdata ) {
969
+ $userdata_count ++;
970
+ //make existing userdata record obsolete
971
+ $wpdb->update($table_name2,
972
+ array( 'date_to' => $now_date ),
973
+ array( 'uploadid' => $userdata->uploadid, 'propkey' => $userdata->propkey ),
974
+ array( '%s' ),
975
+ array( '%s', '%s' )
976
+ );
977
+ //insert new userdata record
978
+ $wpdb->insert($table_name2,
979
+ array(
980
+ 'uploadid' => $userdata->uploadid,
981
+ 'property' => $userdata->property,
982
+ 'propkey' => $userdata->propkey,
983
+ 'propvalue' => $_POST['wfu_filedetails_userdata_'.$userdata->propkey],
984
+ 'date_from' => $now_date,
985
+ 'date_to' => 0
986
+ ),
987
+ array(
988
+ '%s',
989
+ '%s',
990
+ '%d',
991
+ '%s',
992
+ '%s',
993
+ '%s'
994
+ )
995
+ );
996
+ }
997
+ if ( $userdata_count > 0 ) wfu_log_action('modify:'.$now_date, $dec_file, $user->ID, '', 0, 0, '', null);
998
+ }
999
+ if ( isset($_POST['wfu_filedetails_userid']) && $_POST['wfu_filedetails_userid'] != $filedata->uploaduserid ) {
1000
+ wfu_log_action('changeuser:'.$_POST['wfu_filedetails_userid'], $dec_file, $user->ID, '', 0, 0, '', null);
1001
+ }
1002
+ }
1003
+ }
1004
+ return true;
1005
+ }
1006
+
1007
+ ?>
lib/wfu_admin_composer.php CHANGED
@@ -1,898 +1,898 @@
1
- <?php
2
-
3
- function wfu_shortcode_composer($data = '', $shortcode_tag = 'wordpress_file_upload') {
4
- global $wpdb;
5
- global $wp_roles;
6
- $siteurl = site_url();
7
-
8
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
9
- $components = wfu_component_definitions();
10
- if ( $shortcode_tag == 'wordpress_file_upload' ) {
11
- $plugin_title = "Uploader";
12
- $cats = wfu_category_definitions();
13
- $defs = wfu_attribute_definitions();
14
- //remove personaldata category if Personal Data are not activated in
15
- //plugin's Settings
16
- if ($plugin_options["personaldata"] != "1" && isset($cats["personaldata"])) unset($cats["personaldata"]);
17
- }
18
- else {
19
- $plugin_title = "Browser";
20
- $cats = wfu_browser_category_definitions();
21
- $defs = wfu_browser_attribute_definitions();
22
- }
23
-
24
- if ( $data == "" ) {
25
- $shortcode = $plugin_options['shortcode'];
26
- $shortcode_full = '['.$shortcode_tag.' '.$shortcode.']';
27
- $postid = "";
28
- $postname = "";
29
- $posttype = "";
30
- $posthash = "";
31
- $shortcode_position = -1;
32
- $widgetid = "";
33
- $sidebar = "";
34
- $autosave = true;
35
- }
36
- else {
37
- $shortcode = trim(substr($data['shortcode'], strlen('['.$shortcode_tag), -1));
38
- $shortcode_full = $data['shortcode'];
39
- $postid = $data['post_id'];
40
- $postname = get_the_title($postid);
41
- $posttype_obj = get_post_type_object(get_post_type($postid));
42
- $posttype = ( $posttype_obj ? $posttype_obj->labels->singular_name : "" );
43
- $posthash = $data['post_hash'];
44
- $shortcode_position = $data['position'];
45
- $widgetid = ( isset($data['widgetid']) ? $data['widgetid'] : "" );
46
- $sidebar = ( isset($data['sidebar']) ? $data['sidebar'] : "" );
47
- $autosave = false;
48
- }
49
-
50
- // index $components
51
- $components_indexed = array();
52
- foreach ( $components as $component ) $components_indexed[$component['id']] = $component;
53
- // complete defs array and index dependencies
54
- $governors = array();
55
- $shortcode_attrs = wfu_shortcode_string_to_array($shortcode);
56
- //replace old attribute definitions with new ones
57
- $shortcode_attrs = wfu_old_to_new_attributes($shortcode_attrs);
58
- $shortcode_id = '';
59
- foreach ( $defs as $key => $def ) {
60
- $attr = $def['attribute'];
61
- $defs[$key]['default'] = $def['value'];
62
- //'flat' property keeps the original attribute, because 'attribute'
63
- //property will change for defs that their occurrence is higher than 1
64
- $defs[$key]['flat'] = $attr;
65
- if ( array_key_exists($attr, $shortcode_attrs) ) $defs[$key]['value'] = $shortcode_attrs[$attr];
66
- $subblock_active = false;
67
- //detect if the dependencies of this attribute will be disabled or not
68
- if ( ( $def['type'] == "onoff" && $defs[$key]['value'] == "true" ) ||
69
- ( $def['type'] == "radio" && in_array("*".$defs[$key]['value'], $def['listitems']) ) )
70
- $subblock_active = true;
71
- // assign dependencies if exist
72
- if ( $def['dependencies'] != null )
73
- foreach ( $def['dependencies'] as $dependency ) {
74
- if ( substr($dependency, 0, 1) == "!" ) //invert state for this dependency if an exclamation mark is defined
75
- $governors[substr($dependency, 1)] = array( 'attribute' => $attr, 'active' => !$subblock_active, 'inv' => '_inv' );
76
- else
77
- $governors[$dependency] = array( 'attribute' => $attr, 'active' => $subblock_active, 'inv' => '' );
78
- }
79
- if ( $attr == 'uploadid' || $attr == 'browserid' ) $shortcode_id = $defs[$key]['value'];
80
- }
81
-
82
- //check if attributes need to be generated more than once because their governor is a component field that appears more than once in placements attribute
83
- $key = 0;
84
- while ( $key < count($defs) ) {
85
- $defs[$key]['additional_values'] = array();
86
- $def = $defs[$key];
87
- $attr = $def['attribute'];
88
- //check if this attribute needs to be generated more than once
89
- if ( array_key_exists($attr, $governors) ) $governor = $governors[$attr]['attribute'];
90
- else $governor = "";
91
- if ( $governor != "" && isset($components_indexed[$governor]) && $components_indexed[$governor]['multiplacements'] && isset($shortcode_attrs['placements']) ) {
92
- //count how many occurrences of the governor attribute appear inside placements attribute
93
- $occurrences = 0;
94
- $sections = explode("/", $shortcode_attrs['placements']);
95
- foreach ( $sections as $section ) {
96
- $items_in_section = explode("+", trim($section));
97
- foreach ( $items_in_section as $item )
98
- if ( trim($item) == $governor ) $occurrences++;
99
- }
100
- //add indexed attributes if there is more than one occurrence
101
- for ( $ii = 2; $ii <= $occurrences; $ii++ ) {
102
- $def2 = $def;
103
- $def2['attribute'] .= $ii;
104
- $def2['name'] .= ' ('.$ii.')';
105
- if ( array_key_exists($def2['attribute'], $shortcode_attrs) )
106
- $def2['value'] = $shortcode_attrs[$def2['attribute']];
107
- else $def2['value'] = $def2['default'];
108
- array_splice($defs, $key + 1, 0, array($def2));
109
- $key++;
110
- }
111
- //check if the shortcode contains additional indexed definitions and store them in 'additional_values'
112
- $ii = max(1, $occurrences) + 1;
113
- while ( array_key_exists($attr.$ii, $shortcode_attrs) ) {
114
- $defs[$key]['additional_values'][$ii] = $shortcode_attrs[$attr.$ii];
115
- $ii++;
116
- }
117
- }
118
- $key++;
119
- }
120
-
121
- $echo_str = '<div id="wfu_wrapper" class="wrap">';
122
- $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
123
- $echo_str .= "\n\t".'<div id="wfu_page_obsolete_message" class="error" style="display:none;">';
124
- $echo_str .= "\n\t\t".'<p>'.WFU_DASHBOARD_PAGE_OBSOLETE.'</p>';
125
- $echo_str .= "\n\t".'</div>';
126
- $echo_str .= "\n\t".'<div id="wfu_update_rejected_message" class="error" style="display:none;">';
127
- $echo_str .= "\n\t\t".'<p>'.WFU_DASHBOARD_UPDATE_SHORTCODE_REJECTED.'</p>';
128
- $echo_str .= "\n\t".'</div>';
129
- $echo_str .= "\n\t".'<div id="wfu_update_failed_message" class="error" style="display:none;">';
130
- $echo_str .= "\n\t\t".'<p>'.WFU_DASHBOARD_UPDATE_SHORTCODE_FAILED.'</p>';
131
- $echo_str .= "\n\t".'</div>';
132
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
133
- if ( current_user_can( 'manage_options' ) ) $echo_str .= "\n\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=manage_mainmenu" class="button" title="go back">Go to Main Menu</a>';
134
- $echo_str .= "\n\t".'</div>';
135
- if ( $widgetid == "" ) $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px; margin-top: 20px;">'.( $data == "" ? 'Test' : $posttype.' <strong>'.$postname.'</strong>' ).': Shortcode Composer for '.$plugin_title.' <strong>ID '.$shortcode_id.'</strong></h2>';
136
- else $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px; margin-top: 20px;">Sidebar <strong>'.$sidebar.'</strong>: Shortcode Composer for Uploader <strong>ID '.$shortcode_id.'</strong></h2>';
137
- $echo_str .= "\n\t".'<div style="margin-top:10px; display:inline-block;">';
138
- if ( $data != "") $echo_str .= "\n\t\t".'<input id="wfu_update_shortcode" type="button" value="Update" class="button-primary" disabled="disabled" onclick="wfu_save_shortcode()" /><span id="wfu_update_shortcode_wait" class="spinner" style="float:right; display:none;"></span>';
139
- $echo_str .= "\n\t\t".'<input id="wfu_shortcode_original_enc" type="hidden" value="'.wfu_plugin_encode_string($shortcode_full).'" />';
140
- $echo_str .= "\n\t\t".'<input id="wfu_shortcode_tag" type="hidden" value="'.$shortcode_tag.'" />';
141
- $echo_str .= "\n\t\t".'<input id="wfu_shortcode_postid" type="hidden" value="'.$postid.'" />';
142
- $echo_str .= "\n\t\t".'<input id="wfu_shortcode_posthash" type="hidden" value="'.$posthash.'" />';
143
- $echo_str .= "\n\t\t".'<input id="wfu_shortcode_position" type="hidden" value="'.$shortcode_position.'" />';
144
- $echo_str .= "\n\t\t".'<input id="wfu_shortcode_widgetid" type="hidden" value="'.$widgetid.'" />';
145
- $echo_str .= "\n\t".'</div>';
146
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
147
- $echo_str .= "\n\t\t".'<div class="wfu_shortcode_container">';
148
- $echo_str .= "\n\t\t\t".'<span><strong>Generated Shortcode</strong></span>';
149
- $echo_str .= "\n\t\t\t".'<span id="wfu_save_label" class="wfu_save_label">saved</span>';
150
- $echo_str .= "\n\t\t\t".'<textarea id="wfu_shortcode" class="wfu_shortcode" rows="5">['.$shortcode_tag.']</textarea>';
151
- $echo_str .= "\n\t\t\t".'<div id="wfu_attribute_defaults" style="display:none;">';
152
- // remove hidden attributes from defs array
153
- foreach ( $defs as $key => $def ) if ( $def['type'] == "hidden" ) unset($defs[$key]);
154
- foreach ( $defs as $def )
155
- $echo_str .= "\n\t\t\t\t".'<input id="wfu_attribute_default_'.$def['attribute'].'" type="hidden" value="'.$def['default'].'" />';
156
- $echo_str .= "\n\t\t\t".'</div>';
157
- $echo_str .= "\n\t\t\t".'<div id="wfu_attribute_values" style="display:none;">';
158
- foreach ( $defs as $def ) {
159
- $echo_str .= "\n\t\t\t\t".'<input id="wfu_attribute_value_'.$def['attribute'].'" type="hidden" value="'.$def['value'].'" />';
160
- //add additional values, if exist
161
- foreach( $def['additional_values'] as $key => $val )
162
- $echo_str .= "\n\t\t\t\t".'<input id="wfu_attribute_value_'.$def['attribute'].$key.'" type="hidden" value="'.$val.'" />';
163
- }
164
- $echo_str .= "\n\t\t\t".'</div>';
165
- $echo_str .= "\n\t\t".'</div>';
166
- $echo_str .= "\n\t".'</div>';
167
- $echo_str .= "\n\t".'<h3 id="wfu_tab_container" class="nav-tab-wrapper">';
168
- $is_first = true;
169
- foreach ( $cats as $key => $cat ) {
170
- $echo_str .= "\n\t\t".'<a id="wfu_tab_'.$key.'" class="nav-tab'.( $is_first ? ' nav-tab-active' : '' ).'" href="javascript: wfu_admin_activate_tab(\''.$key.'\');">'.$cat.'</a>';
171
- $is_first = false;
172
- }
173
- $echo_str .= "\n\t".'</h3>';
174
-
175
- $prevcat = "";
176
- $prevsubcat = "";
177
- $is_first = true;
178
- $block_open = false;
179
- $subblock_open = false;
180
- foreach ( $defs as $def ) {
181
- $attr = $def['attribute'];
182
- //check if this attribute depends on other
183
- if ( !array_key_exists($attr, $governors) ) $governors[$attr] = "";
184
- if ( $governors[$attr] != "" ) $governor = $governors[$attr];
185
- else $governor = array( 'attribute' => "independent", 'active' => true, 'inv' => '' );
186
-
187
- //close previous blocks
188
- if ( $def['parent'] == "" ) {
189
- if ( $subblock_open ) {
190
- $echo_str .= "\n\t\t\t\t\t\t\t".'</tbody>';
191
- $echo_str .= "\n\t\t\t\t\t\t".'</table>';
192
- $subblock_open = false;
193
- }
194
- if ( $block_open ) {
195
- $echo_str .= "\n\t\t\t\t\t".'</div></td>';
196
- $echo_str .= "\n\t\t\t\t".'</tr>';
197
- $block_open = false;
198
- }
199
- }
200
- //check if new category must be generated
201
- if ( $def['category'] != $prevcat ) {
202
- if ( $prevcat != "" ) {
203
- $echo_str .= "\n\t\t\t".'</tbody>';
204
- $echo_str .= "\n\t\t".'</table>';
205
- $echo_str .= "\n\t".'</div>';
206
- }
207
- $prevcat = $def['category'];
208
- $prevsubcat = "";
209
- $echo_str .= "\n\t".'<div id="wfu_container_'.$prevcat.'" class="wfu_container"'.( $is_first ? '' : ' style="display:none;"' ).'">';
210
- $echo_str .= "\n\t\t".'<table class="form-table wfu_main_table">';
211
- $echo_str .= "\n\t\t\t".'<thead><tr><th></th><td></td><td></td></tr></thead>';
212
- $echo_str .= "\n\t\t\t".'<tbody>';
213
- $is_first = false;
214
- }
215
- //check if new sub-category must be generated
216
- if ( $def['subcategory'] != $prevsubcat ) {
217
- $prevsubcat = $def['subcategory'];
218
- $echo_str .= "\n\t\t\t\t".'<tr class="wfu_subcategory">';
219
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row" colspan="3">';
220
- $echo_str .= "\n\t\t\t\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 10px;">'.$prevsubcat.'</h3>';
221
- $echo_str .= "\n\t\t\t\t\t".'</th>';
222
- $echo_str .= "\n\t\t\t\t".'</tr>';
223
- }
224
- //draw attribute element
225
- if ( $def['parent'] == "" ) {
226
- $dlp = "\n\t\t\t\t";
227
- }
228
- else {
229
- if ( !$subblock_open ) {
230
- $echo_str .= "\n\t\t\t\t\t\t".'<div class="wfu_shadow wfu_shadow_'.$def['parent'].$governor['inv'].'" style="display:'.( $governor['active'] ? 'none' : 'block' ).';"></div>';
231
- $echo_str .= "\n\t\t\t\t\t\t".'<table class="form-table wfu_inner_table" style="margin:0;">';
232
- $echo_str .= "\n\t\t\t\t\t\t\t".'<tbody>';
233
- }
234
- $dlp = "\n\t\t\t\t\t\t\t\t";
235
- }
236
- $echo_str .= $dlp.'<tr>';
237
- $echo_str .= $dlp."\t".'<th scope="row"><div class="wfu_td_div">';
238
- if ( $def['parent'] == "" ) $echo_str .= $dlp."\t\t".'<div class="wfu_shadow wfu_shadow_'.$governor['attribute'].$governor['inv'].'" style="display:'.( $governor['active'] ? 'none' : 'block' ).';"></div>';
239
- $echo_str .= $dlp."\t\t".'<div class="wfu_restore_container" title="Double-click to restore defaults setting"><img src="'.WFU_IMAGE_ADMIN_RESTOREDEFAULT.'" ondblclick="wfu_apply_value(\''.$attr.'\', \''.$def['type'].'\', \''.$def['default'].'\');" /></div>';
240
- $echo_str .= $dlp."\t\t".'<label for="wfu_attribute_'.$attr.'">'.$def['name'].'</label>';
241
- $echo_str .= $dlp."\t\t".'<input type="hidden" name="wfu_attribute_governor_'.$governor['attribute'].'" class="wfu_attribute_governor" value="'.$attr.'" />';
242
- $echo_str .= $dlp."\t\t".'<div class="wfu_help_container" title="'.$def['help'].'"><img src="'.WFU_IMAGE_ADMIN_HELP.'" /></div>';
243
- $echo_str .= $dlp."\t".'</div></th>';
244
- $echo_str .= $dlp."\t".'<td style="vertical-align:top;"><div class="wfu_td_div">';
245
- if ( $def['parent'] == "" ) $echo_str .= $dlp."\t\t".'<div class="wfu_shadow wfu_shadow_'.$governor['attribute'].$governor['inv'].'" style="display:'.( $governor['active'] ? 'none' : 'block' ).';"></div>';
246
- if ( $def['type'] == "onoff" ) {
247
- $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_onoff_container_'.( $def['value'] == "true" ? "on" : "off" ).'" onclick="wfu_admin_onoff_clicked(\''.$attr.'\');">';
248
- $echo_str .= $dlp."\t\t\t".'<div class="wfu_onoff_slider"></div>';
249
- $echo_str .= $dlp."\t\t\t".'<span class="wfu_onoff_text">ON</span>';
250
- $echo_str .= $dlp."\t\t\t".'<span class="wfu_onoff_text">OFF</span>';
251
- $echo_str .= $dlp."\t\t".'</div>';
252
- }
253
- elseif ( $def['type'] == "text" ) {
254
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
255
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$val.'" style="display:block;" />';
256
- if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
257
- }
258
- elseif ( $def['type'] == "placements" ) {
259
- $components_used = array();
260
- foreach ( $components as $component ) $components_used[$component['id']] = 0;
261
- $centered_content = '<div class="wfu_component_box_inner"><div class="wfu_component_box_label">XXX</div></div>';
262
- $centered_content_multi = '<div class="wfu_component_box_inner"><div class="wfu_component_box_label">XXX</div><div class="wfu_component_box_index">YYY</div></div>';
263
- $echo_str .= $dlp."\t\t".'<div class="wfu_placements_wrapper">';
264
- $echo_str .= $dlp."\t\t\t".'<div id="wfu_placements_container" class="wfu_placements_container">';
265
- $itemplaces = explode("/", $def['value']);
266
- foreach ( $itemplaces as $section ) {
267
- $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_hor"></div>';
268
- $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_ver"></div>';
269
- $items_in_section = explode("+", trim($section));
270
- $section_array = array( );
271
- foreach ( $items_in_section as $item_in_section ) {
272
- if ( key_exists($item_in_section, $components_indexed) ) {
273
- if ( $components_indexed[$item_in_section]['multiplacements'] || $components_used[$item_in_section] == 0 ) {
274
- $components_used[$item_in_section] ++;
275
- if ( $components_indexed[$item_in_section]['multiplacements'] ) {
276
- $multi_index = $components_used[$item_in_section];
277
- $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_box_'.$item_in_section.'_'.$multi_index.'" class="wfu_component_box" draggable="true" title="'.$components_indexed[$item_in_section]['help'].'">'.str_replace(array("XXX", "YYY"), array($components_indexed[$item_in_section]['name'], $multi_index), $centered_content_multi).'</div>';
278
- }
279
- else
280
- $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_box_'.$item_in_section.'_0" class="wfu_component_box" draggable="true" title="'.$components_indexed[$item_in_section]['help'].'">'.str_replace("XXX", $components_indexed[$item_in_section]['name'], $centered_content).'</div>';
281
- $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_ver"></div>';
282
- }
283
- }
284
- }
285
- }
286
- $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_hor"></div>';
287
- $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_bar_hor" class="wfu_component_bar_hor"></div>';
288
- $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_bar_ver" class="wfu_component_bar_ver"></div>';
289
- $echo_str .= $dlp."\t\t\t".'</div>';
290
- $echo_str .= $dlp."\t\t\t".'<div id="wfu_componentlist_container" class="wfu_componentlist_container">';
291
- $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_componentlist_dragdrop" class="wfu_componentlist_dragdrop" style="display:none;"></div>';
292
- $ii = 1;
293
- foreach ( $components as $component ) {
294
- $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_box_container_'.$component['id'].'" class="wfu_component_box_container">';
295
- $echo_str .= $dlp."\t\t\t\t\t".'<div class="wfu_component_box_base">'.str_replace("XXX", $component['name'], $centered_content).'</div>';
296
- if ( $component['multiplacements'] ) {
297
- $multi_index = $components_used[$component['id']] + 1;
298
- $echo_str .= $dlp."\t\t\t\t\t".'<div id="wfu_component_box_'.$component['id'].'_'.$multi_index.'" class="wfu_component_box wfu_inbase" draggable="true" title="'.$component['help'].'">'.str_replace(array("XXX", "YYY"), array($component['name'], $multi_index), $centered_content_multi).'</div>';
299
- }
300
- elseif ( $components_used[$component['id']] == 0 )
301
- $echo_str .= $dlp."\t\t\t\t\t".'<div id="wfu_component_box_'.$component['id'].'_0" class="wfu_component_box wfu_inbase" draggable="true" title="'.$component['help'].'">'.str_replace("XXX", $component['name'], $centered_content).'</div>';
302
- $echo_str .= $dlp."\t\t\t\t".'</div>'.( ($ii++) % 3 == 0 ? '<br />' : '' );
303
- }
304
- $echo_str .= $dlp."\t\t\t".'</div>';
305
- $echo_str .= $dlp."\t\t".'</div>';
306
- }
307
- elseif ( $def['type'] == "ltext" ) {
308
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
309
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" class="wfu_long_text" value="'.$val.'" />';
310
- if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
311
- }
312
- elseif ( $def['type'] == "integer" ) {
313
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
314
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="number" name="wfu_text_elements" class="wfu_short_text" min="1" value="'.$val.'" />';
315
- if ( isset($def['listitems']['unit']) ) $echo_str .= $dlp."\t\t".'<label> '.$def['listitems']['unit'].'</label>';
316
- }
317
- elseif ( $def['type'] == "float" ) {
318
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
319
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="number" name="wfu_text_elements" class="wfu_short_text" step="any" min="0" value="'.$val.'" />';
320
- if ( isset($def['listitems']['unit']) ) $echo_str .= $dlp."\t\t".'<label> '.$def['listitems']['unit'].'</label>';
321
- }
322
- elseif ( $def['type'] == "date" ) {
323
- $val = $def['value'];
324
- $echo_str .= $dlp."\t\t".'<div class="wfu_date_container"><input id="wfu_attribute_'.$attr.'" type="text" value="'.$val.'" readonly style="padding-right:16px; background-color:white; width:auto;" /><img class="wfu_datereset_button" src="'.WFU_IMAGE_ADMIN_SUBFOLDER_CANCEL.'" onclick="var f = document.getElementById(\'wfu_attribute_'.$attr.'\'); f.value = \'\'; wfu_update_date_value({target:f});" /></div><label style="font-size:smaller; margin-left:4px;">format: YYYY-MM-DD</label>';
325
- $echo_str .= wfu_inject_js_code('jQuery(function() {jQuery("#wfu_attribute_'.$attr.'").datepicker({dateFormat: "yy-mm-dd", onClose: function(date, picker) {wfu_update_date_value({target:this});}});});');
326
- }
327
- elseif ( $def['type'] == "radio" ) {
328
- $echo_str .= $dlp."\t\t";
329
- $ii = 0;
330
- foreach ( $def['listitems'] as $item )
331
- $echo_str .= '<input name="wfu_radioattribute_'.$attr.'" type="radio" value="'.$item.'" '.( $item == $def['value'] || $item == "*".$def['value'] ? 'checked="checked" ' : '' ).'style="width:auto; margin:0px 2px 0px '.( ($ii++) == 0 ? '0px' : '8px' ).';" onchange="wfu_admin_radio_clicked(\''.$attr.'\');" />'.( $item[0] == "*" ? substr($item, 1) : $item );
332
- // $echo_str .= '<input type="button" class="button" value="empty" style="width:auto; margin:-2px 0px 0px 8px;" />';
333
- }
334
- elseif ( $def['type'] == "ptext" ) {
335
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
336
- $parts = explode("/", $val);
337
- $singular = $parts[0];
338
- if ( count($parts) < 2 ) $plural = $singular;
339
- else $plural = $parts[1];
340
- $echo_str .= $dlp."\t\t".'<span class="wfu_ptext_span">Singular</span><input id="wfu_attribute_s_'.$attr.'" type="text" name="wfu_ptext_elements" value="'.$singular.'" />';
341
- if ( $def['variables'] != null ) if ( count($def['variables']) > 0 ) $echo_str .= $dlp."\t\t".'<br /><span class="wfu_ptext_span">&nbsp;</span>';
342
- if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_s_'.$attr);
343
- $echo_str .= $dlp."\t\t".'<br /><span class="wfu_ptext_span">Plural</span><input id="wfu_attribute_p_'.$attr.'" type="text" name="wfu_ptext_elements" value="'.$plural.'" />';
344
- if ( $def['variables'] != null ) if ( count($def['variables']) > 0 ) $echo_str .= $dlp."\t\t".'<br /><span class="wfu_ptext_span">&nbsp;</span>';
345
- if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_p_'.$attr, $dlp);
346
- }
347
- elseif ( $def['type'] == "mtext" ) {
348
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
349
- $echo_str .= $dlp."\t\t".'<textarea id="wfu_attribute_'.$attr.'" name="wfu_text_elements" rows="5">'.$val.'</textarea>';
350
- if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
351
- }
352
- elseif ( $def['type'] == "folderlist" ) {
353
- $echo_str .= $dlp."\t\t".'<div id="wfu_subfolders_inner_shadow_'.$attr.'" class="wfu_subfolders_inner_shadow" style="display:none;"></div>';
354
- $subfolders = wfu_parse_folderlist($def['value']);
355
- $poptitle = "Populate list automatically with the first-level subfolders of the path defined in uploadpath";
356
- $edittitle = "Allow the user to type the subfolder and filter the list during typing";
357
- $echo_str .= $dlp."\t\t".'<input type="checkbox" id="wfu_subfolders_auto_'.$attr.'"'.( substr($def['value'], 0, 4) == "auto" ? ' checked="checked"' : '' ).' onchange="wfu_subfolders_auto_changed(\''.$attr.'\');" title="'.$poptitle.'" /><label for="wfu_subfolders_auto_'.$attr.'" title="'.$poptitle.'"> Auto-populate list</label>';
358
- $echo_str .= $dlp."\t\t".'<div style="display:'.( substr($def['value'], 0, 4) == "auto" ? 'inline' : 'none' ).'; padding:0; margin:0 0 0 30px; background:none; border:none;"><input type="checkbox" id="wfu_subfolders_editable_'.$attr.'"'.( substr($def['value'], 0, 5) == "auto+" ? ' checked="checked"' : '' ).' onchange="wfu_subfolders_auto_changed(\''.$attr.'\');" title="'.$edittitle.'" /><label for="wfu_subfolders_editable_'.$attr.'" title="'.$edittitle.'"> List is editable</label></div><br />';
359
- $echo_str .= $dlp."\t\t".'<input type="hidden" id="wfu_subfolders_manualtext_'.$attr.'" value="'.( substr($def['value'], 0, 4) == "auto" ? "" : $def['value'] ).'" />';
360
- $echo_str .= $dlp."\t\t".'<select id="wfu_attribute_'.$attr.'" class="wfu_select_folders'.( count($subfolders['path']) == 0 ? ' wfu_select_folders_empty' : '' ).'" size="7"'.( substr($def['value'], 0, 4) == "auto" ? ' disabled="disabled"' : '' ).' onchange="wfu_subfolders_changed(\''.$attr.'\');">';
361
- foreach ($subfolders['path'] as $ind => $subfolder) {
362
- if ( substr($subfolder, -1) == '/' ) $subfolder = substr($subfolder, 0, -1);
363
- $subfolder_raw = explode('/', $subfolder);
364
- $subfolder = $subfolder_raw[count($subfolder_raw) - 1];
365
- $text = str_repeat("&nbsp;&nbsp;&nbsp;", intval($subfolders['level'][$ind])).$subfolders['label'][$ind];
366
- $subvalue = str_repeat("*", intval($subfolders['level'][$ind])).( $subfolders['default'][$ind] ? '&' : '' ).( $subfolder == "" ? '{root}' : $subfolder ).'/'.$subfolders['label'][$ind];
367
- $echo_str .= $dlp."\t\t\t".'<option class="'.( $subfolders['default'][$ind] ? 'wfu_select_folders_option_default' : '' ).'" value="'.wfu_plugin_encode_string($subvalue).'">'.$text.'</option>';
368
- }
369
- $echo_str .= $dlp."\t\t\t".'<option value="">'.( substr($def['value'], 0, 4) != "auto" && count($subfolders['path']) == 0 ? 'press here' : '' ).'</option>';
370
- $echo_str .= $dlp."\t\t".'</select>';
371
- $echo_str .= $dlp."\t\t".'<div id="wfu_subfolder_nav_'.$attr.'" class="wfu_subfolder_nav_container">';
372
- $echo_str .= $dlp."\t\t\t".'<table class="wfu_subfolder_nav"><tbody>';
373
- $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_up_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" disabled="disabled" title="move item up" onclick="wfu_subfolders_up_clicked(\''.$attr.'\');">&uarr;</button></tr></td>';
374
- $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_left_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="make it parent" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_left_clicked(\''.$attr.'\');">&larr;</button>';
375
- $echo_str .= $dlp."\t\t\t\t".'<button id="wfu_subfolders_right_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="make it child" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_right_clicked(\''.$attr.'\');">&rarr;</button></tr></td>';
376
- $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_down_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="move item down" disabled="disabled" onclick="wfu_subfolders_down_clicked(\''.$attr.'\');">&darr;</button></tr></td>';
377
- $echo_str .= $dlp."\t\t\t\t".'<tr><td style="line-height:0;"><button class="button" style="visibility:hidden; height:10px;"></button></tr></td>';
378
- $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_add_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="add new item" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_add_clicked(\''.$attr.'\');">+</button></tr></td>';
379
- $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_def_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="make it default" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_def_clicked(\''.$attr.'\');">&diams;</button></tr></td>';
380
- $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_del_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="delete item" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_del_clicked(\''.$attr.'\');">-</button></tr></td>';
381
- $echo_str .= $dlp."\t\t\t".'</tbody></table>';
382
- $echo_str .= $dlp."\t\t".'</div>';
383
- $echo_str .= $dlp."\t\t".'<div id="wfu_subfolder_tools_'.$attr.'" class="wfu_subfolder_tools_container wfu_subfolder_tools_disabled">';
384
- $echo_str .= $dlp."\t\t\t".'<table class="wfu_subfolder_tools"><tbody><tr>';
385
- $echo_str .= $dlp."\t\t\t\t".'<td style="width:40%;">';
386
- $echo_str .= $dlp."\t\t\t\t\t".'<label>Label</label>';
387
- $echo_str .= $dlp."\t\t\t\t\t".'<input id="wfu_subfolders_label_'.$attr.'" name="wfu_subfolder_tools_input" type="text" disabled="disabled" />';
388
- $echo_str .= $dlp."\t\t\t\t".'</td>';
389
- $echo_str .= $dlp."\t\t\t\t".'<td style="width:60%;"><div style="padding-right:36px;">';
390
- $echo_str .= $dlp."\t\t\t\t\t".'<label>Path</label>';
391
- $echo_str .= $dlp."\t\t\t\t\t".'<input id="wfu_subfolders_path_'.$attr.'" name="wfu_subfolder_tools_input" type="text" disabled="disabled" />';
392
- $echo_str .= $dlp."\t\t\t\t\t".'<button id="wfu_subfolders_browse_'.$attr.'" class="button" title="browse folders" style="right:18px;" disabled="disabled" onclick="wfu_subfolders_browse_clicked(\''.$attr.'\');"><img src="'.WFU_IMAGE_ADMIN_SUBFOLDER_BROWSE.'" ></button>';
393
- $echo_str .= $dlp."\t\t\t\t\t".'<button id="wfu_subfolders_ok_'.$attr.'" class="button" title="save changes" style="right:0px;" disabled="disabled" onclick="wfu_subfolders_ok_clicked(\''.$attr.'\');"><img src="'.WFU_IMAGE_ADMIN_SUBFOLDER_OK.'" ></button>';
394
- // file browser dialog
395
- $echo_str .= $dlp."\t\t\t\t\t".'<div id="wfu_subfolders_browser_'.$attr.'" class="wfu_subfolders_browser_container" style="display:none;">';
396
- $echo_str .= $dlp."\t\t\t\t\t\t".'<table><tbody>';
397
- $echo_str .= $dlp."\t\t\t\t\t\t\t".'<tr><td style="height:15px;">';
398
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'<div>';
399
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<label>Folder Browser</label>';
400
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<button class="button wfu_folder_browser_cancel" onclick="wfu_folder_browser_cancel_clicked(\''.$attr.'\');"><img src="'.WFU_IMAGE_ADMIN_SUBFOLDER_CANCEL.'" ></button>';
401
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'</div>';
402
- $echo_str .= $dlp."\t\t\t\t\t\t\t".'</td></tr>';
403
- $echo_str .= $dlp."\t\t\t\t\t\t\t".'<tr><td style="height:106px;">';
404
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'<div>';
405
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<select id="wfu_subfolders_browser_list_'.$attr.'" size="2" onchange="wfu_subfolders_browser_list_changed(\''.$attr.'\');">';
406
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<option>Value</option>';
407
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<option>Value2</option>';
408
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<option>Value3</option>';
409
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'</select>';
410
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<div id="wfu_subfolders_browser_msgcont_'.$attr.'" class="wfu_folder_browser_loading_container" style="padding-top:40px;">';
411
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<label id="wfu_subfolders_browser_msg_'.$attr.'" style="margin-bottom:4px;">loading folder contents...</label>';
412
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<img id="wfu_subfolders_browser_img_'.$attr.'" src="'.WFU_IMAGE_ADMIN_SUBFOLDER_LOADING.'" ></button>';
413
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'</div>';
414
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'</div>';
415
- $echo_str .= $dlp."\t\t\t\t\t\t\t".'</td></tr>';
416
- $echo_str .= $dlp."\t\t\t\t\t\t\t".'<tr><td align="right" style="height:15px;">';
417
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'<div>';
418
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<button class="button" onclick="wfu_folder_browser_cancel_clicked(\''.$attr.'\');">Cancel</button>';
419
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<button id="wfu_subfolders_browser_ok_'.$attr.'" class="button">Ok</button>';
420
- $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'</div>';
421
- $echo_str .= $dlp."\t\t\t\t\t\t\t".'</td></tr>';
422
- $echo_str .= $dlp."\t\t\t\t\t\t".'</tbody></table>';
423
- $echo_str .= $dlp."\t\t\t\t\t".'</div>';
424
-
425
- $echo_str .= $dlp."\t\t\t\t".'</div></td>';
426
- $echo_str .= $dlp."\t\t\t".'</tr></tbody></table>';
427
- $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_isnewitem_'.$attr.'" type="hidden" value="" />';
428
- $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_newitemindex_'.$attr.'" type="hidden" value="" />';
429
- $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_newitemlevel_'.$attr.'" type="hidden" value="" />';
430
- $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_newitemlevel2_'.$attr.'" type="hidden" value="" />';
431
- $echo_str .= $dlp."\t\t".'</div>';
432
- }
433
- elseif ( $def['type'] == "mchecklist" ) {
434
- $help_count = 0;
435
- foreach ( $def['listitems'] as $key => $item ) {
436
- $parts = explode("/", $item);
437
- if ( count($parts) == 1 ) {
438
- $items[$key]['id'] = $item;
439
- $items[$key]['help'] = '';
440
- }
441
- else {
442
- $items[$key]['id'] = $parts[0];
443
- $items[$key]['help'] = $parts[1];
444
- $help_count ++;
445
- }
446
- }
447
- $def['value'] = strtolower($def['value']);
448
- if ( $def['value'] == "all" ) $selected = array();
449
- else $selected = explode(",", $def['value']);
450
- foreach ( $selected as $key => $item ) $selected[$key] = trim($item);
451
- $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_mchecklist_container">';
452
- $is_first = true;
453
- foreach ( $items as $key => $item ) {
454
- if ( !$is_first ) $echo_str .= "<br />";
455
- $is_first = false;
456
- $echo_str .= $dlp."\t\t\t".'<div class="wfu_mchecklist_item"><input id="wfu_attribute_'.$attr.'_'.$key.'" type="checkbox"'.( $def['value'] == "all" || in_array($item['id'], $selected) ? ' checked="checked"' : '' ).( $def['value'] == "all" ? ' disabled="disabled"' : '' ).' onchange="wfu_update_mchecklist_value(\''.$attr.'\');" /><label for="wfu_attribute_'.$attr.'_'.$key.'">'.$item['id'].'</label>';
457
- if ( $item['help'] != '' ) $echo_str .= '<div class="wfu_help_container" title="'.$item['help'].'"><img src="'.WFU_IMAGE_ADMIN_HELP.'" /></div>';
458
- $echo_str .= '</div>';
459
- }
460
- $echo_str .= $dlp."\t\t".'</div>';
461
- $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'_optionhelp" class="wfu_help_container" title="" style="display:none; position:absolute;"><img src="'.WFU_IMAGE_ADMIN_HELP.'" style="visibility:visible;" /></div>';
462
- $echo_str .= $dlp."\t\t".'<div class="wfu_mchecklist_checkall"><input id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_mchecklist_value(\''.$attr.'\');"'.( $def['value'] == "all" ? ' checked="checked"' : '' ).' /> Select all</div>';
463
- }
464
- elseif ( $def['type'] == "rolelist" ) {
465
- $roles = $wp_roles->get_names();
466
- $selected = explode(",", $def['value']);
467
- $default_administrator = ( is_array($def['listitems']) && in_array('default_administrator', $def['listitems']) );
468
- if ( in_array('all', $selected) ) $rolesselected = ( $default_administrator ? array("administrator") : array( ) );
469
- else $rolesselected = $selected;
470
- foreach ( $selected as $key => $item ) $selected[$key] = trim($item);
471
- $echo_str .= $dlp."\t\t".'<table class="wfu_rolelist_container"><tbody><tr><td>';
472
- $echo_str .= $dlp."\t\t".'<select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.count($roles).'" onchange="wfu_update_rolelist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' disabled="disabled"' : '' ).'>';
473
- foreach ( $roles as $roleid => $rolename )
474
- $echo_str .= $dlp."\t\t\t".'<option value="'.$roleid.'"'.( in_array($roleid, $rolesselected) ? ' selected="selected"' : '' ).'>'.$rolename.'</option>';
475
- $echo_str .= $dlp."\t\t".'</select>';
476
- $echo_str .= $dlp."\t\t".'</td><td>';
477
- $echo_str .= $dlp."\t\t".'<div class="wfu_rolelist_checkbtn"><input class="'.( $default_administrator ? 'wfu_default_administrator' : '' ).'" id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_rolelist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all"> Select all</label></div><br />';
478
- $echo_str .= $dlp."\t\t".'<div class="wfu_rolelist_checkbtn"><input id="wfu_attribute_'.$attr.'_guests" type="checkbox" onchange="wfu_update_rolelist_value(\''.$attr.'\');"'.( in_array("guests", $selected) ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_guests"> Include guests</label></div>';
479
- $echo_str .= $dlp."\t\t".'</td></tr></tbody></table>';
480
- }
481
- elseif ( $def['type'] == "userlist" ) {
482
- $users = get_users();
483
- $selected = explode(",", $def['value']);
484
- $default_0 = ( is_array($def['listitems']) && in_array('default_0', $def['listitems']) );
485
- if ( in_array('all', $selected) ) $usersselected = ( $default_0 ? array($users[0]->user_login) : array( ) );
486
- else $usersselected = $selected;
487
- $only_current = false;
488
- $echo_str .= $dlp."\t\t".'<table class="wfu_userlist_container"><tbody><tr>';
489
- if ( is_array($def['listitems']) && in_array('include_current', $def['listitems']) ) {
490
- $only_current = ( $def['value'] == 'current' );
491
- if ( $only_current ) $usersselected = ( $default_0 ? array($users[0]->user_login) : array( ) );
492
- $echo_str .= $dlp."\t\t".'<td colspan="2"><div class="wfu_userlist_checkbtn"><input id="wfu_attribute_'.$attr.'_current" type="checkbox" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( $only_current ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_current"> Only From Current User</label></div>';
493
- $echo_str .= $dlp."\t\t".'</td></tr><tr>';
494
- }
495
- $echo_str .= $dlp."\t\t".'<td><select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.min(count($users), 10).'" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( $only_current || in_array('all', $selected) ? ' disabled="disabled"' : '' ).'>';
496
- foreach ( $users as $userid => $user )
497
- $echo_str .= $dlp."\t\t\t".'<option value="'.$user->user_login.'"'.( in_array($user->user_login, $usersselected) ? ' selected="selected"' : '' ).'>'.$user->display_name.' ('.$user->user_login.')</option>';
498
- $echo_str .= $dlp."\t\t".'</select>';
499
- $echo_str .= $dlp."\t\t".'</td><td>';
500
- $echo_str .= $dlp."\t\t".'<div class="wfu_userlist_checkbtn"><input class="'.( $default_0 ? 'wfu_default_0' : '' ).'" id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all"> Select all</label></div><br />';
501
- $echo_str .= $dlp."\t\t".'<div class="wfu_userlist_checkbtn"><input id="wfu_attribute_'.$attr.'_guests" type="checkbox" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( in_array("guests", $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_guests"> Include guests</label></div>';
502
- $echo_str .= $dlp."\t\t".'</td></tr></tbody></table>';
503
- }
504
- elseif ( $def['type'] == "postlist" ) {
505
- $processed = false;
506
- if ( is_array($def['listitems']) ) {
507
- $has_current = in_array('include_current', $def['listitems']);
508
- if ( $has_current ) unset($def['listitems'][array_search('include_current', $def['listitems'])]);
509
- foreach ( $def['listitems'] as $post_type ) {
510
- // if a post type cannot be found then we reset the list so that it is not processed at all
511
- if ( get_post_type_object( $post_type ) == null ) {
512
- $def['listitems'] = array();
513
- break;
514
- }
515
- }
516
- if ( count($def['listitems']) > 0 ) {
517
- $selected = explode(",", $def['value']);
518
- $only_current = false;
519
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'_postlist" type="hidden" value="'.implode(",", $def['listitems']).'" />';
520
- $echo_str .= $dlp."\t\t".'<table class="wfu_postlist_container"><tbody><tr>';
521
- if ( $has_current ) {
522
- $only_current = ( $def['value'] == 'current' );
523
- if ( $only_current ) $sselected = array();
524
- $echo_str .= $dlp."\t\t".'<td colspan="'.count($def['listitems']).'"><div class="wfu_postlist_checkbtn"><input id="wfu_attribute_'.$attr.'_current" type="checkbox" onchange="wfu_update_postlist_value(\''.$attr.'\');"'.( $only_current ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_current"> Only From Current Post/Page</label></div>';
525
- $echo_str .= $dlp."\t\t".'</td></tr><tr>';
526
- }
527
- $postargs = array( 'post_type' => $def['listitems'], 'post_status' => "publish,private,draft", 'posts_per_page' => -1 );
528
- $postargs = apply_filters("_wfu_get_posts", $postargs, "visual_editor");
529
- $posts = get_posts($postargs);
530
- $list = wfu_construct_post_list($posts);
531
- $td_width = (int)(100 / count($def['listitems']));
532
- foreach ( $def['listitems'] as $post_type ) {
533
- $flatlist = wfu_flatten_post_list($list[$post_type]);
534
- $postobj = get_post_type_object( $post_type );
535
- $echo_str .= $dlp."\t\t".'<td style="width:'.$td_width.'%;"><div class="wfu_postlist_header"><label>'.$postobj->label.'</label><div class="wfu_postlist_selectall"><input id="wfu_attribute_'.$attr.'_all_'.$post_type.'" type="checkbox" onchange="wfu_update_postlist_value(\''.$attr.'\');"'.( in_array('all', $selected) || in_array('all'.$post_type, $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all_'.$post_type.'"> Select all</label></div></div>';
536
- $echo_str .= $dlp."\t\t".'<select id="wfu_attribute_'.$attr.'_'.$post_type.'" multiple="multiple" size="'.min(count($flatlist), 10).'" onchange="wfu_update_postlist_value(\''.$attr.'\');"'.( $only_current || in_array('all', $selected) || in_array('all'.$post_type, $selected) ? ' disabled="disabled"' : '' ).' style="width:100%; overflow:auto;">';
537
- foreach ( $flatlist as $item )
538
- $echo_str .= $dlp."\t\t\t".'<option value="'.$item['id'].'"'.( in_array($item['id'], $selected) ? ' selected="selected"' : '' ).'>'.str_repeat('&nbsp;', 4 * $item['level']).( $item['status'] == 1 ? '[Private]' : ( $item['status'] == 2 ? '[Draft]' : '' ) ).$item['title'].'</option>';
539
- $echo_str .= $dlp."\t\t".'</select></td>';
540
- }
541
- $echo_str .= $dlp."\t\t".'</tr></tbody></table>';
542
- $processed = true;
543
- }
544
- }
545
- if ( !$processed ) {
546
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
547
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$val.'" />';
548
- }
549
- }
550
- elseif ( $def['type'] == "bloglist" ) {
551
- if ( function_exists('wp_get_sites') ) {
552
- $blogs = wp_get_sites( );
553
- $selected = explode(",", $def['value']);
554
- if ( in_array('all', $selected) ) $blogsselected = array( );
555
- else $blogsselected = $selected;
556
- $only_current = false;
557
- $echo_str .= $dlp."\t\t".'<table class="wfu_bloglist_container"><tbody><tr>';
558
- if ( is_array($def['listitems']) && in_array('include_current', $def['listitems']) ) {
559
- $only_current = ( $def['value'] == 'current' );
560
- if ( $only_current ) $blogsselected = array( );
561
- $echo_str .= $dlp."\t\t".'<td colspan="2"><div class="wfu_bloglist_checkbtn"><input id="wfu_attribute_'.$attr.'_current" type="checkbox" onchange="wfu_update_bloglist_value(\''.$attr.'\');"'.( $only_current ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_current"> Only From Current Site</label></div>';
562
- $echo_str .= $dlp."\t\t".'</td></tr><tr>';
563
- }
564
- $echo_str .= $dlp."\t\t".'<td><select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.min(count($blogs), 10).'" onchange="wfu_update_bloglist_value(\''.$attr.'\');"'.( $only_current || in_array('all', $selected) ? ' disabled="disabled"' : '' ).'>';
565
- foreach ( $blogs as $blog )
566
- $echo_str .= $dlp."\t\t\t".'<option value="'.$blog->blog_id.'"'.( in_array($blog->blog_id, $blogsselected) ? ' selected="selected"' : '' ).'>'.$blog->path.'</option>';
567
- $echo_str .= $dlp."\t\t".'</select>';
568
- $echo_str .= $dlp."\t\t".'</td><td>';
569
- $echo_str .= $dlp."\t\t".'<div class="wfu_bloglist_checkbtn"><input id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_bloglist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all"> Select all</label></div>';
570
- $echo_str .= $dlp."\t\t".'</td></tr></tbody></table>';
571
- }
572
- else {
573
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
574
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$val.'" />';
575
- }
576
- }
577
- elseif ( $def['type'] == "stringmatch" ) {
578
- $matchfield = "";
579
- $matchcriterion = "equal to";
580
- $matchvalue = "";
581
- preg_match('/^field:(.*?);\s*criterion:(.*?)\s*;\s*value:(.*)$/', $def['value'], $matches);
582
- if ( count($matches) == 4 ) {
583
- $matchfield = $matches[1];
584
- $matchcriterion = $matches[2];
585
- $matchvalue = $matches[3];
586
- }
587
- // $echo_str .= $dlp."\t\t".'<div style="white-space:nowrap;">';
588
- $echo_str .= $dlp."\t\t".'<table class="wfu_stringmatch_container"><tbody><tr>';
589
- $echo_str .= $dlp."\t\t".'<td style="width:40%; white-space:nowrap;"><label>Field </label><input id="wfu_attribute_'.$attr.'_matchfield" type="text" name="wfu_stringmatch_elements" value="'.$matchfield.'" style="width:auto;" /></td>';
590
- $echo_str .= $dlp."\t\t".'<td style="width:30%;"><select id="wfu_attribute_'.$attr.'_matchcriterion" value="'.$matchcriterion.'" onchange="wfu_update_stringmatch_value(\''.$attr.'\');">';
591
- $echo_str .= $dlp."\t\t\t".'<option value="equal to"'.( $matchcriterion == "equal to" ? 'selected="selected"' : '' ).'>equal to</option>';
592
- $echo_str .= $dlp."\t\t\t".'<option value="starts with"'.( $matchcriterion == "starts with" ? 'selected="selected"' : '' ).'>starts with</option>';
593
- $echo_str .= $dlp."\t\t\t".'<option value="ends with"'.( $matchcriterion == "ends with" ? 'selected="selected"' : '' ).'>ends with</option>';
594
- $echo_str .= $dlp."\t\t\t".'<option value="contains"'.( $matchcriterion == "contains" ? 'selected="selected"' : '' ).'>contains</option>';
595
- $echo_str .= $dlp."\t\t\t".'<option value="not equal to"'.( $matchcriterion == "not equal to" ? 'selected="selected"' : '' ).'>not equal to</option>';
596
- $echo_str .= $dlp."\t\t\t".'<option value="does not start with"'.( $matchcriterion == "does not start with" ? 'selected="selected"' : '' ).'>does not start with</option>';
597
- $echo_str .= $dlp."\t\t\t".'<option value="does not end with"'.( $matchcriterion == "does not end with" ? 'selected="selected"' : '' ).'>does not end with</option>';
598
- $echo_str .= $dlp."\t\t\t".'<option value="does not contain"'.( $matchcriterion == "does not contain" ? 'selected="selected"' : '' ).'>does not contain</option>';
599
- $echo_str .= $dlp."\t\t".'</select></td>';
600
- $echo_str .= $dlp."\t\t".'<td style="width:30%;"><input id="wfu_attribute_'.$attr.'_matchvalue" type="text" name="wfu_stringmatch_elements" value="'.$matchvalue.'" style="width:auto;" /></td>';
601
- $echo_str .= $dlp."\t\t".'</tr></tbody></table>';
602
- // $echo_str .= $dlp."\t\t".'</div>';
603
- }
604
- elseif ( $def['type'] == "columns" ) {
605
- $selected = explode(",", $def['value']);
606
- if ( count($selected) == 1 && $selected[0] == "" ) $selected = array();
607
- $selected_flat = array();
608
- foreach ( $selected as $ind => $item ) $selected_flat[$ind] = preg_replace("/(:|\/).*$/", "", $item);
609
- $echo_str .= $dlp."\t".'<table class="wfu_columns_container"><tbody><tr>';
610
- $echo_str .= $dlp."\t\t\t".'<td style="width:45%;"><label class="wfu_columns_listtitle">Available Columns</label></td>';
611
- $echo_str .= $dlp."\t\t\t".'<td style="width:55%"><label class="wfu_columns_listtitle">Displayed Columns</label></td></tr><tr>';
612
- $echo_str .= $dlp."\t\t".'<td style="width:45%;">';
613
- $echo_str .= $dlp."\t\t\t".'<table class="wfu_columns_container" style="table-layout:fixed; width:100%;"><tbody><tr>';
614
- $echo_str .= $dlp."\t\t\t\t".'<td><select id="wfu_attribute_'.$attr.'_sourcelist" multiple="multiple" size="'.min(count($def['listitems']), 10).'" style="width:100%; overflow:auto;">';
615
- $itemprops = array();
616
- foreach ( $def['listitems'] as $item ) {
617
- $item_required = ( substr($item, 0, 1) == "*" );
618
- if ( $item_required ) $item = substr($item, 1);
619
- $item_parts = explode("/", $item, 3);
620
- $item_name = $item_parts[0];
621
- $item_label = "";
622
- $item_title = "";
623
- if ( count($item_parts) > 1 ) $item_label = $item_parts[1];
624
- if ( count($item_parts) == 3 ) $item_title = $item_parts[2];
625
- $item_parts = explode(":", $item_name, 2);
626
- $item_name = $item_parts[0];
627
- if ( count($item_parts) == 1 ) $item_sort = "";
628
- else $item_sort = $item_parts[1];
629
- if ( $item_label == "" ) $item_label = $item_name;
630
- if ( $item_title == "" ) $item_title = $item_label;
631
- $itemprops[$item_name] = array( 'label' => $item_label, 'title' => $item_title, 'required' => $item_required, 'sortable' => ( $item_name == "custom" || $item_sort != "" ), 'sorttype' => $item_sort );
632
- $val = $item_name.":".$item_sort."/".$item_title;
633
- $echo_str .= $dlp."\t\t\t\t\t".'<option value="'.$val.'"'.( $item_required ? ' class="wfu_columns_item_required"' : '' ).' onclick="wfu_columns_itemclicked(this, \''.$attr.'\');">'.$item_label.'</option>';
634
- }
635
- foreach ( $itemprops as $item_name => $prop )
636
- if ( $prop['required'] && !in_array($item_name, $selected_flat) )
637
- array_splice($selected, 0, 0, array( $item_name ));
638
- $selprops = array();
639
- foreach ( $selected as $item ) {
640
- $item_parts = explode("/", $item, 2);
641
- $item_name = $item_parts[0];
642
- if ( count($item_parts) == 1 ) $item_title = "";
643
- else $item_title = $item_parts[1];
644
- $item_parts = explode(":", $item_name, 2);
645
- $item_name = $item_parts[0];
646
- $flat_name = preg_replace("/^custom[0-9]+$/", "custom", $item_name);
647
- if ( $item_name != "custom" && isset($itemprops[$flat_name]) ) {
648
- $prop = $itemprops[$flat_name];
649
- if ( count($item_parts) == 1 ) $item_sort = ( $flat_name == "custom" ? "+-s" : ( $prop['sortable'] ? "-+".$prop['sorttype'] : "" ) );
650
- elseif ( $flat_name == "custom" ) $item_sort = "+".($item_parts[1] == "" ? "-s" : "+".$item_parts[1]);
651
- else $item_sort = ( $prop['sortable'] ? "-".($item_parts[1] == "" ? "-" : "+").$prop['sorttype'] : "" );
652
- if ( $item_title == "" ) $item_title = $prop['title'];
653
- array_push($selprops, array( 'name' => $item_name, 'label' => $prop['label'], 'title' => $item_title, 'required' => $prop['required'], 'sorttype' => $item_sort ));
654
- }
655
- }
656
- $echo_str .= $dlp."\t\t\t\t".'</select></td>';
657
- $echo_str .= $dlp."\t\t\t\t".'<td style="width:30px; padding:0 6px;"><button class="wfu_columns_addbutton" title="add column" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'add\');" style="width:100%;">&gt;&gt;</button></td>';
658
- $echo_str .= $dlp."\t\t\t".'</tr></tbody></table>';
659
- $echo_str .= $dlp."\t\t".'</td>';
660
- $echo_str .= $dlp."\t\t".'<td style="width:55%">';
661
- $echo_str .= $dlp."\t\t\t".'<table class="wfu_columns_container" style="table-layout:fixed; width:100%;"><tbody><tr>';
662
- $echo_str .= $dlp."\t\t\t\t".'<td><select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.min(count($def['listitems']), 10).'" onchange="wfu_update_columns(\''.$attr.'\');" style="width:100%; overflow:auto;">';
663
- foreach ( $selprops as $prop ) {
664
- $val = $prop['name'].":".$prop['sorttype']."/".$prop['label']."/".$prop['title'];
665
- $echo_str .= $dlp."\t\t\t\t\t".'<option value="'.$val.'"'.( $prop['required'] ? ' class="wfu_columns_item_required"' : '' ).' onclick="wfu_columns_itemclicked(this, \''.$attr.'\');">'.$prop['label'].( $prop['title'] != "" && $prop['title'] != $prop['label'] ? " (".$prop['title'].")" : "" ).'</option>';
666
- }
667
- $echo_str .= $dlp."\t\t\t\t".'</select></td>';
668
- $echo_str .= $dlp."\t\t\t\t".'<td style="width:30px; padding:0 6px;">';
669
- $echo_str .= $dlp."\t\t\t\t\t".'<button class="wfu_columns_addbutton" title="move up" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'up\');" style="width:100%;">&#8593;</button>';
670
- $echo_str .= $dlp."\t\t\t\t\t".'<button class="wfu_columns_addbutton" title="remove" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'del\');" style="width:100%;">-</button>';
671
- $echo_str .= $dlp."\t\t\t\t\t".'<button class="wfu_columns_addbutton" title="move down" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'down\');" style="width:100%;">&#8595;</button>';
672
- $echo_str .= $dlp."\t\t\t\t".'</td>';
673
- $echo_str .= $dlp."\t\t\t".'</tr></tbody></table>';
674
- $echo_str .= $dlp."\t\t\t".'<label class="wfu_columns_listtitle" style="margin-top:6px; display:block;">Column Properties</label>';
675
- $echo_str .= $dlp."\t\t\t".'<table id="wfu_attribute_'.$attr.'_columnprops_container" class="wfu_columnprops_container wfu_columnprops_container_disabled"><tbody>';
676
- $echo_str .= $dlp."\t\t\t\t".'<tr><td style="width:1%; padding-right:10px;"><label id="wfu_attribute_'.$attr.'_columnprops_title_label">Title</label></td>';
677
- $echo_str .= $dlp."\t\t\t\t".'<td><input type="text" id="wfu_attribute_'.$attr.'_columnprops_title" name="wfu_columnprops_elements" value="" style="width:100%;" disabled="disabled" /></td></tr>';
678
- $echo_str .= $dlp."\t\t\t\t".'<tr><td style="width:1%; padding-right:10px; white-space:nowrap;"><label id="wfu_attribute_'.$attr.'_columnprops_id_label">Field ID</label></td>';
679
- $echo_str .= $dlp."\t\t\t\t".'<td><input type="number" id="wfu_attribute_'.$attr.'_columnprops_id" name="wfu_columnprops_elements" min="1" value="" style="width:100%;" disabled="disabled" /></td></tr>';
680
- $echo_str .= $dlp."\t\t\t\t".'<tr><td colspan="2"><input type="checkbox" id="wfu_attribute_'.$attr.'_columnprops_sort" value="" onchange="wfu_columnprops_element_changed({target:this});" disabled="disabled" /><label id="wfu_attribute_'.$attr.'_columnprops_sort_label" for="wfu_attribute_'.$attr.'_columnprops_sort">Sortable</label></td></tr>';
681
- $echo_str .= $dlp."\t\t\t\t".'<tr><td style="width:1%; padding-right:10px;"><label id="wfu_attribute_'.$attr.'_columnprops_sorttype_label" style="white-space:nowrap;">Sort As</label></td>';
682
- $echo_str .= $dlp."\t\t\t\t".'<td><select id="wfu_attribute_'.$attr.'_columnprops_sorttype" value="" onchange="wfu_columnprops_element_changed({target:this});" disabled="disabled"><option value=""></option><option value="s">String</option><option value="n">Integer</option></select></td></tr>';
683
- $echo_str .= $dlp."\t\t\t".'</tbody></table>';
684
- $echo_str .= $dlp."\t\t".'</td>';
685
- $echo_str .= $dlp."\t".'</tr></tbody></table>';
686
-
687
- }
688
- elseif ( $def['type'] == "dimensions" ) {
689
- $vals_arr = explode(",", $def['value']);
690
- $vals = array();
691
- foreach ( $vals_arr as $val_raw ) {
692
- if ( trim($val_raw) != "" ) {
693
- list($val_id, $val) = explode(":", $val_raw);
694
- $vals[trim($val_id)] = trim($val);
695
- }
696
- }
697
- $dims = array();
698
- foreach ( $components as $comp ) {
699
- if ( $comp['dimensions'] == null ) $dims[$comp['id']] = $comp['name'];
700
- else foreach ( $comp['dimensions'] as $dimraw ) {
701
- list($dim_id, $dim_name) = explode("/", $dimraw);
702
- $dims[$dim_id] = $dim_name;
703
- }
704
- }
705
- foreach ( $dims as $dim_id => $dim_name ) {
706
- if ( !array_key_exists($dim_id, $vals) ) $vals[$dim_id] = "";
707
- $echo_str .= $dlp."\t\t".'<span style="display:inline-block; width:130px;">'.$dim_name.'</span><input id="wfu_attribute_'.$attr.'_'.$dim_id.'" type="text" name="wfu_dimension_elements_'.$attr.'" class="wfu_short_text" value="'.$vals[$dim_id].'" /><br />';
708
- }
709
- }
710
- elseif ( $def['type'] == "userfields" ) {
711
- $fields_arr = explode("/", $def['value']);
712
- $fields = array();
713
- foreach ( $fields_arr as $field_raw ) {
714
- $is_req = ( substr($field_raw, 0, 1) == "*" );
715
- if ( $is_req ) $field_raw = substr($field_raw, 1);
716
- if ( $field_raw != "" ) array_push($fields, array( "name" => $field_raw, "required" => $is_req ));
717
- }
718
- if ( count($fields) == 0 ) array_push($fields, array( "name" => "", "required" => false ));
719
- $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_userdata_container">';
720
- foreach ( $fields as $field ) {
721
- $echo_str .= $dlp."\t\t\t".'<div class="wfu_userdata_line">';
722
- $echo_str .= $dlp."\t\t\t\t".'<input type="text" name="wfu_userfield_elements" value="'.$field['name'].'" />';
723
- $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_userdata_action" onclick="wfu_userdata_add_field(this);"><img src="'.WFU_IMAGE_ADMIN_USERDATA_ADD.'" ></div>';
724
- $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_userdata_action wfu_userdata_action_disabled" onclick="wfu_userdata_remove_field(this);"><img src="'.WFU_IMAGE_ADMIN_USERDATA_REMOVE.'" ></div>';
725
- $echo_str .= $dlp."\t\t\t\t".'<input type="checkbox"'.( $field['required'] ? 'checked="checked"' : '' ).' onchange="wfu_update_userfield_value({target:this});" />';
726
- $echo_str .= $dlp."\t\t\t\t".'<span>Required</span>';
727
- $echo_str .= $dlp."\t\t\t".'</div>';
728
- }
729
- $echo_str .= $dlp."\t\t".'</div>';
730
- }
731
- elseif ( $def['type'] == "formfields" ) {
732
- //find occurrence index of this attribute and total occrrence length
733
- $flat = $def['flat'];
734
- $attr_occur_index = 0;
735
- $attr_occur_length = 0;
736
- $all_attributes = array();
737
- foreach ( $defs as $def2 ) {
738
- if ( $def2['flat'] == $flat ) {
739
- $attr_occur_length ++;
740
- array_push($all_attributes, $def2['attribute']);
741
- if ( $def2['attribute'] == $attr ) $attr_occur_index = $attr_occur_length;
742
- }
743
- }
744
- //get field type definitions
745
- $fielddefs_array = $def['listitems'];
746
- foreach ( $fielddefs_array as $fielddef ) $fielddefs[$fielddef['type']] = $fielddef;
747
- //initialize editable field properties
748
- $fieldprops_basic = array('required', 'donotautocomplete', 'validate', 'typehook', 'labelposition', 'hintposition', 'default', 'data', 'group', 'format');
749
- $fieldprops_default = array ( "type" => "text", "label" => "", "labelposition" => "left", "required" => false, "donotautocomplete" => false, "validate" => false, "default" => "", "data" => "", "group" => "", "format" => "", "hintposition" => "right", "typehook" => false );
750
- //parse shortcode attribute to $fields
751
- $fields = wfu_parse_userdata_attribute($def['value']);
752
- $labelpositions = array("none", "top", "right", "bottom", "left", "placeholder");
753
- $hintpositions = array("none", "inline", "top", "right", "bottom", "left");
754
- if ( count($fields) == 0 ) array_push($fields, $fieldprops_default);
755
- //set html template variable
756
- $template = $dlp."\t\t\t\t".'<table class="wfu_formdata_props_table"><tbody>';
757
- $template .= $dlp."\t\t\t\t".'<tr><td colspan="2"><label class="wfu_formdata_label">Type</label><select id="wfu_formfield_[[key]]_type" value="[[t]]" onchange="wfu_formdata_type_changed(\'[[key]]\');">';
758
- foreach( $fielddefs as $item ) $template .= $dlp."\t\t\t\t\t".'<option value="'.$item['type'].'"[[type_'.$item['type'].'_selected]]>'.$item['type_description'].'</option>';
759
- $template .= $dlp."\t\t\t\t".'</select></td><td>';
760
- $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_add" onclick="wfu_formdata_add_field(\'[[key]]\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_ADD.'" ></div>';
761
- $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_remove[[remove_disabled]]" onclick="wfu_formdata_remove_field(\'[[key]]\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_REMOVE.'" ></div>';
762
- $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_up[[up_disabled]]" onclick="wfu_formdata_move_field(\'[[key]]\', \'up\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_UP.'" ></div>';
763
- $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_down[[down_disabled]]" onclick="wfu_formdata_move_field(\'[[key]]\', \'down\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_DOWN.'" ></div></td></tr>';
764
- $template .= $dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label">Label</label></td><td><input type="text" id="wfu_formfield_[[key]]_label" name="wfu_formfield_elements" value="[[label]]" /></td><td></td></tr>';
765
- $labelpos_options = "";
766
- foreach ( $labelpositions as $pos ) $labelpos_options .= '<option value="'.$pos.'"[[labelposition_'.$pos.'_selected]]>'.$pos.'</option>';
767
- $template .= $dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_labelposition" title="[[labelposition_hint]]">Label Position</label></td><td><select id="wfu_formfield_[[key]]_labelposition" value="[[s]]" title="[[labelposition_hint]]" onchange="wfu_update_formfield_value({target:this});">'.$labelpos_options.'</select></td><td></td></tr>';
768
- $template .= '[[R->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_required" type="checkbox"[[r->]] checked="checked"[[<-r]] title="[[required_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_required" title="[[required_hint]]"> Required</label></td><td></td></tr>[[<-R]]';
769
- $template .= '[[A->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_donotautocomplete" type="checkbox"[[a->]] checked="checked"[[<-a]] title="[[donotautocomplete_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_donotautocomplete" title="[[donotautocomplete_hint]]"> Do not autocomplete</label></td><td></td></tr>[[<-A]]';
770
- $template .= '[[V->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_validate" type="checkbox"[[v->]] checked="checked"[[<-v]] title="[[validate_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_validate" title="[[validate_hint]]"> Validate</label></td><td></td></tr>[[<-V]]';
771
- $hint_options = "";
772
- foreach ( $hintpositions as $pos ) $hint_options .= '<option value="'.$pos.'"[[hintposition_'.$pos.'_selected]]>'.$pos.'</option>';
773
- $template .= '[[P->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[hintposition_hint]]">Hint Position</label></td><td><select id="wfu_formfield_[[key]]_hintposition" value="[[p]]" title="[[hintposition_hint]]" onchange="wfu_update_formfield_value({target:this});">'.$hint_options.'</select></td><td></td></tr>[[<-P]]';
774
- $template .= '[[H->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_typehook" type="checkbox"[[h->]] checked="checked"[[<-h]] title="[[typehook_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_typehook" title="[[typehook_hint]]"> Type hook</label></td><td></td></tr>[[<-H]]';
775
- $template .= '[[D->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[default_hint]]">Default</label></td><td><input id="wfu_formfield_[[key]]_default" type="text" name="wfu_formfield_elements" value="[[d]]" title="[[default_hint]]" /></td><td></td></tr>[[<-D]]';
776
- $template .= '[[L->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[data_hint]]">[[data_label]]</label></td><td><input id="wfu_formfield_[[key]]_data" type="text" name="wfu_formfield_elements" value="[[l]]" title="[[data_hint]]" /></td><td></td></tr>[[<-L]]';
777
- $template .= '[[G->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[group_hint]]">Group ID</label></td><td><input id="wfu_formfield_[[key]]_group" type="text" name="wfu_formfield_elements" value="[[g]]" title="[[group_hint]]" /></td><td></td></tr>[[<-G]]';
778
- $template .= '[[F->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[format_hint]]">Format</label></td><td><input id="wfu_formfield_[[key]]_format" type="text" name="wfu_formfield_elements" value="[[f]]" title="[[format_hint]]" /></td><td></td></tr>[[<-F]]';
779
- $template .= $dlp."\t\t\t\t".'</tbody></table>';
780
- //draw html elements
781
- $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_formdata_container">';
782
- $echo_str .= $dlp."\t\t\t".'<input type="hidden" class="wfu_formdata_all_attributes" value="'.implode(",", $all_attributes).'" />';
783
- $echo_str .= $dlp."\t\t\t".'<div id="wfu_attribute_'.$attr.'_codeadd" style="display:none;">';
784
- //pass template and type props to client javascript variable and then erase the code
785
- $echo_str .= $dlp."\t\t\t\t".'<script type="text/javascript">';
786
- $echo_str .= $dlp."\t\t\t\t\t".'var wfu_attribute_'.$attr.'_formtemplate = "'.wfu_plugin_encode_string($template).'";';
787
- $echo_str .= $dlp."\t\t\t\t\t".'var wfu_attribute_'.$attr.'_typeprops = {};';
788
- $fielddef_array = array();
789
- foreach( $fielddefs as $item ) array_push($fielddef_array, $item['type']);
790
- //prepare storage of field definitions to browser context
791
- $echo_str .= $dlp."\t\t\t\t\t".'wfu_attribute_'.$attr.'_typeprops[0] = \''.implode(",", $fielddef_array).'\'';
792
- foreach( $fielddefs as $item ) {
793
- $typeprops = array();
794
- foreach ( $fieldprops_basic as $prop ) {
795
- array_push($typeprops, $prop.': \''.$item[$prop].'\'');
796
- array_push($typeprops, $prop.'_hint: \''.$item[$prop.'_hint'].'\'');
797
- }
798
- array_push($typeprops, 'data_label: \''.$item['data_label'].'\'');
799
- $echo_str .= $dlp."\t\t\t\t\t".'wfu_attribute_'.$attr.'_typeprops["'.$item['type'].'"] = {'.implode(", ", $typeprops).'};';
800
- }
801
- $echo_str .= $dlp."\t\t\t\t\t".'var self = document.getElementById("wfu_attribute_'.$attr.'_codeadd"); self.parentNode.removeChild(self);';
802
- $echo_str .= $dlp."\t\t\t\t".'</script>';
803
- $echo_str .= $dlp."\t\t\t".'</div>';
804
- $i = 1;
805
- foreach ( $fields as $field ) {
806
- $ind = wfu_create_random_string(4);
807
- $key = $attr."_".$ind;
808
- $fielddef = $fielddefs[$field["type"]];
809
- $echo_str .= $dlp."\t\t\t".'<div id="wfu_formfield_'.$key.'_container" class="wfu_formdata_line_container">';
810
- //generate html elements from template, replacing variables where applicable
811
- $from_template = str_replace(array('[[key]]', '[[t]]', '[[label]]', '[[s]]', '[[d]]', '[[l]]', '[[data_label]]', '[[g]]', '[[f]]', '[[p]]'), array($key, $field['type'], $field['label'], $field['labelposition'], $field['default'], $field['data'], $fielddef['data_label'], $field['group'], $field['format'], $field['hintposition']), $template);
812
- foreach ( $fieldprops_basic as $prop ) $from_template = str_replace('[['.$prop.'_hint]]', str_replace('\r\n', "\r\n", $fielddef[$prop.'_hint']), $from_template);
813
- foreach( $fielddefs as $item ) $from_template = str_replace('[[type_'.$item['type'].'_selected]]', ( $item['type'] == $field['type'] ? ' selected = "selected"' : '' ), $from_template);
814
- foreach( $labelpositions as $pos ) $from_template = str_replace('[[labelposition_'.$pos.'_selected]]', ( $pos == $field['labelposition'] ? ' selected = "selected"' : '' ), $from_template);
815
- foreach( $hintpositions as $pos ) $from_template = str_replace('[[hintposition_'.$pos.'_selected]]', ( $pos == $field['hintposition'] ? ' selected = "selected"' : '' ), $from_template);
816
- $from_template = str_replace('[[remove_disabled]]', ( count($fields) <= 1 ? ' wfu_formdata_action_disabled' : '' ), $from_template);
817
- $from_template = str_replace('[[up_disabled]]', ( ( $attr_occur_index == 1 && $i == 1 ) ? ' wfu_formdata_action_disabled' : '' ), $from_template);
818
- $from_template = str_replace('[[down_disabled]]', ( ( $attr_occur_index == $attr_occur_length && $i == count($fields) ) ? ' wfu_formdata_action_disabled' : '' ), $from_template);
819
- //adjust checkbox field values
820
- $from_template = preg_replace('/\[\[r\-\>\]\]'.( $field['required'] ? '|' : '.*' ).'\[\[\<\-r\]\]/', '', $from_template);
821
- $from_template = preg_replace('/\[\[a\-\>\]\]'.( $field['donotautocomplete'] ? '|' : '.*' ).'\[\[\<\-a\]\]/', '', $from_template);
822
- $from_template = preg_replace('/\[\[v\-\>\]\]'.( $field['validate'] ? '|' : '.*' ).'\[\[\<\-v\]\]/', '', $from_template);
823
- $from_template = preg_replace('/\[\[h\-\>\]\]'.( $field['typehook'] ? '|' : '.*' ).'\[\[\<\-h\]\]/', '', $from_template);
824
- //adjust visibility of properties
825
- $from_template = preg_replace('/\[\[R\-\>\]\]'.( substr($fielddef["required"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-R\]\]/s', '', $from_template);
826
- $from_template = preg_replace('/\[\[A\-\>\]\]'.( substr($fielddef["donotautocomplete"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-A\]\]/s', '', $from_template);
827
- $from_template = preg_replace('/\[\[V\-\>\]\]'.( substr($fielddef["validate"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-V\]\]/s', '', $from_template);
828
- $from_template = preg_replace('/\[\[P\-\>\]\]'.( substr($fielddef["hintposition"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-P\]\]/s', '', $from_template);
829
- $from_template = preg_replace('/\[\[H\-\>\]\]'.( substr($fielddef["typehook"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-H\]\]/s', '', $from_template);
830
- $from_template = preg_replace('/\[\[D\-\>\]\]'.( substr($fielddef["default"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-D\]\]/s', '', $from_template);
831
- $from_template = preg_replace('/\[\[L\-\>\]\]'.( substr($fielddef["data"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-L\]\]/s', '', $from_template);
832
- $from_template = preg_replace('/\[\[G\-\>\]\]'.( substr($fielddef["group"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-G\]\]/s', '', $from_template);
833
- $from_template = preg_replace('/\[\[F\-\>\]\]'.( substr($fielddef["format"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-F\]\]/s', '', $from_template);
834
- $echo_str .= $from_template;
835
- $echo_str .= $dlp."\t\t\t".'</div>';
836
- $i++;
837
- }
838
- $echo_str .= $dlp."\t\t".'</div>';
839
- }
840
- elseif ( $def['type'] == "color" ) {
841
- $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
842
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" class="wfu_color_field" value="'.$val.'" />';
843
- }
844
- elseif ( $def['type'] == "color-triplet" ) {
845
- $triplet = explode(",", $def['value']);
846
- foreach ( $triplet as $key => $item ) $triplet[$key] = trim($item);
847
- if ( count($triplet) == 2 ) $triplet = array( $triplet[0], $triplet[1], "#000000");
848
- elseif ( count($triplet) == 1 ) $triplet = array( $triplet[0], "#FFFFFF", "#000000");
849
- elseif ( count($triplet) < 3 ) $triplet = array( "#000000", "#FFFFFF", "#000000");
850
- $echo_str .= $dlp."\t\t".'<div class="wfu_color_container"><label style="display:inline-block; width:120px; margin-top:-16px;">Text Color</label><input id="wfu_attribute_'.$attr.'_color" type="text" class="wfu_color_field" name="wfu_triplecolor_elements" value="'.$triplet[0].'" /></div>';
851
- $echo_str .= $dlp."\t\t".'<div class="wfu_color_container"><label style="display:inline-block; width:120px; margin-top:-16px;">Background Color</label><input id="wfu_attribute_'.$attr.'_bgcolor" type="text" class="wfu_color_field" name="wfu_triplecolor_elements" value="'.$triplet[1].'" /></div>';
852
- $echo_str .= $dlp."\t\t".'<div class="wfu_color_container"><label style="display:inline-block; width:120px; margin-top:-16px;">Border Color</label><input id="wfu_attribute_'.$attr.'_borcolor" type="text" class="wfu_color_field" name="wfu_triplecolor_elements" value="'.$triplet[2].'" /></div>';
853
- }
854
- else {
855
- $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$def['value'].'" />';
856
- if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
857
- }
858
- $echo_str .= $dlp."\t".'</div></td>';
859
- if ( $def['parent'] == "" ) {
860
- $echo_str .= $dlp."\t".'<td style="position:relative; vertical-align:top; padding:0;"><div class="wfu_td_div">';
861
- $block_open = false;
862
- }
863
- else {
864
- $echo_str .= $dlp.'</tr>';
865
- $subblock_open = true;
866
- }
867
- }
868
- if ( $subblock_open ) {
869
- $echo_str .= "\n\t\t\t\t\t\t".'</div>';
870
- }
871
- if ( $block_open ) {
872
- $echo_str .= "\n\t\t\t\t\t".'</div></td>';
873
- $echo_str .= "\n\t\t\t\t".'</tr>';
874
- }
875
- $echo_str .= "\n\t\t\t".'</tbody>';
876
- $echo_str .= "\n\t\t".'</table>';
877
- $echo_str .= "\n\t".'</div>';
878
- $echo_str .= "\n\t".'<div id="wfu_global_dialog_container" class="wfu_global_dialog_container">';
879
- $echo_str .= "\n\t".'</div>';
880
- $handler = 'function() { wfu_Attach_Admin_Events('.( $data == "" ? 'true' : 'false' ).'); }';
881
- $echo_str .= "\n\t".'<script type="text/javascript">if(window.addEventListener) { window.addEventListener("load", '.$handler.', false); } else if(window.attachEvent) { window.attachEvent("onload", '.$handler.'); } else { window["onload"] = '.$handler.'; }</script>';
882
- $echo_str .= "\n".'</div>';
883
- // $echo_str .= "\n\t".'<div style="margin-top:10px;">';
884
- // $echo_str .= "\n\t\t".'<label>Final shortcode text</label>';
885
- // $echo_str .= "\n\t".'</div>';
886
-
887
- echo $echo_str;
888
- }
889
-
890
- function wfu_insert_variables($variables, $class) {
891
- $ret = "";
892
- foreach ( $variables as $variable )
893
- if ( $variable == "%userdataXXX%" ) $ret .= "\t\t".'<select class="'.$class.'" name="wfu_formfield_select" title="'.constant("WFU_VARIABLE_TITLE_".strtoupper(str_replace("%", "", $variable))).'" onchange="wfu_insert_userfield_variable(this);"><option style="display:none;">%userdataXXX%</option></select>';
894
- elseif ( $variable != "%n%" && $variable != "%dq%" && $variable != "%brl%" && $variable != "%brr%" ) $ret .= "\t\t".'<span class="'.$class.'" title="'.constant("WFU_VARIABLE_TITLE_".strtoupper(str_replace("%", "", $variable))).'" ondblclick="wfu_insert_variable(this);">'.$variable.'</span>';
895
- return $ret;
896
- }
897
-
898
- ?>
1
+ <?php
2
+
3
+ function wfu_shortcode_composer($data = '', $shortcode_tag = 'wordpress_file_upload') {
4
+ global $wpdb;
5
+ global $wp_roles;
6
+ $siteurl = site_url();
7
+
8
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
9
+ $components = wfu_component_definitions();
10
+ if ( $shortcode_tag == 'wordpress_file_upload' ) {
11
+ $plugin_title = "Uploader";
12
+ $cats = wfu_category_definitions();
13
+ $defs = wfu_attribute_definitions();
14
+ //remove personaldata category if Personal Data are not activated in
15
+ //plugin's Settings
16
+ if ($plugin_options["personaldata"] != "1" && isset($cats["personaldata"])) unset($cats["personaldata"]);
17
+ }
18
+ else {
19
+ $plugin_title = "Browser";
20
+ $cats = wfu_browser_category_definitions();
21
+ $defs = wfu_browser_attribute_definitions();
22
+ }
23
+
24
+ if ( $data == "" ) {
25
+ $shortcode = $plugin_options['shortcode'];
26
+ $shortcode_full = '['.$shortcode_tag.' '.$shortcode.']';
27
+ $postid = "";
28
+ $postname = "";
29
+ $posttype = "";
30
+ $posthash = "";
31
+ $shortcode_position = -1;
32
+ $widgetid = "";
33
+ $sidebar = "";
34
+ $autosave = true;
35
+ }
36
+ else {
37
+ $shortcode = trim(substr($data['shortcode'], strlen('['.$shortcode_tag), -1));
38
+ $shortcode_full = $data['shortcode'];
39
+ $postid = $data['post_id'];
40
+ $postname = get_the_title($postid);
41
+ $posttype_obj = get_post_type_object(get_post_type($postid));
42
+ $posttype = ( $posttype_obj ? $posttype_obj->labels->singular_name : "" );
43
+ $posthash = $data['post_hash'];
44
+ $shortcode_position = $data['position'];
45
+ $widgetid = ( isset($data['widgetid']) ? $data['widgetid'] : "" );
46
+ $sidebar = ( isset($data['sidebar']) ? $data['sidebar'] : "" );
47
+ $autosave = false;
48
+ }
49
+
50
+ // index $components
51
+ $components_indexed = array();
52
+ foreach ( $components as $component ) $components_indexed[$component['id']] = $component;
53
+ // complete defs array and index dependencies
54
+ $governors = array();
55
+ $shortcode_attrs = wfu_shortcode_string_to_array($shortcode);
56
+ //replace old attribute definitions with new ones
57
+ $shortcode_attrs = wfu_old_to_new_attributes($shortcode_attrs);
58
+ $shortcode_id = '';
59
+ foreach ( $defs as $key => $def ) {
60
+ $attr = $def['attribute'];
61
+ $defs[$key]['default'] = $def['value'];
62
+ //'flat' property keeps the original attribute, because 'attribute'
63
+ //property will change for defs that their occurrence is higher than 1
64
+ $defs[$key]['flat'] = $attr;
65
+ if ( array_key_exists($attr, $shortcode_attrs) ) $defs[$key]['value'] = $shortcode_attrs[$attr];
66
+ $subblock_active = false;
67
+ //detect if the dependencies of this attribute will be disabled or not
68
+ if ( ( $def['type'] == "onoff" && $defs[$key]['value'] == "true" ) ||
69
+ ( $def['type'] == "radio" && in_array("*".$defs[$key]['value'], $def['listitems']) ) )
70
+ $subblock_active = true;
71
+ // assign dependencies if exist
72
+ if ( $def['dependencies'] != null )
73
+ foreach ( $def['dependencies'] as $dependency ) {
74
+ if ( substr($dependency, 0, 1) == "!" ) //invert state for this dependency if an exclamation mark is defined
75
+ $governors[substr($dependency, 1)] = array( 'attribute' => $attr, 'active' => !$subblock_active, 'inv' => '_inv' );
76
+ else
77
+ $governors[$dependency] = array( 'attribute' => $attr, 'active' => $subblock_active, 'inv' => '' );
78
+ }
79
+ if ( $attr == 'uploadid' || $attr == 'browserid' ) $shortcode_id = $defs[$key]['value'];
80
+ }
81
+
82
+ //check if attributes need to be generated more than once because their governor is a component field that appears more than once in placements attribute
83
+ $key = 0;
84
+ while ( $key < count($defs) ) {
85
+ $defs[$key]['additional_values'] = array();
86
+ $def = $defs[$key];
87
+ $attr = $def['attribute'];
88
+ //check if this attribute needs to be generated more than once
89
+ if ( array_key_exists($attr, $governors) ) $governor = $governors[$attr]['attribute'];
90
+ else $governor = "";
91
+ if ( $governor != "" && isset($components_indexed[$governor]) && $components_indexed[$governor]['multiplacements'] && isset($shortcode_attrs['placements']) ) {
92
+ //count how many occurrences of the governor attribute appear inside placements attribute
93
+ $occurrences = 0;
94
+ $sections = explode("/", $shortcode_attrs['placements']);
95
+ foreach ( $sections as $section ) {
96
+ $items_in_section = explode("+", trim($section));
97
+ foreach ( $items_in_section as $item )
98
+ if ( trim($item) == $governor ) $occurrences++;
99
+ }
100
+ //add indexed attributes if there is more than one occurrence
101
+ for ( $ii = 2; $ii <= $occurrences; $ii++ ) {
102
+ $def2 = $def;
103
+ $def2['attribute'] .= $ii;
104
+ $def2['name'] .= ' ('.$ii.')';
105
+ if ( array_key_exists($def2['attribute'], $shortcode_attrs) )
106
+ $def2['value'] = $shortcode_attrs[$def2['attribute']];
107
+ else $def2['value'] = $def2['default'];
108
+ array_splice($defs, $key + 1, 0, array($def2));
109
+ $key++;
110
+ }
111
+ //check if the shortcode contains additional indexed definitions and store them in 'additional_values'
112
+ $ii = max(1, $occurrences) + 1;
113
+ while ( array_key_exists($attr.$ii, $shortcode_attrs) ) {
114
+ $defs[$key]['additional_values'][$ii] = $shortcode_attrs[$attr.$ii];
115
+ $ii++;
116
+ }
117
+ }
118
+ $key++;
119
+ }
120
+
121
+ $echo_str = '<div id="wfu_wrapper" class="wrap">';
122
+ $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
123
+ $echo_str .= "\n\t".'<div id="wfu_page_obsolete_message" class="error" style="display:none;">';
124
+ $echo_str .= "\n\t\t".'<p>'.WFU_DASHBOARD_PAGE_OBSOLETE.'</p>';
125
+ $echo_str .= "\n\t".'</div>';
126
+ $echo_str .= "\n\t".'<div id="wfu_update_rejected_message" class="error" style="display:none;">';
127
+ $echo_str .= "\n\t\t".'<p>'.WFU_DASHBOARD_UPDATE_SHORTCODE_REJECTED.'</p>';
128
+ $echo_str .= "\n\t".'</div>';
129
+ $echo_str .= "\n\t".'<div id="wfu_update_failed_message" class="error" style="display:none;">';
130
+ $echo_str .= "\n\t\t".'<p>'.WFU_DASHBOARD_UPDATE_SHORTCODE_FAILED.'</p>';
131
+ $echo_str .= "\n\t".'</div>';
132
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
133
+ if ( current_user_can( 'manage_options' ) ) $echo_str .= "\n\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=manage_mainmenu" class="button" title="go back">Go to Main Menu</a>';
134
+ $echo_str .= "\n\t".'</div>';
135
+ if ( $widgetid == "" ) $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px; margin-top: 20px;">'.( $data == "" ? 'Test' : $posttype.' <strong>'.$postname.'</strong>' ).': Shortcode Composer for '.$plugin_title.' <strong>ID '.$shortcode_id.'</strong></h2>';
136
+ else $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px; margin-top: 20px;">Sidebar <strong>'.$sidebar.'</strong>: Shortcode Composer for Uploader <strong>ID '.$shortcode_id.'</strong></h2>';
137
+ $echo_str .= "\n\t".'<div style="margin-top:10px; display:inline-block;">';
138
+ if ( $data != "") $echo_str .= "\n\t\t".'<input id="wfu_update_shortcode" type="button" value="Update" class="button-primary" disabled="disabled" onclick="wfu_save_shortcode()" /><span id="wfu_update_shortcode_wait" class="spinner" style="float:right; display:none;"></span>';
139
+ $echo_str .= "\n\t\t".'<input id="wfu_shortcode_original_enc" type="hidden" value="'.wfu_plugin_encode_string($shortcode_full).'" />';
140
+ $echo_str .= "\n\t\t".'<input id="wfu_shortcode_tag" type="hidden" value="'.$shortcode_tag.'" />';
141
+ $echo_str .= "\n\t\t".'<input id="wfu_shortcode_postid" type="hidden" value="'.$postid.'" />';
142
+ $echo_str .= "\n\t\t".'<input id="wfu_shortcode_posthash" type="hidden" value="'.$posthash.'" />';
143
+ $echo_str .= "\n\t\t".'<input id="wfu_shortcode_position" type="hidden" value="'.$shortcode_position.'" />';
144
+ $echo_str .= "\n\t\t".'<input id="wfu_shortcode_widgetid" type="hidden" value="'.$widgetid.'" />';
145
+ $echo_str .= "\n\t".'</div>';
146
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
147
+ $echo_str .= "\n\t\t".'<div class="wfu_shortcode_container">';
148
+ $echo_str .= "\n\t\t\t".'<span><strong>Generated Shortcode</strong></span>';
149
+ $echo_str .= "\n\t\t\t".'<span id="wfu_save_label" class="wfu_save_label">saved</span>';
150
+ $echo_str .= "\n\t\t\t".'<textarea id="wfu_shortcode" class="wfu_shortcode" rows="5">['.$shortcode_tag.']</textarea>';
151
+ $echo_str .= "\n\t\t\t".'<div id="wfu_attribute_defaults" style="display:none;">';
152
+ // remove hidden attributes from defs array
153
+ foreach ( $defs as $key => $def ) if ( $def['type'] == "hidden" ) unset($defs[$key]);
154
+ foreach ( $defs as $def )
155
+ $echo_str .= "\n\t\t\t\t".'<input id="wfu_attribute_default_'.$def['attribute'].'" type="hidden" value="'.$def['default'].'" />';
156
+ $echo_str .= "\n\t\t\t".'</div>';
157
+ $echo_str .= "\n\t\t\t".'<div id="wfu_attribute_values" style="display:none;">';
158
+ foreach ( $defs as $def ) {
159
+ $echo_str .= "\n\t\t\t\t".'<input id="wfu_attribute_value_'.$def['attribute'].'" type="hidden" value="'.$def['value'].'" />';
160
+ //add additional values, if exist
161
+ foreach( $def['additional_values'] as $key => $val )
162
+ $echo_str .= "\n\t\t\t\t".'<input id="wfu_attribute_value_'.$def['attribute'].$key.'" type="hidden" value="'.$val.'" />';
163
+ }
164
+ $echo_str .= "\n\t\t\t".'</div>';
165
+ $echo_str .= "\n\t\t".'</div>';
166
+ $echo_str .= "\n\t".'</div>';
167
+ $echo_str .= "\n\t".'<h3 id="wfu_tab_container" class="nav-tab-wrapper">';
168
+ $is_first = true;
169
+ foreach ( $cats as $key => $cat ) {
170
+ $echo_str .= "\n\t\t".'<a id="wfu_tab_'.$key.'" class="nav-tab'.( $is_first ? ' nav-tab-active' : '' ).'" href="javascript: wfu_admin_activate_tab(\''.$key.'\');">'.$cat.'</a>';
171
+ $is_first = false;
172
+ }
173
+ $echo_str .= "\n\t".'</h3>';
174
+
175
+ $prevcat = "";
176
+ $prevsubcat = "";
177
+ $is_first = true;
178
+ $block_open = false;
179
+ $subblock_open = false;
180
+ foreach ( $defs as $def ) {
181
+ $attr = $def['attribute'];
182
+ //check if this attribute depends on other
183
+ if ( !array_key_exists($attr, $governors) ) $governors[$attr] = "";
184
+ if ( $governors[$attr] != "" ) $governor = $governors[$attr];
185
+ else $governor = array( 'attribute' => "independent", 'active' => true, 'inv' => '' );
186
+
187
+ //close previous blocks
188
+ if ( $def['parent'] == "" ) {
189
+ if ( $subblock_open ) {
190
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</tbody>';
191
+ $echo_str .= "\n\t\t\t\t\t\t".'</table>';
192
+ $subblock_open = false;
193
+ }
194
+ if ( $block_open ) {
195
+ $echo_str .= "\n\t\t\t\t\t".'</div></td>';
196
+ $echo_str .= "\n\t\t\t\t".'</tr>';
197
+ $block_open = false;
198
+ }
199
+ }
200
+ //check if new category must be generated
201
+ if ( $def['category'] != $prevcat ) {
202
+ if ( $prevcat != "" ) {
203
+ $echo_str .= "\n\t\t\t".'</tbody>';
204
+ $echo_str .= "\n\t\t".'</table>';
205
+ $echo_str .= "\n\t".'</div>';
206
+ }
207
+ $prevcat = $def['category'];
208
+ $prevsubcat = "";
209
+ $echo_str .= "\n\t".'<div id="wfu_container_'.$prevcat.'" class="wfu_container"'.( $is_first ? '' : ' style="display:none;"' ).'">';
210
+ $echo_str .= "\n\t\t".'<table class="form-table wfu_main_table">';
211
+ $echo_str .= "\n\t\t\t".'<thead><tr><th></th><td></td><td></td></tr></thead>';
212
+ $echo_str .= "\n\t\t\t".'<tbody>';
213
+ $is_first = false;
214
+ }
215
+ //check if new sub-category must be generated
216
+ if ( $def['subcategory'] != $prevsubcat ) {
217
+ $prevsubcat = $def['subcategory'];
218
+ $echo_str .= "\n\t\t\t\t".'<tr class="wfu_subcategory">';
219
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row" colspan="3">';
220
+ $echo_str .= "\n\t\t\t\t\t\t".'<h3 style="margin-bottom: 10px; margin-top: 10px;">'.$prevsubcat.'</h3>';
221
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
222
+ $echo_str .= "\n\t\t\t\t".'</tr>';
223
+ }
224
+ //draw attribute element
225
+ if ( $def['parent'] == "" ) {
226
+ $dlp = "\n\t\t\t\t";
227
+ }
228
+ else {
229
+ if ( !$subblock_open ) {
230
+ $echo_str .= "\n\t\t\t\t\t\t".'<div class="wfu_shadow wfu_shadow_'.$def['parent'].$governor['inv'].'" style="display:'.( $governor['active'] ? 'none' : 'block' ).';"></div>';
231
+ $echo_str .= "\n\t\t\t\t\t\t".'<table class="form-table wfu_inner_table" style="margin:0;">';
232
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<tbody>';
233
+ }
234
+ $dlp = "\n\t\t\t\t\t\t\t\t";
235
+ }
236
+ $echo_str .= $dlp.'<tr>';
237
+ $echo_str .= $dlp."\t".'<th scope="row"><div class="wfu_td_div">';
238
+ if ( $def['parent'] == "" ) $echo_str .= $dlp."\t\t".'<div class="wfu_shadow wfu_shadow_'.$governor['attribute'].$governor['inv'].'" style="display:'.( $governor['active'] ? 'none' : 'block' ).';"></div>';
239
+ $echo_str .= $dlp."\t\t".'<div class="wfu_restore_container" title="Double-click to restore defaults setting"><img src="'.WFU_IMAGE_ADMIN_RESTOREDEFAULT.'" ondblclick="wfu_apply_value(\''.$attr.'\', \''.$def['type'].'\', \''.$def['default'].'\');" /></div>';
240
+ $echo_str .= $dlp."\t\t".'<label for="wfu_attribute_'.$attr.'">'.$def['name'].'</label>';
241
+ $echo_str .= $dlp."\t\t".'<input type="hidden" name="wfu_attribute_governor_'.$governor['attribute'].'" class="wfu_attribute_governor" value="'.$attr.'" />';
242
+ $echo_str .= $dlp."\t\t".'<div class="wfu_help_container" title="'.$def['help'].'"><img src="'.WFU_IMAGE_ADMIN_HELP.'" /></div>';
243
+ $echo_str .= $dlp."\t".'</div></th>';
244
+ $echo_str .= $dlp."\t".'<td style="vertical-align:top;"><div class="wfu_td_div">';
245
+ if ( $def['parent'] == "" ) $echo_str .= $dlp."\t\t".'<div class="wfu_shadow wfu_shadow_'.$governor['attribute'].$governor['inv'].'" style="display:'.( $governor['active'] ? 'none' : 'block' ).';"></div>';
246
+ if ( $def['type'] == "onoff" ) {
247
+ $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_onoff_container_'.( $def['value'] == "true" ? "on" : "off" ).'" onclick="wfu_admin_onoff_clicked(\''.$attr.'\');">';
248
+ $echo_str .= $dlp."\t\t\t".'<div class="wfu_onoff_slider"></div>';
249
+ $echo_str .= $dlp."\t\t\t".'<span class="wfu_onoff_text">ON</span>';
250
+ $echo_str .= $dlp."\t\t\t".'<span class="wfu_onoff_text">OFF</span>';
251
+ $echo_str .= $dlp."\t\t".'</div>';
252
+ }
253
+ elseif ( $def['type'] == "text" ) {
254
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
255
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$val.'" style="display:block;" />';
256
+ if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
257
+ }
258
+ elseif ( $def['type'] == "placements" ) {
259
+ $components_used = array();
260
+ foreach ( $components as $component ) $components_used[$component['id']] = 0;
261
+ $centered_content = '<div class="wfu_component_box_inner"><div class="wfu_component_box_label">XXX</div></div>';
262
+ $centered_content_multi = '<div class="wfu_component_box_inner"><div class="wfu_component_box_label">XXX</div><div class="wfu_component_box_index">YYY</div></div>';
263
+ $echo_str .= $dlp."\t\t".'<div class="wfu_placements_wrapper">';
264
+ $echo_str .= $dlp."\t\t\t".'<div id="wfu_placements_container" class="wfu_placements_container">';
265
+ $itemplaces = explode("/", $def['value']);
266
+ foreach ( $itemplaces as $section ) {
267
+ $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_hor"></div>';
268
+ $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_ver"></div>';
269
+ $items_in_section = explode("+", trim($section));
270
+ $section_array = array( );
271
+ foreach ( $items_in_section as $item_in_section ) {
272
+ if ( key_exists($item_in_section, $components_indexed) ) {
273
+ if ( $components_indexed[$item_in_section]['multiplacements'] || $components_used[$item_in_section] == 0 ) {
274
+ $components_used[$item_in_section] ++;
275
+ if ( $components_indexed[$item_in_section]['multiplacements'] ) {
276
+ $multi_index = $components_used[$item_in_section];
277
+ $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_box_'.$item_in_section.'_'.$multi_index.'" class="wfu_component_box" draggable="true" title="'.$components_indexed[$item_in_section]['help'].'">'.str_replace(array("XXX", "YYY"), array($components_indexed[$item_in_section]['name'], $multi_index), $centered_content_multi).'</div>';
278
+ }
279
+ else
280
+ $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_box_'.$item_in_section.'_0" class="wfu_component_box" draggable="true" title="'.$components_indexed[$item_in_section]['help'].'">'.str_replace("XXX", $components_indexed[$item_in_section]['name'], $centered_content).'</div>';
281
+ $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_ver"></div>';
282
+ }
283
+ }
284
+ }
285
+ }
286
+ $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_component_separator_hor"></div>';
287
+ $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_bar_hor" class="wfu_component_bar_hor"></div>';
288
+ $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_bar_ver" class="wfu_component_bar_ver"></div>';
289
+ $echo_str .= $dlp."\t\t\t".'</div>';
290
+ $echo_str .= $dlp."\t\t\t".'<div id="wfu_componentlist_container" class="wfu_componentlist_container">';
291
+ $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_componentlist_dragdrop" class="wfu_componentlist_dragdrop" style="display:none;"></div>';
292
+ $ii = 1;
293
+ foreach ( $components as $component ) {
294
+ $echo_str .= $dlp."\t\t\t\t".'<div id="wfu_component_box_container_'.$component['id'].'" class="wfu_component_box_container">';
295
+ $echo_str .= $dlp."\t\t\t\t\t".'<div class="wfu_component_box_base">'.str_replace("XXX", $component['name'], $centered_content).'</div>';
296
+ if ( $component['multiplacements'] ) {
297
+ $multi_index = $components_used[$component['id']] + 1;
298
+ $echo_str .= $dlp."\t\t\t\t\t".'<div id="wfu_component_box_'.$component['id'].'_'.$multi_index.'" class="wfu_component_box wfu_inbase" draggable="true" title="'.$component['help'].'">'.str_replace(array("XXX", "YYY"), array($component['name'], $multi_index), $centered_content_multi).'</div>';
299
+ }
300
+ elseif ( $components_used[$component['id']] == 0 )
301
+ $echo_str .= $dlp."\t\t\t\t\t".'<div id="wfu_component_box_'.$component['id'].'_0" class="wfu_component_box wfu_inbase" draggable="true" title="'.$component['help'].'">'.str_replace("XXX", $component['name'], $centered_content).'</div>';
302
+ $echo_str .= $dlp."\t\t\t\t".'</div>'.( ($ii++) % 3 == 0 ? '<br />' : '' );
303
+ }
304
+ $echo_str .= $dlp."\t\t\t".'</div>';
305
+ $echo_str .= $dlp."\t\t".'</div>';
306
+ }
307
+ elseif ( $def['type'] == "ltext" ) {
308
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
309
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" class="wfu_long_text" value="'.$val.'" />';
310
+ if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
311
+ }
312
+ elseif ( $def['type'] == "integer" ) {
313
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
314
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="number" name="wfu_text_elements" class="wfu_short_text" min="1" value="'.$val.'" />';
315
+ if ( isset($def['listitems']['unit']) ) $echo_str .= $dlp."\t\t".'<label> '.$def['listitems']['unit'].'</label>';
316
+ }
317
+ elseif ( $def['type'] == "float" ) {
318
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
319
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="number" name="wfu_text_elements" class="wfu_short_text" step="any" min="0" value="'.$val.'" />';
320
+ if ( isset($def['listitems']['unit']) ) $echo_str .= $dlp."\t\t".'<label> '.$def['listitems']['unit'].'</label>';
321
+ }
322
+ elseif ( $def['type'] == "date" ) {
323
+ $val = $def['value'];
324
+ $echo_str .= $dlp."\t\t".'<div class="wfu_date_container"><input id="wfu_attribute_'.$attr.'" type="text" value="'.$val.'" readonly style="padding-right:16px; background-color:white; width:auto;" /><img class="wfu_datereset_button" src="'.WFU_IMAGE_ADMIN_SUBFOLDER_CANCEL.'" onclick="var f = document.getElementById(\'wfu_attribute_'.$attr.'\'); f.value = \'\'; wfu_update_date_value({target:f});" /></div><label style="font-size:smaller; margin-left:4px;">format: YYYY-MM-DD</label>';
325
+ $echo_str .= wfu_inject_js_code('jQuery(function() {jQuery("#wfu_attribute_'.$attr.'").datepicker({dateFormat: "yy-mm-dd", onClose: function(date, picker) {wfu_update_date_value({target:this});}});});');
326
+ }
327
+ elseif ( $def['type'] == "radio" ) {
328
+ $echo_str .= $dlp."\t\t";
329
+ $ii = 0;
330
+ foreach ( $def['listitems'] as $item )
331
+ $echo_str .= '<input name="wfu_radioattribute_'.$attr.'" type="radio" value="'.$item.'" '.( $item == $def['value'] || $item == "*".$def['value'] ? 'checked="checked" ' : '' ).'style="width:auto; margin:0px 2px 0px '.( ($ii++) == 0 ? '0px' : '8px' ).';" onchange="wfu_admin_radio_clicked(\''.$attr.'\');" />'.( $item[0] == "*" ? substr($item, 1) : $item );
332
+ // $echo_str .= '<input type="button" class="button" value="empty" style="width:auto; margin:-2px 0px 0px 8px;" />';
333
+ }
334
+ elseif ( $def['type'] == "ptext" ) {
335
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
336
+ $parts = explode("/", $val);
337
+ $singular = $parts[0];
338
+ if ( count($parts) < 2 ) $plural = $singular;
339
+ else $plural = $parts[1];
340
+ $echo_str .= $dlp."\t\t".'<span class="wfu_ptext_span">Singular</span><input id="wfu_attribute_s_'.$attr.'" type="text" name="wfu_ptext_elements" value="'.$singular.'" />';
341
+ if ( $def['variables'] != null ) if ( count($def['variables']) > 0 ) $echo_str .= $dlp."\t\t".'<br /><span class="wfu_ptext_span">&nbsp;</span>';
342
+ if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_s_'.$attr);
343
+ $echo_str .= $dlp."\t\t".'<br /><span class="wfu_ptext_span">Plural</span><input id="wfu_attribute_p_'.$attr.'" type="text" name="wfu_ptext_elements" value="'.$plural.'" />';
344
+ if ( $def['variables'] != null ) if ( count($def['variables']) > 0 ) $echo_str .= $dlp."\t\t".'<br /><span class="wfu_ptext_span">&nbsp;</span>';
345
+ if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_p_'.$attr, $dlp);
346
+ }
347
+ elseif ( $def['type'] == "mtext" ) {
348
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
349
+ $echo_str .= $dlp."\t\t".'<textarea id="wfu_attribute_'.$attr.'" name="wfu_text_elements" rows="5">'.$val.'</textarea>';
350
+ if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
351
+ }
352
+ elseif ( $def['type'] == "folderlist" ) {
353
+ $echo_str .= $dlp."\t\t".'<div id="wfu_subfolders_inner_shadow_'.$attr.'" class="wfu_subfolders_inner_shadow" style="display:none;"></div>';
354
+ $subfolders = wfu_parse_folderlist($def['value']);
355
+ $poptitle = "Populate list automatically with the first-level subfolders of the path defined in uploadpath";
356
+ $edittitle = "Allow the user to type the subfolder and filter the list during typing";
357
+ $echo_str .= $dlp."\t\t".'<input type="checkbox" id="wfu_subfolders_auto_'.$attr.'"'.( substr($def['value'], 0, 4) == "auto" ? ' checked="checked"' : '' ).' onchange="wfu_subfolders_auto_changed(\''.$attr.'\');" title="'.$poptitle.'" /><label for="wfu_subfolders_auto_'.$attr.'" title="'.$poptitle.'"> Auto-populate list</label>';
358
+ $echo_str .= $dlp."\t\t".'<div style="display:'.( substr($def['value'], 0, 4) == "auto" ? 'inline' : 'none' ).'; padding:0; margin:0 0 0 30px; background:none; border:none;"><input type="checkbox" id="wfu_subfolders_editable_'.$attr.'"'.( substr($def['value'], 0, 5) == "auto+" ? ' checked="checked"' : '' ).' onchange="wfu_subfolders_auto_changed(\''.$attr.'\');" title="'.$edittitle.'" /><label for="wfu_subfolders_editable_'.$attr.'" title="'.$edittitle.'"> List is editable</label></div><br />';
359
+ $echo_str .= $dlp."\t\t".'<input type="hidden" id="wfu_subfolders_manualtext_'.$attr.'" value="'.( substr($def['value'], 0, 4) == "auto" ? "" : $def['value'] ).'" />';
360
+ $echo_str .= $dlp."\t\t".'<select id="wfu_attribute_'.$attr.'" class="wfu_select_folders'.( count($subfolders['path']) == 0 ? ' wfu_select_folders_empty' : '' ).'" size="7"'.( substr($def['value'], 0, 4) == "auto" ? ' disabled="disabled"' : '' ).' onchange="wfu_subfolders_changed(\''.$attr.'\');">';
361
+ foreach ($subfolders['path'] as $ind => $subfolder) {
362
+ if ( substr($subfolder, -1) == '/' ) $subfolder = substr($subfolder, 0, -1);
363
+ $subfolder_raw = explode('/', $subfolder);
364
+ $subfolder = $subfolder_raw[count($subfolder_raw) - 1];
365
+ $text = str_repeat("&nbsp;&nbsp;&nbsp;", intval($subfolders['level'][$ind])).$subfolders['label'][$ind];
366
+ $subvalue = str_repeat("*", intval($subfolders['level'][$ind])).( $subfolders['default'][$ind] ? '&' : '' ).( $subfolder == "" ? '{root}' : $subfolder ).'/'.$subfolders['label'][$ind];
367
+ $echo_str .= $dlp."\t\t\t".'<option class="'.( $subfolders['default'][$ind] ? 'wfu_select_folders_option_default' : '' ).'" value="'.wfu_plugin_encode_string($subvalue).'">'.$text.'</option>';
368
+ }
369
+ $echo_str .= $dlp."\t\t\t".'<option value="">'.( substr($def['value'], 0, 4) != "auto" && count($subfolders['path']) == 0 ? 'press here' : '' ).'</option>';
370
+ $echo_str .= $dlp."\t\t".'</select>';
371
+ $echo_str .= $dlp."\t\t".'<div id="wfu_subfolder_nav_'.$attr.'" class="wfu_subfolder_nav_container">';
372
+ $echo_str .= $dlp."\t\t\t".'<table class="wfu_subfolder_nav"><tbody>';
373
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_up_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" disabled="disabled" title="move item up" onclick="wfu_subfolders_up_clicked(\''.$attr.'\');">&uarr;</button></tr></td>';
374
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_left_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="make it parent" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_left_clicked(\''.$attr.'\');">&larr;</button>';
375
+ $echo_str .= $dlp."\t\t\t\t".'<button id="wfu_subfolders_right_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="make it child" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_right_clicked(\''.$attr.'\');">&rarr;</button></tr></td>';
376
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_down_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="move item down" disabled="disabled" onclick="wfu_subfolders_down_clicked(\''.$attr.'\');">&darr;</button></tr></td>';
377
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td style="line-height:0;"><button class="button" style="visibility:hidden; height:10px;"></button></tr></td>';
378
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_add_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="add new item" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_add_clicked(\''.$attr.'\');">+</button></tr></td>';
379
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_def_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="make it default" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_def_clicked(\''.$attr.'\');">&diams;</button></tr></td>';
380
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td><button id="wfu_subfolders_del_'.$attr.'" name="wfu_subfolder_nav_'.$attr.'" class="button" title="delete item" disabled="disabled" style="height:14px;" onclick="wfu_subfolders_del_clicked(\''.$attr.'\');">-</button></tr></td>';
381
+ $echo_str .= $dlp."\t\t\t".'</tbody></table>';
382
+ $echo_str .= $dlp."\t\t".'</div>';
383
+ $echo_str .= $dlp."\t\t".'<div id="wfu_subfolder_tools_'.$attr.'" class="wfu_subfolder_tools_container wfu_subfolder_tools_disabled">';
384
+ $echo_str .= $dlp."\t\t\t".'<table class="wfu_subfolder_tools"><tbody><tr>';
385
+ $echo_str .= $dlp."\t\t\t\t".'<td style="width:40%;">';
386
+ $echo_str .= $dlp."\t\t\t\t\t".'<label>Label</label>';
387
+ $echo_str .= $dlp."\t\t\t\t\t".'<input id="wfu_subfolders_label_'.$attr.'" name="wfu_subfolder_tools_input" type="text" disabled="disabled" />';
388
+ $echo_str .= $dlp."\t\t\t\t".'</td>';
389
+ $echo_str .= $dlp."\t\t\t\t".'<td style="width:60%;"><div style="padding-right:36px;">';
390
+ $echo_str .= $dlp."\t\t\t\t\t".'<label>Path</label>';
391
+ $echo_str .= $dlp."\t\t\t\t\t".'<input id="wfu_subfolders_path_'.$attr.'" name="wfu_subfolder_tools_input" type="text" disabled="disabled" />';
392
+ $echo_str .= $dlp."\t\t\t\t\t".'<button id="wfu_subfolders_browse_'.$attr.'" class="button" title="browse folders" style="right:18px;" disabled="disabled" onclick="wfu_subfolders_browse_clicked(\''.$attr.'\');"><img src="'.WFU_IMAGE_ADMIN_SUBFOLDER_BROWSE.'" ></button>';
393
+ $echo_str .= $dlp."\t\t\t\t\t".'<button id="wfu_subfolders_ok_'.$attr.'" class="button" title="save changes" style="right:0px;" disabled="disabled" onclick="wfu_subfolders_ok_clicked(\''.$attr.'\');"><img src="'.WFU_IMAGE_ADMIN_SUBFOLDER_OK.'" ></button>';
394
+ // file browser dialog
395
+ $echo_str .= $dlp."\t\t\t\t\t".'<div id="wfu_subfolders_browser_'.$attr.'" class="wfu_subfolders_browser_container" style="display:none;">';
396
+ $echo_str .= $dlp."\t\t\t\t\t\t".'<table><tbody>';
397
+ $echo_str .= $dlp."\t\t\t\t\t\t\t".'<tr><td style="height:15px;">';
398
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'<div>';
399
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<label>Folder Browser</label>';
400
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<button class="button wfu_folder_browser_cancel" onclick="wfu_folder_browser_cancel_clicked(\''.$attr.'\');"><img src="'.WFU_IMAGE_ADMIN_SUBFOLDER_CANCEL.'" ></button>';
401
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'</div>';
402
+ $echo_str .= $dlp."\t\t\t\t\t\t\t".'</td></tr>';
403
+ $echo_str .= $dlp."\t\t\t\t\t\t\t".'<tr><td style="height:106px;">';
404
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'<div>';
405
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<select id="wfu_subfolders_browser_list_'.$attr.'" size="2" onchange="wfu_subfolders_browser_list_changed(\''.$attr.'\');">';
406
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<option>Value</option>';
407
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<option>Value2</option>';
408
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<option>Value3</option>';
409
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'</select>';
410
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<div id="wfu_subfolders_browser_msgcont_'.$attr.'" class="wfu_folder_browser_loading_container" style="padding-top:40px;">';
411
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<label id="wfu_subfolders_browser_msg_'.$attr.'" style="margin-bottom:4px;">loading folder contents...</label>';
412
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t\t".'<img id="wfu_subfolders_browser_img_'.$attr.'" src="'.WFU_IMAGE_ADMIN_SUBFOLDER_LOADING.'" ></button>';
413
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'</div>';
414
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'</div>';
415
+ $echo_str .= $dlp."\t\t\t\t\t\t\t".'</td></tr>';
416
+ $echo_str .= $dlp."\t\t\t\t\t\t\t".'<tr><td align="right" style="height:15px;">';
417
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'<div>';
418
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<button class="button" onclick="wfu_folder_browser_cancel_clicked(\''.$attr.'\');">Cancel</button>';
419
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t\t".'<button id="wfu_subfolders_browser_ok_'.$attr.'" class="button">Ok</button>';
420
+ $echo_str .= $dlp."\t\t\t\t\t\t\t\t".'</div>';
421
+ $echo_str .= $dlp."\t\t\t\t\t\t\t".'</td></tr>';
422
+ $echo_str .= $dlp."\t\t\t\t\t\t".'</tbody></table>';
423
+ $echo_str .= $dlp."\t\t\t\t\t".'</div>';
424
+
425
+ $echo_str .= $dlp."\t\t\t\t".'</div></td>';
426
+ $echo_str .= $dlp."\t\t\t".'</tr></tbody></table>';
427
+ $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_isnewitem_'.$attr.'" type="hidden" value="" />';
428
+ $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_newitemindex_'.$attr.'" type="hidden" value="" />';
429
+ $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_newitemlevel_'.$attr.'" type="hidden" value="" />';
430
+ $echo_str .= $dlp."\t\t\t".'<input id="wfu_subfolders_newitemlevel2_'.$attr.'" type="hidden" value="" />';
431
+ $echo_str .= $dlp."\t\t".'</div>';
432
+ }
433
+ elseif ( $def['type'] == "mchecklist" ) {
434
+ $help_count = 0;
435
+ foreach ( $def['listitems'] as $key => $item ) {
436
+ $parts = explode("/", $item);
437
+ if ( count($parts) == 1 ) {
438
+ $items[$key]['id'] = $item;
439
+ $items[$key]['help'] = '';
440
+ }
441
+ else {
442
+ $items[$key]['id'] = $parts[0];
443
+ $items[$key]['help'] = $parts[1];
444
+ $help_count ++;
445
+ }
446
+ }
447
+ $def['value'] = strtolower($def['value']);
448
+ if ( $def['value'] == "all" ) $selected = array();
449
+ else $selected = explode(",", $def['value']);
450
+ foreach ( $selected as $key => $item ) $selected[$key] = trim($item);
451
+ $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_mchecklist_container">';
452
+ $is_first = true;
453
+ foreach ( $items as $key => $item ) {
454
+ if ( !$is_first ) $echo_str .= "<br />";
455
+ $is_first = false;
456
+ $echo_str .= $dlp."\t\t\t".'<div class="wfu_mchecklist_item"><input id="wfu_attribute_'.$attr.'_'.$key.'" type="checkbox"'.( $def['value'] == "all" || in_array($item['id'], $selected) ? ' checked="checked"' : '' ).( $def['value'] == "all" ? ' disabled="disabled"' : '' ).' onchange="wfu_update_mchecklist_value(\''.$attr.'\');" /><label for="wfu_attribute_'.$attr.'_'.$key.'">'.$item['id'].'</label>';
457
+ if ( $item['help'] != '' ) $echo_str .= '<div class="wfu_help_container" title="'.$item['help'].'"><img src="'.WFU_IMAGE_ADMIN_HELP.'" /></div>';
458
+ $echo_str .= '</div>';
459
+ }
460
+ $echo_str .= $dlp."\t\t".'</div>';
461
+ $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'_optionhelp" class="wfu_help_container" title="" style="display:none; position:absolute;"><img src="'.WFU_IMAGE_ADMIN_HELP.'" style="visibility:visible;" /></div>';
462
+ $echo_str .= $dlp."\t\t".'<div class="wfu_mchecklist_checkall"><input id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_mchecklist_value(\''.$attr.'\');"'.( $def['value'] == "all" ? ' checked="checked"' : '' ).' /> Select all</div>';
463
+ }
464
+ elseif ( $def['type'] == "rolelist" ) {
465
+ $roles = $wp_roles->get_names();
466
+ $selected = explode(",", $def['value']);
467
+ $default_administrator = ( is_array($def['listitems']) && in_array('default_administrator', $def['listitems']) );
468
+ if ( in_array('all', $selected) ) $rolesselected = ( $default_administrator ? array("administrator") : array( ) );
469
+ else $rolesselected = $selected;
470
+ foreach ( $selected as $key => $item ) $selected[$key] = trim($item);
471
+ $echo_str .= $dlp."\t\t".'<table class="wfu_rolelist_container"><tbody><tr><td>';
472
+ $echo_str .= $dlp."\t\t".'<select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.count($roles).'" onchange="wfu_update_rolelist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' disabled="disabled"' : '' ).'>';
473
+ foreach ( $roles as $roleid => $rolename )
474
+ $echo_str .= $dlp."\t\t\t".'<option value="'.$roleid.'"'.( in_array($roleid, $rolesselected) ? ' selected="selected"' : '' ).'>'.$rolename.'</option>';
475
+ $echo_str .= $dlp."\t\t".'</select>';
476
+ $echo_str .= $dlp."\t\t".'</td><td>';
477
+ $echo_str .= $dlp."\t\t".'<div class="wfu_rolelist_checkbtn"><input class="'.( $default_administrator ? 'wfu_default_administrator' : '' ).'" id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_rolelist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all"> Select all</label></div><br />';
478
+ $echo_str .= $dlp."\t\t".'<div class="wfu_rolelist_checkbtn"><input id="wfu_attribute_'.$attr.'_guests" type="checkbox" onchange="wfu_update_rolelist_value(\''.$attr.'\');"'.( in_array("guests", $selected) ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_guests"> Include guests</label></div>';
479
+ $echo_str .= $dlp."\t\t".'</td></tr></tbody></table>';
480
+ }
481
+ elseif ( $def['type'] == "userlist" ) {
482
+ $users = get_users();
483
+ $selected = explode(",", $def['value']);
484
+ $default_0 = ( is_array($def['listitems']) && in_array('default_0', $def['listitems']) );
485
+ if ( in_array('all', $selected) ) $usersselected = ( $default_0 ? array($users[0]->user_login) : array( ) );
486
+ else $usersselected = $selected;
487
+ $only_current = false;
488
+ $echo_str .= $dlp."\t\t".'<table class="wfu_userlist_container"><tbody><tr>';
489
+ if ( is_array($def['listitems']) && in_array('include_current', $def['listitems']) ) {
490
+ $only_current = ( $def['value'] == 'current' );
491
+ if ( $only_current ) $usersselected = ( $default_0 ? array($users[0]->user_login) : array( ) );
492
+ $echo_str .= $dlp."\t\t".'<td colspan="2"><div class="wfu_userlist_checkbtn"><input id="wfu_attribute_'.$attr.'_current" type="checkbox" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( $only_current ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_current"> Only From Current User</label></div>';
493
+ $echo_str .= $dlp."\t\t".'</td></tr><tr>';
494
+ }
495
+ $echo_str .= $dlp."\t\t".'<td><select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.min(count($users), 10).'" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( $only_current || in_array('all', $selected) ? ' disabled="disabled"' : '' ).'>';
496
+ foreach ( $users as $userid => $user )
497
+ $echo_str .= $dlp."\t\t\t".'<option value="'.$user->user_login.'"'.( in_array($user->user_login, $usersselected) ? ' selected="selected"' : '' ).'>'.$user->display_name.' ('.$user->user_login.')</option>';
498
+ $echo_str .= $dlp."\t\t".'</select>';
499
+ $echo_str .= $dlp."\t\t".'</td><td>';
500
+ $echo_str .= $dlp."\t\t".'<div class="wfu_userlist_checkbtn"><input class="'.( $default_0 ? 'wfu_default_0' : '' ).'" id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all"> Select all</label></div><br />';
501
+ $echo_str .= $dlp."\t\t".'<div class="wfu_userlist_checkbtn"><input id="wfu_attribute_'.$attr.'_guests" type="checkbox" onchange="wfu_update_userlist_value(\''.$attr.'\');"'.( in_array("guests", $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_guests"> Include guests</label></div>';
502
+ $echo_str .= $dlp."\t\t".'</td></tr></tbody></table>';
503
+ }
504
+ elseif ( $def['type'] == "postlist" ) {
505
+ $processed = false;
506
+ if ( is_array($def['listitems']) ) {
507
+ $has_current = in_array('include_current', $def['listitems']);
508
+ if ( $has_current ) unset($def['listitems'][array_search('include_current', $def['listitems'])]);
509
+ foreach ( $def['listitems'] as $post_type ) {
510
+ // if a post type cannot be found then we reset the list so that it is not processed at all
511
+ if ( get_post_type_object( $post_type ) == null ) {
512
+ $def['listitems'] = array();
513
+ break;
514
+ }
515
+ }
516
+ if ( count($def['listitems']) > 0 ) {
517
+ $selected = explode(",", $def['value']);
518
+ $only_current = false;
519
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'_postlist" type="hidden" value="'.implode(",", $def['listitems']).'" />';
520
+ $echo_str .= $dlp."\t\t".'<table class="wfu_postlist_container"><tbody><tr>';
521
+ if ( $has_current ) {
522
+ $only_current = ( $def['value'] == 'current' );
523
+ if ( $only_current ) $sselected = array();
524
+ $echo_str .= $dlp."\t\t".'<td colspan="'.count($def['listitems']).'"><div class="wfu_postlist_checkbtn"><input id="wfu_attribute_'.$attr.'_current" type="checkbox" onchange="wfu_update_postlist_value(\''.$attr.'\');"'.( $only_current ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_current"> Only From Current Post/Page</label></div>';
525
+ $echo_str .= $dlp."\t\t".'</td></tr><tr>';
526
+ }
527
+ $postargs = array( 'post_type' => $def['listitems'], 'post_status' => "publish,private,draft", 'posts_per_page' => -1 );
528
+ $postargs = apply_filters("_wfu_get_posts", $postargs, "visual_editor");
529
+ $posts = get_posts($postargs);
530
+ $list = wfu_construct_post_list($posts);
531
+ $td_width = (int)(100 / count($def['listitems']));
532
+ foreach ( $def['listitems'] as $post_type ) {
533
+ $flatlist = wfu_flatten_post_list($list[$post_type]);
534
+ $postobj = get_post_type_object( $post_type );
535
+ $echo_str .= $dlp."\t\t".'<td style="width:'.$td_width.'%;"><div class="wfu_postlist_header"><label>'.$postobj->label.'</label><div class="wfu_postlist_selectall"><input id="wfu_attribute_'.$attr.'_all_'.$post_type.'" type="checkbox" onchange="wfu_update_postlist_value(\''.$attr.'\');"'.( in_array('all', $selected) || in_array('all'.$post_type, $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all_'.$post_type.'"> Select all</label></div></div>';
536
+ $echo_str .= $dlp."\t\t".'<select id="wfu_attribute_'.$attr.'_'.$post_type.'" multiple="multiple" size="'.min(count($flatlist), 10).'" onchange="wfu_update_postlist_value(\''.$attr.'\');"'.( $only_current || in_array('all', $selected) || in_array('all'.$post_type, $selected) ? ' disabled="disabled"' : '' ).' style="width:100%; overflow:auto;">';
537
+ foreach ( $flatlist as $item )
538
+ $echo_str .= $dlp."\t\t\t".'<option value="'.$item['id'].'"'.( in_array($item['id'], $selected) ? ' selected="selected"' : '' ).'>'.str_repeat('&nbsp;', 4 * $item['level']).( $item['status'] == 1 ? '[Private]' : ( $item['status'] == 2 ? '[Draft]' : '' ) ).$item['title'].'</option>';
539
+ $echo_str .= $dlp."\t\t".'</select></td>';
540
+ }
541
+ $echo_str .= $dlp."\t\t".'</tr></tbody></table>';
542
+ $processed = true;
543
+ }
544
+ }
545
+ if ( !$processed ) {
546
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
547
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$val.'" />';
548
+ }
549
+ }
550
+ elseif ( $def['type'] == "bloglist" ) {
551
+ if ( function_exists('wp_get_sites') ) {
552
+ $blogs = wp_get_sites( );
553
+ $selected = explode(",", $def['value']);
554
+ if ( in_array('all', $selected) ) $blogsselected = array( );
555
+ else $blogsselected = $selected;
556
+ $only_current = false;
557
+ $echo_str .= $dlp."\t\t".'<table class="wfu_bloglist_container"><tbody><tr>';
558
+ if ( is_array($def['listitems']) && in_array('include_current', $def['listitems']) ) {
559
+ $only_current = ( $def['value'] == 'current' );
560
+ if ( $only_current ) $blogsselected = array( );
561
+ $echo_str .= $dlp."\t\t".'<td colspan="2"><div class="wfu_bloglist_checkbtn"><input id="wfu_attribute_'.$attr.'_current" type="checkbox" onchange="wfu_update_bloglist_value(\''.$attr.'\');"'.( $only_current ? ' checked="checked"' : '' ).' /><label for="wfu_attribute_'.$attr.'_current"> Only From Current Site</label></div>';
562
+ $echo_str .= $dlp."\t\t".'</td></tr><tr>';
563
+ }
564
+ $echo_str .= $dlp."\t\t".'<td><select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.min(count($blogs), 10).'" onchange="wfu_update_bloglist_value(\''.$attr.'\');"'.( $only_current || in_array('all', $selected) ? ' disabled="disabled"' : '' ).'>';
565
+ foreach ( $blogs as $blog )
566
+ $echo_str .= $dlp."\t\t\t".'<option value="'.$blog->blog_id.'"'.( in_array($blog->blog_id, $blogsselected) ? ' selected="selected"' : '' ).'>'.$blog->path.'</option>';
567
+ $echo_str .= $dlp."\t\t".'</select>';
568
+ $echo_str .= $dlp."\t\t".'</td><td>';
569
+ $echo_str .= $dlp."\t\t".'<div class="wfu_bloglist_checkbtn"><input id="wfu_attribute_'.$attr.'_all" type="checkbox" onchange="wfu_update_bloglist_value(\''.$attr.'\');"'.( in_array('all', $selected) ? ' checked="checked"' : '' ).( $only_current ? ' disabled="disabled"' : '' ).' /><label for="wfu_attribute_'.$attr.'_all"> Select all</label></div>';
570
+ $echo_str .= $dlp."\t\t".'</td></tr></tbody></table>';
571
+ }
572
+ else {
573
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
574
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$val.'" />';
575
+ }
576
+ }
577
+ elseif ( $def['type'] == "stringmatch" ) {
578
+ $matchfield = "";
579
+ $matchcriterion = "equal to";
580
+ $matchvalue = "";
581
+ preg_match('/^field:(.*?);\s*criterion:(.*?)\s*;\s*value:(.*)$/', $def['value'], $matches);
582
+ if ( count($matches) == 4 ) {
583
+ $matchfield = $matches[1];
584
+ $matchcriterion = $matches[2];
585
+ $matchvalue = $matches[3];
586
+ }
587
+ // $echo_str .= $dlp."\t\t".'<div style="white-space:nowrap;">';
588
+ $echo_str .= $dlp."\t\t".'<table class="wfu_stringmatch_container"><tbody><tr>';
589
+ $echo_str .= $dlp."\t\t".'<td style="width:40%; white-space:nowrap;"><label>Field </label><input id="wfu_attribute_'.$attr.'_matchfield" type="text" name="wfu_stringmatch_elements" value="'.$matchfield.'" style="width:auto;" /></td>';
590
+ $echo_str .= $dlp."\t\t".'<td style="width:30%;"><select id="wfu_attribute_'.$attr.'_matchcriterion" value="'.$matchcriterion.'" onchange="wfu_update_stringmatch_value(\''.$attr.'\');">';
591
+ $echo_str .= $dlp."\t\t\t".'<option value="equal to"'.( $matchcriterion == "equal to" ? 'selected="selected"' : '' ).'>equal to</option>';
592
+ $echo_str .= $dlp."\t\t\t".'<option value="starts with"'.( $matchcriterion == "starts with" ? 'selected="selected"' : '' ).'>starts with</option>';
593
+ $echo_str .= $dlp."\t\t\t".'<option value="ends with"'.( $matchcriterion == "ends with" ? 'selected="selected"' : '' ).'>ends with</option>';
594
+ $echo_str .= $dlp."\t\t\t".'<option value="contains"'.( $matchcriterion == "contains" ? 'selected="selected"' : '' ).'>contains</option>';
595
+ $echo_str .= $dlp."\t\t\t".'<option value="not equal to"'.( $matchcriterion == "not equal to" ? 'selected="selected"' : '' ).'>not equal to</option>';
596
+ $echo_str .= $dlp."\t\t\t".'<option value="does not start with"'.( $matchcriterion == "does not start with" ? 'selected="selected"' : '' ).'>does not start with</option>';
597
+ $echo_str .= $dlp."\t\t\t".'<option value="does not end with"'.( $matchcriterion == "does not end with" ? 'selected="selected"' : '' ).'>does not end with</option>';
598
+ $echo_str .= $dlp."\t\t\t".'<option value="does not contain"'.( $matchcriterion == "does not contain" ? 'selected="selected"' : '' ).'>does not contain</option>';
599
+ $echo_str .= $dlp."\t\t".'</select></td>';
600
+ $echo_str .= $dlp."\t\t".'<td style="width:30%;"><input id="wfu_attribute_'.$attr.'_matchvalue" type="text" name="wfu_stringmatch_elements" value="'.$matchvalue.'" style="width:auto;" /></td>';
601
+ $echo_str .= $dlp."\t\t".'</tr></tbody></table>';
602
+ // $echo_str .= $dlp."\t\t".'</div>';
603
+ }
604
+ elseif ( $def['type'] == "columns" ) {
605
+ $selected = explode(",", $def['value']);
606
+ if ( count($selected) == 1 && $selected[0] == "" ) $selected = array();
607
+ $selected_flat = array();
608
+ foreach ( $selected as $ind => $item ) $selected_flat[$ind] = preg_replace("/(:|\/).*$/", "", $item);
609
+ $echo_str .= $dlp."\t".'<table class="wfu_columns_container"><tbody><tr>';
610
+ $echo_str .= $dlp."\t\t\t".'<td style="width:45%;"><label class="wfu_columns_listtitle">Available Columns</label></td>';
611
+ $echo_str .= $dlp."\t\t\t".'<td style="width:55%"><label class="wfu_columns_listtitle">Displayed Columns</label></td></tr><tr>';
612
+ $echo_str .= $dlp."\t\t".'<td style="width:45%;">';
613
+ $echo_str .= $dlp."\t\t\t".'<table class="wfu_columns_container" style="table-layout:fixed; width:100%;"><tbody><tr>';
614
+ $echo_str .= $dlp."\t\t\t\t".'<td><select id="wfu_attribute_'.$attr.'_sourcelist" multiple="multiple" size="'.min(count($def['listitems']), 10).'" style="width:100%; overflow:auto;">';
615
+ $itemprops = array();
616
+ foreach ( $def['listitems'] as $item ) {
617
+ $item_required = ( substr($item, 0, 1) == "*" );
618
+ if ( $item_required ) $item = substr($item, 1);
619
+ $item_parts = explode("/", $item, 3);
620
+ $item_name = $item_parts[0];
621
+ $item_label = "";
622
+ $item_title = "";
623
+ if ( count($item_parts) > 1 ) $item_label = $item_parts[1];
624
+ if ( count($item_parts) == 3 ) $item_title = $item_parts[2];
625
+ $item_parts = explode(":", $item_name, 2);
626
+ $item_name = $item_parts[0];
627
+ if ( count($item_parts) == 1 ) $item_sort = "";
628
+ else $item_sort = $item_parts[1];
629
+ if ( $item_label == "" ) $item_label = $item_name;
630
+ if ( $item_title == "" ) $item_title = $item_label;
631
+ $itemprops[$item_name] = array( 'label' => $item_label, 'title' => $item_title, 'required' => $item_required, 'sortable' => ( $item_name == "custom" || $item_sort != "" ), 'sorttype' => $item_sort );
632
+ $val = $item_name.":".$item_sort."/".$item_title;
633
+ $echo_str .= $dlp."\t\t\t\t\t".'<option value="'.$val.'"'.( $item_required ? ' class="wfu_columns_item_required"' : '' ).' onclick="wfu_columns_itemclicked(this, \''.$attr.'\');">'.$item_label.'</option>';
634
+ }
635
+ foreach ( $itemprops as $item_name => $prop )
636
+ if ( $prop['required'] && !in_array($item_name, $selected_flat) )
637
+ array_splice($selected, 0, 0, array( $item_name ));
638
+ $selprops = array();
639
+ foreach ( $selected as $item ) {
640
+ $item_parts = explode("/", $item, 2);
641
+ $item_name = $item_parts[0];
642
+ if ( count($item_parts) == 1 ) $item_title = "";
643
+ else $item_title = $item_parts[1];
644
+ $item_parts = explode(":", $item_name, 2);
645
+ $item_name = $item_parts[0];
646
+ $flat_name = preg_replace("/^custom[0-9]+$/", "custom", $item_name);
647
+ if ( $item_name != "custom" && isset($itemprops[$flat_name]) ) {
648
+ $prop = $itemprops[$flat_name];
649
+ if ( count($item_parts) == 1 ) $item_sort = ( $flat_name == "custom" ? "+-s" : ( $prop['sortable'] ? "-+".$prop['sorttype'] : "" ) );
650
+ elseif ( $flat_name == "custom" ) $item_sort = "+".($item_parts[1] == "" ? "-s" : "+".$item_parts[1]);
651
+ else $item_sort = ( $prop['sortable'] ? "-".($item_parts[1] == "" ? "-" : "+").$prop['sorttype'] : "" );
652
+ if ( $item_title == "" ) $item_title = $prop['title'];
653
+ array_push($selprops, array( 'name' => $item_name, 'label' => $prop['label'], 'title' => $item_title, 'required' => $prop['required'], 'sorttype' => $item_sort ));
654
+ }
655
+ }
656
+ $echo_str .= $dlp."\t\t\t\t".'</select></td>';
657
+ $echo_str .= $dlp."\t\t\t\t".'<td style="width:30px; padding:0 6px;"><button class="wfu_columns_addbutton" title="add column" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'add\');" style="width:100%;">&gt;&gt;</button></td>';
658
+ $echo_str .= $dlp."\t\t\t".'</tr></tbody></table>';
659
+ $echo_str .= $dlp."\t\t".'</td>';
660
+ $echo_str .= $dlp."\t\t".'<td style="width:55%">';
661
+ $echo_str .= $dlp."\t\t\t".'<table class="wfu_columns_container" style="table-layout:fixed; width:100%;"><tbody><tr>';
662
+ $echo_str .= $dlp."\t\t\t\t".'<td><select id="wfu_attribute_'.$attr.'" multiple="multiple" size="'.min(count($def['listitems']), 10).'" onchange="wfu_update_columns(\''.$attr.'\');" style="width:100%; overflow:auto;">';
663
+ foreach ( $selprops as $prop ) {
664
+ $val = $prop['name'].":".$prop['sorttype']."/".$prop['label']."/".$prop['title'];
665
+ $echo_str .= $dlp."\t\t\t\t\t".'<option value="'.$val.'"'.( $prop['required'] ? ' class="wfu_columns_item_required"' : '' ).' onclick="wfu_columns_itemclicked(this, \''.$attr.'\');">'.$prop['label'].( $prop['title'] != "" && $prop['title'] != $prop['label'] ? " (".$prop['title'].")" : "" ).'</option>';
666
+ }
667
+ $echo_str .= $dlp."\t\t\t\t".'</select></td>';
668
+ $echo_str .= $dlp."\t\t\t\t".'<td style="width:30px; padding:0 6px;">';
669
+ $echo_str .= $dlp."\t\t\t\t\t".'<button class="wfu_columns_addbutton" title="move up" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'up\');" style="width:100%;">&#8593;</button>';
670
+ $echo_str .= $dlp."\t\t\t\t\t".'<button class="wfu_columns_addbutton" title="remove" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'del\');" style="width:100%;">-</button>';
671
+ $echo_str .= $dlp."\t\t\t\t\t".'<button class="wfu_columns_addbutton" title="move down" onclick="wfu_columns_buttonaction(\''.$attr.'\', \'down\');" style="width:100%;">&#8595;</button>';
672
+ $echo_str .= $dlp."\t\t\t\t".'</td>';
673
+ $echo_str .= $dlp."\t\t\t".'</tr></tbody></table>';
674
+ $echo_str .= $dlp."\t\t\t".'<label class="wfu_columns_listtitle" style="margin-top:6px; display:block;">Column Properties</label>';
675
+ $echo_str .= $dlp."\t\t\t".'<table id="wfu_attribute_'.$attr.'_columnprops_container" class="wfu_columnprops_container wfu_columnprops_container_disabled"><tbody>';
676
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td style="width:1%; padding-right:10px;"><label id="wfu_attribute_'.$attr.'_columnprops_title_label">Title</label></td>';
677
+ $echo_str .= $dlp."\t\t\t\t".'<td><input type="text" id="wfu_attribute_'.$attr.'_columnprops_title" name="wfu_columnprops_elements" value="" style="width:100%;" disabled="disabled" /></td></tr>';
678
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td style="width:1%; padding-right:10px; white-space:nowrap;"><label id="wfu_attribute_'.$attr.'_columnprops_id_label">Field ID</label></td>';
679
+ $echo_str .= $dlp."\t\t\t\t".'<td><input type="number" id="wfu_attribute_'.$attr.'_columnprops_id" name="wfu_columnprops_elements" min="1" value="" style="width:100%;" disabled="disabled" /></td></tr>';
680
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td colspan="2"><input type="checkbox" id="wfu_attribute_'.$attr.'_columnprops_sort" value="" onchange="wfu_columnprops_element_changed({target:this});" disabled="disabled" /><label id="wfu_attribute_'.$attr.'_columnprops_sort_label" for="wfu_attribute_'.$attr.'_columnprops_sort">Sortable</label></td></tr>';
681
+ $echo_str .= $dlp."\t\t\t\t".'<tr><td style="width:1%; padding-right:10px;"><label id="wfu_attribute_'.$attr.'_columnprops_sorttype_label" style="white-space:nowrap;">Sort As</label></td>';
682
+ $echo_str .= $dlp."\t\t\t\t".'<td><select id="wfu_attribute_'.$attr.'_columnprops_sorttype" value="" onchange="wfu_columnprops_element_changed({target:this});" disabled="disabled"><option value=""></option><option value="s">String</option><option value="n">Integer</option></select></td></tr>';
683
+ $echo_str .= $dlp."\t\t\t".'</tbody></table>';
684
+ $echo_str .= $dlp."\t\t".'</td>';
685
+ $echo_str .= $dlp."\t".'</tr></tbody></table>';
686
+
687
+ }
688
+ elseif ( $def['type'] == "dimensions" ) {
689
+ $vals_arr = explode(",", $def['value']);
690
+ $vals = array();
691
+ foreach ( $vals_arr as $val_raw ) {
692
+ if ( trim($val_raw) != "" ) {
693
+ list($val_id, $val) = explode(":", $val_raw);
694
+ $vals[trim($val_id)] = trim($val);
695
+ }
696
+ }
697
+ $dims = array();
698
+ foreach ( $components as $comp ) {
699
+ if ( $comp['dimensions'] == null ) $dims[$comp['id']] = $comp['name'];
700
+ else foreach ( $comp['dimensions'] as $dimraw ) {
701
+ list($dim_id, $dim_name) = explode("/", $dimraw);
702
+ $dims[$dim_id] = $dim_name;
703
+ }
704
+ }
705
+ foreach ( $dims as $dim_id => $dim_name ) {
706
+ if ( !array_key_exists($dim_id, $vals) ) $vals[$dim_id] = "";
707
+ $echo_str .= $dlp."\t\t".'<span style="display:inline-block; width:130px;">'.$dim_name.'</span><input id="wfu_attribute_'.$attr.'_'.$dim_id.'" type="text" name="wfu_dimension_elements_'.$attr.'" class="wfu_short_text" value="'.$vals[$dim_id].'" /><br />';
708
+ }
709
+ }
710
+ elseif ( $def['type'] == "userfields" ) {
711
+ $fields_arr = explode("/", $def['value']);
712
+ $fields = array();
713
+ foreach ( $fields_arr as $field_raw ) {
714
+ $is_req = ( substr($field_raw, 0, 1) == "*" );
715
+ if ( $is_req ) $field_raw = substr($field_raw, 1);
716
+ if ( $field_raw != "" ) array_push($fields, array( "name" => $field_raw, "required" => $is_req ));
717
+ }
718
+ if ( count($fields) == 0 ) array_push($fields, array( "name" => "", "required" => false ));
719
+ $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_userdata_container">';
720
+ foreach ( $fields as $field ) {
721
+ $echo_str .= $dlp."\t\t\t".'<div class="wfu_userdata_line">';
722
+ $echo_str .= $dlp."\t\t\t\t".'<input type="text" name="wfu_userfield_elements" value="'.$field['name'].'" />';
723
+ $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_userdata_action" onclick="wfu_userdata_add_field(this);"><img src="'.WFU_IMAGE_ADMIN_USERDATA_ADD.'" ></div>';
724
+ $echo_str .= $dlp."\t\t\t\t".'<div class="wfu_userdata_action wfu_userdata_action_disabled" onclick="wfu_userdata_remove_field(this);"><img src="'.WFU_IMAGE_ADMIN_USERDATA_REMOVE.'" ></div>';
725
+ $echo_str .= $dlp."\t\t\t\t".'<input type="checkbox"'.( $field['required'] ? 'checked="checked"' : '' ).' onchange="wfu_update_userfield_value({target:this});" />';
726
+ $echo_str .= $dlp."\t\t\t\t".'<span>Required</span>';
727
+ $echo_str .= $dlp."\t\t\t".'</div>';
728
+ }
729
+ $echo_str .= $dlp."\t\t".'</div>';
730
+ }
731
+ elseif ( $def['type'] == "formfields" ) {
732
+ //find occurrence index of this attribute and total occrrence length
733
+ $flat = $def['flat'];
734
+ $attr_occur_index = 0;
735
+ $attr_occur_length = 0;
736
+ $all_attributes = array();
737
+ foreach ( $defs as $def2 ) {
738
+ if ( $def2['flat'] == $flat ) {
739
+ $attr_occur_length ++;
740
+ array_push($all_attributes, $def2['attribute']);
741
+ if ( $def2['attribute'] == $attr ) $attr_occur_index = $attr_occur_length;
742
+ }
743
+ }
744
+ //get field type definitions
745
+ $fielddefs_array = $def['listitems'];
746
+ foreach ( $fielddefs_array as $fielddef ) $fielddefs[$fielddef['type']] = $fielddef;
747
+ //initialize editable field properties
748
+ $fieldprops_basic = array('required', 'donotautocomplete', 'validate', 'typehook', 'labelposition', 'hintposition', 'default', 'data', 'group', 'format');
749
+ $fieldprops_default = array ( "type" => "text", "label" => "", "labelposition" => "left", "required" => false, "donotautocomplete" => false, "validate" => false, "default" => "", "data" => "", "group" => "", "format" => "", "hintposition" => "right", "typehook" => false );
750
+ //parse shortcode attribute to $fields
751
+ $fields = wfu_parse_userdata_attribute($def['value']);
752
+ $labelpositions = array("none", "top", "right", "bottom", "left", "placeholder");
753
+ $hintpositions = array("none", "inline", "top", "right", "bottom", "left");
754
+ if ( count($fields) == 0 ) array_push($fields, $fieldprops_default);
755
+ //set html template variable
756
+ $template = $dlp."\t\t\t\t".'<table class="wfu_formdata_props_table"><tbody>';
757
+ $template .= $dlp."\t\t\t\t".'<tr><td colspan="2"><label class="wfu_formdata_label">Type</label><select id="wfu_formfield_[[key]]_type" value="[[t]]" onchange="wfu_formdata_type_changed(\'[[key]]\');">';
758
+ foreach( $fielddefs as $item ) $template .= $dlp."\t\t\t\t\t".'<option value="'.$item['type'].'"[[type_'.$item['type'].'_selected]]>'.$item['type_description'].'</option>';
759
+ $template .= $dlp."\t\t\t\t".'</select></td><td>';
760
+ $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_add" onclick="wfu_formdata_add_field(\'[[key]]\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_ADD.'" ></div>';
761
+ $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_remove[[remove_disabled]]" onclick="wfu_formdata_remove_field(\'[[key]]\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_REMOVE.'" ></div>';
762
+ $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_up[[up_disabled]]" onclick="wfu_formdata_move_field(\'[[key]]\', \'up\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_UP.'" ></div>';
763
+ $template .= $dlp."\t\t\t\t".'<div class="wfu_formdata_action wfu_formdata_action_down[[down_disabled]]" onclick="wfu_formdata_move_field(\'[[key]]\', \'down\');"><img src="'.WFU_IMAGE_ADMIN_USERDATA_DOWN.'" ></div></td></tr>';
764
+ $template .= $dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label">Label</label></td><td><input type="text" id="wfu_formfield_[[key]]_label" name="wfu_formfield_elements" value="[[label]]" /></td><td></td></tr>';
765
+ $labelpos_options = "";
766
+ foreach ( $labelpositions as $pos ) $labelpos_options .= '<option value="'.$pos.'"[[labelposition_'.$pos.'_selected]]>'.$pos.'</option>';
767
+ $template .= $dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_labelposition" title="[[labelposition_hint]]">Label Position</label></td><td><select id="wfu_formfield_[[key]]_labelposition" value="[[s]]" title="[[labelposition_hint]]" onchange="wfu_update_formfield_value({target:this});">'.$labelpos_options.'</select></td><td></td></tr>';
768
+ $template .= '[[R->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_required" type="checkbox"[[r->]] checked="checked"[[<-r]] title="[[required_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_required" title="[[required_hint]]"> Required</label></td><td></td></tr>[[<-R]]';
769
+ $template .= '[[A->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_donotautocomplete" type="checkbox"[[a->]] checked="checked"[[<-a]] title="[[donotautocomplete_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_donotautocomplete" title="[[donotautocomplete_hint]]"> Do not autocomplete</label></td><td></td></tr>[[<-A]]';
770
+ $template .= '[[V->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_validate" type="checkbox"[[v->]] checked="checked"[[<-v]] title="[[validate_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_validate" title="[[validate_hint]]"> Validate</label></td><td></td></tr>[[<-V]]';
771
+ $hint_options = "";
772
+ foreach ( $hintpositions as $pos ) $hint_options .= '<option value="'.$pos.'"[[hintposition_'.$pos.'_selected]]>'.$pos.'</option>';
773
+ $template .= '[[P->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[hintposition_hint]]">Hint Position</label></td><td><select id="wfu_formfield_[[key]]_hintposition" value="[[p]]" title="[[hintposition_hint]]" onchange="wfu_update_formfield_value({target:this});">'.$hint_options.'</select></td><td></td></tr>[[<-P]]';
774
+ $template .= '[[H->]]'.$dlp."\t\t\t\t".'<tr><td colspan="2" class="wfu_formdata_props"><input id="wfu_formfield_[[key]]_typehook" type="checkbox"[[h->]] checked="checked"[[<-h]] title="[[typehook_hint]]" onchange="wfu_update_formfield_value({target:this});" /><label for="wfu_formfield_[[key]]_typehook" title="[[typehook_hint]]"> Type hook</label></td><td></td></tr>[[<-H]]';
775
+ $template .= '[[D->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[default_hint]]">Default</label></td><td><input id="wfu_formfield_[[key]]_default" type="text" name="wfu_formfield_elements" value="[[d]]" title="[[default_hint]]" /></td><td></td></tr>[[<-D]]';
776
+ $template .= '[[L->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[data_hint]]">[[data_label]]</label></td><td><input id="wfu_formfield_[[key]]_data" type="text" name="wfu_formfield_elements" value="[[l]]" title="[[data_hint]]" /></td><td></td></tr>[[<-L]]';
777
+ $template .= '[[G->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[group_hint]]">Group ID</label></td><td><input id="wfu_formfield_[[key]]_group" type="text" name="wfu_formfield_elements" value="[[g]]" title="[[group_hint]]" /></td><td></td></tr>[[<-G]]';
778
+ $template .= '[[F->]]'.$dlp."\t\t\t\t".'<tr><td class="wfu_formdata_props"><label class="wfu_formdata_label" title="[[format_hint]]">Format</label></td><td><input id="wfu_formfield_[[key]]_format" type="text" name="wfu_formfield_elements" value="[[f]]" title="[[format_hint]]" /></td><td></td></tr>[[<-F]]';
779
+ $template .= $dlp."\t\t\t\t".'</tbody></table>';
780
+ //draw html elements
781
+ $echo_str .= $dlp."\t\t".'<div id="wfu_attribute_'.$attr.'" class="wfu_formdata_container">';
782
+ $echo_str .= $dlp."\t\t\t".'<input type="hidden" class="wfu_formdata_all_attributes" value="'.implode(",", $all_attributes).'" />';
783
+ $echo_str .= $dlp."\t\t\t".'<div id="wfu_attribute_'.$attr.'_codeadd" style="display:none;">';
784
+ //pass template and type props to client javascript variable and then erase the code
785
+ $echo_str .= $dlp."\t\t\t\t".'<script type="text/javascript">';
786
+ $echo_str .= $dlp."\t\t\t\t\t".'var wfu_attribute_'.$attr.'_formtemplate = "'.wfu_plugin_encode_string($template).'";';
787
+ $echo_str .= $dlp."\t\t\t\t\t".'var wfu_attribute_'.$attr.'_typeprops = {};';
788
+ $fielddef_array = array();
789
+ foreach( $fielddefs as $item ) array_push($fielddef_array, $item['type']);
790
+ //prepare storage of field definitions to browser context
791
+ $echo_str .= $dlp."\t\t\t\t\t".'wfu_attribute_'.$attr.'_typeprops[0] = \''.implode(",", $fielddef_array).'\'';
792
+ foreach( $fielddefs as $item ) {
793
+ $typeprops = array();
794
+ foreach ( $fieldprops_basic as $prop ) {
795
+ array_push($typeprops, $prop.': \''.$item[$prop].'\'');
796
+ array_push($typeprops, $prop.'_hint: \''.$item[$prop.'_hint'].'\'');
797
+ }
798
+ array_push($typeprops, 'data_label: \''.$item['data_label'].'\'');
799
+ $echo_str .= $dlp."\t\t\t\t\t".'wfu_attribute_'.$attr.'_typeprops["'.$item['type'].'"] = {'.implode(", ", $typeprops).'};';
800
+ }
801
+ $echo_str .= $dlp."\t\t\t\t\t".'var self = document.getElementById("wfu_attribute_'.$attr.'_codeadd"); self.parentNode.removeChild(self);';
802
+ $echo_str .= $dlp."\t\t\t\t".'</script>';
803
+ $echo_str .= $dlp."\t\t\t".'</div>';
804
+ $i = 1;
805
+ foreach ( $fields as $field ) {
806
+ $ind = wfu_create_random_string(4);
807
+ $key = $attr."_".$ind;
808
+ $fielddef = $fielddefs[$field["type"]];
809
+ $echo_str .= $dlp."\t\t\t".'<div id="wfu_formfield_'.$key.'_container" class="wfu_formdata_line_container">';
810
+ //generate html elements from template, replacing variables where applicable
811
+ $from_template = str_replace(array('[[key]]', '[[t]]', '[[label]]', '[[s]]', '[[d]]', '[[l]]', '[[data_label]]', '[[g]]', '[[f]]', '[[p]]'), array($key, $field['type'], $field['label'], $field['labelposition'], $field['default'], $field['data'], $fielddef['data_label'], $field['group'], $field['format'], $field['hintposition']), $template);
812
+ foreach ( $fieldprops_basic as $prop ) $from_template = str_replace('[['.$prop.'_hint]]', str_replace('\r\n', "\r\n", $fielddef[$prop.'_hint']), $from_template);
813
+ foreach( $fielddefs as $item ) $from_template = str_replace('[[type_'.$item['type'].'_selected]]', ( $item['type'] == $field['type'] ? ' selected = "selected"' : '' ), $from_template);
814
+ foreach( $labelpositions as $pos ) $from_template = str_replace('[[labelposition_'.$pos.'_selected]]', ( $pos == $field['labelposition'] ? ' selected = "selected"' : '' ), $from_template);
815
+ foreach( $hintpositions as $pos ) $from_template = str_replace('[[hintposition_'.$pos.'_selected]]', ( $pos == $field['hintposition'] ? ' selected = "selected"' : '' ), $from_template);
816
+ $from_template = str_replace('[[remove_disabled]]', ( count($fields) <= 1 ? ' wfu_formdata_action_disabled' : '' ), $from_template);
817
+ $from_template = str_replace('[[up_disabled]]', ( ( $attr_occur_index == 1 && $i == 1 ) ? ' wfu_formdata_action_disabled' : '' ), $from_template);
818
+ $from_template = str_replace('[[down_disabled]]', ( ( $attr_occur_index == $attr_occur_length && $i == count($fields) ) ? ' wfu_formdata_action_disabled' : '' ), $from_template);
819
+ //adjust checkbox field values
820
+ $from_template = preg_replace('/\[\[r\-\>\]\]'.( $field['required'] ? '|' : '.*' ).'\[\[\<\-r\]\]/', '', $from_template);
821
+ $from_template = preg_replace('/\[\[a\-\>\]\]'.( $field['donotautocomplete'] ? '|' : '.*' ).'\[\[\<\-a\]\]/', '', $from_template);
822
+ $from_template = preg_replace('/\[\[v\-\>\]\]'.( $field['validate'] ? '|' : '.*' ).'\[\[\<\-v\]\]/', '', $from_template);
823
+ $from_template = preg_replace('/\[\[h\-\>\]\]'.( $field['typehook'] ? '|' : '.*' ).'\[\[\<\-h\]\]/', '', $from_template);
824
+ //adjust visibility of properties
825
+ $from_template = preg_replace('/\[\[R\-\>\]\]'.( substr($fielddef["required"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-R\]\]/s', '', $from_template);
826
+ $from_template = preg_replace('/\[\[A\-\>\]\]'.( substr($fielddef["donotautocomplete"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-A\]\]/s', '', $from_template);
827
+ $from_template = preg_replace('/\[\[V\-\>\]\]'.( substr($fielddef["validate"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-V\]\]/s', '', $from_template);
828
+ $from_template = preg_replace('/\[\[P\-\>\]\]'.( substr($fielddef["hintposition"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-P\]\]/s', '', $from_template);
829
+ $from_template = preg_replace('/\[\[H\-\>\]\]'.( substr($fielddef["typehook"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-H\]\]/s', '', $from_template);
830
+ $from_template = preg_replace('/\[\[D\-\>\]\]'.( substr($fielddef["default"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-D\]\]/s', '', $from_template);
831
+ $from_template = preg_replace('/\[\[L\-\>\]\]'.( substr($fielddef["data"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-L\]\]/s', '', $from_template);
832
+ $from_template = preg_replace('/\[\[G\-\>\]\]'.( substr($fielddef["group"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-G\]\]/s', '', $from_template);
833
+ $from_template = preg_replace('/\[\[F\-\>\]\]'.( substr($fielddef["format"], 0, 4) == "show" ? '|' : '.*' ).'\[\[\<\-F\]\]/s', '', $from_template);
834
+ $echo_str .= $from_template;
835
+ $echo_str .= $dlp."\t\t\t".'</div>';
836
+ $i++;
837
+ }
838
+ $echo_str .= $dlp."\t\t".'</div>';
839
+ }
840
+ elseif ( $def['type'] == "color" ) {
841
+ $val = str_replace(array( "%n%", "%dq%", "%brl%", "%brr%" ), array( "\n", "&quot;", "[", "]" ), $def['value']);
842
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" class="wfu_color_field" value="'.$val.'" />';
843
+ }
844
+ elseif ( $def['type'] == "color-triplet" ) {
845
+ $triplet = explode(",", $def['value']);
846
+ foreach ( $triplet as $key => $item ) $triplet[$key] = trim($item);
847
+ if ( count($triplet) == 2 ) $triplet = array( $triplet[0], $triplet[1], "#000000");
848
+ elseif ( count($triplet) == 1 ) $triplet = array( $triplet[0], "#FFFFFF", "#000000");
849
+ elseif ( count($triplet) < 3 ) $triplet = array( "#000000", "#FFFFFF", "#000000");
850
+ $echo_str .= $dlp."\t\t".'<div class="wfu_color_container"><label style="display:inline-block; width:120px; margin-top:-16px;">Text Color</label><input id="wfu_attribute_'.$attr.'_color" type="text" class="wfu_color_field" name="wfu_triplecolor_elements" value="'.$triplet[0].'" /></div>';
851
+ $echo_str .= $dlp."\t\t".'<div class="wfu_color_container"><label style="display:inline-block; width:120px; margin-top:-16px;">Background Color</label><input id="wfu_attribute_'.$attr.'_bgcolor" type="text" class="wfu_color_field" name="wfu_triplecolor_elements" value="'.$triplet[1].'" /></div>';
852
+ $echo_str .= $dlp."\t\t".'<div class="wfu_color_container"><label style="display:inline-block; width:120px; margin-top:-16px;">Border Color</label><input id="wfu_attribute_'.$attr.'_borcolor" type="text" class="wfu_color_field" name="wfu_triplecolor_elements" value="'.$triplet[2].'" /></div>';
853
+ }
854
+ else {
855
+ $echo_str .= $dlp."\t\t".'<input id="wfu_attribute_'.$attr.'" type="text" name="wfu_text_elements" value="'.$def['value'].'" />';
856
+ if ( $def['variables'] != null ) $echo_str .= $dlp.wfu_insert_variables($def['variables'], 'wfu_variable wfu_variable_'.$attr);
857
+ }
858
+ $echo_str .= $dlp."\t".'</div></td>';
859
+ if ( $def['parent'] == "" ) {
860
+ $echo_str .= $dlp."\t".'<td style="position:relative; vertical-align:top; padding:0;"><div class="wfu_td_div">';
861
+ $block_open = false;
862
+ }
863
+ else {
864
+ $echo_str .= $dlp.'</tr>';
865
+ $subblock_open = true;
866
+ }
867
+ }
868
+ if ( $subblock_open ) {
869
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
870
+ }
871
+ if ( $block_open ) {
872
+ $echo_str .= "\n\t\t\t\t\t".'</div></td>';
873
+ $echo_str .= "\n\t\t\t\t".'</tr>';
874
+ }
875
+ $echo_str .= "\n\t\t\t".'</tbody>';
876
+ $echo_str .= "\n\t\t".'</table>';
877
+ $echo_str .= "\n\t".'</div>';
878
+ $echo_str .= "\n\t".'<div id="wfu_global_dialog_container" class="wfu_global_dialog_container">';
879
+ $echo_str .= "\n\t".'</div>';
880
+ $handler = 'function() { wfu_Attach_Admin_Events('.( $data == "" ? 'true' : 'false' ).'); }';
881
+ $echo_str .= "\n\t".'<script type="text/javascript">if(window.addEventListener) { window.addEventListener("load", '.$handler.', false); } else if(window.attachEvent) { window.attachEvent("onload", '.$handler.'); } else { window["onload"] = '.$handler.'; }</script>';
882
+ $echo_str .= "\n".'</div>';
883
+ // $echo_str .= "\n\t".'<div style="margin-top:10px;">';
884
+ // $echo_str .= "\n\t\t".'<label>Final shortcode text</label>';
885
+ // $echo_str .= "\n\t".'</div>';
886
+
887
+ echo $echo_str;
888
+ }
889
+
890
+ function wfu_insert_variables($variables, $class) {
891
+ $ret = "";
892
+ foreach ( $variables as $variable )
893
+ if ( $variable == "%userdataXXX%" ) $ret .= "\t\t".'<select class="'.$class.'" name="wfu_formfield_select" title="'.constant("WFU_VARIABLE_TITLE_".strtoupper(str_replace("%", "", $variable))).'" onchange="wfu_insert_userfield_variable(this);"><option style="display:none;">%userdataXXX%</option></select>';
894
+ elseif ( $variable != "%n%" && $variable != "%dq%" && $variable != "%brl%" && $variable != "%brr%" ) $ret .= "\t\t".'<span class="'.$class.'" title="'.constant("WFU_VARIABLE_TITLE_".strtoupper(str_replace("%", "", $variable))).'" ondblclick="wfu_insert_variable(this);">'.$variable.'</span>';
895
+ return $ret;
896
+ }
897
+
898
+ ?>
lib/wfu_admin_log.php CHANGED
@@ -1,139 +1,140 @@
1
- <?php
2
-
3
- function wfu_view_log($page = 1, $only_table_rows = false) {
4
- $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
5
- global $wpdb;
6
- $siteurl = site_url();
7
- $table_name1 = $wpdb->prefix . "wfu_log";
8
- $table_name2 = $wpdb->prefix . "wfu_userdata";
9
- $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
10
-
11
- if ( !current_user_can( 'manage_options' ) ) return;
12
- //get log data from database
13
- $files_total = $wpdb->get_var('SELECT COUNT(idlog) FROM '.$table_name1);
14
- $filerecs = $wpdb->get_results('SELECT * FROM '.$table_name1.' ORDER BY date_from DESC'.( WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS") > 0 ? ' LIMIT '.WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS").' OFFSET '.(($page - 1) * (int)WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS")) : '' ));
15
-
16
- $echo_str = "";
17
- if ( !$only_table_rows ) {
18
- $echo_str .= "\n".'<div class="wrap">';
19
- $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
20
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
21
- $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "View Log");
22
- $echo_str .= "\n\t".'<div style="position:relative;">';
23
- $echo_str .= wfu_add_loading_overlay("\n\t\t", "historylog");
24
- $echo_str .= "\n\t\t".'<div class="wfu_historylog_header" style="width: 100%;">';
25
- if ( WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS") > 0 ) {
26
- $pages = ceil($files_total / WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS"));
27
- $echo_str .= wfu_add_pagination_header("\n\t\t\t", "historylog", 1, $pages);
28
- }
29
- $echo_str .= "\n\t\t".'</div>';
30
- $echo_str .= "\n\t\t".'<table id="wfu_historylog_table" class="wp-list-table widefat fixed striped">';
31
- $echo_str .= "\n\t\t\t".'<thead>';
32
- $echo_str .= "\n\t\t\t\t".'<tr>';
33
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="5%" style="text-align:center;">';
34
- $echo_str .= "\n\t\t\t\t\t\t".'<label>#</label>';
35
- $echo_str .= "\n\t\t\t\t\t".'</th>';
36
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="15%" style="text-align:left;">';
37
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Date</label>';
38
- $echo_str .= "\n\t\t\t\t\t".'</th>';
39
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
40
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Action</label>';
41
- $echo_str .= "\n\t\t\t\t\t".'</th>';
42
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="30%" style="text-align:left;">';
43
- $echo_str .= "\n\t\t\t\t\t\t".'<label>File</label>';
44
- $echo_str .= "\n\t\t\t\t\t".'</th>';
45
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="15%" style="text-align:center;">';
46
- $echo_str .= "\n\t\t\t\t\t\t".'<label>User</label>';
47
- $echo_str .= "\n\t\t\t\t\t".'</th>';
48
- $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="25%" style="text-align:left;">';
49
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Remarks</label>';
50
- $echo_str .= "\n\t\t\t\t\t".'</th>';
51
- $echo_str .= "\n\t\t\t\t".'</tr>';
52
- $echo_str .= "\n\t\t\t".'</thead>';
53
- $echo_str .= "\n\t\t\t".'<tbody>';
54
- }
55
-
56
- $userdatarecs = $wpdb->get_results('SELECT * FROM '.$table_name2);
57
- $deletedfiles = array();
58
- $filecodes = array();
59
- $time0 = strtotime("0000-00-00 00:00:00");
60
- $i = ($page - 1) * (int)WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS");
61
- foreach ( $filerecs as $filerec ) {
62
- $remarks = '';
63
- if ( $filerec->action == 'delete' ) array_push($deletedfiles, $filerec->linkedto);
64
- elseif ( $filerec->action == 'rename' ) {
65
- $prevfilepath = '';
66
- $prevfilerec = wfu_get_file_rec_from_id($filerec->linkedto);
67
- if ( $prevfilerec != null ) $prevfilepath = $prevfilerec->filepath;
68
- if ( $prevfilepath != '' )
69
- $remarks = "\n\t\t\t\t\t\t".'<label>Previous filepath: '.$prevfilepath.'</label>';
70
- }
71
- elseif ( $filerec->action == 'upload' || $filerec->action == 'modify' || $filerec->action == 'datasubmit' ) {
72
- foreach ( $userdatarecs as $userdata ) {
73
- if ( $userdata->uploadid == $filerec->uploadid ) {
74
- $userdata_datefrom = strtotime($userdata->date_from);
75
- $userdata_dateto = strtotime($userdata->date_to);
76
- $filerec_datefrom = strtotime($filerec->date_from);
77
- if ( $filerec_datefrom >= $userdata_datefrom && ( $userdata_dateto == $time0 || $filerec_datefrom < $userdata_dateto ) )
78
- $remarks .= "\n\t\t\t\t\t\t\t".'<option>'.$userdata->property.': '.$userdata->propvalue.'</option>';
79
- }
80
- }
81
- if ( $remarks != '' ) {
82
- $remarks = "\n\t\t\t\t\t\t".'<select multiple="multiple" style="width:100%; height:40px; background:none; font-size:small; overflow:scroll;">'.$remarks;
83
- $remarks .= "\n\t\t\t\t\t\t".'</select>';
84
- }
85
- }
86
- elseif ( $filerec->action == 'changeuser' ) {
87
- $prevuploaduserid = '';
88
- $prevfilerec = wfu_get_file_rec_from_id($filerec->linkedto);
89
- if ( $prevfilerec != null ) $prevuploaduserid = $prevfilerec->uploaduserid;
90
- if ( $prevuploaduserid != '' ) {
91
- $prevuploaduser = wfu_get_username_by_id($prevuploaduserid);
92
- $remarks = "\n\t\t\t\t\t\t".'<label>Previous upload user: '.$prevuploaduser.'</label>';
93
- }
94
- }
95
- elseif ( $filerec->action == 'other' ) {
96
- $info = $filerec->filepath;
97
- $filerec->filepath = '';
98
- $remarks = "\n\t\t\t\t\t\t".'<textarea style="width:100%; resize:vertical; background:none;" readonly="readonly">'.$info.'</textarea>';
99
- }
100
- $i ++;
101
- $otheraction = ( $filerec->action == 'other' );
102
- $echo_str .= "\n\t\t\t\t".'<tr>';
103
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$i.'</td>';
104
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;">'.get_date_from_gmt($filerec->date_from).'</td>';
105
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$filerec->action.'</td>';
106
- if ( !$otheraction ) {
107
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;">';
108
- if ( $filerec->action == 'datasubmit' ) $echo_str .= "\n\t\t\t\t\t\t".'<span>N/A</span>';
109
- elseif ( in_array($filerec->linkedto, $deletedfiles) || in_array($filerec->idlog, $deletedfiles) ) $echo_str .= "\n\t\t\t\t\t\t".'<span>'.$filerec->filepath.'</span>';
110
- else {
111
- $lid = 0;
112
- if ( $filerec->action == 'upload' || $filerec->action == 'include' ) $lid = $filerec->idlog;
113
- elseif ( $filerec->linkedto > 0 ) $lid = $filerec->linkedto;
114
- if ( $lid > 0 ) {
115
- if ( !isset($filecodes[$lid]) ) $filecodes[$lid] = wfu_safe_store_filepath($filerec->filepath);
116
- $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_details&file='.$filecodes[$lid].'" title="View and edit file details" style="font-weight:normal;">'.$filerec->filepath.'</a>';
117
- }
118
- else $echo_str .= "\n\t\t\t\t\t\t".'<span>'.$filerec->filepath.'</span>';
119
- }
120
- $echo_str .= "\n\t\t\t\t\t".'</td>';
121
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.wfu_get_username_by_id($filerec->userid).'</td>';
122
- }
123
- $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;"'.( $otheraction ? ' colspan="3"' : '' ).'>';
124
- $echo_str .= $remarks;
125
- $echo_str .= "\n\t\t\t\t\t".'</td>';
126
- $echo_str .= "\n\t\t\t\t".'</tr>';
127
- }
128
- if ( !$only_table_rows ) {
129
- $echo_str .= "\n\t\t\t".'</tbody>';
130
- $echo_str .= "\n\t\t".'</table>';
131
- $echo_str .= "\n\t".'</div>';
132
- $echo_str .= "\n\t".'</div>';
133
- $echo_str .= "\n".'</div>';
134
- }
135
-
136
- return $echo_str;
137
- }
138
-
139
- ?>
 
1
+ <?php
2
+
3
+ function wfu_view_log($page = 1, $only_table_rows = false) {
4
+ $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
5
+ global $wpdb;
6
+ $siteurl = site_url();
7
+ $table_name1 = $wpdb->prefix . "wfu_log";
8
+ $table_name2 = $wpdb->prefix . "wfu_userdata";
9
+ $plugin_options = wfu_decode_plugin_options(get_option( "wordpress_file_upload_options" ));
10
+
11
+ if ( !current_user_can( 'manage_options' ) ) return;
12
+ //get log data from database
13
+ $files_total = $wpdb->get_var('SELECT COUNT(idlog) FROM '.$table_name1);
14
+ $filerecs = $wpdb->get_results('SELECT * FROM '.$table_name1.' ORDER BY date_from DESC'.( WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS") > 0 ? ' LIMIT '.WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS").' OFFSET '.(($page - 1) * (int)WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS")) : '' ));
15
+
16
+ $echo_str = "";
17
+ if ( !$only_table_rows ) {
18
+ $echo_str .= "\n".'<div class="wrap">';
19
+ $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
20
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
21
+ $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "View Log");
22
+ $echo_str .= "\n\t".'<div style="position:relative;">';
23
+ $echo_str .= wfu_add_loading_overlay("\n\t\t", "historylog");
24
+ $echo_str .= "\n\t\t".'<div class="wfu_historylog_header" style="width: 100%;">';
25
+ if ( WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS") > 0 ) {
26
+ $pages = ceil($files_total / WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS"));
27
+ $echo_str .= wfu_add_pagination_header("\n\t\t\t", "historylog", 1, $pages);
28
+ }
29
+ $echo_str .= "\n\t\t".'</div>';
30
+ $echo_str .= "\n\t\t".'<table id="wfu_historylog_table" class="wp-list-table widefat fixed striped">';
31
+ $echo_str .= "\n\t\t\t".'<thead>';
32
+ $echo_str .= "\n\t\t\t\t".'<tr>';
33
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="5%" style="text-align:center;">';
34
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>#</label>';
35
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
36
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="15%" style="text-align:left;">';
37
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Date</label>';
38
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
39
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="10%" style="text-align:center;">';
40
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Action</label>';
41
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
42
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="30%" style="text-align:left;">';
43
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>File</label>';
44
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
45
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="15%" style="text-align:center;">';
46
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>User</label>';
47
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
48
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="col" width="25%" style="text-align:left;">';
49
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Remarks</label>';
50
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
51
+ $echo_str .= "\n\t\t\t\t".'</tr>';
52
+ $echo_str .= "\n\t\t\t".'</thead>';
53
+ $echo_str .= "\n\t\t\t".'<tbody>';
54
+ }
55
+
56
+ $userdatarecs = $wpdb->get_results('SELECT * FROM '.$table_name2);
57
+ $deletedfiles = array();
58
+ $filecodes = array();
59
+ $time0 = strtotime("0000-00-00 00:00:00");
60
+ $i = ($page - 1) * (int)WFU_VAR("WFU_HISTORYLOG_TABLE_MAXROWS");
61
+ foreach ( $filerecs as $filerec ) {
62
+ $remarks = '';
63
+ if ( $filerec->action == 'delete' ) array_push($deletedfiles, $filerec->linkedto);
64
+ elseif ( $filerec->action == 'rename' ) {
65
+ $prevfilepath = '';
66
+ $prevfilerec = wfu_get_file_rec_from_id($filerec->linkedto);
67
+ if ( $prevfilerec != null ) $prevfilepath = $prevfilerec->filepath;
68
+ if ( $prevfilepath != '' )
69
+ $remarks = "\n\t\t\t\t\t\t".'<label>Previous filepath: '.$prevfilepath.'</label>';
70
+ }
71
+ elseif ( $filerec->action == 'upload' || $filerec->action == 'modify' || $filerec->action == 'datasubmit' ) {
72
+ foreach ( $userdatarecs as $userdata ) {
73
+ if ( $userdata->uploadid == $filerec->uploadid ) {
74
+ $userdata_datefrom = strtotime($userdata->date_from);
75
+ $userdata_dateto = strtotime($userdata->date_to);
76
+ $filerec_datefrom = strtotime($filerec->date_from);
77
+ if ( $filerec_datefrom >= $userdata_datefrom && ( $userdata_dateto == $time0 || $filerec_datefrom < $userdata_dateto ) )
78
+ $remarks .= "\n\t\t\t\t\t\t\t".'<option>'.$userdata->property.': '.$userdata->propvalue.'</option>';
79
+ }
80
+ }
81
+ if ( $remarks != '' ) {
82
+ $remarks = "\n\t\t\t\t\t\t".'<select multiple="multiple" style="width:100%; height:40px; background:none; font-size:small; overflow:scroll;">'.$remarks;
83
+ $remarks .= "\n\t\t\t\t\t\t".'</select>';
84
+ }
85
+ }
86
+ elseif ( $filerec->action == 'changeuser' ) {
87
+ $prevuploaduserid = '';
88
+ $prevfilerec = wfu_get_file_rec_from_id($filerec->linkedto);
89
+ if ( $prevfilerec != null ) $prevuploaduserid = $prevfilerec->uploaduserid;
90
+ if ( $prevuploaduserid != '' ) {
91
+ $prevuploaduser = wfu_get_username_by_id($prevuploaduserid);
92
+ $remarks = "\n\t\t\t\t\t\t".'<label>Previous upload user: '.$prevuploaduser.'</label>';
93
+ }
94
+ }
95
+ elseif ( $filerec->action == 'other' ) {
96
+ $info = $filerec->filepath;
97
+ $filerec->filepath = '';
98
+ $remarks = "\n\t\t\t\t\t\t".'<textarea style="width:100%; resize:vertical; background:none;" readonly="readonly">'.$info.'</textarea>';
99
+ }
100
+ $i ++;
101
+ $otheraction = ( $filerec->action == 'other' );
102
+ $echo_str .= "\n\t\t\t\t".'<tr>';
103
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$i.'</td>';
104
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;">'.get_date_from_gmt($filerec->date_from).'</td>';
105
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.$filerec->action.'</td>';
106
+ if ( !$otheraction ) {
107
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;">';
108
+ if ( $filerec->action == 'datasubmit' ) $echo_str .= "\n\t\t\t\t\t\t".'<span>N/A</span>';
109
+ elseif ( in_array($filerec->linkedto, $deletedfiles) || in_array($filerec->idlog, $deletedfiles) ) $echo_str .= "\n\t\t\t\t\t\t".'<span>'.$filerec->filepath.'</span>';
110
+ else {
111
+ $lid = 0;
112
+ if ( $filerec->action == 'upload' || $filerec->action == 'include' ) $lid = $filerec->idlog;
113
+ elseif ( $filerec->linkedto > 0 ) $lid = $filerec->linkedto;
114
+ if ( $lid > 0 && file_exists(wfu_path_rel2abs($filerec->filepath)) ) {
115
+ if ( !isset($filecodes[$lid]) ) $filecodes[$lid] = wfu_safe_store_filepath($filerec->filepath);
116
+ $logpagecode = wfu_safe_store_browser_params('view_log&tag='.$page);
117
+ $echo_str .= "\n\t\t\t\t\t\t".'<a class="row-title" href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&action=file_details&file='.$filecodes[$lid].'&invoker='.$logpagecode.'" title="View and edit file details" style="font-weight:normal;">'.$filerec->filepath.'</a>';
118
+ }
119
+ else $echo_str .= "\n\t\t\t\t\t\t".'<span>'.$filerec->filepath.'</span>';
120
+ }
121
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
122
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:center;">'.wfu_get_username_by_id($filerec->userid).'</td>';
123
+ }
124
+ $echo_str .= "\n\t\t\t\t\t".'<td style="padding: 5px 5px 5px 10px; text-align:left;"'.( $otheraction ? ' colspan="3"' : '' ).'>';
125
+ $echo_str .= $remarks;
126
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
127
+ $echo_str .= "\n\t\t\t\t".'</tr>';
128
+ }
129
+ if ( !$only_table_rows ) {
130
+ $echo_str .= "\n\t\t\t".'</tbody>';
131
+ $echo_str .= "\n\t\t".'</table>';
132
+ $echo_str .= "\n\t".'</div>';
133
+ $echo_str .= "\n\t".'</div>';
134
+ $echo_str .= "\n".'</div>';
135
+ }
136
+
137
+ return $echo_str;
138
+ }
139
+
140
+ ?>
lib/wfu_admin_maintenance.php CHANGED
@@ -1,110 +1,263 @@
1
- <?php
2
-
3
- function wfu_maintenance_actions($message = '') {
4
- if ( !current_user_can( 'manage_options' ) ) return wfu_manage_mainmenu();
5
-
6
- $siteurl = site_url();
7
-
8
- $echo_str = '<div class="wrap">';
9
- $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
10
- if ( $message != '' ) {
11
- $echo_str .= "\n\t".'<div class="updated">';
12
- $echo_str .= "\n\t\t".'<p>'.$message.'</p>';
13
- $echo_str .= "\n\t".'</div>';
14
- }
15
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
16
- $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "Maintenance Actions");
17
- //maintenance actions
18
- $echo_str .= "\n\t\t".'<h3 style="margin-bottom: 10px;">Maintenance Actions</h3>';
19
- $echo_str .= "\n\t\t".'<table class="form-table">';
20
- $echo_str .= "\n\t\t\t".'<tbody>';
21
- $echo_str .= "\n\t\t\t\t".'<tr>';
22
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
23
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=sync_db" class="button" title="Update database to reflect current status of files">Sync Database</a>';
24
- $echo_str .= "\n\t\t\t\t\t".'</th>';
25
- $echo_str .= "\n\t\t\t\t\t".'<td>';
26
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Update database to reflect current status of files.</label>';
27
- $echo_str .= "\n\t\t\t\t\t".'</td>';
28
- $echo_str .= "\n\t\t\t\t".'</tr>';
29
- $echo_str .= "\n\t\t\t\t".'<tr>';
30
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
31
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=clean_log_ask" class="button" title="Clean all database log">Clean Log</a>';
32
- $echo_str .= "\n\t\t\t\t\t".'</th>';
33
- $echo_str .= "\n\t\t\t\t\t".'<td>';
34
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Clean-up all database log, including file information and user data (files will not be affected).</label>';
35
- $echo_str .= "\n\t\t\t\t\t".'</td>';
36
- $echo_str .= "\n\t\t\t\t".'</tr>';
37
- $echo_str .= "\n\t\t\t".'</tbody>';
38
- $echo_str .= "\n\t\t".'</table>';
39
- $echo_str .= "\n\t".'</div>';
40
- //export actions
41
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
42
- $echo_str .= "\n\t\t".'<h3 style="margin-bottom: 10px;">Export Actions</h3>';
43
- $echo_str .= "\n\t\t".'<table class="form-table">';
44
- $echo_str .= "\n\t\t\t".'<tbody>';
45
- $echo_str .= "\n\t\t\t\t".'<tr>';
46
- $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
47
- $echo_str .= "\n\t\t\t\t\t\t".'<a href="javascript:wfu_download_file(\'exportdata\', 1);" class="button" title="Export uploaded file data">Export Uploaded File Data</a>';
48
- $echo_str .= "\n\t\t\t\t\t\t".'<input id="wfu_download_file_nonce" type="hidden" value="'.wp_create_nonce('wfu_download_file_invoker').'" />';
49
- $echo_str .= "\n\t\t\t\t\t".'</th>';
50
- $echo_str .= "\n\t\t\t\t\t".'<td>';
51
- $echo_str .= "\n\t\t\t\t\t\t".'<label>Export uploaded valid file data, together with any userdata fields, to a comma-separated text file.</label>';
52
- $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_file_download_container_1" style="display: none;"></div>';
53
- $echo_str .= "\n\t\t\t\t\t".'</td>';
54
- $echo_str .= "\n\t\t\t\t".'</tr>';
55
- $echo_str .= "\n\t\t\t".'</tbody>';
56
- $echo_str .= "\n\t\t".'</table>';
57
- $echo_str .= "\n\t".'</div>';
58
- $echo_str .= "\n".'</div>';
59
-
60
- echo $echo_str;
61
- }
62
-
63
- function wfu_clean_log_prompt() {
64
- $siteurl = site_url();
65
-
66
- if ( !current_user_can( 'manage_options' ) ) return wfu_manage_mainmenu();
67
-
68
- $echo_str = "\n".'<div class="wrap">';
69
- $echo_str .= "\n\t".'<div style="margin-top:20px;">';
70
- $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=maintenance_actions" class="button" title="go back">Go back</a>';
71
- $echo_str .= "\n\t".'</div>';
72
- $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Clean Database Log</h2>';
73
- $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="clean_log" id="clean_log" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
74
- $nonce = wp_nonce_field('wfu_clean_log', '_wpnonce', false, false);
75
- $nonce_ref = wp_referer_field(false);
76
- $echo_str .= "\n\t\t".$nonce;
77
- $echo_str .= "\n\t\t".$nonce_ref;
78
- $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="clean_log">';
79
- $echo_str .= "\n\t\t".'<label>Are you sure that you want to clean the database log? This will erase all file data kept by the plugin in the database. Files uploaded by the plugin will be maintained, however all relevant information, such as user data, will be erased.</label><br/>';
80
- $echo_str .= "\n\t\t".'<p class="submit">';
81
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Yes">';
82
- $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
83
- $echo_str .= "\n\t\t".'</p>';
84
- $echo_str .= "\n\t".'</form>';
85
- $echo_str .= "\n".'</div>';
86
- return $echo_str;
87
- }
88
-
89
- function wfu_clean_log() {
90
- $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
91
- global $wpdb;
92
-
93
- if ( !current_user_can( 'manage_options' ) ) return -1;
94
- if ( !check_admin_referer('wfu_clean_log') ) return -1;
95
-
96
- $count = -1;
97
- if ( isset($_POST['submit']) && $_POST['submit'] == "Yes" ) {
98
- $table_name1 = $wpdb->prefix . "wfu_log";
99
- $table_name2 = $wpdb->prefix . "wfu_userdata";
100
- $table_name3 = $wpdb->prefix . "wfu_dbxqueue";
101
-
102
- $count = $wpdb->query("DELETE FROM $table_name1");
103
- $count += $wpdb->query("DELETE FROM $table_name2");
104
- $count += $wpdb->query("DELETE FROM $table_name3");
105
- }
106
-
107
- return $count;
108
- }
109
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function wfu_maintenance_actions($message = '') {
4
+ if ( !current_user_can( 'manage_options' ) ) return wfu_manage_mainmenu();
5
+
6
+ $siteurl = site_url();
7
+
8
+ $echo_str = '<div class="wrap">';
9
+ $echo_str .= "\n\t".'<h2>Wordpress File Upload Control Panel</h2>';
10
+ if ( $message != '' ) {
11
+ $echo_str .= "\n\t".'<div class="updated">';
12
+ $echo_str .= "\n\t\t".'<p>'.$message.'</p>';
13
+ $echo_str .= "\n\t".'</div>';
14
+ }
15
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
16
+ $echo_str .= wfu_generate_dashboard_menu("\n\t\t", "Maintenance Actions");
17
+ //maintenance actions
18
+ $echo_str .= "\n\t\t".'<h3 style="margin-bottom: 10px;">Maintenance Actions</h3>';
19
+ $echo_str .= "\n\t\t".'<table class="form-table">';
20
+ $echo_str .= "\n\t\t\t".'<tbody>';
21
+ $echo_str .= "\n\t\t\t\t".'<tr>';
22
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
23
+ $wfu_maintenance_nonce = wp_create_nonce("wfu_maintenance_actions");
24
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=sync_db&amp;nonce='.$wfu_maintenance_nonce.'" class="button" title="Update database to reflect current status of files">Sync Database</a>';
25
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
26
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
27
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Update database to reflect current status of files.</label>';
28
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
29
+ $echo_str .= "\n\t\t\t\t".'</tr>';
30
+ $echo_str .= "\n\t\t\t\t".'<tr>';
31
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
32
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="" class="button" title="Clean database log" onclick="wfu_cleanlog_selector_toggle(true); return false;">Clean Log</a>';
33
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
34
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
35
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Clean-up database log, either all or of specific period, including file information and user data (files will not be affected).</label>';
36
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
37
+ $echo_str .= "\n\t\t\t\t".'</tr>';
38
+ $echo_str .= "\n\t\t\t\t".'<tr class="wfu_cleanlog_tr">';
39
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row"></th>';
40
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
41
+ $echo_str .= "\n\t\t\t\t\t\t".'<div>';
42
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<label>Select Clean-Up Period</label>';
43
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<select id="wfu_cleanlog_period" onchange="wfu_cleanlog_period_changed();">';
44
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<option value="older_than_date">Clean-up log older than date</option>';
45
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<option value="older_than_period">Clean-up log older than period</option>';
46
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<option value="between_dates">Clean-up log between dates</option>';
47
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<option value="all">Clean-up all log</option>';
48
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</select>';
49
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div class="wfu_selectdate_container">';
50
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<label>Select date</label>';
51
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<input id="wfu_cleanlog_dateold" type="text" />';
52
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
53
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div class="wfu_selectperiod_container">';
54
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<label>Select period</label>';
55
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<input id="wfu_cleanlog_periodold" type="number" min="1" />';
56
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<select id="wfu_cleanlog_periodtype">';
57
+ $echo_str .= "\n\t\t\t\t\t\t\t\t\t".'<option value="days">days</option>';
58
+ $echo_str .= "\n\t\t\t\t\t\t\t\t\t".'<option value="months">months</option>';
59
+ $echo_str .= "\n\t\t\t\t\t\t\t\t\t".'<option value="years">years</option>';
60
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'</select>';
61
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
62
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div class="wfu_selectdates_container">';
63
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<label>Select period from</label>';
64
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<input id="wfu_cleanlog_datefrom" type="text" />';
65
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<label>back to</label>';
66
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<input id="wfu_cleanlog_dateto" type="text" />';
67
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
68
+ $echo_str .= "\n\t\t\t\t\t\t\t".'<div class="wfu_buttons_container">';
69
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="" class="button" title="Close" onclick="wfu_cleanlog_selector_toggle(false); return false;">Close</a>';
70
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<a href="" class="button wfu_cleanlog_proceed" title="Proceed to log clean-up" onclick="if (wfu_cleanlog_selector_checkproceed()) return true; else return false; ">Proceed</a>';
71
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<span class="wfu_cleanlog_error hidden">Error</span>';
72
+ $echo_str .= "\n\t\t\t\t\t\t\t\t".'<input id="wfu_cleanlog_href" type="hidden" value="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=clean_log_ask&amp;nonce='.$wfu_maintenance_nonce.'" />';
73
+ $echo_str .= "\n\t\t\t\t\t\t\t".'</div>';
74
+ $echo_str .= "\n\t\t\t\t\t\t".'</div>';
75
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
76
+ $echo_str .= "\n\t\t\t\t".'</tr>';
77
+ $echo_str .= "\n\t\t\t".'</tbody>';
78
+ $echo_str .= "\n\t\t".'</table>';
79
+ $echo_str .= "\n\t".'</div>';
80
+ //export actions
81
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
82
+ $echo_str .= "\n\t\t".'<h3 style="margin-bottom: 10px;">Export Actions</h3>';
83
+ $echo_str .= "\n\t\t".'<table class="form-table">';
84
+ $echo_str .= "\n\t\t\t".'<tbody>';
85
+ $echo_str .= "\n\t\t\t\t".'<tr>';
86
+ $echo_str .= "\n\t\t\t\t\t".'<th scope="row">';
87
+ $echo_str .= "\n\t\t\t\t\t\t".'<a href="javascript:wfu_download_file(\'exportdata\', 1);" class="button" title="Export uploaded file data">Export Uploaded File Data</a>';
88
+ $echo_str .= "\n\t\t\t\t\t\t".'<input id="wfu_download_file_nonce" type="hidden" value="'.wp_create_nonce('wfu_download_file_invoker').'" />';
89
+ $echo_str .= "\n\t\t\t\t\t".'</th>';
90
+ $echo_str .= "\n\t\t\t\t\t".'<td>';
91
+ $echo_str .= "\n\t\t\t\t\t\t".'<label>Export uploaded valid file data, together with any userdata fields, to a comma-separated text file.</label>';
92
+ $echo_str .= "\n\t\t\t\t\t\t".'<div id="wfu_file_download_container_1" style="display: none;"></div>';
93
+ $echo_str .= "\n\t\t\t\t\t".'</td>';
94
+ $echo_str .= "\n\t\t\t\t".'</tr>';
95
+ $echo_str .= "\n\t\t\t".'</tbody>';
96
+ $echo_str .= "\n\t\t".'</table>';
97
+ $echo_str .= "\n\t".'</div>';
98
+ $handler = 'function() { wfu_cleanlog_initialize_elements(); }';
99
+ $echo_str .= "\n\t".'<script type="text/javascript">if(window.addEventListener) { window.addEventListener("load", '.$handler.', false); } else if(window.attachEvent) { window.attachEvent("onload", '.$handler.'); } else { window["onload"] = '.$handler.'; }</script>';
100
+ $echo_str .= "\n".'</div>';
101
+
102
+ echo $echo_str;
103
+ }
104
+
105
+ function wfu_sync_database_controller($nonce) {
106
+ if ( !current_user_can( 'manage_options' ) ) return -1;
107
+ if ( !wp_verify_nonce($nonce, 'wfu_maintenance_actions') ) return -1;
108
+
109
+ return wfu_sync_database();
110
+ }
111
+
112
+ function wfu_clean_log_parse_data($data) {
113
+ $ret = array( "result" => true );
114
+ $data = sanitize_text_field($data);
115
+ $data_array = explode(":", $data);
116
+ if ( count($data_array) == 0 ) $ret["result"] = false;
117
+ elseif ( $data_array[0] == "0" ) {
118
+ $ret["code"] = "0";
119
+ if ( count($data_array) != 2 || strlen($data_array[1]) != 8 ) $ret["result"] = false;
120
+ else {
121
+ $ret["dateold"] = strtotime(substr($data_array[1], 0, 4)."-".substr($data_array[1], 4, 2)."-".substr($data_array[1], 6, 2)." 00:00");
122
+ if ( $ret["dateold"] > time() ) $ret["result"] = false;
123
+ }
124
+ }
125
+ elseif ( $data_array[0] == "1" ) {
126
+ $ret["code"] = "1";
127
+ if ( count($data_array) != 3 ) $ret["result"] = false;
128
+ else {
129
+ $ret["periodold"] = (int)$data_array[1];
130
+ if ( $ret["periodold"] <= 0 ) $ret["result"] = false;
131
+ elseif ( $data_array[2] == 'd' ) $ret["periodtype"] = 'days';
132
+ elseif ( $data_array[2] == 'm' ) $ret["periodtype"] = 'months';
133
+ elseif ( $data_array[2] == 'y' ) $ret["periodtype"] = 'years';
134
+ else $ret["result"] = false;
135
+ }
136
+ }
137
+ elseif ( $data_array[0] == "2" ) {
138
+ $ret["code"] = "2";
139
+ if ( count($data_array) != 3 || strlen($data_array[1]) != 8 || strlen($data_array[2]) != 8 ) $ret["result"] = false;
140
+ $ret["datefrom"] = strtotime(substr($data_array[1], 0, 4)."-".substr($data_array[1], 4, 2)."-".substr($data_array[1], 6, 2)." 00:00");
141
+ if ( $ret["datefrom"] > time() ) $ret["result"] = false;
142
+ else {
143
+ $ret["dateto"] = strtotime(substr($data_array[2], 0, 4)."-".substr($data_array[2], 4, 2)."-".substr($data_array[2], 6, 2)." 00:00");
144
+ if ( $ret["dateto"] > $ret["datefrom"] ) $ret["result"] = false;
145
+ }
146
+ }
147
+ elseif ( $data_array[0] == "3" ) {
148
+ $ret["code"] = "3";
149
+ if ( count($data_array) != 1 ) $ret["result"] = false;
150
+ }
151
+ else $ret["result"] = false;
152
+
153
+ return $ret;
154
+ }
155
+
156
+ function wfu_clean_log_prompt($nonce, $data_enc) {
157
+ $siteurl = site_url();
158
+
159
+ if ( !current_user_can( 'manage_options' ) || !wp_verify_nonce($nonce, 'wfu_maintenance_actions') ) return wfu_maintenance_actions();
160
+ //parse data
161
+ $data = wfu_clean_log_parse_data($data_enc);
162
+ if ( $data["result"] == false ) return wfu_maintenance_actions();
163
+
164
+ $echo_str = "\n".'<div class="wrap">';
165
+ $echo_str .= "\n\t".'<div style="margin-top:20px;">';
166
+ $echo_str .= "\n\t\t".'<a href="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload&amp;action=maintenance_actions" class="button" title="go back">Go back</a>';
167
+ $echo_str .= "\n\t".'</div>';
168
+ $echo_str .= "\n\t".'<h2 style="margin-bottom: 10px;">Clean Database Log</h2>';
169
+ $echo_str .= "\n\t".'<form enctype="multipart/form-data" name="clean_log" id="clean_log" method="post" action="'.$siteurl.'/wp-admin/options-general.php?page=wordpress_file_upload" class="validate">';
170
+ $nonce = wp_nonce_field('wfu_clean_log', '_wpnonce', false, false);
171
+ $nonce_ref = wp_referer_field(false);
172
+ $echo_str .= "\n\t\t".$nonce;
173
+ $echo_str .= "\n\t\t".$nonce_ref;
174
+ $echo_str .= "\n\t\t".'<input type="hidden" name="action" value="clean_log">';
175
+ $echo_str .= "\n\t\t".'<input type="hidden" name="data" value="'.$data_enc.'">';
176
+ if ( $data["code"] == "0" )
177
+ $echo_str .= "\n\t\t".'<label>This will erase all database records <strong>before '.date("Y-m-d", $data["dateold"]).'</strong> kept by the plugin in the database (like file metadata and userdata, however files uploaded by the plugin will be maintained). Are you sure that you want to continue?</label><br/>';
178
+ elseif ( $data["code"] == "1" )
179
+ $echo_str .= "\n\t\t".'<label>This will erase all database records <strong>older than '.$data["periodold"].' '.$data["periodtype"].'</strong> kept by the plugin in the database (like file metadata and userdata, however files uploaded by the plugin will be maintained). Are you sure that you want to continue?</label><br/>';
180
+ elseif ( $data["code"] == "2" )
181
+ $echo_str .= "\n\t\t".'<label>This will erase all database records <strong>between '.date("Y-m-d", $data["datefrom"]).' and '.date("Y-m-d", $data["dateto"]).'</strong> kept by the plugin in the database (like file metadata and userdata, however files uploaded by the plugin will be maintained). Are you sure that you want to continue?</label><br/>';
182
+ else
183
+ $echo_str .= "\n\t\t".'<label>This will erase <strong>ALL</strong> database records kept by the plugin in the database (like file metadata and userdata, however files uploaded by the plugin will be maintained). Are you sure that you want to continue?</label><br/>';
184
+ $echo_str .= "\n\t\t".'<p class="submit">';
185
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Yes">';
186
+ $echo_str .= "\n\t\t\t".'<input type="submit" class="button-primary" name="submit" value="Cancel">';
187
+ $echo_str .= "\n\t\t".'</p>';
188
+ $echo_str .= "\n\t".'</form>';
189
+ $echo_str .= "\n".'</div>';
190
+ return $echo_str;
191
+ }
192
+
193
+ function wfu_clean_log() {
194
+ $a = func_get_args(); switch(WFU_FUNCTION_HOOK(__FUNCTION__, $a, $out)) { case 'X': break; case 'R': return $out; break; case 'D': die($out); break; }
195
+ global $wpdb;
196
+
197
+ if ( !current_user_can( 'manage_options' ) ) return -1;
198
+ if ( !check_admin_referer('wfu_clean_log') ) return -1;
199
+
200
+ $count = -1;
201
+ if ( isset($_POST['data']) && isset($_POST['submit']) && $_POST['submit'] == "Yes" ) {
202
+ $data = wfu_clean_log_parse_data($_POST['data']);
203
+ if ( $data["result"] ) {
204
+ $table_name1 = $wpdb->prefix . "wfu_log";
205
+ $table_name2 = $wpdb->prefix . "wfu_userdata";
206
+ //$table_name3 = $wpdb->prefix . "wfu_dbxqueue";
207
+
208
+ $query1 = "DELETE FROM $table_name1";
209
+ $query2 = "DELETE FROM $table_name2";
210
+ //$query3 = "DELETE FROM $table_name3";
211
+ if ( $data["code"] == "0" ) {
212
+ $query1 .= " WHERE date_from < '".date('Y-m-d H:i:s', $data["dateold"])."'";
213
+ $query2 .= " WHERE date_from < '".date('Y-m-d H:i:s', $data["dateold"])."'";
214
+ }
215
+ elseif ( $data["code"] == "1" ) {
216
+ $date = strtotime(date('Y-m-d', strtotime('-'.$data["periodold"].' '.$data["periodtype"]))." 00:00");
217
+ $query1 .= " WHERE date_from < '".date('Y-m-d H:i:s', $date)."'";
218
+ $query2 .= " WHERE date_from < '".date('Y-m-d H:i:s', $date)."'";
219
+ }
220
+ elseif ( $data["code"] == "2" ) {
221
+ $query1 .= " WHERE date_from < '".date('Y-m-d H:i:s', $data["datefrom"] + 86400)."' AND date_from >= '".date('Y-m-d H:i:s', $data["dateto"])."'";
222
+ $query2 .= " WHERE date_from < '".date('Y-m-d H:i:s', $data["datefrom"] + 86400)."' AND date_from >= '".date('Y-m-d H:i:s', $data["dateto"])."'";
223
+ }
224
+ $count = $wpdb->query($query1);
225
+ $count +=