annotate static/js/tiny_mce/plugins/fullpage/js/fullpage.js @ 773:c95431e7555c

Added The Day We Fight Back banner javascript.
author Brian Neal <bgneal@gmail.com>
date Sat, 08 Feb 2014 16:40:06 -0600
parents 6c182ceb7147
children
rev   line source
bgneal@312 1 /**
bgneal@312 2 * fullpage.js
bgneal@312 3 *
bgneal@312 4 * Copyright 2009, Moxiecode Systems AB
bgneal@312 5 * Released under LGPL License.
bgneal@312 6 *
bgneal@312 7 * License: http://tinymce.moxiecode.com/license
bgneal@312 8 * Contributing: http://tinymce.moxiecode.com/contributing
bgneal@312 9 */
bgneal@312 10
bgneal@442 11 (function() {
bgneal@442 12 tinyMCEPopup.requireLangPack();
bgneal@312 13
bgneal@442 14 var defaultDocTypes =
bgneal@442 15 'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +
bgneal@442 16 'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +
bgneal@442 17 'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +
bgneal@442 18 'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +
bgneal@442 19 'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +
bgneal@442 20 'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +
bgneal@442 21 'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';
bgneal@312 22
bgneal@442 23 var defaultEncodings =
bgneal@442 24 'Western european (iso-8859-1)=iso-8859-1,' +
bgneal@442 25 'Central European (iso-8859-2)=iso-8859-2,' +
bgneal@442 26 'Unicode (UTF-8)=utf-8,' +
bgneal@442 27 'Chinese traditional (Big5)=big5,' +
bgneal@442 28 'Cyrillic (iso-8859-5)=iso-8859-5,' +
bgneal@442 29 'Japanese (iso-2022-jp)=iso-2022-jp,' +
bgneal@442 30 'Greek (iso-8859-7)=iso-8859-7,' +
bgneal@442 31 'Korean (iso-2022-kr)=iso-2022-kr,' +
bgneal@442 32 'ASCII (us-ascii)=us-ascii';
bgneal@312 33
bgneal@442 34 var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
bgneal@442 35 var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';
bgneal@312 36
bgneal@442 37 function setVal(id, value) {
bgneal@442 38 var elm = document.getElementById(id);
bgneal@312 39
bgneal@442 40 if (elm) {
bgneal@442 41 value = value || '';
bgneal@312 42
bgneal@442 43 if (elm.nodeName == "SELECT")
bgneal@442 44 selectByValue(document.forms[0], id, value);
bgneal@442 45 else if (elm.type == "checkbox")
bgneal@442 46 elm.checked = !!value;
bgneal@442 47 else
bgneal@442 48 elm.value = value;
bgneal@442 49 }
bgneal@442 50 };
bgneal@312 51
bgneal@442 52 function getVal(id) {
bgneal@442 53 var elm = document.getElementById(id);
bgneal@312 54
bgneal@442 55 if (elm.nodeName == "SELECT")
bgneal@442 56 return elm.options[elm.selectedIndex].value;
bgneal@312 57
bgneal@442 58 if (elm.type == "checkbox")
bgneal@442 59 return elm.checked;
bgneal@312 60
bgneal@442 61 return elm.value;
bgneal@442 62 };
bgneal@312 63
bgneal@442 64 window.FullPageDialog = {
bgneal@442 65 changedStyle : function() {
bgneal@442 66 var val, styles = tinyMCEPopup.editor.dom.parseStyle(getVal('style'));
bgneal@312 67
bgneal@442 68 setVal('fontface', styles['font-face']);
bgneal@442 69 setVal('fontsize', styles['font-size']);
bgneal@442 70 setVal('textcolor', styles['color']);
bgneal@312 71
bgneal@442 72 if (val = styles['background-image'])
bgneal@442 73 setVal('bgimage', val.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"));
bgneal@442 74 else
bgneal@442 75 setVal('bgimage', '');
bgneal@442 76
bgneal@442 77 setVal('bgcolor', styles['background-color']);
bgneal@442 78
bgneal@442 79 // Reset margin form elements
bgneal@442 80 setVal('topmargin', '');
bgneal@442 81 setVal('rightmargin', '');
bgneal@442 82 setVal('bottommargin', '');
bgneal@442 83 setVal('leftmargin', '');
bgneal@442 84
bgneal@442 85 // Expand margin
bgneal@442 86 if (val = styles['margin']) {
bgneal@442 87 val = val.split(' ');
bgneal@442 88 styles['margin-top'] = val[0] || '';
bgneal@442 89 styles['margin-right'] = val[1] || val[0] || '';
bgneal@442 90 styles['margin-bottom'] = val[2] || val[0] || '';
bgneal@442 91 styles['margin-left'] = val[3] || val[0] || '';
bgneal@442 92 }
bgneal@442 93
bgneal@442 94 if (val = styles['margin-top'])
bgneal@442 95 setVal('topmargin', val.replace(/px/, ''));
bgneal@442 96
bgneal@442 97 if (val = styles['margin-right'])
bgneal@442 98 setVal('rightmargin', val.replace(/px/, ''));
bgneal@442 99
bgneal@442 100 if (val = styles['margin-bottom'])
bgneal@442 101 setVal('bottommargin', val.replace(/px/, ''));
bgneal@442 102
bgneal@442 103 if (val = styles['margin-left'])
bgneal@442 104 setVal('leftmargin', val.replace(/px/, ''));
bgneal@442 105
bgneal@442 106 updateColor('bgcolor_pick', 'bgcolor');
bgneal@442 107 updateColor('textcolor_pick', 'textcolor');
bgneal@442 108 },
bgneal@442 109
bgneal@442 110 changedStyleProp : function() {
bgneal@442 111 var val, dom = tinyMCEPopup.editor.dom, styles = dom.parseStyle(getVal('style'));
bgneal@442 112
bgneal@442 113 styles['font-face'] = getVal('fontface');
bgneal@442 114 styles['font-size'] = getVal('fontsize');
bgneal@442 115 styles['color'] = getVal('textcolor');
bgneal@442 116 styles['background-color'] = getVal('bgcolor');
bgneal@442 117
bgneal@442 118 if (val = getVal('bgimage'))
bgneal@442 119 styles['background-image'] = "url('" + val + "')";
bgneal@442 120 else
bgneal@442 121 styles['background-image'] = '';
bgneal@442 122
bgneal@442 123 delete styles['margin'];
bgneal@442 124
bgneal@442 125 if (val = getVal('topmargin'))
bgneal@442 126 styles['margin-top'] = val + "px";
bgneal@442 127 else
bgneal@442 128 styles['margin-top'] = '';
bgneal@442 129
bgneal@442 130 if (val = getVal('rightmargin'))
bgneal@442 131 styles['margin-right'] = val + "px";
bgneal@442 132 else
bgneal@442 133 styles['margin-right'] = '';
bgneal@442 134
bgneal@442 135 if (val = getVal('bottommargin'))
bgneal@442 136 styles['margin-bottom'] = val + "px";
bgneal@442 137 else
bgneal@442 138 styles['margin-bottom'] = '';
bgneal@442 139
bgneal@442 140 if (val = getVal('leftmargin'))
bgneal@442 141 styles['margin-left'] = val + "px";
bgneal@442 142 else
bgneal@442 143 styles['margin-left'] = '';
bgneal@442 144
bgneal@442 145 // Serialize, parse and reserialize this will compress redundant styles
bgneal@442 146 setVal('style', dom.serializeStyle(dom.parseStyle(dom.serializeStyle(styles))));
bgneal@442 147 this.changedStyle();
bgneal@442 148 },
bgneal@442 149
bgneal@442 150 update : function() {
bgneal@442 151 var data = {};
bgneal@442 152
bgneal@442 153 tinymce.each(tinyMCEPopup.dom.select('select,input,textarea'), function(node) {
bgneal@442 154 data[node.id] = getVal(node.id);
bgneal@442 155 });
bgneal@442 156
bgneal@442 157 tinyMCEPopup.editor.plugins.fullpage._dataToHtml(data);
bgneal@442 158 tinyMCEPopup.close();
bgneal@312 159 }
bgneal@442 160 };
bgneal@442 161
bgneal@442 162 function init() {
bgneal@442 163 var form = document.forms[0], i, item, list, editor = tinyMCEPopup.editor;
bgneal@312 164
bgneal@442 165 // Setup doctype select box
bgneal@442 166 list = editor.getParam("fullpage_doctypes", defaultDocTypes).split(',');
bgneal@442 167 for (i = 0; i < list.length; i++) {
bgneal@442 168 item = list[i].split('=');
bgneal@312 169
bgneal@442 170 if (item.length > 1)
bgneal@442 171 addSelectValue(form, 'doctype', item[0], item[1]);
bgneal@312 172 }
bgneal@312 173
bgneal@442 174 // Setup fonts select box
bgneal@442 175 list = editor.getParam("fullpage_fonts", defaultFontNames).split(';');
bgneal@442 176 for (i = 0; i < list.length; i++) {
bgneal@442 177 item = list[i].split('=');
bgneal@312 178
bgneal@442 179 if (item.length > 1)
bgneal@442 180 addSelectValue(form, 'fontface', item[0], item[1]);
bgneal@312 181 }
bgneal@312 182
bgneal@442 183 // Setup fontsize select box
bgneal@442 184 list = editor.getParam("fullpage_fontsizes", defaultFontSizes).split(',');
bgneal@442 185 for (i = 0; i < list.length; i++)
bgneal@442 186 addSelectValue(form, 'fontsize', list[i], list[i]);
bgneal@312 187
bgneal@442 188 // Setup encodings select box
bgneal@442 189 list = editor.getParam("fullpage_encodings", defaultEncodings).split(',');
bgneal@442 190 for (i = 0; i < list.length; i++) {
bgneal@442 191 item = list[i].split('=');
bgneal@312 192
bgneal@442 193 if (item.length > 1)
bgneal@442 194 addSelectValue(form, 'docencoding', item[0], item[1]);
bgneal@312 195 }
bgneal@312 196
bgneal@442 197 // Setup color pickers
bgneal@442 198 document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
bgneal@442 199 document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');
bgneal@442 200 document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');
bgneal@442 201 document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');
bgneal@442 202 document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');
bgneal@442 203 document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');
bgneal@442 204 document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');
bgneal@312 205
bgneal@442 206 // Resize some elements
bgneal@442 207 if (isVisible('stylesheetbrowser'))
bgneal@442 208 document.getElementById('stylesheet').style.width = '220px';
bgneal@312 209
bgneal@442 210 if (isVisible('link_href_browser'))
bgneal@442 211 document.getElementById('element_link_href').style.width = '230px';
bgneal@312 212
bgneal@442 213 if (isVisible('bgimage_browser'))
bgneal@442 214 document.getElementById('bgimage').style.width = '210px';
bgneal@312 215
bgneal@442 216 // Update form
bgneal@442 217 tinymce.each(tinyMCEPopup.getWindowArg('data'), function(value, key) {
bgneal@442 218 setVal(key, value);
bgneal@442 219 });
bgneal@312 220
bgneal@442 221 FullPageDialog.changedStyle();
bgneal@312 222
bgneal@442 223 // Update colors
bgneal@442 224 updateColor('textcolor_pick', 'textcolor');
bgneal@442 225 updateColor('bgcolor_pick', 'bgcolor');
bgneal@442 226 updateColor('visited_color_pick', 'visited_color');
bgneal@442 227 updateColor('active_color_pick', 'active_color');
bgneal@442 228 updateColor('link_color_pick', 'link_color');
bgneal@442 229 };
bgneal@312 230
bgneal@442 231 tinyMCEPopup.onInit.add(init);
bgneal@442 232 })();