import torrus 1.0.9
[freeside.git] / rt / share / html / NoAuth / RichText / FCKeditor / editor / _source / internals / fcktablehandler_ie.js
1 /*\r
2  * FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
3  * Copyright (C) 2003-2009 Frederico Caldeira Knabben\r
4  *\r
5  * == BEGIN LICENSE ==\r
6  *\r
7  * Licensed under the terms of any of the following licenses at your\r
8  * choice:\r
9  *\r
10  *  - GNU General Public License Version 2 or later (the "GPL")\r
11  *    http://www.gnu.org/licenses/gpl.html\r
12  *\r
13  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")\r
14  *    http://www.gnu.org/licenses/lgpl.html\r
15  *\r
16  *  - Mozilla Public License Version 1.1 or later (the "MPL")\r
17  *    http://www.mozilla.org/MPL/MPL-1.1.html\r
18  *\r
19  * == END LICENSE ==\r
20  *\r
21  * Manage table operations (IE specific).\r
22  */\r
23 \r
24 FCKTableHandler.GetSelectedCells = function()\r
25 {\r
26         if ( FCKSelection.GetType() == 'Control' )\r
27         {\r
28                 var td = FCKSelection.MoveToAncestorNode( ['TD', 'TH'] ) ;\r
29                 return td ? [ td ] : [] ;\r
30         }\r
31 \r
32         var aCells = new Array() ;\r
33 \r
34         var oRange = FCKSelection.GetSelection().createRange() ;\r
35 //      var oParent = oRange.parentElement() ;\r
36         var oParent = FCKSelection.GetParentElement() ;\r
37 \r
38         if ( oParent && oParent.tagName.Equals( 'TD', 'TH' ) )\r
39                 aCells[0] = oParent ;\r
40         else\r
41         {\r
42                 oParent = FCKSelection.MoveToAncestorNode( 'TABLE' ) ;\r
43 \r
44                 if ( oParent )\r
45                 {\r
46                         // Loops throw all cells checking if the cell is, or part of it, is inside the selection\r
47                         // and then add it to the selected cells collection.\r
48                         for ( var i = 0 ; i < oParent.cells.length ; i++ )\r
49                         {\r
50                                 var oCellRange = FCK.EditorDocument.body.createTextRange() ;\r
51                                 oCellRange.moveToElementText( oParent.cells[i] ) ;\r
52 \r
53                                 if ( oRange.inRange( oCellRange )\r
54                                         || ( oRange.compareEndPoints('StartToStart',oCellRange) >= 0 &&  oRange.compareEndPoints('StartToEnd',oCellRange) <= 0 )\r
55                                         || ( oRange.compareEndPoints('EndToStart',oCellRange) >= 0 &&  oRange.compareEndPoints('EndToEnd',oCellRange) <= 0 ) )\r
56                                 {\r
57                                         aCells[aCells.length] = oParent.cells[i] ;\r
58                                 }\r
59                         }\r
60                 }\r
61         }\r
62 \r
63         return aCells ;\r
64 }\r