Home Projects Redmine Issues

interos gitweb

Initial commit
[interos.git] / js / default_interos.com_ssl.js
1 /*******************************************************/
2 /*      interos Standard Document Header - Script      */
3 /*******************************************************/
4 /*         URIs:  https://interos.com/js/default.js    */
5 /*                https://*.interos.com/js/default.js  */
6 /*  Description:  Default JavaScript for interos       */
7 /*       Author:  Brent Angeline                       */
8 /*       Script:  JavaScript                           */
9 /*******************************************************/
11 var panel, maxWidth, maxHeight, totalWidth, totalHeight;
12 var mode = 'static';
14 function capable() {
15   return (document.createElementNS || document.createElement) && 
16          document.getElementById && width('navigation') && initialize();
17 }
19 function initialize() {
20   if (id('mainPanel')) {
21     panel = 'mainPanel';
22     return 1;
23   } else if (id('titlePanel')) {
24     panel = 'titlePanel';
25     return 1;
26   } else {
27     return 0;
28   }
29 }
31 function div() {
32   if (document.createElementNS) {
33     return document.createElementNS('http://www.w3.org/1999/xhtml', 'div');
34   } else if (document.createElement) {
35     return document.createElement('div');
36   }
37 }
39 function id(e) {
40   return document.getElementById(e);
41 }
43 function style(e) {
44   return id(e).style;
45 }
47 function property(e, p) {
48   return document.defaultView.getComputedStyle(id(e), null).getPropertyValue(p);
49 }
51 function width(e) {
52   if (id(e).offsetWidth) {
53     return id(e).offsetWidth;
54   } else if (window.getComputedStyle) {
55     return property(e, 'width').substring(0, property(e, 'width').indexOf('p'));
56   } else {
57     return 0;
58   }
59 }
61 function height(e) {
62   if (id(e).offsetHeight) {
63     return id(e).offsetHeight;
64   } else if (window.getComputedStyle) {
65     return property(e, 'height').substring(0, 
66                                            property(e, 'height').indexOf('p'));
67   } else {
68     return 0;
69   }
70 }
72 function x(e) {
73   var x, done;
74   x = done = 0;
75   e = id(e);
76   if (e.offsetParent) {
77     while (e.offsetParent) {
78       x += e.offsetLeft;
79       e = e.offsetParent;
80     }
81   } else if (e.x) {
82     x = e.x;
83   }
84   return x;
85 }
87 function y(e) {
88   var y, done;
89   y = done = 0;
90   e = id(e);
91   if (e.offsetParent) {
92     while (e.offsetParent) {
93       y += e.offsetTop;
94       e = e.offsetParent;
95     }
96   } else if (e.y) {
97     y = e.y;
98   }
99   return y;
102 function content(e, string) {
103   if (document.all) {
104     document.all[e].innerHTML = string;
105   } else if (id(e).innerHTML) {
106     id(e).innerHTML = string;
107   }
110 function clientWidth() {
111   var width = 0;
112   if (self.innerWidth) {
113     width = self.innerWidth;
114   } else if (document.documentElement && document.documentElement.clientWidth) {
115     width = document.documentElement.clientWidth;
116   } else if (document.body) {
117     width = document.body.clientWidth;
118   }
119   return width;
122 function clientHeight() {
123   var height = 0;
124   if (self.innerHeight) {
125     height = self.innerHeight;
126   } else if (document.documentElement && 
127              document.documentElement.clientHeight) {
128     height = document.documentElement.clientHeight;
129   } else if (document.body) {
130     height = document.body.clientHeight;
131   }
132   return height;
135 function contentWidth() {
136   return (12 + width(panel) + 18);
139 function contentHeight() {
140   return (height('navigation') + 16 + 12 + height(panel) + 18 + 16 + 
141           height('copyrightDates'));
144 function dynamicMode() {
145   var bottomLeft = div();
146   var left = div();
147   var topLeft = div();
148   var top = div();
149   var topRight = div();
150   var right = div();
151   var bottomRight= div();
152   var bottom = div();
154   style('copyrightDates').width = width('copyrightDates') + 'px';
155   style('copyrightDates').left = x('copyrightDates') + 'px';
156   style('copyrightDates').top = ((maxHeight - totalHeight) / 2) + 
157                                 height('navigation') + 16 + 12 + 
158                                 height(panel) + 18 + 16 + 'px';
159   style('copyrightDates').position = 'absolute';
160   style('copyrightDates').margin = 0;
162   if ((clientWidth() - contentWidth()) < 9) {
163     style(panel).width = width(panel) - 24 + 'px';
164   }
165   if (panel == 'mainPanel') {
166     style('body').marginLeft = '0';
167     style('body').marginRight = '0';
168   }
169   style(panel).border = 0;
170   style(panel).left = x(panel) + 'px';
171   style(panel).top = ((maxHeight - totalHeight) / 2) + height('navigation') + 
172                      16 + 12 + 'px';
173   style(panel).position = 'absolute';
175   style('navigation').width = width('navigation') + 'px';
176   style('navigation').left = x('navigation') + 'px';
177   style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
178   style('navigation').position = 'absolute';
180   bottomLeft.setAttribute('id', 'bottomLeft');
181   id('body').appendChild(bottomLeft);
182   style('bottomLeft').left = x(panel) - 12 + 'px';
183   style('bottomLeft').top = y(panel) + height(panel) + 'px';
185   left.setAttribute('id', 'left');
186   id('body').appendChild(left);
187   style('left').height = height(panel) - 84 + 'px';
188   style('left').left = x(panel) - 12 + 'px';
189   style('left').top = y(panel) + 84 + 'px';
191   topLeft.setAttribute('id', 'topLeft');
192   id('body').appendChild(topLeft);
193   style('topLeft').left = x(panel) - 12 + 'px';
194   style('topLeft').top = y(panel) - 12 + 'px';
196   top.setAttribute('id', 'top');
197   id('body').appendChild(top);
198   style('top').width = width(panel) + 'px';
199   style('top').left = x(panel) + 'px';
200   style('top').top = y(panel) - 12 + 'px';
202   topRight.setAttribute('id', 'topRight');
203   id('body').appendChild(topRight);
204   style('topRight').left = x(panel) + width(panel) + 'px';
205   style('topRight').top = y(panel) - 12 + 'px';
207   right.setAttribute('id', 'right');
208   id('body').appendChild(right);
209   style('right').height = height(panel) - 84 + 'px';
210   style('right').left = x(panel) + width(panel) + 'px';
211   style('right').top = y(panel) + 84 + 'px';
213   bottomRight.setAttribute('id', 'bottomRight');
214   id('body').appendChild(bottomRight);
215   style('bottomRight').left = x(panel) + width(panel) + 'px';
216   style('bottomRight').top = y(panel) + height(panel) + 'px';
218   bottom.setAttribute('id', 'bottom');
219   id('body').appendChild(bottom);
220   style('bottom').width = width(panel) + 'px';
221   style('bottom').left = x(panel) + 'px';
222   style('bottom').top = y(panel) + height(panel) + 'px';
224   style('bottomLeft').background = 'url(/images/panel/bottom_left.gif)';
225   style('left').background = 'url(/images/panel/left.gif)';
226   style('topLeft').background = 'url(/images/panel/main/top_left.gif)';
227   style('top').background = 'url(/images/panel/main/top.gif)';
228   style('topRight').background = 'url(/images/panel/main/top_right.gif)';
229   style('right').background = 'url(/images/panel/right.gif)';
230   style('bottomRight').background = 'url(/images/panel/bottom_right.gif)';
231   style('bottom').background = 'url(/images/panel/bottom.gif)';
233   mode = 'dynamic';
236 function staticMode() {
237   style('body').marginLeft = '19px';
238   style('body').marginRight = '19px';
240   style('copyrightDates').width = '';
241   style('copyrightDates').left = '';
242   style('copyrightDates').bottom = '';
243   style('copyrightDates').position = '';
244   style('copyrightDates').margin = '';
246   style(panel).border = '';
247   style(panel).width = '';
248   style(panel).left = '';
249   style(panel).top = '';
250   style(panel).position = '';
252   style('navigation').width = '';
253   style('navigation').left = '';
254   style('navigation').top = '';
255   style('navigation').position = '';
257   /* more code */
259   mode = 'static';
262 function resize() {
263   style('copyrightDates').left = ((maxWidth - width('copyrightDates')) / 2) + 
264                                  'px';
266   style(panel).left = ((maxWidth - width(panel)) / 2) + 'px';
267   style(panel).top = ((maxHeight - totalHeight) / 2) + 
268                      height('navigation') + 16 + 12 + 'px';
270   style('navigation').left = ((maxWidth - width('navigation')) / 2) + 'px';
271   style('navigation').top = ((maxHeight - totalHeight) / 2) - 16 + 'px';
273   style('bottomLeft').left = x(panel) - 12 + 'px';
274   style('bottomLeft').top = y(panel) + height(panel) + 'px';
276   style('left').left = x(panel) - 12 + 'px';
277   style('left').top = y(panel) + 53 - 12 + 'px';
279   style('topLeft').left = x(panel) - 12 + 'px';
280   style('topLeft').top = y(panel) - 12 + 'px';
282   style('top').left = x(panel) + 'px';
283   style('top').top = y(panel) - 12 + 'px';
285   style('topRight').left = x(panel) + width(panel) + 'px';
286   style('topRight').top = y(panel) - 12 + 'px';
288   style('right').left = x(panel) + width(panel) + 'px';
289   style('right').top = y(panel) + 53 - 12 + 'px';
291   style('bottomRight').left = x(panel) + width(panel) + 'px';
292   style('bottomRight').top = y(panel) + height(panel) + 'px';
294   style('bottom').left = x(panel) + 'px';
295   style('bottom').top = y(panel) + height(panel) + 'px';
298 function layout() {
299   maxWidth = clientWidth();
300   maxHeight = clientHeight();
301   totalWidth = contentWidth();
302   totalHeight = contentHeight();
303   if ((totalWidth < maxWidth) && (totalHeight < maxHeight)) {
304     if (mode != 'dynamic') {
305       dynamicMode();
306     } else {
307       resize();
308     }
309   } else if (mode != 'static') {
310     staticMode();
311   }
314 function remember() {
315   document.cookie = 'javascript=on; path=/; secure';
318 window.onresize = function() {
319   /*
320   if (capable()) {
321     layout();
322   }
323   */
324   window.location.replace(unescape(window.location.pathname));
327 window.onload = function() {
328   if (capable()) {
329     layout();
330     remember();
331   }
334 /***********************************************************************/
335 /*                  Copyright and Trademark Statement                  */
336 /***********************************************************************/
337 /*                                                                     */
338 /*          All original textual and graphical site content:           */
339 /*                                                                     */
340 /*  Copyright 2001-2009 Brent Angeline and interos LLC.  All rights    */
341 /*  reserved.  Reproduction in whole or in part without written        */
342 /*  permission is prohibited.  interos and the interos logos are       */
343 /*  trademarks of Brent Angeline and interos LLC.  All other company,  */
344 /*  product, and service names mentioned herein may be the properties  */
345 /*  of their respective owners.  Comments in the interos.org forums    */
346 /*  are the properties of their respective authors.  All software      */
347 /*  developed in the forums is open source and belongs to everyone.    */
348 /*                                                                     */
349 /***********************************************************************/
350 /*                      e-mail: info@interos.com                       */
351 /***********************************************************************/