OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / templates / s / art_test / script.js
1 /* begin Page */
2
3 /* Generated with Artisteer version 2.4.0.25435, file checksum is 0E142F13. */
4
5 var artEventHelper = {
6         'bind': function(obj, evt, fn) {
7                 if (obj.addEventListener)
8                         obj.addEventListener(evt, fn, false);
9                 else if (obj.attachEvent)
10                         obj.attachEvent('on' + evt, fn);
11                 else
12                         obj['on' + evt] = fn;
13         }
14 };
15
16 var artUserAgent = navigator.userAgent.toLowerCase();
17
18 var artBrowser = {
19         version: (artUserAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
20         safari: /webkit/.test(artUserAgent) && !/chrome/.test(artUserAgent),
21         chrome: /chrome/.test(artUserAgent),
22         opera: /opera/.test(artUserAgent),
23         msie: /msie/.test(artUserAgent) && !/opera/.test(artUserAgent),
24         mozilla: /mozilla/.test(artUserAgent) && !/(compatible|webkit)/.test(artUserAgent)
25 };
26  
27 artCssHelper = function() {
28     var is = function(t) { return (artUserAgent.indexOf(t) != -1) };
29     var el = document.getElementsByTagName('html')[0];
30     var val = [(!(/opera|webtv/i.test(artUserAgent)) && /msie (\d)/.test(artUserAgent)) ? ('ie ie' + RegExp.$1)
31     : is('firefox/2') ? 'gecko firefox2'
32     : is('firefox/3') ? 'gecko firefox3'
33     : is('gecko/') ? 'gecko'
34     : is('chrome/') ? 'chrome'
35     : is('opera/9') ? 'opera opera9' : /opera (\d)/.test(artUserAgent) ? 'opera opera' + RegExp.$1
36     : is('konqueror') ? 'konqueror'
37     : is('applewebkit/') ? 'webkit safari'
38     : is('mozilla/') ? 'gecko' : '',
39     (is('x11') || is('linux')) ? ' linux'
40     : is('mac') ? ' mac'
41     : is('win') ? ' win' : ''
42     ].join(' ');
43     if (!el.className) {
44      el.className = val;
45     } else {
46      var newCl = el.className;
47      newCl += (' ' + val);
48      el.className = newCl;
49     }
50 } ();
51
52 (function() {
53     // fix ie blinking
54     var m = document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand;
55     try { if (!!m) { m('BackgroundImageCache', false, true); } }
56     catch (oh) { };
57 })();
58
59 var artLoadEvent = (function() {
60         var list = [];
61
62         var done = false;
63         var ready = function() {
64                 if (done) return;
65                 done = true;
66                 for (var i = 0; i < list.length; i++)
67                         list[i]();
68         };
69
70         if (document.addEventListener && !artBrowser.opera)
71                 document.addEventListener('DOMContentLoaded', ready, false);
72
73         if (artBrowser.msie && window == top) {
74                 (function() {
75                         try {
76                                 document.documentElement.doScroll('left');
77                         } catch (e) {
78                                 setTimeout(arguments.callee, 10);
79                                 return;
80                         }
81                         ready();
82                 })();
83         }
84
85         if (artBrowser.opera) {
86                 document.addEventListener('DOMContentLoaded', function() {
87                         for (var i = 0; i < document.styleSheets.length; i++) {
88                                 if (document.styleSheets[i].disabled) {
89                                         setTimeout(arguments.callee, 10);
90                                         return;
91                                 }
92                         }
93                         ready();
94                 }, false);
95         }
96
97         if (artBrowser.safari || artBrowser.chrome) {
98                 var numStyles;
99                 (function() {
100                         if (document.readyState != 'loaded' && document.readyState != 'complete') {
101                                 setTimeout(arguments.callee, 10);
102                                 return;
103                         }
104                         if ('undefined' == typeof numStyles) {
105                                 numStyles = document.getElementsByTagName('style').length;
106                                 var links = document.getElementsByTagName('link');
107                                 for (var i = 0; i < links.length; i++) {
108                                         numStyles += (links[i].getAttribute('rel') == 'stylesheet') ? 1 : 0;
109                                 }
110                                 if (document.styleSheets.length != numStyles) {
111                                         setTimeout(arguments.callee, 0);
112                                         return;
113                                 }
114                         }
115                         ready();
116                 })();
117         }
118         artEventHelper.bind(window, 'load', ready);
119         return ({
120                 add: function(f) {
121                         list.push(f);
122                 }
123         })
124 })();
125
126
127 function artGetElementsByClassName(clsName, parentEle, tagName) {
128         var elements = null;
129         var found = [];
130         var s = String.fromCharCode(92);
131         var re = new RegExp('(?:^|' + s + 's+)' + clsName + '(?:$|' + s + 's+)');
132         if (!parentEle) parentEle = document;
133         if (!tagName) tagName = '*';
134         elements = parentEle.getElementsByTagName(tagName);
135         if (elements) {
136                 for (var i = 0; i < elements.length; ++i) {
137                         if (elements[i].className.search(re) != -1) {
138                                 found[found.length] = elements[i];
139                         }
140                 }
141         }
142         return found;
143 }
144
145 var _artStyleUrlCached = null;
146 function artGetStyleUrl() {
147     if (null == _artStyleUrlCached) {
148         var ns;
149         _artStyleUrlCached = '';
150         ns = document.getElementsByTagName('link');
151         for (var i = 0; i < ns.length; i++) {
152             var l = ns[i];
153             if (l.href && /template\.ie6\.css(\?.*)?$/.test(l.href)) {
154                 return _artStyleUrlCached = l.href.replace(/template\.ie6\.css(\?.*)?$/, '');
155             }
156         }
157
158         ns = document.getElementsByTagName('style');
159         for (var i = 0; i < ns.length; i++) {
160             var matches = new RegExp('import\\s+"([^"]+\\/)template\\.ie6\\.css"').exec(ns[i].innerHTML);
161             if (null != matches && matches.length > 0)
162                 return _artStyleUrlCached = matches[1];
163         }
164     }
165     return _artStyleUrlCached;
166 }
167
168 function artFixPNG(element) {
169         if (artBrowser.msie && artBrowser.version < 7) {
170                 var src;
171                 if (element.tagName == 'IMG') {
172                         if (/\.png$/.test(element.src)) {
173                                 src = element.src;
174                                 element.src = artGetStyleUrl() + '../images/spacer.gif';
175                         }
176                 }
177                 else {
178                         src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
179                         if (src) {
180                                 src = src[1];
181                                 element.runtimeStyle.backgroundImage = 'none';
182                         }
183                 }
184                 if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')";
185         }
186 }
187
188 function artHasClass(el, cls) {
189         return (el && el.className && (' ' + el.className + ' ').indexOf(' ' + cls + ' ') != -1);
190 }
191 /* end Page */
192
193 /* begin Menu */
194 function artGTranslateFix() {
195         var menus = artGetElementsByClassName("art-menu", document, "ul");
196         for (var i = 0; i < menus.length; i++) {
197                 var menu = menus[i];
198                 var childs = menu.childNodes;
199                 var listItems = [];
200                 for (var j = 0; j < childs.length; j++) {
201                         var el = childs[j];
202                         if (String(el.tagName).toLowerCase() == "li") listItems.push(el);
203                 }
204                 for (var j = 0; j < listItems.length; j++) {
205                         var item = listItems[j];
206                         var a = null;
207                         var gspan = null;
208                         for (var p = 0; p < item.childNodes.length; p++) {
209                                 var l = item.childNodes[p];
210                                 if (!(l && l.tagName)) continue;
211                                 if (String(l.tagName).toLowerCase() == "a") a = l;
212                                 if (String(l.tagName).toLowerCase() == "span") gspan = l;
213                         }
214                         if (gspan && a) {
215                                 var t = null;
216                                 for (var k = 0; k < gspan.childNodes.length; k++) {
217                                         var e = gspan.childNodes[k];
218                                         if (!(e && e.tagName)) continue;
219                                         if (String(e.tagName).toLowerCase() == "a" && e.firstChild) e = e.firstChild;
220                                         if (e && e.className && e.className == 't') {
221                                                 t = e;
222                                                 if (t.firstChild && t.firstChild.tagName && String(t.firstChild.tagName).toLowerCase() == "a") {
223                                                         while (t.firstChild.firstChild) t.appendChild(t.firstChild.firstChild);
224                                                         t.removeChild(t.firstChild);
225                                                 }
226                                                 a.appendChild(t);
227                                                 break;
228                                         }
229                                 }
230                                 gspan.parentNode.removeChild(gspan);
231                         }
232                 }
233         }
234 }
235 artLoadEvent.add(artGTranslateFix);
236
237 function artAddMenuSeparators() {
238         var menus = artGetElementsByClassName("art-menu", document, "ul");
239         for (var i = 0; i < menus.length; i++) {
240                 var menu = menus[i];
241                 var childs = menu.childNodes;
242                 var listItems = [];
243                 for (var j = 0; j < childs.length; j++) {
244                         var el = childs[j];
245                         if (String(el.tagName).toLowerCase() == "li") listItems.push(el);
246                 }
247                 for (var j = 0; j < listItems.length - 1; j++) {
248                         var item = listItems[j];
249                         var span = document.createElement('span');
250                         span.className = 'art-menu-separator';
251                         var li = document.createElement('li');
252                         li.appendChild(span);
253                         item.parentNode.insertBefore(li, item.nextSibling);
254                 }
255         }
256 }
257 artLoadEvent.add(artAddMenuSeparators);
258
259 function artMenuIE6Setup() {
260         var isIE6 = navigator.userAgent.toLowerCase().indexOf("msie") != -1
261     && navigator.userAgent.toLowerCase().indexOf("msie 7") == -1;
262         if (!isIE6) return;
263         var aTmp2, i, j, oLI, aUL, aA;
264         var aTmp = artGetElementsByClassName("art-menu", document, "ul");
265         for (i = 0; i < aTmp.length; i++) {
266                 aTmp2 = aTmp[i].getElementsByTagName("li");
267                 for (j = 0; j < aTmp2.length; j++) {
268                         oLI = aTmp2[j];
269                         aUL = oLI.getElementsByTagName("ul");
270                         if (aUL && aUL.length) {
271                                 oLI.UL = aUL[0];
272                                 aA = oLI.getElementsByTagName("a");
273                                 if (aA && aA.length)
274                                         oLI.A = aA[0];
275                                 oLI.onmouseenter = function() {
276                                         this.className += " art-menuhover";
277                                         this.UL.className += " art-menuhoverUL";
278                                         if (this.A) this.A.className += " art-menuhoverA";
279                                 };
280                                 oLI.onmouseleave = function() {
281                                         this.className = this.className.replace(/art-menuhover/, "");
282                                         this.UL.className = this.UL.className.replace(/art-menuhoverUL/, "");
283                                         if (this.A) this.A.className = this.A.className.replace(/art-menuhoverA/, "");
284                                 };
285                         }
286                 }
287         }
288 }
289 artLoadEvent.add(artMenuIE6Setup);
290 /* end Menu */
291
292 /* begin Layout */
293 function artLayoutIESetup() {
294     var isIE = navigator.userAgent.toLowerCase().indexOf("msie") != -1;
295     if (!isIE) return;
296     var q = artGetElementsByClassName("art-content-layout", document, "div");
297     if (!q || !q.length) return;
298     for (var i = 0; i < q.length; i++) {
299         var l = q[i];
300         var l_childs = l.childNodes;
301         var r = null;
302         for (var p = 0; p < l_childs.length; p++) {
303             var l_ch = l_childs[p];
304             if ((String(l_ch.tagName).toLowerCase() == "div") && artHasClass(l_ch, "art-content-layout-row")) {
305                 r = l_ch;
306                 break;
307             }
308         }
309         if (!r) continue;
310         var c = [];
311         var r_childs = r.childNodes;
312         for (var o = 0; o < r_childs.length; o++) {
313             var r_ch = r_childs[o];
314             if ((String(r_ch.tagName).toLowerCase() == "div") && artHasClass(r_ch, "art-layout-cell")) {
315                 c.push(r_ch);
316             }
317         }
318         if (!c || !c.length) continue;
319         var table = document.createElement("table");
320         table.className = l.className;
321         var row = table.insertRow(-1);
322         table.className = l.className;
323         for (var j = 0; j < c.length; j++) {
324             var cell = row.insertCell(-1);
325             var s = c[j];
326             cell.className = s.className;
327             while (s.firstChild) {
328                 cell.appendChild(s.firstChild);
329             }
330         }
331         l.parentNode.insertBefore(table, l);
332         l.parentNode.removeChild(l);
333     }
334 }
335 artLoadEvent.add(artLayoutIESetup);
336 /* end Layout */
337
338 /* begin Button */
339
340 function artButtonsSetupJsHover(className) {
341         var tags = ["input", "a", "button"];
342         for (var j = 0; j < tags.length; j++){
343                 var buttons = artGetElementsByClassName(className, document, tags[j]);
344                 for (var i = 0; i < buttons.length; i++) {
345                         var button = buttons[i];
346                         if (!button.tagName || !button.parentNode) return;
347                         if (!artHasClass(button.parentNode, 'art-button-wrapper')) {
348                                 if (!artHasClass(button, 'art-button')) button.className += ' art-button';
349                                 var wrapper = document.createElement('span');
350                                 wrapper.className = "art-button-wrapper";
351                                 if (artHasClass(button, 'active')) wrapper.className += ' active';
352                                 var spanL = document.createElement('span');
353                                 spanL.className = "l";
354                                 spanL.innerHTML = " ";
355                                 wrapper.appendChild(spanL);
356                                 var spanR = document.createElement('span');
357                                 spanR.className = "r";
358                                 spanR.innerHTML = " ";
359                                 wrapper.appendChild(spanR);
360                                 button.parentNode.insertBefore(wrapper, button);
361                                 wrapper.appendChild(button);
362                         }
363                         artEventHelper.bind(button, 'mouseover', function(e) {
364                                 e = e || window.event;
365                                 wrapper = (e.target || e.srcElement).parentNode;
366                                 wrapper.className += " hover";
367                         });
368                         artEventHelper.bind(button, 'mouseout', function(e) {
369                                 e = e || window.event;
370                                 button = e.target || e.srcElement;
371                                 wrapper = button.parentNode;
372                                 wrapper.className = wrapper.className.replace(/hover/, "");
373                                 if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, "");
374                         });
375                         artEventHelper.bind(button, 'mousedown', function(e) {
376                                 e = e || window.event;
377                                 button = e.target || e.srcElement;
378                                 wrapper = button.parentNode;
379                                 if (!artHasClass(button, 'active')) wrapper.className += " active";
380                         });
381                         artEventHelper.bind(button, 'mouseup', function(e) {
382                                 e = e || window.event;
383                                 button = e.target || e.srcElement;
384                                 wrapper = button.parentNode;
385                                 if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, "");
386                         });
387                 }
388         }
389 }
390
391 artLoadEvent.add(function() { artButtonsSetupJsHover("art-button"); });
392 /* end Button */
393
394
395
396 artLoadEvent.add(function() {
397   artButtonsSetupJsHover("button");
398   artButtonsSetupJsHover("readon");
399   artButtonsSetupJsHover("readmore");
400 });