1/* begin Page */ 2 3/* Generated with Artisteer version 2.5.0.31067, file checksum is 8073D16E. */ 4 5// required for IE7, #150675 6if (window.addEvent) window.addEvent('domready', function() { }); 7 8var artEventHelper = { 9 'bind': function(obj, evt, fn) { 10 if (obj.addEventListener) 11 obj.addEventListener(evt, fn, false); 12 else if (obj.attachEvent) 13 obj.attachEvent('on' + evt, fn); 14 else 15 obj['on' + evt] = fn; 16 } 17}; 18 19var artUserAgent = navigator.userAgent.toLowerCase(); 20 21var artBrowser = { 22 version: (artUserAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1], 23 safari: /webkit/.test(artUserAgent) && !/chrome/.test(artUserAgent), 24 chrome: /chrome/.test(artUserAgent), 25 opera: /opera/.test(artUserAgent), 26 msie: /msie/.test(artUserAgent) && !/opera/.test(artUserAgent), 27 mozilla: /mozilla/.test(artUserAgent) && !/(compatible|webkit)/.test(artUserAgent) 28}; 29 30artCssHelper = function() { 31 var is = function(t) { return (artUserAgent.indexOf(t) != -1) }; 32 var el = document.getElementsByTagName('html')[0]; 33 var val = [(!(/opera|webtv/i.test(artUserAgent)) && /msie (\d)/.test(artUserAgent)) ? ('ie ie' + RegExp.$1) 34 : is('firefox/2') ? 'gecko firefox2' 35 : is('firefox/3') ? 'gecko firefox3' 36 : is('gecko/') ? 'gecko' 37 : is('chrome/') ? 'chrome' 38 : is('opera/9') ? 'opera opera9' : /opera (\d)/.test(artUserAgent) ? 'opera opera' + RegExp.$1 39 : is('konqueror') ? 'konqueror' 40 : is('applewebkit/') ? 'webkit safari' 41 : is('mozilla/') ? 'gecko' : '', 42 (is('x11') || is('linux')) ? ' linux' 43 : is('mac') ? ' mac' 44 : is('win') ? ' win' : '' 45 ].join(' '); 46 if (!el.className) { 47 el.className = val; 48 } else { 49 var newCl = el.className; 50 newCl += (' ' + val); 51 el.className = newCl; 52 } 53} (); 54 55(function() { 56 // fix ie blinking 57 var m = document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand; 58 try { if (!!m) { m('BackgroundImageCache', false, true); } } 59 catch (oh) { }; 60})(); 61 62var artLoadEvent = (function() { 63 var list = []; 64 65 var done = false; 66 var ready = function() { 67 if (done) return; 68 done = true; 69 for (var i = 0; i < list.length; i++) 70 list[i](); 71 }; 72 73 if (document.addEventListener && !artBrowser.opera) 74 document.addEventListener('DOMContentLoaded', ready, false); 75 76 if (artBrowser.msie && window == top) { 77 (function() { 78 try { 79 document.documentElement.doScroll('left'); 80 } catch (e) { 81 setTimeout(arguments.callee, 10); 82 return; 83 } 84 ready(); 85 })(); 86 } 87 88 if (artBrowser.opera) { 89 document.addEventListener('DOMContentLoaded', function() { 90 for (var i = 0; i < document.styleSheets.length; i++) { 91 if (document.styleSheets[i].disabled) { 92 setTimeout(arguments.callee, 10); 93 return; 94 } 95 } 96 ready(); 97 }, false); 98 } 99 100 if (artBrowser.safari || artBrowser.chrome) { 101 var numStyles; 102 (function() { 103 if (document.readyState != 'loaded' && document.readyState != 'complete') { 104 setTimeout(arguments.callee, 10); 105 return; 106 } 107 if ('undefined' == typeof numStyles) { 108 numStyles = document.getElementsByTagName('style').length; 109 var links = document.getElementsByTagName('link'); 110 for (var i = 0; i < links.length; i++) { 111 numStyles += (links[i].getAttribute('rel') == 'stylesheet') ? 1 : 0; 112 } 113 if (document.styleSheets.length != numStyles) { 114 setTimeout(arguments.callee, 0); 115 return; 116 } 117 } 118 ready(); 119 })(); 120 } 121 122 if (!(artBrowser.msie && window != top)) { // required for Blogger Page Elements in IE, #154540 123 artEventHelper.bind(window, 'load', ready); 124 } 125 return ({ 126 add: function(f) { 127 list.push(f); 128 } 129 }) 130})(); 131 132 133function artGetElementsByClassName(clsName, parentEle, tagName) { 134 var elements = null; 135 var found = []; 136 var s = String.fromCharCode(92); 137 var re = new RegExp('(?:^|' + s + 's+)' + clsName + '(?:$|' + s + 's+)'); 138 if (!parentEle) parentEle = document; 139 if (!tagName) tagName = '*'; 140 elements = parentEle.getElementsByTagName(tagName); 141 if (elements) { 142 for (var i = 0; i < elements.length; ++i) { 143 if (elements[i].className.search(re) != -1) { 144 found[found.length] = elements[i]; 145 } 146 } 147 } 148 return found; 149} 150 151var _artStyleUrlCached = null; 152function artGetStyleUrl() { 153 if (null == _artStyleUrlCached) { 154 var ns; 155 _artStyleUrlCached = ''; 156 ns = document.getElementsByTagName('link'); 157 for (var i = 0; i < ns.length; i++) { 158 var l = ns[i]; 159 if (l.href && /style\.ie6\.css(\?.*)?$/.test(l.href)) { 160 return _artStyleUrlCached = l.href.replace(/style\.ie6\.css(\?.*)?$/, ''); 161 } 162 } 163 164 ns = document.getElementsByTagName('style'); 165 for (var i = 0; i < ns.length; i++) { 166 var matches = new RegExp('import\\s+"([^"]+\\/)style\\.ie6\\.css"').exec(ns[i].innerHTML); 167 if (null != matches && matches.length > 0) 168 return _artStyleUrlCached = matches[1]; 169 } 170 } 171 return _artStyleUrlCached; 172} 173 174function artFixPNG(element) { 175 if (artBrowser.msie && artBrowser.version < 7) { 176 var src; 177 if (element.tagName == 'IMG') { 178 if (/\.png$/.test(element.src)) { 179 src = element.src; 180 element.src = artGetStyleUrl() + 'images/spacer.gif'; 181 } 182 } 183 else { 184 src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i); 185 if (src) { 186 src = src[1]; 187 element.runtimeStyle.backgroundImage = 'none'; 188 } 189 } 190 if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')"; 191 } 192} 193 194function artHasClass(el, cls) { 195 return (el && el.className && (' ' + el.className + ' ').indexOf(' ' + cls + ' ') != -1); 196} 197/* end Page */ 198 199/* begin Layout */ 200function artLayoutIESetup() { 201 var isIE = navigator.userAgent.toLowerCase().indexOf("msie") != -1; 202 if (!isIE) return; 203 var q = artGetElementsByClassName("art-content-layout", document, "div"); 204 if (!q || !q.length) return; 205 for (var i = 0; i < q.length; i++) { 206 var l = q[i]; 207 var l_childs = l.childNodes; 208 var r = null; 209 for (var p = 0; p < l_childs.length; p++) { 210 var l_ch = l_childs[p]; 211 if ((String(l_ch.tagName).toLowerCase() == "div") && artHasClass(l_ch, "art-content-layout-row")) { 212 r = l_ch; 213 break; 214 } 215 } 216 if (!r) continue; 217 var c = []; 218 var r_childs = r.childNodes; 219 for (var o = 0; o < r_childs.length; o++) { 220 var r_ch = r_childs[o]; 221 if ((String(r_ch.tagName).toLowerCase() == "div") && artHasClass(r_ch, "art-layout-cell")) { 222 c.push(r_ch); 223 } 224 } 225 if (!c || !c.length) continue; 226 var table = document.createElement("table"); 227 table.className = l.className; 228 var row = table.insertRow(-1); 229 table.className = l.className; 230 for (var j = 0; j < c.length; j++) { 231 var cell = row.insertCell(-1); 232 var s = c[j]; 233 cell.className = s.className; 234 while (s.firstChild) { 235 cell.appendChild(s.firstChild); 236 } 237 } 238 l.parentNode.insertBefore(table, l); 239 l.parentNode.removeChild(l); 240 } 241} 242artLoadEvent.add(artLayoutIESetup); 243/* end Layout */ 244 245/* begin Button */ 246 247function artButtonsSetupJsHover(className) { 248 var tags = ["input", "a", "button"]; 249 for (var j = 0; j < tags.length; j++){ 250 var buttons = artGetElementsByClassName(className, document, tags[j]); 251 for (var i = 0; i < buttons.length; i++) { 252 var button = buttons[i]; 253 if (!button.tagName || !button.parentNode) return; 254 if (!artHasClass(button.parentNode, 'art-button-wrapper')) { 255 if (!artHasClass(button, 'art-button')) button.className += ' art-button'; 256 var wrapper = document.createElement('span'); 257 wrapper.className = "art-button-wrapper"; 258 if (artHasClass(button, 'active')) wrapper.className += ' active'; 259 var spanL = document.createElement('span'); 260 spanL.className = "l"; 261 spanL.innerHTML = " "; 262 wrapper.appendChild(spanL); 263 var spanR = document.createElement('span'); 264 spanR.className = "r"; 265 spanR.innerHTML = " "; 266 wrapper.appendChild(spanR); 267 button.parentNode.insertBefore(wrapper, button); 268 wrapper.appendChild(button); 269 } 270 artEventHelper.bind(button, 'mouseover', function(e) { 271 e = e || window.event; 272 wrapper = (e.target || e.srcElement).parentNode; 273 wrapper.className += " hover"; 274 }); 275 artEventHelper.bind(button, 'mouseout', function(e) { 276 e = e || window.event; 277 button = e.target || e.srcElement; 278 wrapper = button.parentNode; 279 wrapper.className = wrapper.className.replace(/hover/, ""); 280 if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, ""); 281 }); 282 artEventHelper.bind(button, 'mousedown', function(e) { 283 e = e || window.event; 284 button = e.target || e.srcElement; 285 wrapper = button.parentNode; 286 if (!artHasClass(button, 'active')) wrapper.className += " active"; 287 }); 288 artEventHelper.bind(button, 'mouseup', function(e) { 289 e = e || window.event; 290 button = e.target || e.srcElement; 291 wrapper = button.parentNode; 292 if (!artHasClass(button, 'active')) wrapper.className = wrapper.className.replace(/active/, ""); 293 }); 294 } 295 } 296} 297 298artLoadEvent.add(function() { artButtonsSetupJsHover("art-button"); }); 299/* end Button */ 300
301/* begin VMenu */ 302function artAddVMenuSeparators() { 303 var create_VSeparator = function(sub, first) { 304 var cls = 'art-v' + (sub ? "sub" : "") + 'menu-separator'; 305 var li = document.createElement('li'); 306 li.className = (first ? (cls + " " + cls + " art-vmenu-separator-first") : cls); 307 var span = document.createElement('span'); 308 span.className = cls+'-span'; 309 li.appendChild(span); 310 return li; 311 }; 312 var menus = artGetElementsByClassName("art-vmenublock", document, "div"); 313 for (var k = 0; k < menus.length; k++) { 314 var uls = menus[k].getElementsByTagName("ul"); 315 for (var i = 0; i < uls.length; i++) { 316 var ul = uls[i]; 317 var childs = ul.childNodes; 318 var listItems = []; 319 for (var y = 0; y < childs.length; y++) { 320 var el = childs[y]; 321 if (String(el.tagName).toLowerCase() == "li") listItems.push(el); 322 } 323 for (var j = 0; j < listItems.length; j++) { 324 var item = listItems[j]; 325 if ((item.parentNode.getElementsByTagName("li")[0] == item) && (item.parentNode != uls[0])) 326 item.parentNode.insertBefore(create_VSeparator(item.parentNode.parentNode.parentNode != uls[0], true), item); 327 if (j < listItems.length - 1) 328 item.parentNode.insertBefore(create_VSeparator(item.parentNode != uls[0], false), item.nextSibling); 329 } 330 } 331 } 332} 333artLoadEvent.add(artAddVMenuSeparators); 334 335/* end VMenu */ 336 337 338 339artLoadEvent.add(function() { artButtonsSetupJsHover("button"); });
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.