svn commit: r509273 [19/50] - in /ofbiz/trunk/framework/images/webapp/images: ./ dojo/ dojo/src/ dojo/src/animation/ dojo/src/cal/ dojo/src/charting/ dojo/src/charting/svg/ dojo/src/charting/vml/ dojo/src/collections/ dojo/src/crypto/ dojo/src/data/ do...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r509273 [19/50] - in /ofbiz/trunk/framework/images/webapp/images: ./ dojo/ dojo/src/ dojo/src/animation/ dojo/src/cal/ dojo/src/charting/ dojo/src/charting/svg/ dojo/src/charting/vml/ dojo/src/collections/ dojo/src/crypto/ dojo/src/data/ do...

jaz-3
Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,196 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.provide("dojo.html.display");
+dojo.require("dojo.html.style");
+
+dojo.html._toggle = function(node, tester, setter){
+ node = dojo.byId(node);
+ setter(node, !tester(node));
+ return tester(node);
+}
+
+dojo.html.show = function(/* HTMLElement */node){
+ // summary
+ // Show the passed element by reverting display property set by dojo.html.hide
+ node = dojo.byId(node);
+ if(dojo.html.getStyleProperty(node, 'display')=='none'){
+ dojo.html.setStyle(node, 'display', (node.dojoDisplayCache||''));
+ node.dojoDisplayCache = undefined; // cannot use delete on a node in IE6
+ }
+}
+
+dojo.html.hide = function(/* HTMLElement */node){
+ // summary
+ // Hide the passed element by setting display:none
+ node = dojo.byId(node);
+ if(typeof node["dojoDisplayCache"] == "undefined"){ // it could == '', so we cannot say !node.dojoDisplayCount
+ var d = dojo.html.getStyleProperty(node, 'display')
+ if(d!='none'){
+ node.dojoDisplayCache = d;
+ }
+ }
+ dojo.html.setStyle(node, 'display', 'none');
+}
+
+dojo.html.setShowing = function(/* HTMLElement */node, /* boolean? */showing){
+ // summary
+ // Calls show() if showing is true, hide() otherwise
+ dojo.html[(showing ? 'show' : 'hide')](node);
+}
+
+dojo.html.isShowing = function(/* HTMLElement */node){
+ // summary
+ // Returns whether the element is displayed or not.
+ // FIXME: returns true if node is bad, isHidden would be easier to make correct
+ return (dojo.html.getStyleProperty(node, 'display') != 'none'); // boolean
+}
+
+dojo.html.toggleShowing = function(/* HTMLElement */node){
+ // summary
+ // Call setShowing() on node with the complement of isShowing(), then return the new value of isShowing()
+ return dojo.html._toggle(node, dojo.html.isShowing, dojo.html.setShowing); // boolean
+}
+
+// Simple mapping of tag names to display values
+// FIXME: simplistic
+dojo.html.displayMap = { tr: '', td: '', th: '', img: 'inline', span: 'inline', input: 'inline', button: 'inline' };
+
+dojo.html.suggestDisplayByTagName = function(/* HTMLElement */node){
+ // summary
+ // Suggest a value for the display property that will show 'node' based on it's tag
+ node = dojo.byId(node);
+ if(node && node.tagName){
+ var tag = node.tagName.toLowerCase();
+ return (tag in dojo.html.displayMap ? dojo.html.displayMap[tag] : 'block'); // string
+ }
+}
+
+dojo.html.setDisplay = function(/* HTMLElement */node, /* string */display){
+ // summary
+ // Sets the value of style.display to value of 'display' parameter if it is a string.
+ // Otherwise, if 'display' is false, set style.display to 'none'.
+ // Finally, set 'display' to a suggested display value based on the node's tag
+ dojo.html.setStyle(node, 'display', ((display instanceof String || typeof display == "string") ? display : (display ? dojo.html.suggestDisplayByTagName(node) : 'none')));
+}
+
+dojo.html.isDisplayed = function(/* HTMLElement */node){
+ // summary
+ // Is true if the the computed display style for node is not 'none'
+ // FIXME: returns true if node is bad, isNotDisplayed would be easier to make correct
+ return (dojo.html.getComputedStyle(node, 'display') != 'none'); // boolean
+}
+
+dojo.html.toggleDisplay = function(/* HTMLElement */node){
+ // summary
+ // Call setDisplay() on node with the complement of isDisplayed(), then
+ // return the new value of isDisplayed()
+ return dojo.html._toggle(node, dojo.html.isDisplayed, dojo.html.setDisplay); // boolean
+}
+
+dojo.html.setVisibility = function(/* HTMLElement */node, /* string */visibility){
+ // summary
+ // Sets the value of style.visibility to value of 'visibility' parameter if it is a string.
+ // Otherwise, if 'visibility' is false, set style.visibility to 'hidden'. Finally, set style.visibility to 'visible'.
+ dojo.html.setStyle(node, 'visibility', ((visibility instanceof String || typeof visibility == "string") ? visibility : (visibility ? 'visible' : 'hidden')));
+}
+
+dojo.html.isVisible = function(/* HTMLElement */node){
+ // summary
+ // Returns true if the the computed visibility style for node is not 'hidden'
+ // FIXME: returns true if node is bad, isInvisible would be easier to make correct
+ return (dojo.html.getComputedStyle(node, 'visibility') != 'hidden'); // boolean
+}
+
+dojo.html.toggleVisibility = function(node){
+ // summary
+ // Call setVisibility() on node with the complement of isVisible(), then return the new value of isVisible()
+ return dojo.html._toggle(node, dojo.html.isVisible, dojo.html.setVisibility); // boolean
+}
+
+dojo.html.setOpacity = function(/* HTMLElement */node, /* float */opacity, /* boolean? */dontFixOpacity){
+ // summary
+ // Sets the opacity of node in a cross-browser way.
+ // float between 0.0 (transparent) and 1.0 (opaque)
+ node = dojo.byId(node);
+ var h = dojo.render.html;
+ if(!dontFixOpacity){
+ if( opacity >= 1.0){
+ if(h.ie){
+ dojo.html.clearOpacity(node);
+ return;
+ }else{
+ opacity = 0.999999;
+ }
+ }else if( opacity < 0.0){ opacity = 0; }
+ }
+ if(h.ie){
+ if(node.nodeName.toLowerCase() == "tr"){
+ // FIXME: is this too naive? will we get more than we want?
+ var tds = node.getElementsByTagName("td");
+ for(var x=0; x<tds.length; x++){
+ tds[x].style.filter = "Alpha(Opacity="+opacity*100+")";
+ }
+ }
+ node.style.filter = "Alpha(Opacity="+opacity*100+")";
+ }else if(h.moz){
+ node.style.opacity = opacity; // ffox 1.0 directly supports "opacity"
+ node.style.MozOpacity = opacity;
+ }else if(h.safari){
+ node.style.opacity = opacity; // 1.3 directly supports "opacity"
+ node.style.KhtmlOpacity = opacity;
+ }else{
+ node.style.opacity = opacity;
+ }
+}
+
+dojo.html.clearOpacity = function(/* HTMLElement */node){
+ // summary
+ // Clears any opacity setting on the passed element.
+ node = dojo.byId(node);
+ var ns = node.style;
+ var h = dojo.render.html;
+ if(h.ie){
+ try {
+ if( node.filters && node.filters.alpha ){
+ ns.filter = ""; // FIXME: may get rid of other filter effects
+ }
+ } catch(e) {
+ /*
+ * IE7 gives error if node.filters not set;
+ * don't know why or how to workaround (other than this)
+ */
+ }
+ }else if(h.moz){
+ ns.opacity = 1;
+ ns.MozOpacity = 1;
+ }else if(h.safari){
+ ns.opacity = 1;
+ ns.KhtmlOpacity = 1;
+ }else{
+ ns.opacity = 1;
+ }
+}
+
+dojo.html.getOpacity = function(/* HTMLElement */node){
+ // summary
+ // Returns the opacity of the passed element
+ node = dojo.byId(node);
+ var h = dojo.render.html;
+ if(h.ie){
+ var opac = (node.filters && node.filters.alpha &&
+ typeof node.filters.alpha.opacity == "number"
+ ? node.filters.alpha.opacity : 100) / 100;
+ }else{
+ var opac = node.style.opacity || node.style.MozOpacity ||
+ node.style.KhtmlOpacity || 1;
+ }
+ return opac >= 0.999999 ? 1.0 : Number(opac); // float
+}

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/display.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,128 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.provide("dojo.html.iframe");
+dojo.require("dojo.html.util");
+
+// thanks burstlib!
+dojo.html.iframeContentWindow = function(/* HTMLIFrameElement */iframe_el) {
+ // summary
+ // returns the window reference of the passed iframe
+ var win = dojo.html.getDocumentWindow(dojo.html.iframeContentDocument(iframe_el)) ||
+ // Moz. TODO: is this available when defaultView isn't?
+ dojo.html.iframeContentDocument(iframe_el).__parent__ ||
+ (iframe_el.name && document.frames[iframe_el.name]) || null;
+ return win; // Window
+}
+
+dojo.html.iframeContentDocument = function(/* HTMLIFrameElement */iframe_el){
+ // summary
+ // returns a reference to the document object inside iframe_el
+ var doc = iframe_el.contentDocument // W3
+ || ((iframe_el.contentWindow)&&(iframe_el.contentWindow.document)) // IE
+ || ((iframe_el.name)&&(document.frames[iframe_el.name])&&(document.frames[iframe_el.name].document))
+ || null;
+ return doc; // HTMLDocument
+}
+
+dojo.html.BackgroundIframe = function(/* HTMLElement */node) {
+ // summary
+ // For IE z-index schenanigans
+ // Two possible uses:
+ // 1. new dojo.html.BackgroundIframe(node)
+ // Makes a background iframe as a child of node, that fills area (and position) of node
+ // 2. new dojo.html.BackgroundIframe()
+ // Attaches frame to dojo.body().  User must call size() to set size.
+ if(dojo.render.html.ie55 || dojo.render.html.ie60) {
+ var html="<iframe src='javascript:false'"
+ + " style='position: absolute; left: 0px; top: 0px; width: 100%; height: 100%;"
+ + "z-index: -1; filter:Alpha(Opacity=\"0\");' "
+ + ">";
+ this.iframe = dojo.doc().createElement(html);
+ this.iframe.tabIndex = -1; // Magic to prevent iframe from getting focus on tab keypress - as style didnt work.
+ if(node){
+ node.appendChild(this.iframe);
+ this.domNode=node;
+ }else{
+ dojo.body().appendChild(this.iframe);
+ this.iframe.style.display="none";
+ }
+ }
+}
+dojo.lang.extend(dojo.html.BackgroundIframe, {
+ iframe: null,
+ onResized: function(){
+ // summary
+ // Resize event handler.
+ // TODO: this function shouldn't be necessary but setting width=height=100% doesn't work!
+ if(this.iframe && this.domNode && this.domNode.parentNode){ // No parentElement if onResized() timeout event occurs on a removed domnode
+ var outer = dojo.html.getMarginBox(this.domNode);
+ if (outer.width  == 0 || outer.height == 0 ){
+ dojo.lang.setTimeout(this, this.onResized, 100);
+ return;
+ }
+ this.iframe.style.width = outer.width + "px";
+ this.iframe.style.height = outer.height + "px";
+ }
+ },
+
+ size: function(/* HTMLElement */node) {
+ // summary:
+ // Call this function if the iframe is connected to dojo.body()
+ // rather than the node being shadowed
+
+ // (TODO: erase)
+ if(!this.iframe){ return; }
+ var coords = dojo.html.toCoordinateObject(node, true, dojo.html.boxSizing.BORDER_BOX);
+ with(this.iframe.style){
+ width = coords.width + "px";
+ height = coords.height + "px";
+ left = coords.left + "px";
+ top = coords.top + "px";
+ }
+ },
+
+ setZIndex: function(/* HTMLElement */node){
+ // summary
+ // Sets the z-index of the background iframe.
+ if(!this.iframe){ return; }
+ if(dojo.dom.isNode(node)){
+ this.iframe.style.zIndex = dojo.html.getStyle(node, "z-index") - 1;
+ }else if(!isNaN(node)){
+ this.iframe.style.zIndex = node;
+ }
+ },
+
+ show: function(){
+ // summary:
+ // show the iframe
+ if(this.iframe){
+ this.iframe.style.display = "block";
+ }
+ },
+
+ hide: function(){
+ // summary:
+ // hide the iframe
+ if(this.iframe){
+ this.iframe.style.display = "none";
+ }
+ },
+
+ remove: function(){
+ // summary:
+ // remove the iframe
+ if(this.iframe){
+ dojo.html.removeNode(this.iframe, true);
+ delete this.iframe;
+ this.iframe=null;
+ }
+ }
+});

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/iframe.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowB.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowB.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowB.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowBL.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowBL.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowBL.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowBR.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowBR.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowBR.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowL.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowL.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowL.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowR.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowR.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowR.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowT.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowT.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowT.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowTL.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowTL.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowTL.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowTR.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowTR.png?view=auto&rev=509273
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/images/shadowTR.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,487 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.provide("dojo.html.layout");
+
+dojo.require("dojo.html.common");
+dojo.require("dojo.html.style");
+dojo.require("dojo.html.display");
+
+dojo.html.sumAncestorProperties = function(/* HTMLElement */node, /* string */prop){
+ // summary
+ // Returns the sum of the passed property on all ancestors of node.
+ node = dojo.byId(node);
+ if(!node){ return 0; } // FIXME: throw an error?
+
+ var retVal = 0;
+ while(node){
+ if(dojo.html.getComputedStyle(node, 'position') == 'fixed'){
+ return 0;
+ }
+ var val = node[prop];
+ if(val){
+ retVal += val - 0;
+ if(node==dojo.body()){ break; }// opera and khtml #body & #html has the same values, we only need one value
+ }
+ node = node.parentNode;
+ }
+ return retVal; // integer
+}
+
+dojo.html.setStyleAttributes = function(/* HTMLElement */node, /* string */attributes) {
+ // summary
+ // allows a dev to pass a string similar to what you'd pass in style="", and apply it to a node.
+ node = dojo.byId(node);
+ var splittedAttribs=attributes.replace(/(;)?\s*$/, "").split(";");
+ for(var i=0; i<splittedAttribs.length; i++){
+ var nameValue=splittedAttribs[i].split(":");
+ var name=nameValue[0].replace(/\s*$/, "").replace(/^\s*/, "").toLowerCase();
+ var value=nameValue[1].replace(/\s*$/, "").replace(/^\s*/, "");
+ switch(name){
+ case "opacity":
+ dojo.html.setOpacity(node, value);
+ break;
+ case "content-height":
+ dojo.html.setContentBox(node, {height: value});
+ break;
+ case "content-width":
+ dojo.html.setContentBox(node, {width: value});
+ break;
+ case "outer-height":
+ dojo.html.setMarginBox(node, {height: value});
+ break;
+ case "outer-width":
+ dojo.html.setMarginBox(node, {width: value});
+ break;
+ default:
+ node.style[dojo.html.toCamelCase(name)]=value;
+ }
+ }
+}
+
+dojo.html.boxSizing = {
+ MARGIN_BOX: "margin-box",
+ BORDER_BOX: "border-box",
+ PADDING_BOX: "padding-box",
+ CONTENT_BOX: "content-box"
+};
+
+dojo.html.getAbsolutePosition = dojo.html.abs = function(/* HTMLElement */node, /* boolean? */includeScroll, /* string? */boxType){
+ // summary
+ // Gets the absolute position of the passed element based on the document itself.
+ node = dojo.byId(node, node.ownerDocument);
+ var ret = {
+ x: 0,
+ y: 0
+ };
+
+ var bs = dojo.html.boxSizing;
+ if(!boxType) { boxType = bs.CONTENT_BOX; }
+ var nativeBoxType = 2; //BORDER box
+ var targetBoxType;
+ switch(boxType){
+ case bs.MARGIN_BOX:
+ targetBoxType = 3;
+ break;
+ case bs.BORDER_BOX:
+ targetBoxType = 2;
+ break;
+ case bs.PADDING_BOX:
+ default:
+ targetBoxType = 1;
+ break;
+ case bs.CONTENT_BOX:
+ targetBoxType = 0;
+ break;
+ }
+
+ var h = dojo.render.html;
+ var db = document["body"]||document["documentElement"];
+
+ if(h.ie){
+ with(node.getBoundingClientRect()){
+ ret.x = left-2;
+ ret.y = top-2;
+ }
+ }else if(document.getBoxObjectFor){
+ // mozilla
+ nativeBoxType = 1; //getBoxObjectFor return padding box coordinate
+ try{
+ var bo = document.getBoxObjectFor(node);
+ ret.x = bo.x - dojo.html.sumAncestorProperties(node, "scrollLeft");
+ ret.y = bo.y - dojo.html.sumAncestorProperties(node, "scrollTop");
+ }catch(e){
+ // squelch
+ }
+ }else{
+ if(node["offsetParent"]){
+ var endNode;
+ // in Safari, if the node is an absolutely positioned child of
+ // the body and the body has a margin the offset of the child
+ // and the body contain the body's margins, so we need to end
+ // at the body
+ if( (h.safari)&&
+ (node.style.getPropertyValue("position") == "absolute")&&
+ (node.parentNode == db)){
+ endNode = db;
+ }else{
+ endNode = db.parentNode;
+ }
+
+ //TODO: set correct nativeBoxType for safari/konqueror
+
+ if(node.parentNode != db){
+ var nd = node;
+ if(dojo.render.html.opera){ nd = db; }
+ ret.x -= dojo.html.sumAncestorProperties(nd, "scrollLeft");
+ ret.y -= dojo.html.sumAncestorProperties(nd, "scrollTop");
+ }
+ var curnode = node;
+ do{
+ var n = curnode["offsetLeft"];
+ //FIXME: ugly hack to workaround the submenu in
+ //popupmenu2 does not shown up correctly in opera.
+ //Someone have a better workaround?
+ if(!h.opera || n>0){
+ ret.x += isNaN(n) ? 0 : n;
+ }
+ var m = curnode["offsetTop"];
+ ret.y += isNaN(m) ? 0 : m;
+ curnode = curnode.offsetParent;
+ }while((curnode != endNode)&&(curnode != null));
+ }else if(node["x"]&&node["y"]){
+ ret.x += isNaN(node.x) ? 0 : node.x;
+ ret.y += isNaN(node.y) ? 0 : node.y;
+ }
+ }
+
+ // account for document scrolling!
+ if(includeScroll){
+ var scroll = dojo.html.getScroll();
+ ret.y += scroll.top;
+ ret.x += scroll.left;
+ }
+
+ var extentFuncArray=[dojo.html.getPaddingExtent, dojo.html.getBorderExtent, dojo.html.getMarginExtent];
+ if(nativeBoxType > targetBoxType){
+ for(var i=targetBoxType;i<nativeBoxType;++i){
+ ret.y += extentFuncArray[i](node, 'top');
+ ret.x += extentFuncArray[i](node, 'left');
+ }
+ }else if(nativeBoxType < targetBoxType){
+ for(var i=targetBoxType;i>nativeBoxType;--i){
+ ret.y -= extentFuncArray[i-1](node, 'top');
+ ret.x -= extentFuncArray[i-1](node, 'left');
+ }
+ }
+ ret.top = ret.y;
+ ret.left = ret.x;
+ return ret; // object
+}
+
+dojo.html.isPositionAbsolute = function(/* HTMLElement */node){
+ // summary
+ // Returns true if the element is absolutely positioned.
+ return (dojo.html.getComputedStyle(node, 'position') == 'absolute'); // boolean
+}
+
+dojo.html._sumPixelValues = function(/* HTMLElement */node, selectors, autoIsZero){
+ var total = 0;
+ for(var x=0; x<selectors.length; x++){
+ total += dojo.html.getPixelValue(node, selectors[x], autoIsZero);
+ }
+ return total;
+}
+
+dojo.html.getMargin = function(/* HTMLElement */node){
+ // summary
+ // Returns the width and height of the passed node's margin
+ return {
+ width: dojo.html._sumPixelValues(node, ["margin-left", "margin-right"], (dojo.html.getComputedStyle(node, 'position') == 'absolute')),
+ height: dojo.html._sumPixelValues(node, ["margin-top", "margin-bottom"], (dojo.html.getComputedStyle(node, 'position') == 'absolute'))
+ }; // object
+}
+
+dojo.html.getBorder = function(/* HTMLElement */node){
+ // summary
+ // Returns the width and height of the passed node's border
+ return {
+ width: dojo.html.getBorderExtent(node, 'left') + dojo.html.getBorderExtent(node, 'right'),
+ height: dojo.html.getBorderExtent(node, 'top') + dojo.html.getBorderExtent(node, 'bottom')
+ }; // object
+}
+
+dojo.html.getBorderExtent = function(/* HTMLElement */node, /* string */side){
+ // summary
+ // returns the width of the requested border
+ return (dojo.html.getStyle(node, 'border-' + side + '-style') == 'none' ? 0 : dojo.html.getPixelValue(node, 'border-' + side + '-width')); // integer
+}
+
+dojo.html.getMarginExtent = function(/* HTMLElement */node, /* string */side){
+ // summary
+ // returns the width of the requested margin
+ return dojo.html._sumPixelValues(node, ["margin-" + side], dojo.html.isPositionAbsolute(node)); // integer
+}
+
+dojo.html.getPaddingExtent = function(/* HTMLElement */node, /* string */side){
+ // summary
+ // Returns the width of the requested padding
+ return dojo.html._sumPixelValues(node, ["padding-" + side], true); // integer
+}
+
+dojo.html.getPadding = function(/* HTMLElement */node){
+ // summary
+ // Returns the width and height of the passed node's padding
+ return {
+ width: dojo.html._sumPixelValues(node, ["padding-left", "padding-right"], true),
+ height: dojo.html._sumPixelValues(node, ["padding-top", "padding-bottom"], true)
+ }; // object
+}
+
+dojo.html.getPadBorder = function(/* HTMLElement */node){
+ // summary
+ // Returns the width and height of the passed node's padding and border
+ var pad = dojo.html.getPadding(node);
+ var border = dojo.html.getBorder(node);
+ return { width: pad.width + border.width, height: pad.height + border.height }; // object
+}
+
+dojo.html.getBoxSizing = function(/* HTMLElement */node){
+ // summary
+ // Returns which box model the passed element is working with
+ var h = dojo.render.html;
+ var bs = dojo.html.boxSizing;
+ if(((h.ie)||(h.opera)) && node.nodeName!="IMG"){
+ var cm = document["compatMode"];
+ if((cm == "BackCompat")||(cm == "QuirksMode")){
+ return bs.BORDER_BOX; // string
+ }else{
+ return bs.CONTENT_BOX; // string
+ }
+ }else{
+ if(arguments.length == 0){ node = document.documentElement; }
+ var sizing = dojo.html.getStyle(node, "-moz-box-sizing");
+ if(!sizing){ sizing = dojo.html.getStyle(node, "box-sizing"); }
+ return (sizing ? sizing : bs.CONTENT_BOX); // string
+ }
+}
+
+dojo.html.isBorderBox = function(/* HTMLElement */node){
+ // summary
+ // returns whether the passed element is using border box sizing or not.
+ return (dojo.html.getBoxSizing(node) == dojo.html.boxSizing.BORDER_BOX); // boolean
+}
+
+dojo.html.getBorderBox = function(/* HTMLElement */node){
+ // summary
+ // Returns the dimensions of the passed element based on border-box sizing.
+ node = dojo.byId(node);
+ return { width: node.offsetWidth, height: node.offsetHeight }; // object
+}
+
+dojo.html.getPaddingBox = function(/* HTMLElement */node){
+ // summary
+ // Returns the dimensions of the padding box (see http://www.w3.org/TR/CSS21/box.html)
+ var box = dojo.html.getBorderBox(node);
+ var border = dojo.html.getBorder(node);
+ return {
+ width: box.width - border.width,
+ height:box.height - border.height
+ }; // object
+}
+
+dojo.html.getContentBox = function(/* HTMLElement */node){
+ // summary
+ // Returns the dimensions of the content box (see http://www.w3.org/TR/CSS21/box.html)
+ node = dojo.byId(node);
+ var padborder = dojo.html.getPadBorder(node);
+ return {
+ width: node.offsetWidth - padborder.width,
+ height: node.offsetHeight - padborder.height
+ }; // object
+}
+
+dojo.html.setContentBox = function(/* HTMLElement */node, /* object */args){
+ // summary
+ // Sets the dimensions of the passed node according to content sizing.
+ node = dojo.byId(node);
+ var width = 0; var height = 0;
+ var isbb = dojo.html.isBorderBox(node);
+ var padborder = (isbb ? dojo.html.getPadBorder(node) : { width: 0, height: 0});
+ var ret = {};
+ if(typeof args.width != "undefined"){
+ width = args.width + padborder.width;
+ ret.width = dojo.html.setPositivePixelValue(node, "width", width);
+ }
+ if(typeof args.height != "undefined"){
+ height = args.height + padborder.height;
+ ret.height = dojo.html.setPositivePixelValue(node, "height", height);
+ }
+ return ret; // object
+}
+
+dojo.html.getMarginBox = function(/* HTMLElement */node){
+ // summary
+ // returns the dimensions of the passed node including any margins.
+ var borderbox = dojo.html.getBorderBox(node);
+ var margin = dojo.html.getMargin(node);
+ return { width: borderbox.width + margin.width, height: borderbox.height + margin.height }; // object
+}
+
+dojo.html.setMarginBox = function(/* HTMLElement */node, /* object */args){
+ // summary
+ // Sets the dimensions of the passed node using margin box calcs.
+ node = dojo.byId(node);
+ var width = 0; var height = 0;
+ var isbb = dojo.html.isBorderBox(node);
+ var padborder = (!isbb ? dojo.html.getPadBorder(node) : { width: 0, height: 0 });
+ var margin = dojo.html.getMargin(node);
+ var ret = {};
+ if(typeof args.width != "undefined"){
+ width = args.width - padborder.width;
+ width -= margin.width;
+ ret.width = dojo.html.setPositivePixelValue(node, "width", width);
+ }
+ if(typeof args.height != "undefined"){
+ height = args.height - padborder.height;
+ height -= margin.height;
+ ret.height = dojo.html.setPositivePixelValue(node, "height", height);
+ }
+ return ret; // object
+}
+
+dojo.html.getElementBox = function(/* HTMLElement */node, /* string */type){
+ // summary
+ // return dimesions of a node based on the passed box model type.
+ var bs = dojo.html.boxSizing;
+ switch(type){
+ case bs.MARGIN_BOX:
+ return dojo.html.getMarginBox(node); // object
+ case bs.BORDER_BOX:
+ return dojo.html.getBorderBox(node); // object
+ case bs.PADDING_BOX:
+ return dojo.html.getPaddingBox(node); // object
+ case bs.CONTENT_BOX:
+ default:
+ return dojo.html.getContentBox(node); // object
+ }
+}
+// in: coordinate array [x,y,w,h] or dom node
+// return: coordinate object
+dojo.html.toCoordinateObject = dojo.html.toCoordinateArray = function(/* array */coords, /* boolean? */includeScroll, /* string? */boxtype) {
+ // summary
+ // Converts an array of coordinates into an object of named arguments.
+ if(coords instanceof Array || typeof coords == "array"){
+ dojo.deprecated("dojo.html.toCoordinateArray", "use dojo.html.toCoordinateObject({left: , top: , width: , height: }) instead", "0.5");
+ // coords is already an array (of format [x,y,w,h]), just return it
+ while ( coords.length < 4 ) { coords.push(0); }
+ while ( coords.length > 4 ) { coords.pop(); }
+ var ret = {
+ left: coords[0],
+ top: coords[1],
+ width: coords[2],
+ height: coords[3]
+ };
+ }else if(!coords.nodeType && !(coords instanceof String || typeof coords == "string") &&
+ ('width' in coords || 'height' in coords || 'left' in coords ||
+  'x' in coords || 'top' in coords || 'y' in coords)){
+ // coords is a coordinate object or at least part of one
+ var ret = {
+ left: coords.left||coords.x||0,
+ top: coords.top||coords.y||0,
+ width: coords.width||0,
+ height: coords.height||0
+ };
+ }else{
+ // coords is an dom object (or dom object id); return it's coordinates
+ var node = dojo.byId(coords);
+ var pos = dojo.html.abs(node, includeScroll, boxtype);
+ var marginbox = dojo.html.getMarginBox(node);
+ var ret = {
+ left: pos.left,
+ top: pos.top,
+ width: marginbox.width,
+ height: marginbox.height
+ };
+ }
+ ret.x = ret.left;
+ ret.y = ret.top;
+ return ret; // object
+}
+
+dojo.html.setMarginBoxWidth = dojo.html.setOuterWidth = function(node, width){
+ return dojo.html._callDeprecated("setMarginBoxWidth", "setMarginBox", arguments, "width");
+}
+dojo.html.setMarginBoxHeight = dojo.html.setOuterHeight = function(){
+ return dojo.html._callDeprecated("setMarginBoxHeight", "setMarginBox", arguments, "height");
+}
+dojo.html.getMarginBoxWidth = dojo.html.getOuterWidth = function(){
+ return dojo.html._callDeprecated("getMarginBoxWidth", "getMarginBox", arguments, null, "width");
+}
+dojo.html.getMarginBoxHeight = dojo.html.getOuterHeight = function(){
+ return dojo.html._callDeprecated("getMarginBoxHeight", "getMarginBox", arguments, null, "height");
+}
+dojo.html.getTotalOffset = function(node, type, includeScroll){
+ return dojo.html._callDeprecated("getTotalOffset", "getAbsolutePosition", arguments, null, type);
+}
+dojo.html.getAbsoluteX = function(node, includeScroll){
+ return dojo.html._callDeprecated("getAbsoluteX", "getAbsolutePosition", arguments, null, "x");
+}
+dojo.html.getAbsoluteY = function(node, includeScroll){
+ return dojo.html._callDeprecated("getAbsoluteY", "getAbsolutePosition", arguments, null, "y");
+}
+dojo.html.totalOffsetLeft = function(node, includeScroll){
+ return dojo.html._callDeprecated("totalOffsetLeft", "getAbsolutePosition", arguments, null, "left");
+}
+dojo.html.totalOffsetTop = function(node, includeScroll){
+ return dojo.html._callDeprecated("totalOffsetTop", "getAbsolutePosition", arguments, null, "top");
+}
+dojo.html.getMarginWidth = function(node){
+ return dojo.html._callDeprecated("getMarginWidth", "getMargin", arguments, null, "width");
+}
+dojo.html.getMarginHeight = function(node){
+ return dojo.html._callDeprecated("getMarginHeight", "getMargin", arguments, null, "height");
+}
+dojo.html.getBorderWidth = function(node){
+ return dojo.html._callDeprecated("getBorderWidth", "getBorder", arguments, null, "width");
+}
+dojo.html.getBorderHeight = function(node){
+ return dojo.html._callDeprecated("getBorderHeight", "getBorder", arguments, null, "height");
+}
+dojo.html.getPaddingWidth = function(node){
+ return dojo.html._callDeprecated("getPaddingWidth", "getPadding", arguments, null, "width");
+}
+dojo.html.getPaddingHeight = function(node){
+ return dojo.html._callDeprecated("getPaddingHeight", "getPadding", arguments, null, "height");
+}
+dojo.html.getPadBorderWidth = function(node){
+ return dojo.html._callDeprecated("getPadBorderWidth", "getPadBorder", arguments, null, "width");
+}
+dojo.html.getPadBorderHeight = function(node){
+ return dojo.html._callDeprecated("getPadBorderHeight", "getPadBorder", arguments, null, "height");
+}
+dojo.html.getBorderBoxWidth = dojo.html.getInnerWidth = function(){
+ return dojo.html._callDeprecated("getBorderBoxWidth", "getBorderBox", arguments, null, "width");
+}
+dojo.html.getBorderBoxHeight = dojo.html.getInnerHeight = function(){
+ return dojo.html._callDeprecated("getBorderBoxHeight", "getBorderBox", arguments, null, "height");
+}
+dojo.html.getContentBoxWidth = dojo.html.getContentWidth = function(){
+ return dojo.html._callDeprecated("getContentBoxWidth", "getContentBox", arguments, null, "width");
+}
+dojo.html.getContentBoxHeight = dojo.html.getContentHeight = function(){
+ return dojo.html._callDeprecated("getContentBoxHeight", "getContentBox", arguments, null, "height");
+}
+dojo.html.setContentBoxWidth = dojo.html.setContentWidth = function(node, width){
+ return dojo.html._callDeprecated("setContentBoxWidth", "setContentBox", arguments, "width");
+}
+dojo.html.setContentBoxHeight = dojo.html.setContentHeight = function(node, height){
+ return dojo.html._callDeprecated("setContentBoxHeight", "setContentBox", arguments, "height");
+}

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/layout.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/metrics.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/metrics.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/metrics.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/metrics.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,266 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.provide("dojo.html.metrics");
+dojo.require("dojo.html.layout");
+
+/* dojo.html.metrics
+ * Methods to help determine font metrics, including things like
+ * how much of a string will fit inside a certain width, what size
+ * something might be if you were to place it in a certain node, etc.
+ *
+ * Based partially on a submitted patch by Morris Johns, and work
+ * done with 13th Parallel and f( m ) (the 13th columns and the
+ * unreleased f( m ) layout manager.
+ */
+
+// derived from Morris John's scrollbar measurer.
+dojo.html.getScrollbar=function(){
+ // summary
+ // returns the width of a scrollbar.
+
+ // set up the test nodes.
+ var scroll = document.createElement("div");
+ scroll.style.width="100px";
+ scroll.style.height="100px";
+ scroll.style.overflow="scroll";
+ scroll.style.position="absolute";
+ scroll.style.top="-300px";
+ scroll.style.left="0px"
+
+ var test = document.createElement("div");
+ test.style.width="400px";
+ test.style.height="400px";
+ scroll.appendChild(test);
+ dojo.body().appendChild(scroll);
+
+ var width=scroll.offsetWidth - scroll.clientWidth;
+
+ dojo.body().removeChild(scroll);
+ scroll.removeChild(test);
+ scroll=test=null;
+
+ // we return an object because we may add additional info in the future.
+ return { width: width }; // object
+};
+
+// derived from Morris John's emResized measurer
+dojo.html.getFontMeasurements = function(){
+ // summary
+ // Returns an object that has pixel equivilents of standard font size values.
+ var heights = {
+ '1em':0, '1ex':0, '100%':0, '12pt':0, '16px':0, 'xx-small':0, 'x-small':0,
+ 'small':0, 'medium':0, 'large':0, 'x-large':0, 'xx-large':0
+ };
+
+ if(dojo.render.html.ie){
+ // we do a font-size fix if and only if one isn't applied already.
+ // NOTE: If someone set the fontSize on the HTML Element, this will kill it.
+ document.documentElement.style.fontSize="100%";
+ }
+
+ // set up the measuring node.
+ var div=document.createElement("div");
+ div.style.position="absolute";
+ div.style.left="-100px";
+ div.style.top="0";
+ div.style.width="30px";
+ div.style.height="1000em";
+ div.style.border="0";
+ div.style.margin="0";
+ div.style.padding="0";
+ div.style.outline="0";
+ div.style.lineHeight="1";
+ div.style.overflow="hidden";
+ dojo.body().appendChild(div);
+
+ // do the measurements.
+ for(var p in heights){
+ div.style.fontSize = p;
+ heights[p] = Math.round(div.offsetHeight * 12/16) * 16/12 / 1000;
+ }
+
+ dojo.body().removeChild(div);
+ div = null;
+ return heights; // object
+};
+
+dojo.html._fontMeasurements = null;
+
+dojo.html.getCachedFontMeasurements = function(recalculate){
+ if(recalculate || !dojo.html._fontMeasurements){
+ dojo.html._fontMeasurements = dojo.html.getFontMeasurements();
+ }
+ return dojo.html._fontMeasurements;
+};
+
+dojo.html.measureFragment = function(/* HTMLElement */node, /* string */html, /* string? */boxType){
+ // summary
+ // get the dimensions of passed node if it were populated with passed html.
+ var clone = node.cloneNode(true);
+ clone.innerHTML = html;
+ node.parentNode.appendChild(clone);
+ var ret = dojo.html.getElementBox(clone, boxType);
+ node.parentNode.removeChild(clone);
+ clone=null;
+ return ret; // object
+};
+
+// the following are derived from the 13th Parallel Column script, as
+// reinterpreted by trt.  http://www.13thparallel.org/archive/column-script
+// Original by Dan Pupius and Michael van Ouwerkerk.
+dojo.html.getFittedFragment = function(/* HTMLElement */node, /* string */html){
+ // summary
+ // Given html, return the fragment that will fit on one line of passed node.
+ function cl(node){
+ var element = document.createElement(node.tagName);
+ element.id = node.id + "-clone";
+ element.className = node.className;
+ for (var j = 0; j < node.attributes.length; j++) {
+ if (node.attributes[j].specified) {
+ if (node.attributes[j].nodeName.toLowerCase() != "style"
+ && node.attributes[j].nodeName.toLowerCase() != "edited"
+ && node.attributes[j].nodeName.toLowerCase() != "contenteditable"
+ && node.attributes[j].nodeName.toLowerCase() != "id"
+ && node.attributes[j].nodeName.toLowerCase() != "class"
+ ){
+ element.setAttribute(node.attributes[j].nodeName.toLowerCase(), node.attributes[j].nodeValue);
+ }
+ }
+ }
+ return element;
+ }
+ var height = dojo.html.getFontMeasurements()["16px"];
+ var n=cl(node);
+ n.style.width=dojo.html.getBorderBox(node).width+"px";
+ n.style.height=(height+4)+"px";
+ node.parentNode.appendChild(n);
+ var rem = dojo.html.fitToElement(n, html);
+ var ret = n.innerHTML;
+ n.parentNode.removeChild(n);
+ return ret;
+};
+
+dojo.html.fitToElement = function(/* HTMLElement */node, /* string */html){
+ // summary
+ // will fit as much html as possible into node, and return the unused
+ // portion, with tag corrections.
+ function cl(node){
+ var element = document.createElement(node.tagName);
+ element.id = node.id + "-clone";
+ element.className = node.className;
+ for (var j = 0; j < node.attributes.length; j++) {
+ if (node.attributes[j].specified) {
+ if (node.attributes[j].nodeName.toLowerCase() != "style"
+ && node.attributes[j].nodeName.toLowerCase() != "edited"
+ && node.attributes[j].nodeName.toLowerCase() != "contenteditable"
+ && node.attributes[j].nodeName.toLowerCase() != "id"
+ && node.attributes[j].nodeName.toLowerCase() != "class"
+ ){
+ element.setAttribute(node.attributes[j].nodeName.toLowerCase(), node.attributes[j].nodeValue);
+ }
+ }
+ }
+ return element;
+ }
+
+ var clone = cl(node);
+ node.parentNode.appendChild(clone);
+ var t=dojo.html.getBorderBox(node);
+ clone.style.width = t.width+"px";
+
+ var singletons = ["br","img", "hr", "input", "!--"];
+ var chop = ["<BR>","<br>","<br/>","<br />","<p></p>","<P></P>"];
+ var openTags = [];
+
+ var str = html;
+ var i = 0;
+ var limit = str.length;
+ var add = 0;
+ var doLoop = true;
+ clone.innerHTML = str;
+ while (doLoop) {
+ add = Math.round((limit - i) / 2);
+ if (add <= 1) doLoop = false;
+ i += add;
+ clone.innerHTML = str.substr(0, i);
+ if (clone.offsetHeight > t.height) {
+ limit = i;
+ i -= add;
+ }
+ }
+ if (str.substr(0, i) != str) {
+ var lastSpace = str.substr(0, i).lastIndexOf(" ");
+ var lastNewLine = str.substr(0, i).lastIndexOf("\n");
+ var lastGreater = str.substr(0, i).lastIndexOf(">");
+ var lastLess = str.substr(0, i).lastIndexOf("<");
+ if (lastLess <= lastGreater && lastNewLine == i - 1) i = i;
+ else if (lastSpace != -1 && lastSpace > lastGreater && lastGreater > lastLess) i = lastSpace + 1;
+ else if (lastLess > lastGreater) i = lastLess;
+ else if (lastGreater != -1) i = lastGreater + 1;
+ }
+
+ str = str.substr(0, i);
+ var ret = html.substr(str.length); // get the rest of the passed text.
+
+ var doPush = true;
+ var tags = str.split("<");
+ tags.shift();
+ for (var j = 0; j < tags.length; j++) {
+ tags[j] = tags[j].split(">")[0];
+ if (tags[j].charAt(tags[j].length - 1) == "/"){ continue; }
+ if (tags[j].charAt(0) != "/") {
+ for (var k = 0; k < singletons.length; k++) {
+ if (tags[j].split(" ")[0].toLowerCase() == singletons[k]){
+ doPush = false;
+ }
+ }
+ if (doPush){
+ openTags.push(tags[j]);
+ }
+ doPush = true;
+ } else {
+ openTags.pop();
+ }
+ }
+
+ // close any open tags and prepend them to ret as well.
+ for(var j=0; j<chop.length; j++){
+ if(ret.charAt(0) == "\n"){ ret = ret.substr(1); }
+ while(ret.indexOf(chop[j]) == 0){
+ ret = ret.substr(chop[j].length);
+ }
+ }
+
+ for(var j=openTags.length-1; j>=0; j--){
+ if(str.lastIndexOf(openTags[j]) == (str.length-openTags[j].length-1)){
+ str = str.substring(0, str.lastIndexOf(openTags[j]));
+ } else {
+ str += "</"+openTags[j]+">";
+ }
+ if(ret.length > 0){
+ ret = "<"+openTags[j]+">"+ret;
+ }
+ }
+
+ for(var j=0; j<chop.length; j++){
+ if(ret.charAt(0) == "\n"){ ret = ret.substr(1); }
+ while(ret.indexOf(chop[j]) == 0){
+ ret = ret.substr(chop[j].length);
+ }
+ }
+ // push it into the node and pull the temp one.
+ node.innerHTML = str;
+ clone.parentNode.removeChild(clone);
+ clone = null;
+
+ // return the remainder.
+ return ret; // string
+};

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/metrics.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/metrics.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,376 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.require("dojo.html.common");
+dojo.provide("dojo.html.selection");
+
+dojo.require("dojo.dom");
+dojo.require("dojo.lang.common");
+
+/**
+ * type of selection
+**/
+dojo.html.selectionType = {
+ NONE : 0, //selection is empty
+ TEXT : 1, //selection contains text (may also contains CONTROL objects)
+ CONTROL : 2 //only one element is selected (such as img, table etc)
+};
+
+dojo.html.clearSelection = function(){
+ // summary: deselect the current selection to make it empty
+ var _window = dojo.global();
+ var _document = dojo.doc();
+ try{
+ if(_window["getSelection"]){
+ if(dojo.render.html.safari){
+ // pulled from WebCore/ecma/kjs_window.cpp, line 2536
+ _window.getSelection().collapse();
+ }else{
+ _window.getSelection().removeAllRanges();
+ }
+ }else if(_document.selection){
+ if(_document.selection.empty){
+ _document.selection.empty();
+ }else if(_document.selection.clear){
+ _document.selection.clear();
+ }
+ }
+ return true;
+ }catch(e){
+ dojo.debug(e);
+ return false;
+ }
+}
+
+dojo.html.disableSelection = function(/*DomNode*/element){
+ // summary: disable selection on a node
+ element = dojo.byId(element)||dojo.body();
+ var h = dojo.render.html;
+
+ if(h.mozilla){
+ element.style.MozUserSelect = "none";
+ }else if(h.safari){
+ element.style.KhtmlUserSelect = "none";
+ }else if(h.ie){
+ element.unselectable = "on";
+ }else{
+ return false;
+ }
+ return true;
+}
+
+dojo.html.enableSelection = function(/*DomNode*/element){
+ // summary: enable selection on a node
+ element = dojo.byId(element)||dojo.body();
+
+ var h = dojo.render.html;
+ if(h.mozilla){
+ element.style.MozUserSelect = "";
+ }else if(h.safari){
+ element.style.KhtmlUserSelect = "";
+ }else if(h.ie){
+ element.unselectable = "off";
+ }else{
+ return false;
+ }
+ return true;
+}
+
+dojo.html.selectElement = function(/*DomNode*/element){
+ dojo.deprecated("dojo.html.selectElement", "replaced by dojo.html.selection.selectElementChildren", 0.5);
+}
+
+dojo.html.selectInputText = function(/*DomNode*/element){
+ // summary: select all the text in an input element
+ var _window = dojo.global();
+ var _document = dojo.doc();
+ element = dojo.byId(element);
+ if(_document["selection"] && dojo.body()["createTextRange"]){ // IE
+ var range = element.createTextRange();
+ range.moveStart("character", 0);
+ range.moveEnd("character", element.value.length);
+ range.select();
+ }else if(_window["getSelection"]){
+ var selection = _window.getSelection();
+ // FIXME: does this work on Safari?
+ element.setSelectionRange(0, element.value.length);
+ }
+ element.focus();
+}
+
+
+dojo.html.isSelectionCollapsed = function(){
+ dojo.deprecated("dojo.html.isSelectionCollapsed", "replaced by dojo.html.selection.isCollapsed", 0.5);
+ return dojo.html.selection.isCollapsed();
+}
+
+dojo.lang.mixin(dojo.html.selection, {
+ getType: function() {
+ // summary: Get the selection type (like document.select.type in IE).
+ if(dojo.doc()["selection"]){ //IE
+ return dojo.html.selectionType[dojo.doc().selection.type.toUpperCase()];
+ }else{
+ var stype = dojo.html.selectionType.TEXT;
+
+ // Check if the actual selection is a CONTROL (IMG, TABLE, HR, etc...).
+ var oSel;
+ try {oSel = dojo.global().getSelection();}
+ catch (e) {}
+
+ if(oSel && oSel.rangeCount==1){
+ var oRange = oSel.getRangeAt(0);
+ if (oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1
+ && oRange.startContainer.nodeType != dojo.dom.TEXT_NODE) {
+ stype = dojo.html.selectionType.CONTROL;
+ }
+ }
+ return stype;
+ }
+ },
+ isCollapsed: function() {
+ // summary: return whether the current selection is empty
+ var _window = dojo.global();
+ var _document = dojo.doc();
+ if(_document["selection"]){ // IE
+ return _document.selection.createRange().text == "";
+ }else if(_window["getSelection"]){
+ var selection = _window.getSelection();
+ if(dojo.lang.isString(selection)){ // Safari
+ return selection == "";
+ }else{ // Mozilla/W3
+ return selection.isCollapsed || selection.toString() == "";
+ }
+ }
+ },
+ getSelectedElement: function() {
+ // summary:
+ // Retrieves the selected element (if any), just in the case that a single
+ // element (object like and image or a table) is selected.
+ if ( dojo.html.selection.getType() == dojo.html.selectionType.CONTROL ){
+ if(dojo.doc()["selection"]){ //IE
+ var range = dojo.doc().selection.createRange();
+
+ if ( range && range.item ){
+ return dojo.doc().selection.createRange().item(0);
+ }
+ }else{
+ var selection = dojo.global().getSelection();
+ return selection.anchorNode.childNodes[ selection.anchorOffset ];
+ }
+ }
+ },
+ getParentElement: function() {
+ // summary:
+ // Get the parent element of the current selection
+ if(dojo.html.selection.getType() == dojo.html.selectionType.CONTROL){
+ var p = dojo.html.selection.getSelectedElement();
+ if(p){ return p.parentNode; }
+ }else{
+ if(dojo.doc()["selection"]){ //IE
+ return dojo.doc().selection.createRange().parentElement();
+ }else{
+ var selection = dojo.global().getSelection();
+ if(selection){
+ var node = selection.anchorNode;
+
+ while ( node && node.nodeType != dojo.dom.ELEMENT_NODE ){
+ node = node.parentNode;
+ }
+
+ return node;
+ }
+ }
+ }
+ },
+ getSelectedText: function(){
+ // summary:
+ // Return the text (no html tags) included in the current selection or null if no text is selected
+ if(dojo.doc()["selection"]){ //IE
+ if(dojo.html.selection.getType() == dojo.html.selectionType.CONTROL){
+ return null;
+ }
+ return dojo.doc().selection.createRange().text;
+ }else{
+ var selection = dojo.global().getSelection();
+ if(selection){
+ return selection.toString();
+ }
+ }
+ },
+ getSelectedHtml: function(){
+ // summary:
+ // Return the html of the current selection or null if unavailable
+ if(dojo.doc()["selection"]){ //IE
+ if(dojo.html.selection.getType() == dojo.html.selectionType.CONTROL){
+ return null;
+ }
+ return dojo.doc().selection.createRange().htmlText;
+ }else{
+ var selection = dojo.global().getSelection();
+ if(selection && selection.rangeCount){
+ var frag = selection.getRangeAt(0).cloneContents();
+ var div = document.createElement("div");
+ div.appendChild(frag);
+ return div.innerHTML;
+ }
+ return null;
+ }
+ },
+ hasAncestorElement: function(/*String*/tagName /* ... */){
+ // summary:
+ // Check whether current selection has a  parent element which is of type tagName (or one of the other specified tagName)
+ return (dojo.html.selection.getAncestorElement.apply(this, arguments) != null);
+ },
+ getAncestorElement: function(/*String*/tagName /* ... */){
+ // summary:
+ // Return the parent element of the current selection which is of type tagName (or one of the other specified tagName)
+ var node = dojo.html.selection.getSelectedElement() || dojo.html.selection.getParentElement();
+ while(node /*&& node.tagName.toLowerCase() != 'body'*/){
+ if(dojo.html.selection.isTag(node, arguments).length>0){
+ return node;
+ }
+ node = node.parentNode;
+ }
+ return null;
+ },
+ //modified from dojo.html.isTag to take an array as second parameter
+ isTag: function(/*DomNode*/node, /*Array*/tags) {
+ if(node && node.tagName) {
+ for (var i=0; i<tags.length; i++){
+ if (node.tagName.toLowerCase()==String(tags[i]).toLowerCase()){
+ return String(tags[i]).toLowerCase();
+ }
+ }
+ }
+ return "";
+ },
+ selectElement: function(/*DomNode*/element) {
+ // summary: clear previous selection and select element (including all its children)
+ var _window = dojo.global();
+ var _document = dojo.doc();
+ element = dojo.byId(element);
+ if(_document.selection && dojo.body().createTextRange){ // IE
+ try{
+ var range = dojo.body().createControlRange();
+ range.addElement(element);
+ range.select();
+ }catch(e){
+ dojo.html.selection.selectElementChildren(element);
+ }
+ }else if(_window["getSelection"]){
+ var selection = _window.getSelection();
+ // FIXME: does this work on Safari?
+ if(selection["removeAllRanges"]){ // Mozilla
+ var range = _document.createRange() ;
+ range.selectNode(element) ;
+ selection.removeAllRanges() ;
+ selection.addRange(range) ;
+ }
+ }
+ },
+ selectElementChildren: function(/*DomNode*/element){
+ // summary: clear previous selection and select the content of the node (excluding the node itself)
+ var _window = dojo.global();
+ var _document = dojo.doc();
+ element = dojo.byId(element);
+ if(_document.selection && dojo.body().createTextRange){ // IE
+ var range = dojo.body().createTextRange();
+ range.moveToElementText(element);
+ range.select();
+ }else if(_window["getSelection"]){
+ var selection = _window.getSelection();
+ if(selection["setBaseAndExtent"]){ // Safari
+ selection.setBaseAndExtent(element, 0, element, element.innerText.length - 1);
+ } else if(selection["selectAllChildren"]){ // Mozilla
+ selection.selectAllChildren(element);
+ }
+ }
+ },
+ getBookmark: function(){
+ // summary: Retrieves a bookmark that can be used with moveToBookmark to return to the same range
+ var bookmark;
+ var _document = dojo.doc();
+ if(_document["selection"]){ // IE
+ var range = _document.selection.createRange();
+ bookmark = range.getBookmark();
+ }else{
+ var selection;
+ try {selection = dojo.global().getSelection();}
+ catch (e) {}
+ if(selection){
+ var range = selection.getRangeAt(0);
+ bookmark = range.cloneRange();
+ }else{
+ dojo.debug("No idea how to store the current selection for this browser!");
+ }
+ }
+ return bookmark;
+ },
+ moveToBookmark: function(/*Object*/bookmark){
+ // summary: Moves current selection to a bookmark
+ // bookmark: this should be a returned object from dojo.html.selection.getBookmark()
+ var _document = dojo.doc();
+ if(_document["selection"]){ // IE
+ var range = _document.selection.createRange();
+ range.moveToBookmark(bookmark);
+ range.select();
+ }else{ //Moz/W3C
+ var selection;
+ try {selection = dojo.global().getSelection();}
+ catch (e) {}
+ if(selection && selection['removeAllRanges']){
+ selection.removeAllRanges() ;
+ selection.addRange(bookmark) ;
+ }else{
+ dojo.debug("No idea how to restore selection for this browser!");
+ }
+ }
+ },
+ collapse: function(/*Boolean*/beginning) {
+ // summary: clear current selection
+ if(dojo.global()['getSelection']){
+ var selection = dojo.global().getSelection();
+ if(selection.removeAllRanges){ // Mozilla
+ if(beginning){
+ selection.collapseToStart();
+ }else{
+ selection.collapseToEnd();
+ }
+ }else{ // Safari
+ // pulled from WebCore/ecma/kjs_window.cpp, line 2536
+ dojo.global().getSelection().collapse(beginning);
+ }
+ }else if(dojo.doc().selection){ // IE
+ var range = dojo.doc().selection.createRange();
+ range.collapse(beginning);
+ range.select();
+ }
+ },
+ remove: function() {
+ // summary: delete current selection
+ if(dojo.doc().selection) { //IE
+ var selection = dojo.doc().selection;
+
+ if ( selection.type.toUpperCase() != "NONE" ){
+ selection.clear();
+ }
+
+ return selection;
+ }else{
+ var selection = dojo.global().getSelection();
+
+ for ( var i = 0; i < selection.rangeCount; i++ ){
+ selection.getRangeAt(i).deleteContents();
+ }
+
+ return selection;
+ }
+ }
+});

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/selection.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,16 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.provide("dojo.html.shadow");
+
+dojo.require("dojo.lfx.shadow");
+dojo.deprecated("dojo.html.shadow has been moved to dojo.lfx.", "0.5");
+
+dojo.html.shadow = dojo.lfx.shadow;

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/shadow.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/images/webapp/images/dojo/src/html/style.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/dojo/src/html/style.js?view=auto&rev=509273
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/dojo/src/html/style.js (added)
+++ ofbiz/trunk/framework/images/webapp/images/dojo/src/html/style.js Mon Feb 19 09:56:06 2007
@@ -0,0 +1,587 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+dojo.provide("dojo.html.style");
+dojo.require("dojo.html.common");
+dojo.require("dojo.uri.Uri");
+
+dojo.html.getClass = function(/* HTMLElement */node){
+ // summary
+ // Returns the string value of the list of CSS classes currently assigned directly
+ // to the node in question. Returns an empty string if no class attribute is found;
+ node = dojo.byId(node);
+ if(!node){ return ""; }
+ var cs = "";
+ if(node.className){
+ cs = node.className;
+ }else if(dojo.html.hasAttribute(node, "class")){
+ cs = dojo.html.getAttribute(node, "class");
+ }
+ return cs.replace(/^\s+|\s+$/g, ""); // string
+}
+
+dojo.html.getClasses = function(/* HTMLElement */node) {
+ // summary
+ // Returns an array of CSS classes currently assigned directly to the node in question.
+ // Returns an empty array if no classes are found;
+ var c = dojo.html.getClass(node);
+ return (c == "") ? [] : c.split(/\s+/g); // array
+}
+
+dojo.html.hasClass = function(/* HTMLElement */node, /* string */classname){
+ // summar