| [ Index ] |
PHP Cross Reference of Joomla 1.5.26 DE |
[Summary view] [Print] [Text view]
1 // <?php !! This fools phpdocumentor into parsing this file 2 /** 3 * @version $Id: joomla.javascript.js 14401 2010-01-26 14:10:00Z louis $ 4 * @package Joomla 5 * @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved. 6 * @license GNU/GPL 7 * Joomla! is Free Software 8 */ 9 10 /** 11 * Overlib Styling Declarations to allow CSS class override of styles 12 * 13 */ 14 var ol_fgclass='ol-foreground'; 15 var ol_bgclass='ol-background'; 16 var ol_textfontclass='ol-textfont'; 17 var ol_captionfontclass='ol-captionfont'; 18 var ol_closefontclass='ol-closefont'; 19 20 // general utility for browsing a named array or object 21 function xshow(o) { 22 s = ''; 23 for(e in o) {s += e+'='+o[e]+'\n';} 24 alert( s ); 25 } 26 27 /** 28 * Writes a dynamically generated list 29 * @param string The parameters to insert into the <select> tag 30 * @param array A javascript array of list options in the form [key,value,text] 31 * @param string The key to display for the initial state of the list 32 * @param string The original key that was selected 33 * @param string The original item value that was selected 34 */ 35 function writeDynaList( selectParams, source, key, orig_key, orig_val ) { 36 var html = '\n <select ' + selectParams + '>'; 37 var i = 0; 38 for (x in source) { 39 if (source[x][0] == key) { 40 var selected = ''; 41 if ((orig_key == key && orig_val == source[x][1]) || (i == 0 && orig_key != key)) { 42 selected = 'selected="selected"'; 43 } 44 html += '\n <option value="'+source[x][1]+'" '+selected+'>'+source[x][2]+'</option>'; 45 } 46 i++; 47 } 48 html += '\n </select>'; 49 50 document.writeln( html ); 51 } 52 53 /** 54 * Changes a dynamically generated list 55 * @param string The name of the list to change 56 * @param array A javascript array of list options in the form [key,value,text] 57 * @param string The key to display 58 * @param string The original key that was selected 59 * @param string The original item value that was selected 60 */ 61 function changeDynaList( listname, source, key, orig_key, orig_val ) { 62 var list = eval( 'document.adminForm.' + listname ); 63 64 // empty the list 65 for (i in list.options.length) { 66 list.options[i] = null; 67 } 68 i = 0; 69 for (x in source) { 70 if (source[x][0] == key) { 71 opt = new Option(); 72 opt.value = source[x][1]; 73 opt.text = source[x][2]; 74 75 if ((orig_key == key && orig_val == opt.value) || i == 0) { 76 opt.selected = true; 77 } 78 list.options[i++] = opt; 79 } 80 } 81 list.length = i; 82 } 83 84 /** 85 * Adds a select item(s) from one list to another 86 */ 87 function addSelectedToList( frmName, srcListName, tgtListName ) { 88 var form = eval( 'document.' + frmName ); 89 var srcList = eval( 'form.' + srcListName ); 90 var tgtList = eval( 'form.' + tgtListName ); 91 92 var srcLen = srcList.length; 93 var tgtLen = tgtList.length; 94 var tgt = "x"; 95 96 //build array of target items 97 for (var i=tgtLen-1; i > -1; i--) { 98 tgt += "," + tgtList.options[i].value + "," 99 } 100 101 //Pull selected resources and add them to list 102 //for (var i=srcLen-1; i > -1; i--) { 103 for (var i=0; i < srcLen; i++) { 104 if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) == -1) { 105 opt = new Option( srcList.options[i].text, srcList.options[i].value ); 106 tgtList.options[tgtList.length] = opt; 107 } 108 } 109 } 110 111 function delSelectedFromList( frmName, srcListName ) { 112 var form = eval( 'document.' + frmName ); 113 var srcList = eval( 'form.' + srcListName ); 114 115 var srcLen = srcList.length; 116 117 for (var i=srcLen-1; i > -1; i--) { 118 if (srcList.options[i].selected) { 119 srcList.options[i] = null; 120 } 121 } 122 } 123 124 function moveInList( frmName, srcListName, index, to) { 125 var form = eval( 'document.' + frmName ); 126 var srcList = eval( 'form.' + srcListName ); 127 var total = srcList.options.length-1; 128 129 if (index == -1) { 130 return false; 131 } 132 if (to == +1 && index == total) { 133 return false; 134 } 135 if (to == -1 && index == 0) { 136 return false; 137 } 138 139 var items = new Array; 140 var values = new Array; 141 142 for (i=total; i >= 0; i--) { 143 items[i] = srcList.options[i].text; 144 values[i] = srcList.options[i].value; 145 } 146 for (i = total; i >= 0; i--) { 147 if (index == i) { 148 srcList.options[i + to] = new Option(items[i],values[i], 0, 1); 149 srcList.options[i] = new Option(items[i+to], values[i+to]); 150 i--; 151 } else { 152 srcList.options[i] = new Option(items[i], values[i]); 153 } 154 } 155 srcList.focus(); 156 return true; 157 } 158 159 function getSelectedOption( frmName, srcListName ) { 160 var form = eval( 'document.' + frmName ); 161 var srcList = eval( 'form.' + srcListName ); 162 163 i = srcList.selectedIndex; 164 if (i != null && i > -1) { 165 return srcList.options[i]; 166 } else { 167 return null; 168 } 169 } 170 171 function setSelectedValue( frmName, srcListName, value ) { 172 var form = eval( 'document.' + frmName ); 173 var srcList = eval( 'form.' + srcListName ); 174 175 var srcLen = srcList.length; 176 177 for (var i=0; i < srcLen; i++) { 178 srcList.options[i].selected = false; 179 if (srcList.options[i].value == value) { 180 srcList.options[i].selected = true; 181 } 182 } 183 } 184 185 function getSelectedRadio( frmName, srcGroupName ) { 186 var form = eval( 'document.' + frmName ); 187 var srcGroup = eval( 'form.' + srcGroupName ); 188 189 return radioGetCheckedValue( srcGroup ); 190 } 191 192 // return the value of the radio button that is checked 193 // return an empty string if none are checked, or 194 // there are no radio buttons 195 function radioGetCheckedValue(radioObj) { 196 if (!radioObj) { 197 return ''; 198 } 199 var n = radioObj.length; 200 if (n == undefined) { 201 if (radioObj.checked) { 202 return radioObj.value; 203 } else { 204 return ''; 205 } 206 } 207 for (var i = 0; i < n; i++) { 208 if(radioObj[i].checked) { 209 return radioObj[i].value; 210 } 211 } 212 return ''; 213 } 214 215 function getSelectedValue( frmName, srcListName ) { 216 var form = eval( 'document.' + frmName ); 217 var srcList = eval( 'form.' + srcListName ); 218 219 i = srcList.selectedIndex; 220 if (i != null && i > -1) { 221 return srcList.options[i].value; 222 } else { 223 return null; 224 } 225 } 226 227 function getSelectedText( frmName, srcListName ) { 228 var form = eval( 'document.' + frmName ); 229 var srcList = eval( 'form.' + srcListName ); 230 231 i = srcList.selectedIndex; 232 if (i != null && i > -1) { 233 return srcList.options[i].text; 234 } else { 235 return null; 236 } 237 } 238 239 function chgSelectedValue( frmName, srcListName, value ) { 240 var form = eval( 'document.' + frmName ); 241 var srcList = eval( 'form.' + srcListName ); 242 243 i = srcList.selectedIndex; 244 if (i != null && i > -1) { 245 srcList.options[i].value = value; 246 return true; 247 } else { 248 return false; 249 } 250 } 251 252 /** 253 * Toggles the check state of a group of boxes 254 * 255 * Checkboxes must have an id attribute in the form cb0, cb1... 256 * @param The number of box to 'check' 257 * @param An alternative field name 258 */ 259 function checkAll( n, fldName ) { 260 if (!fldName) { 261 fldName = 'cb'; 262 } 263 var f = document.adminForm; 264 var c = f.toggle.checked; 265 var n2 = 0; 266 for (i=0; i < n; i++) { 267 cb = eval( 'f.' + fldName + '' + i ); 268 if (cb) { 269 cb.checked = c; 270 n2++; 271 } 272 } 273 if (c) { 274 document.adminForm.boxchecked.value = n2; 275 } else { 276 document.adminForm.boxchecked.value = 0; 277 } 278 } 279 280 function listItemTask( id, task ) { 281 var f = document.adminForm; 282 cb = eval( 'f.' + id ); 283 if (cb) { 284 for (i = 0; true; i++) { 285 cbx = eval('f.cb'+i); 286 if (!cbx) break; 287 cbx.checked = false; 288 } // for 289 cb.checked = true; 290 f.boxchecked.value = 1; 291 submitbutton(task); 292 } 293 return false; 294 } 295 296 function hideMainMenu() { 297 if (document.adminForm.hidemainmenu) { 298 document.adminForm.hidemainmenu.value=1; 299 } 300 } 301 302 function isChecked(isitchecked){ 303 if (isitchecked == true){ 304 document.adminForm.boxchecked.value++; 305 } 306 else { 307 document.adminForm.boxchecked.value--; 308 } 309 } 310 311 /** 312 * Default function. Usually would be overriden by the component 313 */ 314 function submitbutton(pressbutton) { 315 submitform(pressbutton); 316 } 317 318 /** 319 * Submit the admin form 320 */ 321 function submitform(pressbutton){ 322 if (pressbutton) { 323 document.adminForm.task.value=pressbutton; 324 } 325 if (typeof document.adminForm.onsubmit == "function") { 326 document.adminForm.onsubmit(); 327 } 328 document.adminForm.submit(); 329 } 330 331 /** 332 * Submit the control panel admin form 333 */ 334 function submitcpform(sectionid, id){ 335 document.adminForm.sectionid.value=sectionid; 336 document.adminForm.id.value=id; 337 submitbutton("edit"); 338 } 339 340 /** 341 * Getting radio button that is selected. 342 */ 343 function getSelected(allbuttons){ 344 for (i=0;i<allbuttons.length;i++) { 345 if (allbuttons[i].checked) { 346 return allbuttons[i].value 347 } 348 } 349 return null; 350 } 351 352 // JS Calendar 353 var calendar = null; // remember the calendar object so that we reuse 354 // it and avoid creating another 355 356 // This function gets called when an end-user clicks on some date 357 function selected(cal, date) { 358 cal.sel.value = date; // just update the value of the input field 359 } 360 361 // And this gets called when the end-user clicks on the _selected_ date, 362 // or clicks the "Close" (X) button. It just hides the calendar without 363 // destroying it. 364 function closeHandler(cal) { 365 cal.hide(); // hide the calendar 366 367 // don't check mousedown on document anymore (used to be able to hide the 368 // calendar when someone clicks outside it, see the showCalendar function). 369 Calendar.removeEvent(document, "mousedown", checkCalendar); 370 } 371 372 // This gets called when the user presses a mouse button anywhere in the 373 // document, if the calendar is shown. If the click was outside the open 374 // calendar this function closes it. 375 function checkCalendar(ev) { 376 var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev); 377 for (; el != null; el = el.parentNode) 378 // FIXME: allow end-user to click some link without closing the 379 // calendar. Good to see real-time stylesheet change :) 380 if (el == calendar.element || el.tagName == "A") break; 381 if (el == null) { 382 // calls closeHandler which should hide the calendar. 383 calendar.callCloseHandler(); Calendar.stopEvent(ev); 384 } 385 } 386 387 // This function shows the calendar under the element having the given id. 388 // It takes care of catching "mousedown" signals on document and hiding the 389 // calendar if the click was outside. 390 function showCalendar(id, dateFormat) { 391 var el = document.getElementById(id); 392 if (calendar != null) { 393 // we already have one created, so just update it. 394 calendar.hide(); // hide the existing calendar 395 calendar.parseDate(el.value); // set it to a new date 396 } else { 397 // first-time call, create the calendar 398 var cal = new Calendar(true, null, selected, closeHandler); 399 calendar = cal; // remember the calendar in the global 400 cal.setRange(1900, 2070); // min/max year allowed 401 402 if ( dateFormat ) // optional date format 403 { 404 cal.setDateFormat(dateFormat); 405 } 406 407 calendar.create(); // create a popup calendar 408 calendar.parseDate(el.value); // set it to a new date 409 } 410 calendar.sel = el; // inform it about the input field in use 411 calendar.showAtElement(el); // show the calendar next to the input field 412 413 // catch mousedown on the document 414 Calendar.addEvent(document, "mousedown", checkCalendar); 415 return false; 416 } 417 418 /** 419 * Pops up a new window in the middle of the screen 420 */ 421 function popupWindow(mypage, myname, w, h, scroll) { 422 var winl = (screen.width - w) / 2; 423 var wint = (screen.height - h) / 2; 424 winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable' 425 win = window.open(mypage, myname, winprops) 426 if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); } 427 } 428 429 // LTrim(string) : Returns a copy of a string without leading spaces. 430 function ltrim(str) 431 { 432 var whitespace = new String(" \t\n\r"); 433 var s = new String(str); 434 if (whitespace.indexOf(s.charAt(0)) != -1) { 435 var j=0, i = s.length; 436 while (j < i && whitespace.indexOf(s.charAt(j)) != -1) 437 j++; 438 s = s.substring(j, i); 439 } 440 return s; 441 } 442 443 //RTrim(string) : Returns a copy of a string without trailing spaces. 444 function rtrim(str) 445 { 446 var whitespace = new String(" \t\n\r"); 447 var s = new String(str); 448 if (whitespace.indexOf(s.charAt(s.length-1)) != -1) { 449 var i = s.length - 1; // Get length of string 450 while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) 451 i--; 452 s = s.substring(0, i+1); 453 } 454 return s; 455 } 456 457 // Trim(string) : Returns a copy of a string without leading or trailing spaces 458 function trim(str) { 459 return rtrim(ltrim(str)); 460 } 461 462 function mosDHTML(){ 463 this.ver=navigator.appVersion 464 this.agent=navigator.userAgent 465 this.dom=document.getElementById?1:0 466 this.opera5=this.agent.indexOf("Opera 5")<-1 467 this.ie5=(this.ver.indexOf("MSIE 5")<-1 && this.dom && !this.opera5)?1:0; 468 this.ie6=(this.ver.indexOf("MSIE 6")<-1 && this.dom && !this.opera5)?1:0; 469 this.ie4=(document.all && !this.dom && !this.opera5)?1:0; 470 this.ie=this.ie4||this.ie5||this.ie6 471 this.mac=this.agent.indexOf("Mac")<-1 472 this.ns6=(this.dom && parseInt(this.ver) <= 5) ?1:0; 473 this.ns4=(document.layers && !this.dom)?1:0; 474 this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5); 475 476 this.activeTab = ''; 477 this.onTabStyle = 'ontab'; 478 this.offTabStyle = 'offtab'; 479 480 this.setElemStyle = function(elem,style) { 481 document.getElementById(elem).className = style; 482 } 483 this.showElem = function(id) { 484 if ((elem = document.getElementById(id))) { 485 elem.style.visibility = 'visible'; 486 elem.style.display = 'block'; 487 } 488 } 489 this.hideElem = function(id) { 490 if ((elem = document.getElementById(id))) { 491 elem.style.visibility = 'hidden'; 492 elem.style.display = 'none'; 493 } 494 } 495 this.cycleTab = function(name) { 496 if (this.activeTab) { 497 this.setElemStyle( this.activeTab, this.offTabStyle ); 498 page = this.activeTab.replace( 'tab', 'page' ); 499 this.hideElem(page); 500 } 501 this.setElemStyle( name, this.onTabStyle ); 502 this.activeTab = name; 503 page = this.activeTab.replace( 'tab', 'page' ); 504 this.showElem(page); 505 } 506 return this; 507 } 508 var dhtml = new mosDHTML(); 509 510 // needed for Table Column ordering 511 function tableOrdering( order, dir, task ) { 512 var form = document.adminForm; 513 514 form.filter_order.value = order; 515 form.filter_order_Dir.value = dir; 516 submitform( task ); 517 } 518 519 function saveorder( n, task ) { 520 checkAll_button( n, task ); 521 } 522 523 //needed by saveorder function 524 function checkAll_button( n, task ) { 525 526 if (!task ) { 527 task = 'saveorder'; 528 } 529 530 for ( var j = 0; j <= n; j++ ) { 531 box = eval( "document.adminForm.cb" + j ); 532 if ( box ) { 533 if ( box.checked == false ) { 534 box.checked = true; 535 } 536 } else { 537 alert("You cannot change the order of items, as an item in the list is `Checked Out`"); 538 return; 539 } 540 } 541 submitform(task); 542 } 543 /** 544 * @param object A form element 545 * @param string The name of the element to find 546 */ 547 function getElementByName( f, name ) { 548 if (f.elements) { 549 for (i=0, n=f.elements.length; i < n; i++) { 550 if (f.elements[i].name == name) { 551 return f.elements[i]; 552 } 553 } 554 } 555 return null; 556 } 557 558 function go2( pressbutton, menu, id ) { 559 var form = document.adminForm; 560 561 if (form.imagelist && form.images) { 562 // assemble the images back into one field 563 var temp = new Array; 564 for (var i=0, n=form.imagelist.options.length; i < n; i++) { 565 temp[i] = form.imagelist.options[i].value; 566 } 567 form.images.value = temp.join( '\n' ); 568 } 569 570 if (pressbutton == 'go2menu') { 571 form.menu.value = menu; 572 submitform( pressbutton ); 573 return; 574 } 575 576 if (pressbutton == 'go2menuitem') { 577 form.menu.value = menu; 578 form.menuid.value = id; 579 submitform( pressbutton ); 580 return; 581 } 582 } 583 /** 584 * Verifies if the string is in a valid email format 585 * @param string 586 * @return boolean 587 */ 588 function isEmail( text ) 589 { 590 var pattern = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$"; 591 var regex = new RegExp( pattern ); 592 return regex.test( text ); 593 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Wed Mar 28 15:54:07 2012 | Cross-referenced by PHPXref 0.7.1 |