cms是开源的框架

源代码在线查看: general.js

软件大小: 19376 K
上传用户: jjingle
关键词: cms 开源
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*
				 * File   : $Source: /usr/local/cvs/opencms/modules/org.opencms.workplace.administration/resources/system/workplace/resources/admin/javascript/general.js,v $
				 * Date   : $Date: 2006/03/27 14:53:04 $
				 * Version: $Revision: 1.14 $
				 *
				 * This library is part of OpenCms -
				 * the Open Source Content Mananagement System
				 *
				 * Copyright (C) 2005 Alkacon Software GmbH (http://www.alkacon.com)
				 *
				 * This library is free software; you can redistribute it and/or
				 * modify it under the terms of the GNU Lesser General Public
				 * License as published by the Free Software Foundation; either
				 * version 2.1 of the License, or (at your option) any later version.
				 *
				 * This library is distributed in the hope that it will be useful,
				 * but WITHOUT ANY WARRANTY; without even the implied warranty of
				 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
				 * Lesser General Public License for more details.
				 *
				 * For further information about Alkacon Software GmbH, please see the
				 * company website: http://www.alkacon.com
				 *
				 * For further information about OpenCms, please see the
				 * project website: http://www.opencms.org
				 *
				 * You should have received a copy of the GNU Lesser General Public
				 * License along with this library; if not, write to the Free Software
				 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
				 */
				
				/*
				 * Returns the current documents height.
				 */
				function pHeight () {
				  var h;
				  var test1 = document.body.scrollHeight;
				  var test2 = document.body.offsetHeight;
				  if (test1 > test2) {// all but Explorer Mac
				    h = test1;
				  } else {// Explorer Mac;
				     //would also work in Explorer 6 Strict, Mozilla and Safari
				    h = test2;
				  }
				  return h;
				}
				
				/*
				 * Returns the current documents width.
				 */
				function pWidth() {
				  var w;
				  var test1 = document.body.scrollWidth;
				  var test2 = document.body.offsetWidth;
				  if (test1 > test2) {// all but Explorer Mac
				    w = test1;
				  } else {// Explorer Mac;
				     //would also work in Explorer 6 Strict, Mozilla and Safari
				    w = test2;
				  }
				  return w;
				}
				
				/*
				 * Returns the current windows height.
				 */
				function wHeight() {
				  var h;
				  if (self.innerHeight) {// all except Explorer
				    h = self.innerHeight;
				  } else if (document.documentElement && document.documentElement.clientHeight) {
				    // Explorer 6 Strict Mode
				    h = document.documentElement.clientHeight;
				  } else if (document.body) { // other Explorers
				    h = document.body.clientHeight;
				  } else {
				    h = 0;
				  }
				  return h;
				}
				
				/*
				 * Returns the current windows width.
				 */
				function wWidth() {
				  var w;
				  if (self.innerWidth) {// all except Explorer
				    w = self.innerWidth;
				  } else if (document.documentElement && document.documentElement.clientWidth) {
				    // Explorer 6 Strict Mode
				    w = document.documentElement.clientWidth;
				  } else if (document.body) { // other Explorers
				    w = document.body.clientWidth;
				  } else {
				    w = 0;
				  }
				  return w;
				}
				
				/*
				 * Returns the form that contains the control with the given id.
				 */
				function getFormForId(id) {
				  return document.getElementById(id).form;
				}
				
				/*
				 * Opens a new page in the right frame.
				 * It also shows the loading screen during loading
				 */
				function openPage(url) {
				    var target = isFramed() ? parent.admin_content : this;
				    if (!isFramed()) {
				       if (parent.parent && parent.parent.admin_content) {
				           target = parent.parent.admin_content;
				       }
				    }
				    openPageIn(url, target);
				}
				
				/*
				 * Opens a new page in the given target frame.
				 * It also shows the loading screen during loading
				 */
				function openPageIn(url, target) {
				    loadingOn();
				    target.location.href = url;
				}
				
				/*
				 * Sets the current displayed context help.
				 * It only works if framed.
				 */
				function setContextHelp(contextHelp) {
				    if (parent && parent.admin_menu && parent.admin_menu.setInternalContextHelp) {
				        parent.admin_menu.setInternalContextHelp(contextHelp);
				    } else if (parent && parent.parent && parent.parent.admin_menu && parent.parent.admin_menu.setInternalContextHelp) {
				        parent.parent.admin_menu.setInternalContextHelp(contextHelp);
				    }
				}
				
				/*
				 * Sets the default context help.
				 * It only works if framed.
				 */
				function setContext(defaultContext) {
				    if (defaultContext) {
				        parent.defContextHelp = defaultContext;
				    }
				    setContextHelp();
				}
				
				/*
				 * Returns the default context help.
				 * It only works if framed.
				 */
				function getContext() {
				    if (parent && parent.defContextHelp) {
				      return parent.defContextHelp;
				    } else if (this.defContextHelp) {
				      return this.defContextHelp;
				    }
				    return "";
				}
				
				/*
				 * Sets the active item in the menu frame.
				 * It only works if framed.
				 */
				function setActiveItemByName(name) {
				    if (parent && parent.admin_menu && parent.admin_menu.setActiveItem) {
				        parent.admin_menu.setActiveItem(name);
				    } else if (parent && parent.parent && parent.parent.admin_menu && parent.parent.admin_menu.setActiveItem) {
				        parent.parent.admin_menu.setActiveItem(name);
				    }
				}
				
				/*
				 * Shows the context help.
				 * If framed, it will be shown in the menu frame;
				 * if not, as a help ballon.
				 * The obj_id argument should be the id of a div tag,
				 * which contains the help text.
				 */
				function sMH(obj_id) {
				   var t = false;
				   if (parent && parent.parent && parent.parent.admin_content) {
				     t = true;
				   }
				   if (!isFramed() && !t) {
				     showHelp(obj_id);
				   } else {
				     var context = obj_id;
				     var writezone = document.getElementById('help' + obj_id);
				     if (writezone) {
				       context = writezone.firstChild.nodeValue;
				     }
				     setContextHelp(context);
				   }
				}
				
				/*
				 * Hides the context help.
				 * If framed, it will be shown in the menu frame;
				 * if not, as a help ballon.
				 * The obj_id argument should be the id of a div tag,
				 * which contains the help text.
				 */
				function hMH(obj_id) {
				   var t = false;
				   if (parent && parent.parent && parent.parent.admin_content) {
				     t = true;
				   }
				   if (!isFramed() && !t) {
				     hideHelp(obj_id);
				   } else {
				     setContextHelp('');
				   }
				}
				
				/*
				 * Shows the context help when having one helptext for several buttons.
				 * If framed, it will be shown in the menu frame;
				 * if not, as a help ballon.
				 * The obj_id argument should be the id of a div tag, where the ballon while be displayed.
				 * The help_id argument should be the id of a div tag, which contains the help text.
				 */
				function sMHS(obj_id, help_id) {
				   var t = false;
				   if (parent && parent.parent && parent.parent.admin_content) {
				     t = true;
				   }
				   if (!isFramed() && !t) {
				     showHelpX(obj_id, help_id);
				   } else {
				     var context = obj_id;
				     var writezone = document.getElementById('help' + help_id);
				     if (writezone) {
				       context = writezone.firstChild.nodeValue;
				     }
				     setContextHelp(context);
				   }
				}
				
				/*
				 * This method is called everytime a new page is being loaded.
				 * That is at unload, submit and links actions.
				 * First it overlap a image so you will feel the page 
				 * is disabled, and then it disables every combobox 
				 * on the page.
				 */
				function loadingOn(target) {
				    if (undefined == target || target == '') {
				        // set default target
				        target = this;
				    }
				    if (undefined == target.disabledControls) {
				        // create a new array of disabled controls
				        target.disabledControls = new Array();
				    } else if (target.disabledControls.length > 0) {
				        // if already disabled returns, should never happen
				        return true;
				    }
				
				    // display an overlapped "disabled" image
				    target.document.getElementById("loaderContainer").style.display = "";
				
				    // disable the combo boxes
				    var comboArray = target.document.getElementsByTagName("select");
				    for (var i = 0; i < comboArray.length; i++) {
				        comboArray[i].disabled = true;
				        disabledControls.pop(comboArray[i]);
				        var combo = target.document.createElement("input");
				        combo.type = "hidden";
				        combo.name = comboArray[i].name;
				        var values = new Array();
				        for (var n = 0; n < comboArray[i].length; n++) {
				            if (comboArray[i][n].selected) {
				                values[values.length] = comboArray[i][n].value;
				            }
				        }
				        combo.value = values.join(",");
				        comboArray[i].parentNode.insertBefore(combo, comboArray[i]);
				    }
				
				    return true;
				}
				
				/*
				 * This method is called everytime a new page is ready to be used.
				 * That is at body.onload event.
				 * First it removes the overlapped "disabled" image, and then it 
				 * enables every combobox on the page.
				 */
				function loadingOff(target) {
				    if (undefined == target || target == '') {
				        // set default target
				        target = this;
				    }
				
				    // hide the overlapped "disabled" image
				    target.document.getElementById("loaderContainer").style.display = "none";
				
				    if (undefined == target.disabledControls) {
				        // if nothing to enable
				        return true;
				    }
				
				    // enable the combo boxes
				    while (disabledControls.legth > 0) {
				        var combo = disabledControls.push();
				        combo.disabled = false;
				
				        var comboArray = target.document.getElementsByName(combo.name);
				        for (var n = 0; n < comboArray.length; n++) {
				            if ("hidden" == comboArray[n].type)
				                comboArray[n].parent.removeChild(comboArray[n]);
				        }
				    }
				    return true;
				}
				
				/*
				 * Submits a form, showing the loading screen during loading.
				 */
				function submitForm(theForm) {
				    loadingOn();
				    theForm.submit();
				    return true;
				}
				
				/*
				 * Checks is we are working in the admin-view framed environment.
				 */
				function isFramed() {
				    return parent && parent.admin_content && parent.admin_menu;
				}
				
							

相关资源