[ Index ] |
|
Code source de e107 0.7.8 |
1 <!-- 2 3 /* 4 + ----------------------------------------------------------------------------+ 5 | e107 website system - Javascript File. 6 | 7 | $Source: /cvsroot/e107/e107_0.7/e107_files/e107.js,v $ 8 | $Revision: 1.20 $ 9 | $Date: 2007/01/19 20:46:53 $ 10 | $Author: e107steved $ 11 +----------------------------------------------------------------------------+ 12 */ 13 14 /* 15 * NOTE: KEEP THIS AT THE TOP OF E107.JS! 16 * localTime is recorded ASAP after page load; SyncWithServerTime is called at the END 17 * of page processing. We want localTime and serverTime set in close chronological order. 18 * Page Processing order is as follows: 19 * A) All PHP code encountered sequentially in page 20 * B) All Javascript code encountered sequentially in page NOT including function internals 21 * So best proximity is achieved by setting 22 * serverTime at END of php code, and localTime at START of js code. 23 * NOTE: this method means reported times include transfer delay. It's slightly MORE accurate this way! 24 * Final product: tdOffset cookie contains server-browser time difference in seconds, 25 * independent of time zone. tzOffset contains browser time zone in minutes. 26 */ 27 28 var nowLocal = new Date(); /* time at very beginning of js execution */ 29 var localTime = Math.floor(nowLocal.getTime()/1000); /* time, in ms -- recorded at top of jscript */ 30 /* NOTE: if serverDelta is needed for js functions, you must pull it from 31 * the cookie (as calculated during a previous page load!) 32 * The value calculated in SyncWithServerTime is not known until after the 33 * entire page has been processed. 34 */ 35 function SyncWithServerTime(serverTime) 36 { 37 if (serverTime) { 38 /* update time difference cookie */ 39 tdCookie='e107_tdOffset='; 40 tdSetTimeCookie='e107_tdSetTime='; 41 serverDelta=Math.floor(localTime-serverTime); 42 document.cookie = tdCookie+serverDelta; 43 document.cookie = tdSetTimeCookie+(localTime-serverDelta); /* server time when set */ 44 } 45 46 tzCookie = 'e107_tzOffset='; 47 if (document.cookie.indexOf(tzCookie) < 0) { 48 /* set if not already set */ 49 timezoneOffset = nowLocal.getTimezoneOffset(); /* client-to-GMT in minutes */ 50 document.cookie = tzCookie + timezoneOffset; 51 } 52 } 53 54 if(document.getElementById&&!document.all){ns6=1;}else{ns6=0;} 55 var agtbrw=navigator.userAgent.toLowerCase(); 56 var operaaa=(agtbrw.indexOf('opera')!=-1); 57 var head="display:''"; 58 var folder=''; 59 60 function expandit(curobj, hide) { 61 if(document.getElementById(curobj)) { 62 folder=document.getElementById(curobj).style; 63 } else { 64 if(ns6==1||operaaa==true) { 65 folder=curobj.nextSibling.nextSibling.style; 66 } else { 67 folder=document.all[curobj.sourceIndex+1].style; 68 } 69 } 70 if(folder.display=="none") 71 { 72 folder.display=""; 73 } else { 74 folder.display="none"; 75 } 76 if(hide) { 77 var hide_objects = hide.split(","); 78 for(i=0; i<hide_objects.length; i++) { 79 hide_objects[i]=hide_objects[i].replace(/^\s*(.*)/, "$1"); 80 hide_objects[i]=hide_objects[i].replace(/(.*?)\s*$/, "$1"); 81 if(document.getElementById(hide_objects[i])) { 82 hidden=document.getElementById(hide_objects[i]).style; 83 if(hidden.display=="") { 84 hidden.display="none"; 85 } 86 } 87 } 88 } 89 } 90 91 function urljump(url){ 92 top.window.location = url; 93 } 94 95 function setInner(id, txt) { 96 document.getElementById(id).innerHTML = txt; 97 } 98 99 function jsconfirm(thetext){ 100 return confirm(thetext); 101 } 102 103 function insertext(str,tagid,display){ 104 document.getElementById(tagid).value = str; 105 if(display){ 106 document.getElementById(display).style.display='none'; 107 } 108 } 109 110 function appendtext(str,tagid,display){ 111 document.getElementById(tagid).value += str; 112 document.getElementById(tagid).focus(); 113 if(display){ 114 document.getElementById(display).style.display='none'; 115 } 116 } 117 118 function open_window(url,wth,hgt) { 119 if('full' == wth){ 120 pwindow = window.open(url); 121 } else { 122 if (wth) { 123 mywidth=wth; 124 } else { 125 mywidth=600; 126 } 127 128 if (hgt) { 129 myheight=hgt; 130 } else { 131 myheight=400; 132 } 133 134 pwindow = window.open(url,'Name', 'top=100,left=100,resizable=yes,width='+mywidth+',height='+myheight+',scrollbars=yes,menubar=yes') 135 } 136 pwindow.focus(); 137 } 138 139 function ejs_preload(ejs_path, ejs_imageString){ 140 var ejs_imageArray = ejs_imageString.split(','); 141 for(ejs_loadall=0; ejs_loadall<ejs_imageArray.length; ejs_loadall++){ 142 var ejs_LoadedImage=new Image(); 143 ejs_LoadedImage.src=ejs_path + ejs_imageArray[ejs_loadall]; 144 } 145 } 146 147 function textCounter(field,cntfield) { 148 cntfield.value = field.value.length; 149 } 150 151 function openwindow() { 152 opener = window.open("htmlarea/index.php", "popup","top=50,left=100,resizable=no,width=670,height=520,scrollbars=no,menubar=no"); 153 opener.focus(); 154 } 155 156 function setCheckboxes(the_form, do_check, the_cb){ 157 var elts = (typeof(document.forms[the_form].elements[the_cb]) != 'undefined') ? document.forms[the_form].elements[the_cb] : document.forms[the_form].elements[the_cb]; 158 var elts_cnt = (typeof(elts.length) != 'undefined') ? elts.length : 0; 159 if(elts_cnt){ 160 for(var i = 0; i < elts_cnt; i++){ 161 elts[i].checked = do_check; 162 } 163 }else{ 164 elts.checked = do_check; 165 } 166 return true; 167 } 168 169 var ref=""+escape(top.document.referrer); 170 var colord = window.screen.colorDepth; 171 var res = window.screen.width + "x" + window.screen.height; 172 var eself = document.location; 173 174 // From http://phpbb.com 175 var clientPC = navigator.userAgent.toLowerCase(); 176 var clientVer = parseInt(navigator.appVersion); 177 var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1)); 178 var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1) && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1)); 179 var is_moz = 0; 180 var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1)); 181 var is_mac = (clientPC.indexOf("mac")!=-1); 182 var e107_selectedInputArea; 183 var e107_selectedRange; 184 var e107_dupCounter = 1; 185 186 // From http://www.massless.org/mozedit/ 187 function mozWrap(txtarea, open, close){ 188 var selLength = txtarea.textLength; 189 var selStart = txtarea.selectionStart; 190 var selEnd = txtarea.selectionEnd; 191 if (selEnd == 1 || selEnd == 2) selEnd = selLength; 192 var s1 = (txtarea.value).substring(0,selStart); 193 var s2 = (txtarea.value).substring(selStart, selEnd) 194 var s3 = (txtarea.value).substring(selEnd, selLength); 195 txtarea.value = s1 + open + s2 + close + s3; 196 return; 197 } 198 199 function mozSwap(txtarea, newtext){ 200 var selLength = txtarea.textLength; 201 var selStart = txtarea.selectionStart; 202 var selEnd = txtarea.selectionEnd; 203 if (selEnd == 1 || selEnd == 2) selEnd = selLength; 204 var s1 = (txtarea.value).substring(0,selStart); 205 var s3 = (txtarea.value).substring(selEnd, selLength); 206 txtarea.value = s1 + newtext + s3; 207 return; 208 } 209 210 function storeCaret (textAr){ 211 e107_selectedInputArea = textAr; 212 if (textAr.createTextRange){ 213 e107_selectedRange = document.selection.createRange().duplicate(); 214 } 215 } 216 217 function addtext(text, emote) 218 { 219 if (window.e107_selectedInputArea) 220 { 221 var ta = e107_selectedInputArea; 222 if (emote != true) 223 { // Split if its a paired bbcode 224 val = text.split(']['); 225 if (val[0] == text) val[1] = ''; 226 } 227 else 228 { 229 val = text; 230 } 231 232 if ((clientVer >= 4) && is_ie && is_win) 233 { 234 theSelection = document.selection.createRange().text; /* wrap selected text */ 235 if (theSelection) 236 { 237 if (emote != true) 238 { 239 if (val[1] == '') 240 { // Single piece of text 241 document.selection.createRange().text = val[0]; 242 } 243 else 244 { // bbcode 245 document.selection.createRange().text = val[0] +']' + theSelection + '[' + val[1]; 246 } 247 } 248 else 249 { 250 document.selection.createRange().text = val + theSelection; 251 } 252 ta.focus(); 253 theSelection = ''; 254 return; 255 } 256 257 } 258 else 259 if (ta.selectionEnd && (ta.selectionEnd - ta.selectionStart > 0)) 260 { // Selected text here 261 if (emote != true) 262 { 263 if (val[1] != '') 264 { // BBCode to wrap 265 mozWrap(ta, val[0] +']', '[' + val[1]); /* wrap selected text */ 266 } 267 else 268 { // Single piece of text to insert, and delete any selected text 269 mozSwap(ta, text); /* wrap selected text */ 270 } 271 } 272 else 273 { 274 mozWrap(ta, val, ''); /* wrap selected text */ 275 } 276 return; 277 } 278 text = ' ' + text + ' '; 279 if (ta.createTextRange && e107_selectedRange) 280 { 281 var caretPos = e107_selectedRange; /* IE */ 282 caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; 283 } 284 else 285 if (ta.selectionStart || ta.selectionStart == '0') 286 { /* Moz */ 287 var startPos = ta.selectionStart; 288 var endPos = ta.selectionEnd; 289 var charb4 = ta.value.charAt(endPos-1); 290 ta.value = ta.value.substring(0, endPos)+ text + ta.value.substring(endPos); 291 } 292 else 293 { 294 ta.value += text; 295 } 296 ta.focus(); 297 } 298 } 299 300 function help(help,tagid){ 301 if(tagid){ 302 document.getElementById(tagid).value = help; 303 } else if(document.getElementById('dataform')) { 304 document.getElementById('dataform').helpb.value = help; 305 } 306 } 307 function externalLinks() { 308 if (!document.getElementsByTagName) return; 309 var anchors = document.getElementsByTagName("a"); 310 for (var i=0; i<anchors.length; i++) { 311 var anchor = anchors[i]; 312 if (anchor.getAttribute("href") && 313 anchor.getAttribute("rel") == "external") 314 anchor.target = "_blank"; 315 } 316 } 317 318 function eover(object, over) { 319 object.className = over; 320 } 321 322 function duplicateHTML(copy,paste,baseid){ 323 if(document.getElementById(copy)){ 324 325 e107_dupCounter++; 326 var type = document.getElementById(copy).nodeName; // get the tag name of the source copy. 327 328 var but = document.createElement('input'); 329 var br = document.createElement('br'); 330 331 but.type = 'button'; 332 but.value = 'x'; 333 but.className = 'button'; 334 but.onclick = function(){ this.parentNode.parentNode.removeChild(this.parentNode); }; 335 336 var destination = document.getElementById(paste); 337 var source = document.getElementById(copy).cloneNode(true); 338 339 var newentry = document.createElement(type); 340 341 newentry.appendChild(source); 342 newentry.value=''; 343 newentry.appendChild(but); 344 newentry.appendChild(br); 345 if(baseid) 346 { 347 newid = baseid+e107_dupCounter; 348 newentry.innerHTML = newentry.innerHTML.replace(new RegExp(baseid, 'g'), newid); 349 newentry.id=newid; 350 } 351 352 destination.appendChild(newentry); 353 } 354 } 355 356 function preview_image(src_val,img_path){ 357 var ta; 358 var desti 359 360 var desti = src_val + '_prev'; 361 ta = document.getElementById(src_val).value; 362 if(ta){ 363 document.getElementById(desti).src = img_path + ta; 364 }else{ 365 document.getElementById(desti).src = '".e_IMAGE."generic/blank.gif'; 366 } 367 return; 368 } 369 370 371 //-->
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |