JBoss Rich Faces SVN: r6768 - Reports/3.2.0 and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: tkuprevich
Date: 2008-03-12 13:35:00 -0400 (Wed, 12 Mar 2008)
New Revision: 6768
Added:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR211032008ayanul.xls
Removed:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR203112008ayanul.xls
Log:
Deleted: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR203112008ayanul.xls
===================================================================
(Binary files differ)
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR211032008ayanul.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR211032008ayanul.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 10 months
JBoss Rich Faces SVN: r6767 - Reports/3.2.0 and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: tkuprevich
Date: 2008-03-12 13:34:05 -0400 (Wed, 12 Mar 2008)
New Revision: 6767
Added:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008mvitenkov.xls
Removed:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
Log:
Deleted: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
===================================================================
(Binary files differ)
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008mvitenkov.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008mvitenkov.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 10 months
JBoss Rich Faces SVN: r6766 - Reports/3.2.0 and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: tkuprevich
Date: 2008-03-12 13:32:47 -0400 (Wed, 12 Mar 2008)
New Revision: 6766
Added:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR203112008ayanul.xls
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR211032008vvolkov.xls
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008tkuprevich.xls
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008vvolkov.xls
Modified:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008tkuprevich.xls
Log:
Modified: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008tkuprevich.xls
===================================================================
(Binary files differ)
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR203112008ayanul.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR203112008ayanul.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR211032008vvolkov.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR211032008vvolkov.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008tkuprevich.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008tkuprevich.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008vvolkov.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR212032008vvolkov.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 10 months
JBoss Rich Faces SVN: r6765 - trunk/docs/userguide/en/src/main/resources/images.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2008-03-12 13:18:17 -0400 (Wed, 12 Mar 2008)
New Revision: 6765
Added:
trunk/docs/userguide/en/src/main/resources/images/treeNodesAdaptor_initial.png
Log:
http://jira.jboss.com/jira/browse/RF-552 -Initial screenshot
Added: trunk/docs/userguide/en/src/main/resources/images/treeNodesAdaptor_initial.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/treeNodesAdaptor_initial.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 10 months
JBoss Rich Faces SVN: r6764 - trunk/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: artdaw
Date: 2008-03-12 13:18:03 -0400 (Wed, 12 Mar 2008)
New Revision: 6764
Modified:
trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml
trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml
Log:
http://jira.jboss.com/jira/browse/RF-552 -Initial screenshot was changed.
Details of Usage was edited, examples were verified.
Modified: trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml 2008-03-12 16:15:56 UTC (rev 6763)
+++ trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.desc.xml 2008-03-12 17:18:03 UTC (rev 6764)
@@ -8,24 +8,23 @@
<section>
<title>Description</title>
<para>
- The <property>rich:treeNodesAdaptor</property> provides possibility to define data models and create representations for them.
- </para>
-
- <figure>
- <title>Expanded tree with <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis></title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/treeNodesAdaptor1.png"/>
- </imageobject>
- </mediaobject>
- </figure>
-
+ The <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> provides the possibility to define data models
+ and create representations for them.
+ </para>
+ <figure>
+ <title>Expanded tree with <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis></title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/treeNodesAdaptor_initial.png"/>
+ </imageobject>
+ </mediaobject>
+ </figure>
</section>
<section>
<title>Key Features</title>
<itemizedlist>
- <listitem>Allows to define combined data models</listitem>
- <listitem>Possibility to define nodes for processing via attributes</listitem>
+ <listitem><para>Allows to define combined data models</para></listitem>
+ <listitem><para>Possibility to define nodes for processing via attributes</para></listitem>
</itemizedlist>
</section>
</section>
Modified: trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml 2008-03-12 16:15:56 UTC (rev 6763)
+++ trunk/docs/userguide/en/src/main/docbook/included/treeNodesAdaptor.xml 2008-03-12 17:18:03 UTC (rev 6764)
@@ -46,29 +46,27 @@
<section>
<title>Creating the Component with a Page Tag</title>
- <para>To create the simplest variant of <property>rich:treeNodesAdaptor</property> on a page, use the
- following syntax:</para>
-
+ <!--para>
+ In order to create the simplest variant of <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> on a page use the
+ following syntax:
+ </para-->
<para>
<emphasis role="bold">Example:</emphasis>
</para>
<programlisting role="XML"><![CDATA[...
<rich:treeNodesAdaptor var="issue" nodes="#{model.issues}">
- ...
- <rich:treeNode>
- <!-- node content -->
- </rich:treeNode>
- ...
- <!-- Others nodes -->
- ...
+ <rich:treeNode>
+ <h:commandLink action="#{project.click}" value="Project: #{project.name}" />
+ </rich:treeNode>
+ ...
+ <!-- Others nodes -->
+ ...
</rich:treeNodesAdaptor>
-...
-]]></programlisting>
+...]]></programlisting>
</section>
<section>
<title>Creating the Component Dynamically Using Java</title>
-
<para>
<emphasis role="bold">Example:</emphasis>
</para>
@@ -82,8 +80,21 @@
<section>
<title>Details of Usage</title>
<para>
- <emphasis role="bold">The typical variant of using:</emphasis>
+ The <emphasis role="bold"><property><rich:treeNodesAdaptor></property></emphasis> component
+ has a <emphasis><property>"nodes"</property></emphasis> attribute that defines a collection of elements to iterate through.
</para>
+ <para>
+ Collections are allowed to include lists, arrays, maps, XML NodeList and NamedNodeMap either as a single object.
+ </para>
+ <para>
+ The <emphasis><property>"var"</property></emphasis> attribute is used to access to the current collection element.
+ </para>
+ <para>
+ The simple example is placed below.
+ </para>
+ <para>
+ <emphasis role="bold">Example:</emphasis>
+ </para>
<programlisting role="XML"><![CDATA[...
<rich:tree adviseNodeOpened="#{treeModelBean.adviseNodeOpened}" switchType="client">
<rich:treeNodesAdaptor id="project" nodes="#{loaderBean.projects}" var="project">
@@ -113,8 +124,9 @@
</section>
<section>
<title>Relevant Resources Links</title>
- <para><ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?..."
- >Here</ulink> you can see the example of <emphasis role="bold"
- ><property><rich:treeNodesAdaptor ></property></emphasis> usage and sources for the given example. </para>
+ <para>
+ <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/treeNodesAdaptor.jsf?..."
+ >Here</ulink> you can see the example of <emphasis role="bold"><property><rich:treeNodesAdaptor ></property></emphasis>
+ usage and sources for the given example. </para>
</section>
</section>
16 years, 10 months
JBoss Rich Faces SVN: r6763 - trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: pyaschenko
Date: 2008-03-12 12:15:56 -0400 (Wed, 12 Mar 2008)
New Revision: 6763
Modified:
trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
Log:
RF-1774
Modified: trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js
===================================================================
--- trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2008-03-12 16:10:44 UTC (rev 6762)
+++ trunk/ui/suggestionbox/src/main/resources/org/richfaces/renderkit/html/scripts/suggestionbox.js 2008-03-12 16:15:56 UTC (rev 6763)
@@ -1,4 +1,25 @@
-if (!window.RichFaces) window.RichFaces = {};
+if (!window.Richfaces) window.Richfaces = {};
+if (!Richfaces.Selection) Richfaces.Selection = {};
+Richfaces.Selection.getStart = function(element)
+{
+ if (element.createTextRange) {
+ var r = document.selection.createRange().duplicate();
+ r.moveEnd('character', element.value.length);
+ if (r.text == '') return element.value.length;
+ return element.value.lastIndexOf(r.text);
+ } else return element.selectionStart;
+}
+
+
+Richfaces.Selection.getEnd = function(element)
+{
+ if (element.createTextRange) {
+ var r = document.selection.createRange().duplicate();
+ r.moveStart('character', -element.value.length);
+ return r.text.length;
+ } else return element.selectionEnd;
+}
+
var Suggestion = {};
Suggestion.Base = function() {
};
@@ -16,6 +37,8 @@
this.keyEvent = false;
this.oldValue = this.element.value;
this.skipHover = false;
+ this.selectedItems = [];
+ this.selectedItemsCache = [];
options.selection = update + "_selection";
@@ -585,17 +608,6 @@
} else
value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
- /*var lastTokenPos = this.findLastToken();
- if (lastTokenPos != -1) {
- var newValue = this.element.value.substr(0, lastTokenPos + 1);
- var whitespace = this.element.value.substr(lastTokenPos
- + 1).match(/^\s+/);
- if (whitespace)
- newValue += whitespace[0];
- this.element.value = newValue + value;
- } else {
- this.element.value = value;
- }*/
this.insertValue(value);
this.oldValue = this.element.value;
this.element.focus();
@@ -664,22 +676,22 @@
LOG.debug("Observer event occurs");
this.changed = false;
var oldValue = this.element.value;
-
+
if (this.oldValue!=oldValue)
{
- this.endPosition = 0;
this.startPosition = 0;
- var tokens = this.options.tokens.join('');
- while (this.oldValue[this.endPosition]==oldValue[this.endPosition])
+ this.endPosition = oldValue.length-1;
+ if (this.options.tokens.length!=0)
{
- if (tokens.indexOf(oldValue[this.endPosition])!=-1) this.startPosition = this.endPosition+1;
- this.endPosition++;
+ var tokens = this.options.tokens.join('');
+ this.startPosition = this.endPosition = Richfaces.Selection.getStart(this.element);
+
+ while (this.endPosition<oldValue.length && tokens.indexOf(oldValue[this.endPosition])==-1) this.endPosition++;
+
+ while (this.startPosition>0 && tokens.indexOf(oldValue[this.startPosition-1])==-1) this.startPosition--;
}
- if (oldValue.length>this.oldValue.length && this.startPosition!=this.endPosition && tokens.indexOf(oldValue[this.endPosition])!=-1) this.startPosition = ++this.endPosition;
-
- while (oldValue[this.startPosition]==' ') this.startPosition++;
- while (this.endPosition<oldValue.length && tokens.indexOf(oldValue[this.endPosition])==-1) this.endPosition++;
- //alert(this.startPosition + ","+ this.endPosition+": "+oldValue.substring(this.startPosition, this.endPosition));
+
+ this.updateItems(oldValue);
}
if (this.getToken().length >= this.options.minChars) {
@@ -695,54 +707,69 @@
this.oldValue = oldValue;
this.observerHandle = null;
},
-
- /*getToken: function() {
- var tokenPos = this.findLastToken();
- if (tokenPos != -1)
- var ret = this.element.value.substr(tokenPos
- + 1).replace(/^\s+/, '').replace(/\s+$/, '');
- else
- var ret = this.element.value;
-
- return /\n/.test(ret) ? '' : ret;
- },*/
- insertValue: function(value)
+ updateItems:function (newValue)
{
- //if (this.startPosition && this.endPosition)
- //{
- var startStr = this.element.value.substr(0,this.startPosition);
- var endStr = this.element.value.substr(this.endPosition);
- var whitespace = this.element.value.substring(this.startPosition, this.endPosition).match(/\s+$/);
- if (whitespace)
- endStr = whitespace[0] + endStr;
- this.element.value = startStr + value + endStr;
- //}
- /*else
+ var value = newValue.replace(/^\s+/, '').replace(/\s+$/, '');
+ var itm="";
+ this.selectedItems = [];
+ var newItemsCache = [];
+ if (this.options.tokens.length!=0)
{
- this.element.value = value;
- }*/
+ var re = new RegExp('\\s*[\\'+this.options.tokens.join("|\\")+']\\s*');
+ var items = value.split(re);
+ for (var i=0;i<items.length;i++)
+ {
+ itm = this.selectedItemsCache[items[i]];
+ if (!itm) itm = {text:items[i], object: undefined};
+ this.selectedItems.push(itm);
+ newItemsCache[itm.text] = itm;
+ }
+ }
+ else
+ {
+ itm = this.selectedItemsCache[value];
+ if (!itm) itm = {text:items[i], object: undefined};
+ this.selectedItems.push(itm);
+ newItemsCache[itm.text] = itm;
+ }
+ this.selectedItemsCache = newItemsCache;
},
+ insertValue: function(value)
+ {
+ var startStr = this.element.value.substr(0,this.startPosition);
+ var endStr = this.element.value.substr(this.endPosition);
+ var str = this.element.value.substring(this.startPosition, this.endPosition);
+ var whitespace = str.match(/^\s+/);
+ if (whitespace) startStr += whitespace[0];
+ whitespace = str.match(/\s+$/);
+ if (whitespace) endStr = whitespace[0] + endStr;
+ this.element.value = startStr + value + endStr;
+
+ var index = 0;
+ if (this.options.tokens.length!=0)
+ {
+ // search index for update item's object
+ var tokens = this.options.tokens.join('');
+ var p = 0;
+ while (p<this.startPosition)
+ {
+ if (tokens.indexOf(this.element.value[p])!=-1) index++;
+ p++;
+ }
+ }
+
+ // if object null we don't need to request data for it in future
+ var itm = {text:value, object:this.fetchValues[this.index]}
+ this.selectedItemsCache[value] = itm;
+ this.selectedItems[index] = itm;
+ },
+
getToken: function() {
- //if (this.startPosition && this.endPosition)
- var ret = this.element.value.substring(this.startPosition, this.endPosition).replace(/^\s+/, '').replace(/\s+$/, '');
- /*else
- var ret = this.element.value;*/
-
+ var ret = this.element.value.substring(this.startPosition, this.endPosition).replace(/^\s+/, '').replace(/\s+$/, '');
return /\n/.test(ret) ? '' : ret;
- }/*,
-
- findLastToken: function() {
- var lastTokenPos = -1;
-
- for (var i = 0; i < this.options.tokens.length; i++) {
- var thisTokenPos = this.element.value.lastIndexOf(this.options.tokens[i]);
- if (thisTokenPos > lastTokenPos)
- lastTokenPos = thisTokenPos;
- }
- return lastTokenPos;
- }*/
+ }
}
@@ -769,7 +796,8 @@
getUpdatedChoices: function(event) {
this.options.parameters[this.options.param] = this.getToken();
-
+ // TODO add string list parameter for the values that need object from server
+
if (this.onsubmitFunction && ! this.onsubmitFunction()) {
return;
}
@@ -787,6 +815,7 @@
}
this.updateChoices();
this.fetchValues = data;
+ // TODO add update item objects from data
LOG.debug("Choices updated");
if (this.options.onajaxcomplete) {
this.options.onajaxcomplete(request, event);
16 years, 10 months
JBoss Rich Faces SVN: r6762 - trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js.
by richfaces-svn-commits@lists.jboss.org
Author: andrei_exadel
Date: 2008-03-12 12:10:44 -0400 (Wed, 12 Mar 2008)
New Revision: 6762
Modified:
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
Log:
fix
Modified: trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
===================================================================
--- trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-03-12 16:08:07 UTC (rev 6761)
+++ trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-03-12 16:10:44 UTC (rev 6762)
@@ -869,8 +869,10 @@
var input = inputs[i];
if (input != entryInput) {
if ('hidden' != input.type) {
- input._name = input.name;
- input.name = undefined;
+
+ //FIXME: simulate ajax single request after it will be possible
+ //input._name = input.name;
+ //input.name = undefined;
//TODO for test
if ('file' == input.type) {
@@ -897,8 +899,8 @@
for (var i = 0; i < l; i++) {
var input = inputs[i];
if ('hidden' != input.type) {
- input.name = input._name;
- input._name = undefined;
+ //input.name = input._name;
+ //input._name = undefined;
if ('file' == input.type) {
input.disabled = input._disabled;
16 years, 10 months
JBoss Rich Faces SVN: r6761 - Reports/3.2.0 and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-03-12 12:08:07 -0400 (Wed, 12 Mar 2008)
New Revision: 6761
Modified:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
Log:
Modified: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
===================================================================
(Binary files differ)
16 years, 10 months
JBoss Rich Faces SVN: r6760 - Reports/3.2.0 and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-03-12 11:58:36 -0400 (Wed, 12 Mar 2008)
New Revision: 6760
Added:
trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
Log:
Added: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Test Reports/3.2.0/DailyReport320CR106032008mvitenkov.xls
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
16 years, 10 months
JBoss Rich Faces SVN: r6759 - trunk/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts.
by richfaces-svn-commits@lists.jboss.org
Author: vmolotkov
Date: 2008-03-12 11:19:05 -0400 (Wed, 12 Mar 2008)
New Revision: 6759
Modified:
trunk/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combolist.js
Log:
bug http://jira.jboss.com/jira/browse/RF-2453
Modified: trunk/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combolist.js
===================================================================
--- trunk/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combolist.js 2008-03-12 15:12:26 UTC (rev 6758)
+++ trunk/ui/combobox/src/main/resources/org/richfaces/renderkit/html/scripts/combolist.js 2008-03-12 15:19:05 UTC (rev 6759)
@@ -116,6 +116,11 @@
if (this.iframe) {
this.iframe.hide();
}
+
+ var component = this.listParent.parentNode;
+ component.style.position = "static";
+ component.style.zIndex = 0;
+
this.listParent.hide();
},
@@ -219,21 +224,26 @@
},
setPosition : function(fieldTop, fieldLeft, fieldHeight) {
+ var component = this.listParent.parentNode;
+ component.style.position = "relative";
+ component.style.zIndex = 2;
+
+
var docHeight = Richfaces.getDocumentHeight();
var comBottom = fieldTop + fieldHeight;
var listHeight = parseInt(this.list.style.height) + Richfaces.getBorderWidth(this.list.parentNode, "tb");
//var top = 0 ;//= -4;
- var top = comBottom;
+ var top = fieldHeight;
if (parseInt(listHeight) > (docHeight - comBottom)) {
if (fieldTop > (docHeight - comBottom)) {
- top = fieldTop - parseInt(listHeight);
+ top = 0 - parseInt(listHeight);
//var upPos = true;
}
}
-
+
this.listParent.style.top = top + "px";
- this.listParent.style.left = fieldLeft + "px";
+ this.listParent.style.left = 0 + "px";
/*if (!upPos) {
top = Richfaces.ComboBoxList.getElemXY(this.listParent).top + this.fieldDimensions.height;
@@ -415,7 +425,8 @@
var y = elem.offsetTop;
- for (var parent = Element.getOffsetParent(elem); parent != document.body; parent = Element.getOffsetParent(parent)) {
+ //for (var parent = Element.getOffsetParent(elem); parent != document.body; parent = Element.getOffsetParent(parent)) {
+ for (var parent = elem.offsetParent; parent; parent = parent.offsetParent) {
x += parent.offsetLeft;
y += parent.offsetTop;
}
16 years, 10 months