source: products/qPloneTiles/trunk/skins/qPloneTiles/tiles.js @ 1

Last change on this file since 1 was 1, checked in by myroslav, 18 years ago

Building directory structure

File size: 2.0 KB
Line 
1// tiles.js
2
3var DEBUG = false, message = "";
4
5function getElementsByClassName(className, parentElement) {
6    var result = new Array(),
7        list = (parentElement || window.document.body).getElementsByTagName('*');
8    if(list.length == 0) list = (parentElement || window.document.body).all;
9    var class_re = new RegExp('(^|\\s)' + className + '(\\s|$)');
10    for(var i = 0; i < list.length; i++) if(list[i].className.match(class_re)) result[result.length] = list[i];
11    return result;
12};
13
14// browser compatibility functions
15function add_Event(obj, evt, listener, captured) {
16    if (!obj.addEventListener) obj.attachEvent('on'+evt, listener);
17    else obj.addEventListener(evt, listener, captured);
18}
19
20function stopBubbling(e) {
21    if(!e) window.event.cancelBubble=true;
22    else (e.stopPropagation) ? e.stopPropagation() : e.cancelBubble=true;
23}
24
25function getPrimaryLink(list) {
26    // get first a.primary element from the list
27    // or just first element if no primary anchor is marked
28    if(list.length == 0) return false;
29    var primary = new RegExp('(^|\\s)' + 'primary' + '(\\s|$)');
30    for(var i = 0; i < list.length; i++) if(primary.exec(list[i].className)) return list[i];
31    return list[0];
32}
33
34function initTiles(){
35    var tiles = getElementsByClassName("tile", window.document)
36    for(var i = 0; i < tiles.length; i++) {
37        var tile = tiles[i],
38            hrefs = tile.getElementsByTagName('A');
39        var a = getPrimaryLink(hrefs);
40        if (a) {
41            // adding styling for tiles
42            tile.style.cursor='pointer';
43            tile.tabIndex = 0;
44            // adding event handling
45            add_Event(tile, 'click',     new Function("e", "window.location='"+a.href+"';stopBubbling(e)"), false);
46            add_Event(tile, 'mouseover', new Function("e", "window.status=  '"+a.href+"';stopBubbling(e)"), false);
47            add_Event(tile, 'mouseout',      function( e ){ window.status=  '';          stopBubbling(e) }, false);
48        }
49    }
50}
51
52registerPloneFunction(initTiles);
Note: See TracBrowser for help on using the repository browser.