Geavaheaddji:Jeblad/smi.js

Wikipedia'as/is

Fuomáš: Maŋŋel go almmuhat, soaitá leat dárbbašlaš sihkkut neahttalohkkii gaskaráju vai oainnat rievdadusaid. 

  • Firefox / Safari: Doala Shift dan botta go deattát Reload, dahje deaddil Ctrl-F5 dahje Ctrl-R (⌘-R Mac'as)
  • Google Chrome: Deaddil Ctrl-Shift-R (⌘-Shift-R Mac'as)
  • Internet Explorer / Edge: Doala Ctrl dan botta go deattát Álggat ođđasit, dahje deaddil Ctrl-F5
  • Opera: deaddil Ctrl-F5.
(function(mw, $) {

    var loadtimers = {};
    var killtimers = {};

    var defaults = {
        'paradigm' : {
            'query' : "http://query.yahooapis.com/v1/public/yql",
            'q' : "select%20*%20from%20html%20where%20url%3D%22§§url§§%22%20and%20xpath%3D'%2F%2Fbody%2Ftable%2Ftr%2Ftd'",
&format=json&diagnostics=true&callback=cbfunc
            'url' : 'http://sami-cgi-bin.uit.no/cgi-bin/smi/smi.cgi?pos=Any&mode=standard&charset=utf-8'
        }
    };

    function killer(id) {
        $('#'+id).removeClass('open').addClass('close');
    };

    function loader(id) {
        var el = $('#'+id).first();
        el.removeClass('close');
        el.addClass('open');
        if (killtimers[id]) clearTimeout(killtimers[id]);
        if (!el.find('div').length) {
            el.append('<div class="smi-menu">Test</div>');
            var p = {
                translate : el.find('.properties .translate').html(),
                action    : el.find('.properties .action').html(),
                plang     : el.find('.properties .plang').html(),
                lang      : el.find('.properties .lang').html(),
            }
            var a = [];
            for (var x in p) {
                if (p[x]) {
                    a.push(mw.util.urlescape(x + '=' + p[x]));
                }
            }
            var url = defaults.url + a.join('&');
defaults.query.replace(/§§url§§/, defaults.url + a.join('&'))
            console.dir(p);
        }
    };

    function mouseover() {
        console.log('mouseover');
        if (killtimers[this.id]) clearTimeout(killtimers[this.id]);
        if (loadtimers[this.id]) clearTimeout(loadtimers[this.id]);
        var f = (function(id) { return function() { loader(id); } })(this.id);
        loadtimers[this.id]=setTimeout(f, 500);
        return true;
    };

    function mouseout() {
        console.log('mouseout');
        if (killtimers[this.id]) clearTimeout(killtimers[this.id]);
        if (loadtimers[this.id]) clearTimeout(loadtimers[this.id]);
        var f = (function(id) { return function() { killer(id); } })(this.id);
        killtimers[this.id]=setTimeout(f, 200);
        return true;
    };

    $(function(){
        $('.smi').each(function(i, el) {
            $(el)
            .attr('id', 'smi-'+i)
            .mouseover(mouseover)
            .mouseout(mouseout);
        });
    })
})(mediaWiki, jQuery);