1// Angie Radtke 2009 // 2 3/*global window, localStorage, Cookie, altopen, altclose, big, small, rightopen, rightclose, bildauf, bildzu */ 4 5Object.append(Browser.Features, { 6 localstorage: (function() { 7 return ('localStorage' in window) && window.localStorage !== null; 8 })() 9}); 10 11function saveIt(name) { 12 var x = document.id(name).style.display; 13 14 if (!x) { 15 alert('No cookie available'); 16 } else { 17 if (Browser.Features.localstorage) { 18 try { 19 localStorage[name] = x; 20 } 21 catch (e) { 22 // Most likely the storage is full or deactivated 23 } 24 } else { 25 Cookie.write(name, x, {duration: 7}); 26 } 27 } 28} 29 30function readIt(name) { 31 if (Browser.Features.localstorage) { 32 return localStorage[name]; 33 } else { 34 return Cookie.read(name); 35 } 36} 37 38function wrapperwidth(width) { 39 document.id('wrapper').setStyle('width', width); 40} 41 42// add Wai-Aria landmark-roles 43window.addEvent('domready', function () { 44 45 if (document.id('nav')) { 46 document.id('nav').setProperties( { 47 role : 'navigation' 48 }); 49 } 50 51 if (document.id('mod-search-searchword')) { 52 document.id(document.id('mod-search-searchword').form).set( { 53 role : 'search' 54 }); 55 } 56 57 if (document.id('main')) { 58 document.id('main').setProperties( { 59 role : 'main' 60 }); 61 } 62 63 if (document.id('right')) { 64 document.id('right').setProperties( { 65 role : 'contentinfo' 66 }); 67 } 68 69}); 70 71window.addEvent('domready', function() { 72 73 // get ankers 74 var myankers = document.id(document.body).getElements('a.opencloselink'); 75 myankers.each(function(element) { 76 element.setProperty('role', 'tab'); 77 var myid = element.getProperty('id'); 78 myid = myid.split('_'); 79 myid = 'module_' + myid[1]; 80 document.id(element).setProperty('aria-controls', myid); 81 }); 82 83 var list = document.id(document.body).getElements('div.moduletable_js'); 84 list.each(function(element) { 85 86 if (element.getElement('div.module_content')) { 87 88 var el = element.getElement('div.module_content'); 89 el.setProperty('role', 'tabpanel'); 90 var myid = el.getProperty('id'); 91 myid = myid.split('_'); 92 myid = 'link_' + myid[1]; 93 el.setProperty('aria-labelledby', myid); 94 var myclass = el.get('class'); 95 var one = myclass.split(' '); 96 // search for active menu-item 97 var listelement = el.getElement('a.active'); 98 var unique = el.id; 99 var nocookieset = readIt(unique); 100 if ((listelement) || 101 ((one[1] == 'open') && (nocookieset == null))) { 102 el.setStyle('display', 'block'); 103 var eltern = el.getParent(); 104 var elternh = eltern.getElement('h3'); 105 var elternbild = eltern.getElement('img'); 106 elternbild.setProperties( { 107 alt : altopen, 108 src : bildzu 109 }); 110 elternbild.focus(); 111 } else { 112 el.setStyle('display', 'none'); 113 el.setProperty('aria-expanded', 'false'); 114 } 115 116 unique = el.id; 117 var cookieset = readIt(unique); 118 if (cookieset == 'block') { 119 el.setStyle('display', 'block'); 120 el.setProperty('aria-expanded', 'true'); 121 el.slide('show');//.slide('hide').slide('in'); 122 el.getParent().setProperty('class', 'slide'); 123 var eltern = el.getParent().getParent(); 124 var elternh = eltern.getElement('h3'); 125 var elternbild = eltern.getElement('img'); 126 elternbild.setProperties( { 127 alt : altopen, 128 src : bildzu 129 }); 130 } 131 132 } 133 }); 134 }); 135 136window.addEvent('domready', function() { 137 var what = document.id('right'); 138 // if rightcolumn 139 if (what != null) { 140 var whatid = what.id; 141 var rightcookie = readIt(whatid); 142 if (rightcookie == 'none') { 143 what.setStyle('display', 'none'); 144 document.id('nav').addClass('leftbigger'); 145 wrapperwidth(big); 146 var grafik = document.id('bild'); 147 grafik.innerHTML = rightopen; 148 grafik.focus(); 149 } 150 } 151 }); 152 153function auf(key) { 154 var el = document.id(key); 155 156 if (el.style.display == 'none') { 157 el.setStyle('display', 'block'); 158 el.setProperty('aria-expanded', 'true'); 159 160 if (key != 'right') { 161 el.slide('hide').slide('in'); 162 el.getParent().setProperty('class', 'slide'); 163 eltern = el.getParent().getParent(); 164 elternh = eltern.getElement('h3'); 165 elternh.addClass('high'); 166 elternbild = eltern.getElement('img'); 167 // elternbild.focus(); 168 el.focus(); 169 elternbild.setProperties( { 170 alt : altopen, 171 src : bildzu 172 }); 173 } 174 175 if (key == 'right') { 176 document.id('right').setStyle('display', 'block'); 177 wrapperwidth(small); 178 document.id('nav').removeClass('leftbigger'); 179 grafik = document.id('bild'); 180 document.id('bild').innerHTML = rightclose; 181 grafik.focus(); 182 } 183 } else { 184 el.setStyle('display', 'none'); 185 el.setProperty('aria-expanded', 'false'); 186 187 el.removeClass('open'); 188 189 if (key != 'right') { 190 eltern = el.getParent().getParent(); 191 elternh = eltern.getElement('h3'); 192 elternh.removeClass('high'); 193 elternbild = eltern.getElement('img'); 194 // alert(bildauf); 195 elternbild.setProperties( { 196 alt : altclose, 197 src : bildauf 198 }); 199 elternbild.focus(); 200 } 201 202 if (key == 'right') { 203 document.id('right').setStyle('display', 'none'); 204 wrapperwidth(big); 205 document.id('nav').addClass('leftbigger'); 206 grafik = document.id('bild'); 207 grafik.innerHTML = rightopen; 208 grafik.focus(); 209 } 210 } 211 // write cookie 212 saveIt(key); 213} 214 215// ########### Tabfunctions #################### 216 217window.addEvent('domready', function() { 218 var alldivs = document.id(document.body).getElements('div.tabcontent');
219 var outerdivs = document.id(document.body).getElements('div.tabouter'); 220 outerdivs = outerdivs.getProperty('id'); 221 222 for (var i = 0; i < outerdivs.length; i++) { 223 alldivs = document.id(outerdivs[i]).getElements('div.tabcontent'); 224 count = 0; 225 alldivs.each(function(element) { 226 count++; 227 var el = document.id(element); 228 el.setProperty('role', 'tabpanel'); 229 el.setProperty('aria-hidden', 'false'); 230 el.setProperty('aria-expanded', 'true'); 231 elid = el.getProperty('id'); 232 elid = elid.split('_'); 233 elid = 'link_' + elid[1]; 234 el.setProperty('aria-labelledby', elid); 235 236 if (count != 1) { 237 el.addClass('tabclosed').removeClass('tabopen'); 238 el.setProperty('aria-hidden', 'true'); 239 el.setProperty('aria-expanded', 'false'); 240 } 241 }); 242 243 countankers = 0; 244 allankers = document.id(outerdivs[i]).getElement('ul.tabs').getElements('a'); 245 246 allankers.each(function(element) { 247 countankers++; 248 var el = document.id(element); 249 el.setProperty('aria-selected', 'true'); 250 el.setProperty('role', 'tab'); 251 linkid = el.getProperty('id'); 252 moduleid = linkid.split('_'); 253 moduleid = 'module_' + moduleid[1]; 254 el.setProperty('aria-controls', moduleid); 255 256 if (countankers != 1) { 257 el.addClass('linkclosed').removeClass('linkopen'); 258 el.setProperty('aria-selected', 'false'); 259 } 260 }); 261 } 262}); 263 264function tabshow(elid) { 265 var el = document.id(elid); 266 var outerdiv = el.getParent(); 267 outerdiv = outerdiv.getProperty('id'); 268 269 var alldivs = document.id(outerdiv).getElements('div.tabcontent'); 270 var liste = document.id(outerdiv).getElement('ul.tabs'); 271 272 liste.getElements('a').setProperty('aria-selected', 'false'); 273 274 alldivs.each(function(element) { 275 element.addClass('tabclosed').removeClass('tabopen'); 276 element.setProperty('aria-hidden', 'true'); 277 element.setProperty('aria-expanded', 'false'); 278 }); 279 280 el.addClass('tabopen').removeClass('tabclosed'); 281 el.setProperty('aria-hidden', 'false'); 282 el.setProperty('aria-expanded', 'true'); 283 el.focus(); 284 var getid = elid.split('_'); 285 var activelink = 'link_' + getid[1]; 286 document.id(activelink).setProperty('aria-selected', 'true'); 287 liste.getElements('a').addClass('linkclosed').removeClass('linkopen'); 288 document.id(activelink).addClass('linkopen').removeClass('linkclosed'); 289} 290 291function nexttab(el) { 292 var outerdiv = document.id(el).getParent(); 293 var liste = outerdiv.getElement('ul.tabs'); 294 var getid = el.split('_'); 295 var activelink = 'link_' + getid[1]; 296 var aktiverlink = document.id(activelink).getProperty('aria-selected'); 297 var tablinks = liste.getElements('a').getProperty('id'); 298 299 for ( var i = 0; i < tablinks.length; i++) { 300 301 if (tablinks[i] == activelink) { 302 303 if (document.id(tablinks[i + 1]) != null) { 304 document.id(tablinks[i + 1]).onclick(); 305 break; 306 } 307 } 308 } 309}
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.