function karta_insertion() {

        var items;

        function karta_start() {


                for (var i=0;i<items.length;i++) {
			var elements = getElementsBySelector(items[i].selector);
                        if (elements.length > 0) for (var j=0;j<elements.length;j++) {
                                if (!elements[j]) continue;
                                elements[j].title=elements[j].getElementsByTagName("span")[0].innerHTML;
                        }
		}
	}


        function thumbnailSelector(selector) {
                if(typeof items == "undefined") items = new Array();
                items[items.length] = {selector: selector};
        }


        function addLoadHandler(handler) {
                if(window.addEventListener) {
                        window.addEventListener("load",handler,false);
                }
                else if(window.attachEvent) {
                        window.attachEvent("onload",handler);
                }
                else if(window.onload) {
                        var oldHandler = window.onload;
                        window.onload = function piggyback() {
                                oldHandler();
                                handler();
                        };
                }
                else {
                        window.onload = handler;
                }
        }

        function getElementsBySelector(selector)
        {
                var tokens = selector.split(' ');
                var currentContext = new Array(document);
                for(var i=0;i<tokens.length;i++)
                {
                        token = tokens[i];//.replace(/^\s+/,'').replace(/\s+$/,'');
                        if(token.indexOf('#') > -1)
                        {
                                var bits = token.split('#');
                                var tagName = bits[0];
                                var id = bits[1];
                                var element = document.getElementById(id);
                                if(tagName && element.nodeName.toLowerCase() != tagName)
                                        return new Array();
                                currentContext = new Array(element);
                                continue;
                        }
        
                        if(token.indexOf('.') > -1)
                        {
                                var bits = token.split('.');
                                var tagName = bits[0];
                                var className = bits[1];
                                if(!tagName)
                                        tagName = '*';
        
                                var found = new Array;
                                var foundCount = 0;
                                for(var h=0;h<currentContext.length;h++)
                                {
                                        var elements;
                                        if(tagName == '*')
                                                elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
                                        else
                                                elements = currentContext[h].getElementsByTagName(tagName);
        
                                        for(var j=0;j<elements.length;j++)
                                                found[foundCount++] = elements[j];
                                }

                                currentContext = new Array;
                                var currentContextIndex = 0;
                                for(var k=0;k<found.length;k++)
                                {
                                        if(found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b')))
                                                currentContext[currentContextIndex++] = found[k];
                                }
        
                                continue;
                    }
        
                        if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/))
                        {
                                var tagName = RegExp.$1;
                                var attrName = RegExp.$2;
                                var attrOperator = RegExp.$3;
                                var attrValue = RegExp.$4;
                                if(!tagName)
                                        tagName = '*';
        
                                var found = new Array;
                                var foundCount = 0;
                                for(var h=0;h<currentContext.length;h++)
                                {
                                        var elements;
                                if(tagName == '*')
                                                elements = currentContext[h].all ? currentContext[h].all : currentContext[h].getElementsByTagName('*');
                                        else
                                                elements = currentContext[h].getElementsByTagName(tagName);
        
                                        for(var j=0;j<elements.length;j++)
                                                found[foundCount++] = elements[j];
                                }
        
                                currentContext = new Array;
                                var currentContextIndex = 0;
                                var checkFunction;
                                switch(attrOperator)
                                {
                                        case '=':
                                                checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
                                                break;
                                        case '~':
                                                checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); };
                                                break;
                                        case '|':
                                                checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
                                                break;
                                        case '^':
                                                checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
                                                break;
                                        case '$':
                                                checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
                                                break;
                                        case '*':
                                                checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
                                                break;
                                        default :
                                                checkFunction = function(e) { return e.getAttribute(attrName); };
                                }
        
                                currentContext = new Array;
                                var currentContextIndex = 0;
                                for(var k=0;k<found.length;k++)
                                {
                                        if(checkFunction(found[k]))
                                                currentContext[currentContextIndex++] = found[k];
                                }
        
                                continue;
                        }
        
                        tagName = token;
                        var found = new Array;
                        var foundCount = 0;
                        for(var h=0;h<currentContext.length;h++)
                        {
                                var elements = currentContext[h].getElementsByTagName(tagName);
                                for(var j=0;j<elements.length; j++)
                                        found[foundCount++] = elements[j];
                        }
        
                        currentContext = found;
                }
        
                return currentContext;
        }

        thumbnailSelector("div.moduletablekarta li");

        addLoadHandler(function(){ documentLoaded = true; karta_start(); });
}

if(document.createElement && document.getElementsByTagName && !navigator.userAgent.match(/opera\/?6/i))
        karta_insertion();