OSDN Git Service

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