relevance-tarantula 0.0.8.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/README.rdoc +80 -51
  2. data/Rakefile +33 -44
  3. data/VERSION.yml +4 -0
  4. data/examples/example_helper.rb +50 -0
  5. data/{test/relevance/core_extensions/ellipsize_test.rb → examples/relevance/core_extensions/ellipsize_example.rb} +1 -1
  6. data/{test/relevance/core_extensions/file_test.rb → examples/relevance/core_extensions/file_example.rb} +1 -1
  7. data/{test/relevance/core_extensions/response_test.rb → examples/relevance/core_extensions/response_example.rb} +5 -5
  8. data/{test/relevance/core_extensions/test_case_test.rb → examples/relevance/core_extensions/test_case_example.rb} +3 -3
  9. data/{test/relevance/tarantula/attack_form_submission_test.rb → examples/relevance/tarantula/attack_form_submission_example.rb} +1 -1
  10. data/{test/relevance/tarantula/attack_handler_test.rb → examples/relevance/tarantula/attack_handler_example.rb} +1 -1
  11. data/{test/relevance/tarantula/crawler_test.rb → examples/relevance/tarantula/crawler_example.rb} +3 -3
  12. data/{test/relevance/tarantula/form_test.rb → examples/relevance/tarantula/form_example.rb} +1 -1
  13. data/{test/relevance/tarantula/form_submission_test.rb → examples/relevance/tarantula/form_submission_example.rb} +1 -1
  14. data/{test/relevance/tarantula/html_document_handler_test.rb → examples/relevance/tarantula/html_document_handler_example.rb} +1 -1
  15. data/{test/relevance/tarantula/html_report_helper_test.rb → examples/relevance/tarantula/html_report_helper_example.rb} +1 -1
  16. data/{test/relevance/tarantula/html_reporter_test.rb → examples/relevance/tarantula/html_reporter_example.rb} +3 -3
  17. data/{test/relevance/tarantula/invalid_html_handler_test.rb → examples/relevance/tarantula/invalid_html_handler_example.rb} +1 -1
  18. data/{test/relevance/tarantula/io_reporter_test.rb → examples/relevance/tarantula/io_reporter_example.rb} +2 -2
  19. data/{test/relevance/tarantula/link_test.rb → examples/relevance/tarantula/link_example.rb} +15 -15
  20. data/{test/relevance/tarantula/log_grabber_test.rb → examples/relevance/tarantula/log_grabber_example.rb} +1 -1
  21. data/{test/relevance/tarantula/rails_init_test.rb → examples/relevance/tarantula/rails_init_example.rb} +3 -3
  22. data/{test/relevance/tarantula/rails_integration_proxy_test.rb → examples/relevance/tarantula/rails_integration_proxy_example.rb} +5 -5
  23. data/{test/relevance/tarantula/result_test.rb → examples/relevance/tarantula/result_example.rb} +2 -2
  24. data/{test/relevance/tarantula/tidy_handler_test.rb → examples/relevance/tarantula/tidy_handler_example.rb} +1 -1
  25. data/{test/relevance/tarantula/transform_test.rb → examples/relevance/tarantula/transform_example.rb} +2 -3
  26. data/{test/relevance/tarantula_test.rb → examples/relevance/tarantula_example.rb} +3 -3
  27. data/lib/relevance/tarantula.rb +0 -2
  28. data/template/tarantula_test.rb +12 -2
  29. metadata +49 -212
  30. data/init.rb +0 -1
  31. data/install.rb +0 -1
  32. data/laf/images/background.jpg +0 -0
  33. data/laf/images/relevance-os-logo.gif +0 -0
  34. data/laf/images/tab.png +0 -0
  35. data/laf/images/table-sort.gif +0 -0
  36. data/laf/images/tarantula-sprites.png +0 -0
  37. data/laf/javascripts/jquery-1.2.3.js +0 -3408
  38. data/laf/javascripts/jquery-ui-tabs.js +0 -890
  39. data/laf/javascripts/jquery.tablesorter.js +0 -861
  40. data/laf/javascripts/niftyLayout.js +0 -11
  41. data/laf/javascripts/niftycube-details.js +0 -298
  42. data/laf/javascripts/niftycube.js +0 -298
  43. data/laf/javascripts/tarantula.js +0 -10
  44. data/laf/stylesheets/NiftyLayout.css +0 -47
  45. data/laf/stylesheets/niftyCorners.css +0 -35
  46. data/laf/stylesheets/old.css +0 -638
  47. data/laf/stylesheets/tarantula.css +0 -175
  48. data/laf/stylesheets/tarantula.v2.css +0 -48
  49. data/laf/stylesheets/ui.tabs.css +0 -113
  50. data/laf/v2/detail.html +0 -41
  51. data/laf/v2/images/button_active.png +0 -0
  52. data/laf/v2/images/button_hover.png +0 -0
  53. data/laf/v2/images/button_inactive.png +0 -0
  54. data/laf/v2/images/header_bg.jpg +0 -0
  55. data/laf/v2/images/logo.png +0 -0
  56. data/laf/v2/images/tagline.png +0 -0
  57. data/laf/v2/index.html +0 -77
  58. data/laf/v2/stylesheets/tarantula.v2.css +0 -252
  59. data/manifest.txt +0 -102
  60. data/rails/init.rb +0 -4
  61. data/tarantula.gemspec +0 -56
  62. data/test/test_helper.rb +0 -34
  63. data/uninstall.rb +0 -1
  64. data/vendor/xss-shield/MIT-LICENSE +0 -20
  65. data/vendor/xss-shield/README +0 -76
  66. data/vendor/xss-shield/init.rb +0 -16
  67. data/vendor/xss-shield/lib/xss_shield.rb +0 -6
  68. data/vendor/xss-shield/lib/xss_shield/erb_hacks.rb +0 -111
  69. data/vendor/xss-shield/lib/xss_shield/haml_hacks.rb +0 -42
  70. data/vendor/xss-shield/lib/xss_shield/safe_string.rb +0 -47
  71. data/vendor/xss-shield/lib/xss_shield/secure_helpers.rb +0 -40
  72. data/vendor/xss-shield/test/test_actionview_integration.rb +0 -40
  73. data/vendor/xss-shield/test/test_erb.rb +0 -44
  74. data/vendor/xss-shield/test/test_haml.rb +0 -43
  75. data/vendor/xss-shield/test/test_helpers.rb +0 -25
  76. data/vendor/xss-shield/test/test_safe_string.rb +0 -55
@@ -1,11 +0,0 @@
1
- /*nifty corners layout*/
2
-
3
- window.onload=function(){
4
- Nifty("div#menu a","small transparent top");
5
- Nifty("ul#intro li","same-height");
6
- Nifty("div.date");
7
- Nifty("div#content,div#side","same-height");
8
- Nifty("div.comments div");
9
- Nifty("div#footer");
10
- Nifty("div#container","bottom");
11
- }
@@ -1,298 +0,0 @@
1
- /* Nifty Corners Cube - rounded corners with CSS and Javascript
2
- Copyright 2006 Alessandro Fulciniti (a.fulciniti@html.it)
3
-
4
- This program is free software; you can redistribute it and/or modify
5
- it under the terms of the GNU General Public License as published by
6
- the Free Software Foundation; either version 2 of the License, or
7
- (at your option) any later version.
8
-
9
- This program is distributed in the hope that it will be useful,
10
- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- GNU General Public License for more details.
13
-
14
- You should have received a copy of the GNU General Public License
15
- along with this program; if not, write to the Free Software
16
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
- */
18
-
19
- var niftyOk=(document.getElementById && document.createElement && Array.prototype.push);
20
- var niftyCss=false;
21
-
22
- String.prototype.find=function(what){
23
- return(this.indexOf(what)>=0 ? true : false);
24
- }
25
-
26
- var oldonload=window.onload;
27
- if(typeof(NiftyLoad)!='function') NiftyLoad=function(){};
28
- if(typeof(oldonload)=='function')
29
- window.onload=function(){oldonload();AddCss();NiftyLoad()};
30
- else window.onload=function(){AddCss();NiftyLoad()};
31
-
32
- function AddCss(){
33
- niftyCss=true;
34
- var l=CreateEl("link");
35
- l.setAttribute("type","text/css");
36
- l.setAttribute("rel","stylesheet");
37
- l.setAttribute("href","../stylesheets/niftyCorners.css");
38
- l.setAttribute("media","screen");
39
- document.getElementsByTagName("head")[0].appendChild(l);
40
- }
41
-
42
- function Nifty(selector,options){
43
- if(niftyOk==false) return;
44
- if(niftyCss==false) AddCss();
45
- var i,v=selector.split(","),h=0;
46
- if(options==null) options="";
47
- if(options.find("fixed-height"))
48
- h=getElementsBySelector(v[0])[0].offsetHeight;
49
- for(i=0;i<v.length;i++)
50
- Rounded(v[i],options);
51
- if(options.find("height")) SameHeight(selector,h);
52
- }
53
-
54
- function Rounded(selector,options){
55
- var i,top="",bottom="",v=new Array();
56
- if(options!=""){
57
- options=options.replace("left","tl bl");
58
- options=options.replace("right","tr br");
59
- options=options.replace("top","tr tl");
60
- options=options.replace("bottom","br bl");
61
- options=options.replace("transparent","alias");
62
- if(options.find("tl")){
63
- top="both";
64
- if(!options.find("tr")) top="left";
65
- }
66
- else if(options.find("tr")) top="right";
67
- if(options.find("bl")){
68
- bottom="both";
69
- if(!options.find("br")) bottom="left";
70
- }
71
- else if(options.find("br")) bottom="right";
72
- }
73
- if(top=="" && bottom=="" && !options.find("none")){top="both";bottom="both";}
74
- v=getElementsBySelector(selector);
75
- for(i=0;i<v.length;i++){
76
- FixIE(v[i]);
77
- if(top!="") AddTop(v[i],top,options);
78
- if(bottom!="") AddBottom(v[i],bottom,options);
79
- }
80
- }
81
-
82
- function AddTop(el,side,options){
83
- var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;
84
- d.style.marginLeft="-"+getPadding(el,"Left")+"px";
85
- d.style.marginRight="-"+getPadding(el,"Right")+"px";
86
- if(options.find("alias") || (color=getBk(el))=="transparent"){
87
- color="transparent";bk="transparent"; border=getParentBk(el);btype="t";
88
- }
89
- else{
90
- bk=getParentBk(el); border=Mix(color,bk);
91
- }
92
- d.style.background=bk;
93
- d.className="niftycorners";
94
- p=getPadding(el,"Top");
95
- if(options.find("small")){
96
- d.style.marginBottom=(p-2)+"px";
97
- btype+="s"; lim=2;
98
- }
99
- else if(options.find("big")){
100
- d.style.marginBottom=(p-10)+"px";
101
- btype+="b"; lim=8;
102
- }
103
- else d.style.marginBottom=(p-5)+"px";
104
- for(i=1;i<=lim;i++)
105
- d.appendChild(CreateStrip(i,side,color,border,btype));
106
- el.style.paddingTop="0";
107
- el.insertBefore(d,el.firstChild);
108
- }
109
-
110
- function AddBottom(el,side,options){
111
- var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;
112
- d.style.marginLeft="-"+getPadding(el,"Left")+"px";
113
- d.style.marginRight="-"+getPadding(el,"Right")+"px";
114
- if(options.find("alias") || (color=getBk(el))=="transparent"){
115
- color="transparent";bk="transparent"; border=getParentBk(el);btype="t";
116
- }
117
- else{
118
- bk=getParentBk(el); border=Mix(color,bk);
119
- }
120
- d.style.background=bk;
121
- d.className="niftycorners";
122
- p=getPadding(el,"Bottom");
123
- if(options.find("small")){
124
- d.style.marginTop=(p-2)+"px";
125
- btype+="s"; lim=2;
126
- }
127
- else if(options.find("big")){
128
- d.style.marginTop=(p-10)+"px";
129
- btype+="b"; lim=8;
130
- }
131
- else d.style.marginTop=(p-5)+"px";
132
- for(i=lim;i>0;i--)
133
- d.appendChild(CreateStrip(i,side,color,border,btype));
134
- el.style.paddingBottom=0;
135
- el.appendChild(d);
136
- }
137
-
138
- function CreateStrip(index,side,color,border,btype){
139
- var x=CreateEl("b");
140
- x.className=btype+index;
141
- x.style.backgroundColor=color;
142
- x.style.borderColor=border;
143
- if(side=="left"){
144
- x.style.borderRightWidth="0";
145
- x.style.marginRight="0";
146
- }
147
- else if(side=="right"){
148
- x.style.borderLeftWidth="0";
149
- x.style.marginLeft="0";
150
- }
151
- return(x);
152
- }
153
-
154
- function CreateEl(x){
155
- return(document.createElement(x));
156
- }
157
-
158
- function FixIE(el){
159
- if(el.currentStyle!=null && el.currentStyle.hasLayout!=null && el.currentStyle.hasLayout==false)
160
- el.style.display="inline-block";
161
- }
162
-
163
- function SameHeight(selector,maxh){
164
- var i,v=selector.split(","),t,j,els=[],gap;
165
- for(i=0;i<v.length;i++){
166
- t=getElementsBySelector(v[i]);
167
- els=els.concat(t);
168
- }
169
- for(i=0;i<els.length;i++){
170
- if(els[i].offsetHeight>maxh) maxh=els[i].offsetHeight;
171
- els[i].style.height="auto";
172
- }
173
- for(i=0;i<els.length;i++){
174
- gap=maxh-els[i].offsetHeight;
175
- if(gap>0){
176
- t=CreateEl("b");t.className="niftyfill";t.style.height=gap+"px";
177
- nc=els[i].lastChild;
178
- if(nc.className=="niftycorners")
179
- els[i].insertBefore(t,nc);
180
- else els[i].appendChild(t);
181
- }
182
- }
183
- }
184
-
185
- function getElementsBySelector(selector){
186
- var i,j,selid="",selclass="",tag=selector,tag2="",v2,k,f,a,s=[],objlist=[],c;
187
- if(selector.find("#")){ //id selector like "tag#id"
188
- if(selector.find(" ")){ //descendant selector like "tag#id tag"
189
- s=selector.split(" ");
190
- var fs=s[0].split("#");
191
- if(fs.length==1) return(objlist);
192
- f=document.getElementById(fs[1]);
193
- if(f){
194
- v=f.getElementsByTagName(s[1]);
195
- for(i=0;i<v.length;i++) objlist.push(v[i]);
196
- }
197
- return(objlist);
198
- }
199
- else{
200
- s=selector.split("#");
201
- tag=s[0];
202
- selid=s[1];
203
- if(selid!=""){
204
- f=document.getElementById(selid);
205
- if(f) objlist.push(f);
206
- return(objlist);
207
- }
208
- }
209
- }
210
- if(selector.find(".")){ //class selector like "tag.class"
211
- s=selector.split(".");
212
- tag=s[0];
213
- selclass=s[1];
214
- if(selclass.find(" ")){ //descendant selector like tag1.classname tag2
215
- s=selclass.split(" ");
216
- selclass=s[0];
217
- tag2=s[1];
218
- }
219
- }
220
- var v=document.getElementsByTagName(tag); // tag selector like "tag"
221
- if(selclass==""){
222
- for(i=0;i<v.length;i++) objlist.push(v[i]);
223
- return(objlist);
224
- }
225
- for(i=0;i<v.length;i++){
226
- c=v[i].className.split(" ");
227
- for(j=0;j<c.length;j++){
228
- if(c[j]==selclass){
229
- if(tag2=="") objlist.push(v[i]);
230
- else{
231
- v2=v[i].getElementsByTagName(tag2);
232
- for(k=0;k<v2.length;k++) objlist.push(v2[k]);
233
- }
234
- }
235
- }
236
- }
237
- return(objlist);
238
- }
239
-
240
- function getParentBk(x){
241
- var el=x.parentNode,c;
242
- while(el.tagName.toUpperCase()!="HTML" && (c=getBk(el))=="transparent")
243
- el=el.parentNode;
244
- if(c=="transparent") c="#FFFFFF";
245
- return(c);
246
- }
247
-
248
- function getBk(x){
249
- var c=getStyleProp(x,"backgroundColor");
250
- if(c==null || c=="transparent" || c.find("rgba(0, 0, 0, 0)"))
251
- return("transparent");
252
- if(c.find("rgb")) c=rgb2hex(c);
253
- return(c);
254
- }
255
-
256
- function getPadding(x,side){
257
- var p=getStyleProp(x,"padding"+side);
258
- if(p==null || !p.find("px")) return(0);
259
- return(parseInt(p));
260
- }
261
-
262
- function getStyleProp(x,prop){
263
- if(x.currentStyle)
264
- return(x.currentStyle[prop]);
265
- if(document.defaultView.getComputedStyle)
266
- return(document.defaultView.getComputedStyle(x,'')[prop]);
267
- return(null);
268
- }
269
-
270
- function rgb2hex(value){
271
- var hex="",v,h,i;
272
- var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
273
- var h=regexp.exec(value);
274
- for(i=1;i<4;i++){
275
- v=parseInt(h[i]).toString(16);
276
- if(v.length==1) hex+="0"+v;
277
- else hex+=v;
278
- }
279
- return("#"+hex);
280
- }
281
-
282
- function Mix(c1,c2){
283
- var i,step1,step2,x,y,r=new Array(3);
284
- if(c1.length==4)step1=1;
285
- else step1=2;
286
- if(c2.length==4) step2=1;
287
- else step2=2;
288
- for(i=0;i<3;i++){
289
- x=parseInt(c1.substr(1+step1*i,step1),16);
290
- if(step1==1) x=16*x+x;
291
- y=parseInt(c2.substr(1+step2*i,step2),16);
292
- if(step2==1) y=16*y+y;
293
- r[i]=Math.floor((x*50+y*50)/100);
294
- r[i]=r[i].toString(16);
295
- if(r[i].length==1) r[i]="0"+r[i];
296
- }
297
- return("#"+r[0]+r[1]+r[2]);
298
- }
@@ -1,298 +0,0 @@
1
- /* Nifty Corners Cube - rounded corners with CSS and Javascript
2
- Copyright 2006 Alessandro Fulciniti (a.fulciniti@html.it)
3
-
4
- This program is free software; you can redistribute it and/or modify
5
- it under the terms of the GNU General Public License as published by
6
- the Free Software Foundation; either version 2 of the License, or
7
- (at your option) any later version.
8
-
9
- This program is distributed in the hope that it will be useful,
10
- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- GNU General Public License for more details.
13
-
14
- You should have received a copy of the GNU General Public License
15
- along with this program; if not, write to the Free Software
16
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
- */
18
-
19
- var niftyOk=(document.getElementById && document.createElement && Array.prototype.push);
20
- var niftyCss=false;
21
-
22
- String.prototype.find=function(what){
23
- return(this.indexOf(what)>=0 ? true : false);
24
- }
25
-
26
- var oldonload=window.onload;
27
- if(typeof(NiftyLoad)!='function') NiftyLoad=function(){};
28
- if(typeof(oldonload)=='function')
29
- window.onload=function(){oldonload();AddCss();NiftyLoad()};
30
- else window.onload=function(){AddCss();NiftyLoad()};
31
-
32
- function AddCss(){
33
- niftyCss=true;
34
- var l=CreateEl("link");
35
- l.setAttribute("type","text/css");
36
- l.setAttribute("rel","stylesheet");
37
- l.setAttribute("href","stylesheets/niftyCorners.css");
38
- l.setAttribute("media","screen");
39
- document.getElementsByTagName("head")[0].appendChild(l);
40
- }
41
-
42
- function Nifty(selector,options){
43
- if(niftyOk==false) return;
44
- if(niftyCss==false) AddCss();
45
- var i,v=selector.split(","),h=0;
46
- if(options==null) options="";
47
- if(options.find("fixed-height"))
48
- h=getElementsBySelector(v[0])[0].offsetHeight;
49
- for(i=0;i<v.length;i++)
50
- Rounded(v[i],options);
51
- if(options.find("height")) SameHeight(selector,h);
52
- }
53
-
54
- function Rounded(selector,options){
55
- var i,top="",bottom="",v=new Array();
56
- if(options!=""){
57
- options=options.replace("left","tl bl");
58
- options=options.replace("right","tr br");
59
- options=options.replace("top","tr tl");
60
- options=options.replace("bottom","br bl");
61
- options=options.replace("transparent","alias");
62
- if(options.find("tl")){
63
- top="both";
64
- if(!options.find("tr")) top="left";
65
- }
66
- else if(options.find("tr")) top="right";
67
- if(options.find("bl")){
68
- bottom="both";
69
- if(!options.find("br")) bottom="left";
70
- }
71
- else if(options.find("br")) bottom="right";
72
- }
73
- if(top=="" && bottom=="" && !options.find("none")){top="both";bottom="both";}
74
- v=getElementsBySelector(selector);
75
- for(i=0;i<v.length;i++){
76
- FixIE(v[i]);
77
- if(top!="") AddTop(v[i],top,options);
78
- if(bottom!="") AddBottom(v[i],bottom,options);
79
- }
80
- }
81
-
82
- function AddTop(el,side,options){
83
- var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;
84
- d.style.marginLeft="-"+getPadding(el,"Left")+"px";
85
- d.style.marginRight="-"+getPadding(el,"Right")+"px";
86
- if(options.find("alias") || (color=getBk(el))=="transparent"){
87
- color="transparent";bk="transparent"; border=getParentBk(el);btype="t";
88
- }
89
- else{
90
- bk=getParentBk(el); border=Mix(color,bk);
91
- }
92
- d.style.background=bk;
93
- d.className="niftycorners";
94
- p=getPadding(el,"Top");
95
- if(options.find("small")){
96
- d.style.marginBottom=(p-2)+"px";
97
- btype+="s"; lim=2;
98
- }
99
- else if(options.find("big")){
100
- d.style.marginBottom=(p-10)+"px";
101
- btype+="b"; lim=8;
102
- }
103
- else d.style.marginBottom=(p-5)+"px";
104
- for(i=1;i<=lim;i++)
105
- d.appendChild(CreateStrip(i,side,color,border,btype));
106
- el.style.paddingTop="0";
107
- el.insertBefore(d,el.firstChild);
108
- }
109
-
110
- function AddBottom(el,side,options){
111
- var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;
112
- d.style.marginLeft="-"+getPadding(el,"Left")+"px";
113
- d.style.marginRight="-"+getPadding(el,"Right")+"px";
114
- if(options.find("alias") || (color=getBk(el))=="transparent"){
115
- color="transparent";bk="transparent"; border=getParentBk(el);btype="t";
116
- }
117
- else{
118
- bk=getParentBk(el); border=Mix(color,bk);
119
- }
120
- d.style.background=bk;
121
- d.className="niftycorners";
122
- p=getPadding(el,"Bottom");
123
- if(options.find("small")){
124
- d.style.marginTop=(p-2)+"px";
125
- btype+="s"; lim=2;
126
- }
127
- else if(options.find("big")){
128
- d.style.marginTop=(p-10)+"px";
129
- btype+="b"; lim=8;
130
- }
131
- else d.style.marginTop=(p-5)+"px";
132
- for(i=lim;i>0;i--)
133
- d.appendChild(CreateStrip(i,side,color,border,btype));
134
- el.style.paddingBottom=0;
135
- el.appendChild(d);
136
- }
137
-
138
- function CreateStrip(index,side,color,border,btype){
139
- var x=CreateEl("b");
140
- x.className=btype+index;
141
- x.style.backgroundColor=color;
142
- x.style.borderColor=border;
143
- if(side=="left"){
144
- x.style.borderRightWidth="0";
145
- x.style.marginRight="0";
146
- }
147
- else if(side=="right"){
148
- x.style.borderLeftWidth="0";
149
- x.style.marginLeft="0";
150
- }
151
- return(x);
152
- }
153
-
154
- function CreateEl(x){
155
- return(document.createElement(x));
156
- }
157
-
158
- function FixIE(el){
159
- if(el.currentStyle!=null && el.currentStyle.hasLayout!=null && el.currentStyle.hasLayout==false)
160
- el.style.display="inline-block";
161
- }
162
-
163
- function SameHeight(selector,maxh){
164
- var i,v=selector.split(","),t,j,els=[],gap;
165
- for(i=0;i<v.length;i++){
166
- t=getElementsBySelector(v[i]);
167
- els=els.concat(t);
168
- }
169
- for(i=0;i<els.length;i++){
170
- if(els[i].offsetHeight>maxh) maxh=els[i].offsetHeight;
171
- els[i].style.height="auto";
172
- }
173
- for(i=0;i<els.length;i++){
174
- gap=maxh-els[i].offsetHeight;
175
- if(gap>0){
176
- t=CreateEl("b");t.className="niftyfill";t.style.height=gap+"px";
177
- nc=els[i].lastChild;
178
- if(nc.className=="niftycorners")
179
- els[i].insertBefore(t,nc);
180
- else els[i].appendChild(t);
181
- }
182
- }
183
- }
184
-
185
- function getElementsBySelector(selector){
186
- var i,j,selid="",selclass="",tag=selector,tag2="",v2,k,f,a,s=[],objlist=[],c;
187
- if(selector.find("#")){ //id selector like "tag#id"
188
- if(selector.find(" ")){ //descendant selector like "tag#id tag"
189
- s=selector.split(" ");
190
- var fs=s[0].split("#");
191
- if(fs.length==1) return(objlist);
192
- f=document.getElementById(fs[1]);
193
- if(f){
194
- v=f.getElementsByTagName(s[1]);
195
- for(i=0;i<v.length;i++) objlist.push(v[i]);
196
- }
197
- return(objlist);
198
- }
199
- else{
200
- s=selector.split("#");
201
- tag=s[0];
202
- selid=s[1];
203
- if(selid!=""){
204
- f=document.getElementById(selid);
205
- if(f) objlist.push(f);
206
- return(objlist);
207
- }
208
- }
209
- }
210
- if(selector.find(".")){ //class selector like "tag.class"
211
- s=selector.split(".");
212
- tag=s[0];
213
- selclass=s[1];
214
- if(selclass.find(" ")){ //descendant selector like tag1.classname tag2
215
- s=selclass.split(" ");
216
- selclass=s[0];
217
- tag2=s[1];
218
- }
219
- }
220
- var v=document.getElementsByTagName(tag); // tag selector like "tag"
221
- if(selclass==""){
222
- for(i=0;i<v.length;i++) objlist.push(v[i]);
223
- return(objlist);
224
- }
225
- for(i=0;i<v.length;i++){
226
- c=v[i].className.split(" ");
227
- for(j=0;j<c.length;j++){
228
- if(c[j]==selclass){
229
- if(tag2=="") objlist.push(v[i]);
230
- else{
231
- v2=v[i].getElementsByTagName(tag2);
232
- for(k=0;k<v2.length;k++) objlist.push(v2[k]);
233
- }
234
- }
235
- }
236
- }
237
- return(objlist);
238
- }
239
-
240
- function getParentBk(x){
241
- var el=x.parentNode,c;
242
- while(el.tagName.toUpperCase()!="HTML" && (c=getBk(el))=="transparent")
243
- el=el.parentNode;
244
- if(c=="transparent") c="#FFFFFF";
245
- return(c);
246
- }
247
-
248
- function getBk(x){
249
- var c=getStyleProp(x,"backgroundColor");
250
- if(c==null || c=="transparent" || c.find("rgba(0, 0, 0, 0)"))
251
- return("transparent");
252
- if(c.find("rgb")) c=rgb2hex(c);
253
- return(c);
254
- }
255
-
256
- function getPadding(x,side){
257
- var p=getStyleProp(x,"padding"+side);
258
- if(p==null || !p.find("px")) return(0);
259
- return(parseInt(p));
260
- }
261
-
262
- function getStyleProp(x,prop){
263
- if(x.currentStyle)
264
- return(x.currentStyle[prop]);
265
- if(document.defaultView.getComputedStyle)
266
- return(document.defaultView.getComputedStyle(x,'')[prop]);
267
- return(null);
268
- }
269
-
270
- function rgb2hex(value){
271
- var hex="",v,h,i;
272
- var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
273
- var h=regexp.exec(value);
274
- for(i=1;i<4;i++){
275
- v=parseInt(h[i]).toString(16);
276
- if(v.length==1) hex+="0"+v;
277
- else hex+=v;
278
- }
279
- return("#"+hex);
280
- }
281
-
282
- function Mix(c1,c2){
283
- var i,step1,step2,x,y,r=new Array(3);
284
- if(c1.length==4)step1=1;
285
- else step1=2;
286
- if(c2.length==4) step2=1;
287
- else step2=2;
288
- for(i=0;i<3;i++){
289
- x=parseInt(c1.substr(1+step1*i,step1),16);
290
- if(step1==1) x=16*x+x;
291
- y=parseInt(c2.substr(1+step2*i,step2),16);
292
- if(step2==1) y=16*y+y;
293
- r[i]=Math.floor((x*50+y*50)/100);
294
- r[i]=r[i].toString(16);
295
- if(r[i].length==1) r[i]="0"+r[i];
296
- }
297
- return("#"+r[0]+r[1]+r[2]);
298
- }