// <?php !! This fools phpdocumentor into parsing this file
// $Id: mambojavascript.js,v 1.14 2003/09/29 23:38:48 eddieajau Exp $
/**
* Content code
* @package Mambo Open Source
* @Copyright (C) 2000 - 2003 Miro International Pty Ltd
* @ All rights reserved
* @ Mambo Open Source is Free Software
* @ Released under GNU/GPL License : http://www.gnu.org/copyleft/gpl.html
* @version $Revision: 1.14 $
**/// general utility for browsing a named array or object
function xshow(o) {
s = '';
for(e in o) {s += e+'='+o[e]+'\n';}
alert( s );
}/**
* Writes a dynamically generated list
* @param string The parameters to insert into the <select> tag
* @param array A javascript array of list options in the form [key,value,text]
* @param string The key to display for the initial state of the list
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function writeDynaList( selectParams, source, key, orig_key, orig_val ) {
var html = '\n<select ' + selectParams + '>';
var i = 0;
for (x in source) {
if (source[x][0] == key) {
var selected = '';
if ((orig_key == key && orig_val == source[x][1]) || (i == 0 && orig_key != key)) {
selected = 'selected="selected"';
}
html += '\n<option value="'+source[x][1]+'" '+selected+'>'+source[x][2]+'</option>';
}
i++;
}
html += '\n</select>';document.writeln( html );
}/**
* Changes a dynamically generated list
* @param string The name of the list to change
* @param array A javascript array of list options in the form [key,value,text]
* @param string The key to display
* @param string The original key that was selected
* @param string The original item value that was selected
*/
function changeDynaList( listname, source, key, orig_key, orig_val ) {
var list = eval( 'document.adminForm.' + listname );// empty the list
for (i in list.options.length) {
list.options[i] = null;
}
i = 0;
for (x in source) {
if (source[x][0] == key) {
opt = new Option();
opt.value = source[x][1];
opt.text = source[x][2];if ((orig_key == key && orig_val == opt.value) || i == 0) {
opt.selected = true;
}
list.options[i++] = opt;
}
}
list.length = i;
}/**
* Adds a select item(s) from one list to another
*/
function addSelectedToList( frmName, srcListName, tgtListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
var tgtList = eval( 'form.' + tgtListName );var srcLen = srcList.length;
var tgtLen = tgtList.length;
var tgt = "x";//build array of target items
for (var i=tgtLen-1; i > -1; i--) {
tgt += "," + tgtList.options[i].value + ","
}//Pull selected resources and add them to list
for (var i=srcLen-1; i > -1; i--) {
if (srcList.options[i].selected && tgt.indexOf( "," + srcList.options[i].value + "," ) == -1) {
opt = new Option( srcList.options[i].text, srcList.options[i].value );
tgtList.options[tgtList.length] = opt;
}
}
}function delSelectedFromList( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );var srcLen = srcList.length;for (var i=srcLen-1; i > -1; i--) {
if (srcList.options[i].selected) {
srcList.options[i] = null;
}
}
}function moveInList( frmName, srcListName, index, to) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );
var total = srcList.options.length-1;if (index == -1) {
return false;
}
if (to == +1 && index == total) {
return false;
}
if (to == -1 && index == 0) {
return false;
}var items = new Array;
var values = new Array;for (i=total; i >= 0; i--) {
items[i] = srcList.options[i].text;
values[i] = srcList.options[i].value;
}
for (i = total; i >= 0; i--) {
if (index == i) {
srcList.options[i + to] = new Option(items[i],values[i], 0, 1);
srcList.options[i] = new Option(items[i+to], values[i+to]);
i--;
} else {
srcList.options[i] = new Option(items[i], values[i]);
   }
}
srcList.focus();
}function setSelectedValue( frmName, srcListName, value ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );var srcLen = srcList.length;for (var i=0; i < srcLen; i++) {
srcList.options[i].selected = false;
if (srcList.options[i].value == value) {
srcList.options[i].selected = true;
}
}
}function getSelectedValue( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );i = srcList.selectedIndex;
if (i != null && i > -1) {
return srcList.options[i].value;
} else {
return null;
}
}function getSelectedText( frmName, srcListName ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );i = srcList.selectedIndex;
if (i != null && i > -1) {
return srcList.options[i].text;
} else {
return null;
}
}function chgSelectedValue( frmName, srcListName, value ) {
var form = eval( 'document.' + frmName );
var srcList = eval( 'form.' + srcListName );i = srcList.selectedIndex;
if (i != null && i > -1) {
srcList.options[i].value = value;
return true;
} else {
return false;
}
}// Form specific functions for editting content imagesfunction showImageProps(base_path) {
form = document.adminForm;
value = getSelectedValue( 'adminForm', 'imagelist' );
parts = value.split( '|' );
form._source.value = parts[0];
setSelectedValue( 'adminForm', '_align', parts[1] || 'left' );
form._alt.value = parts[2] || '';
form._border.value = parts[3] || '0';previewImage( 'imagelist', 'view_imagelist', base_path );
}function applyImageProps() {
form = document.adminForm;
if (!getSelectedValue( 'adminForm', 'imagelist' )) {
alert( "Select and image from the list" );
return;
}
value = form._source.value + '|'
+ getSelectedValue( 'adminForm', '_align' ) + '|'
+ form._alt.value + '|'
+ parseInt( form._border.value );
chgSelectedValue( 'adminForm', 'imagelist', value );
}function previewImage( list, image, base_path ) {
form = document.adminForm;
srcList = eval( "form." + list );
srcImage = eval( "document." + image );
var fileName = srcList.options[srcList.selectedIndex].text;
var fileName2 = srcList.options[srcList.selectedIndex].value;
if (fileName.length == 0 || fileName2.length == 0) {
srcImage.src = 'images/blank.gif';
} else {
srcImage.src = base_path + fileName;
}
}/**
* Toggles the check state of a group of boxes
*
* Checkboxes must have an id attribute in the form cb0, cb1...
* @param The number of box to 'check'
*/
function checkAll( n ) {
var f = document.adminForm;
var c = f.toggle.checked;
var n2 = 0;
for (i=0; i < n; i++) {
cb = eval( 'f.cb' + i );
if (cb) {
cb.checked = c;
n2++;
}
}
if (c) {
document.adminForm.boxchecked.value = n2;
} else {
document.adminForm.boxchecked.value = 0;
}
}/**
*/
function listItemTask( id, task ) {
var f = document.adminForm;
cb = eval( 'f.' + id );
if (cb) {
cb.checked = true;
submitbutton(task);
}
return false;
}function isChecked(isitchecked){
if (isitchecked == true){
document.adminForm.boxchecked.value++;
}
else {
document.adminForm.boxchecked.value--;
}
}/**
* Default function.  Usually would be overriden by the component
*/
function submitbutton(pressbutton) {
submitform(pressbutton);
}/**
* Submit the admin form
*/
function submitform(pressbutton){
document.adminForm.task.value=pressbutton;
try {
document.adminForm.onsubmit();
}
catch(e){}
document.adminForm.submit();
}/**
* Getting radio button that is selected.
*/
function getSelected(allbuttons){
for (i=0;i<allbuttons.length;i++) {
if (allbuttons[i].checked) {
return allbuttons[i].value
}
}
}// JS Calendar
var calendar = null; // remember the calendar object so that we reuse
// it and avoid creating another// This function gets called when an end-user clicks on some date
function selected(cal, date) {
cal.sel.value = date; // just update the value of the input field
}// And this gets called when the end-user clicks on the _selected_ date,
// or clicks the "Close" (X) button.  It just hides the calendar without
// destroying it.
function closeHandler(cal) {
cal.hide();// hide the calendar// don't check mousedown on document anymore (used to be able to hide the
// calendar when someone clicks outside it, see the showCalendar function).
Calendar.removeEvent(document, "mousedown", checkCalendar);
}// This gets called when the user presses a mouse button anywhere in the
// document, if the calendar is shown.  If the click was outside the open
// calendar this function closes it.
function checkCalendar(ev) {
var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
for (; el != null; el = el.parentNode)
// FIXME: allow end-user to click some link without closing the
// calendar.  Good to see real-time stylesheet change :)
if (el == calendar.element || el.tagName == "A") break;
if (el == null) {
// calls closeHandler which should hide the calendar.
calendar.callCloseHandler(); Calendar.stopEvent(ev);
}
}// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id) {
var el = document.getElementById(id);
if (calendar != null) {
// we already have one created, so just update it.
calendar.hide();// hide the existing calendar
calendar.parseDate(el.value); // set it to a new date
} else {
// first-time call, create the calendar
var cal = new Calendar(true, null, selected, closeHandler);
calendar = cal;// remember the calendar in the global
cal.setRange(1900, 2070);// min/max year allowed
calendar.create();// create a popup calendar
}
calendar.sel = el;// inform it about the input field in use
calendar.showAtElement(el);// show the calendar next to the input field// catch mousedown on the document
Calendar.addEvent(document, "mousedown", checkCalendar);
return false;
}/**
* Pops up a new window in the middle of the screen
*/
function popupWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}// #############################################################################
// AD Server stuff
function zeustool(zoneid)
{
if (!document.dragon_used) document.dragon_used = ',';
   dragon_random = new String (Math.random()); dragon_random = dragon_random.substring(2,11);
   
   document.write ("<" + "script language='JavaScript' type='text/javascript' src='");
   document.write ("http://zeus.developershed.com/master.php?n=" + dragon_random);
   document.write ("&amp;block=1&amp;what=zone:"+zoneid);
   document.write ("&amp;exclude=" + document.dragon_used);
   if (document.referrer)
      document.write ("&amp;referer=" + escape(document.referrer));
   document.write ("'><" + "/script>");
}
