function tx_badkeywords() {
    this.ajaxUrl='index.php';
    this.keywords=new Array();
    this.box;
    this.counter=0;
    this.timer=false;
    this.template = '';
    this.timerX=450;
    this.rel=0;
}

tx_badkeywords.prototype.parseContent = function() {
    var tags=$$('span.tx-badkeywords-item');
    var kw=new Array();
    if(tags.length>0) {
        for(var i=0;i<tags.length;i++) {
            if(tags[i].parentNode.className.lastIndexOf('tx-badkeywords-item')<0 && tags[i].parentNode.tagName.toLowerCase()!='a' && tags[i].parentNode.tagName.toLowerCase()!='h1') {
                var kid=$(tags[i]).readAttribute('rel');                
                if(!kw.in_array(kid)) {
                    kw.push(kid);
                    this.getKeyword(kid);
                }
                tags[i].observe('mouseover', function() {
                    if(!this.id) {
                        this.id='badkwb'+Math.random()*1000000000000000000;
                    }
                    var kid=$(this).readAttribute('rel');
                    var res=badKeywords.getKeyword(kid);
                    if(badKeywords.timer) {
                        window.clearTimeout(badKeywords.timer);
                    }
                    document.getElementById('badkw'+badKeywords.counter).style.display='block';
                    if(badKeywords.rel!=this.id) {
//console.log(badKeywords.keywords[kid]);                        
                        if(badKeywords.keywords[kid]) {
                            badKeywords.fillBox(kid);
                        }
                        document.getElementById('badkw'+badKeywords.counter).style.top=(mouseY-10)+'px';
                        document.getElementById('badkw'+badKeywords.counter).style.left=(mouseX+20)+'px';
                        badKeywords.rel=this.id;
                    }
                });
                tags[i].observe('mouseout', function() {
                    badKeywords.timer=window.setTimeout('badKeywords.closeBox();',badKeywords.timerX);
                });
            }
        }
        this.box=document.createElement('div');
        var boxattr=document.createAttribute('class');
        boxattr.nodeValue='badkeywordsbox';
        this.box.setAttributeNode(boxattr);
        boxattr=document.createAttribute('id');
        this.counter++;
        boxattr.nodeValue='badkw'+this.counter;
        this.box.setAttributeNode(boxattr);

        $(this.box).observe('mouseover', function() {
            if(badKeywords.timer) {
                window.clearTimeout(badKeywords.timer);
            }
            document.getElementById('badkw'+badKeywords.counter).style.display='block';
        });
        $(this.box).observe('mouseout', function() {
            badKeywords.timer=window.setTimeout('badKeywords.closeBox();',badKeywords.timerX);
        });
        var el = document.getElementsByTagName('body')[0];
        el.appendChild(this.box);
    }
}

tx_badkeywords.prototype.fillBox = function(kid) {
    var linktext=(badKeywords.keywords[kid][1]!=false?badKeywords.keywords[kid][1]:badkeywords_defaultText[0]);
    var content='<p class="specialLink"><a href="'+badKeywords.keywords[kid][0]+'">'+linktext+'</a></p>';
    if(pageOffer!='' && badKeywords.keywords[kid][2]>0) {
        content+='<p class="specialLink"><a href="'+pageOffer+'">'+badkeywords_defaultText[1]+'</a></p>';
    }
    document.getElementById('badkw'+badKeywords.counter).innerHTML=content;
}

tx_badkeywords.prototype.closeBox = function() {
    document.getElementById('badkw'+badKeywords.counter).style.display='none';
    this.counter++;
    this.box.id='badkw'+this.counter;
}

tx_badkeywords.prototype.getData = function(request) {
	var xmldoc = request.responseXML;
    if(!xmldoc) {
        badKeywords.closeBox();
    }
	else {
        if(xmldoc.getElementsByTagName("data")[0].firstChild!=null) { 
            var result = xmldoc.getElementsByTagName("data")[0].firstChild.data;
            if(result) {
                var data=result.split(/\|/);
    //alert(data[0]+' => '+data[1]+' / '+data[2]+' / '+data[3]);            
                badKeywords.keywords[data[0]]=new Array(data[1],(data[2]=='false'?false:data[2]),data[4]);
                if(data[3]>0 && document.getElementById('badkw'+data[3])) {
                    badKeywords.fillBox(data[0]);
                }
    //console.log(badKeywords.keywords[data[0]]);
            }
        }
    }
}

tx_badkeywords.prototype.getKeyword = function(uid) {
    if(!this.keywords[uid]) {
        if(this.counter>0 && document.getElementById('badkw'+this.counter)) {
            document.getElementById('badkw'+this.counter).innerHTML='<p class="badkwLoading">'+badkeywords_defaultText[2]+'</p>';
        }
        var pars = "eID=bad_keywords&kw="+uid+"&pid="+pageUid+'&c='+this.counter;       
        var myAjax = new Ajax.Request(this.ajaxUrl, {method: 'get', parameters: pars, onComplete: this.getData});
    }
    else {
        return badKeywords.keywords[uid];
    }
    return false;
}

var pageUid = 0;
var pageOffer = '';
var badKeywords= new tx_badkeywords();
var badkeywords_defaultText='';

document.observe("dom:loaded", function() {
    badKeywords.parseContent();
});

