/**
 * Klasse für die Debugging-Funktionalitäten
 * 
 * @author Daniel Lembicz
 */

/**
 * Konstruktor
 */
function TTDebug () {
    this.aDebug = [];
    this.timerMask;
}

/**
 * Update des Debuggings
 */

TTDebug.prototype.update = function(oDebug) {
    var debugContent = $('#idDebugContent').html();
    var link = '';
    //this.aDebug.push(oDebug); 
    
    link = '&nbsp;[&nbsp;<span onclick="$(\'#idDebug_' + oDebug.uniqueKey + '\').toggle()" style="color:blue;font-size:11px;">Request anzeigen</span>&nbsp;]';
    
    if (typeof oDebug.engineIp != 'undefined') {
        link += '&nbsp;[&nbsp;<a href="http://' + oDebug.engineIp + ':' + oDebug.port +'/?' + oDebug.strExe + '" target="_blank" style="color:blue;text-decoration:none;font-size:11px;">Engine direkt anfragen</a>&nbsp;]';
    } 
    
    $('#idDebugContent').html('<b>' + oDebug.page + '</b> (' + oDebug.time + ')' + link + '<div style="margin-bottom:10px;"><div id="idDebug_' + oDebug.uniqueKey + '" style="display:none;background-color:#F1F1F1;margin-top:5px;padding:3px;border:1px solid #DDD" onclick="pDebug.selectNodeContents(this)">' + oDebug.strExe + '</div></div>' + debugContent);    
}

/**
 * Debugging-Ausgabe markieren (z.B. ums dann per strg+c zu kopieren)
 */
TTDebug.prototype.selectNodeContents = function(elem) {
    var o = document.getElementById(elem.id);
    var r = null;
    if(document.all) {
      r = document.body.createTextRange();
      r.moveToElementText(o);
      r.select();
    } else {
        r = document.createRange();
        r.selectNode(o);
        var s = window.getSelection();
        s.removeAllRanges();
        s.addRange(r);
    }
}

/**
 * Debugging-Maske ausgeben
 */

TTDebug.prototype.getMask = function() {
    var html;
    var elem = document.createElement('div');

    elem.id = 'idDebugger';
    elem.style.position = 'absolute';
    elem.style.top = '50px';
    elem.style.right = '1px';
    elem.style.width = '11px';
    elem.style.height = '300px';
    elem.style.backgroundColor = '#CC0000';
    elem.style.cursor = 'pointer';
    elem.style.zIndex = '90000';
    elem.style.backgroundImage = 'url(/kunden_parameter/premium_plus/img/debugger_logo.gif)';
    elem.style.backgroundRepeat = 'no-repeat';
    elem.style.backgroundPosition = '2px 30px';
    elem.innerHTML = 
        '<div style="' 
            + 'padding: 5px 0 5px 5px;' 
            + 'overflow: auto;' 
            + 'height: 270px;' 
            + 'font-size: 11px;' 
            + 'font-family :Verdana;' 
            + 'display: none;' 
            + 'margin: 10px 10px 10px 11px;' 
            + 'background-color: #FFF;' 
            + 'height: 0px;' 
            + 'width:0px"' 
            + '><div id="idDebugContent"></div></div>';
        
    $(elem).bind('click', function() {
        pDebug.timerMask = setTimeout(function() {
            $($(elem).children()[0]).css({'background-color': '#FFF'});
            $('#idDebugContent').show();
            $($(elem).children()[0]).css({height:'270px', width: '675px', padding:'5px 0 5px 5px'}).show();
            $(elem).animate({'width': '700px'}, 250, function() {
                $($(elem).children()[0]).css({height:'270px', width: '675px', padding:'5px 0 5px 5px'}).show();
            });
        }, 10);
    });
        
    $(elem).bind('mouseleave', function() {
        clearTimeout(pDebug.timerMask);
        $(elem).animate({'width': '11px'}, 500, function() {$($(elem).children()[0]).css({'width': '0px', 'padding':'0px'});});
        $(elem).find('#idDebugContent').hide();
    });
    
    return elem;
}