var showAllDebugFieldsets;






function adjustFieldsetStyles() {
    var allFieldsets = Ext.query( '.debugFieldset' );

    for( j=0; j<allFieldsets.length;j++) {

        currentSegment = allFieldsets[j];

        children = Ext.get(currentSegment).dom.childNodes;

        for(var i=0;i<children.length;i++) {
            if( Ext.get(children[i]) ) {

                if( Ext.get(children[i]).dom.tagName == 'LEGEND' && Ext.get(children[i+1]) ) {

                    fieldsetStyle = Ext.get(currentSegment).dom.style;

                    for(jj=i+1;jj<children.length;jj++) {
                         if( Ext.get(children[jj]) && Ext.get(children[jj]).dom.tagName=='DIV' ) {
                            relevantItem  = Ext.get(children[jj]);
                         }
                    }

                    //fieldsetStyle.height        = relevantItem.getComputedHeight() + 50 + 'px';
                    if(typeof(relevantItem)!='undefined') {
                        fieldsetStyle.cssFloat      = relevantItem.getStyle('float');
                        fieldsetStyle.styleFloat    = relevantItem.getStyle('float');
                        fieldsetStyle.overflow      = relevantItem.getStyle('overflow');
                    }

                    width = Ext.get(currentSegment).getComputedWidth();
                    span = children[i].childNodes[0];
                    if( span ) {
                        //span.style.width = width - 10 + 'px';
                    }
                }
            }
        }
    }
}


function removeHeights() {
    var allFieldsets = Ext.query( '.debugFieldset' );
    for( j=0; j<allFieldsets.length;j++) {
        currentSegment = Ext.get(allFieldsets[j]);
        if( currentSegment.getStyle('height') ) {
            currentSegment.setStyle( 'height','' );
        }
    }
}


var debugInsertAjaxDiv =''
someFn = function(s1,s2) {
    document.getElementById(debugInsertAjaxDiv).innerHTML = s1.responseText;
}


function debugGetRequest(queryStringx,debugInsertAjaxDivTemp,params) {
    debugInsertAjaxDiv = debugInsertAjaxDivTemp;
    Ext.Ajax.request({
        url: '/artikel/zeigen/'+queryStringx,
        success: someFn,
        params: {'debugMain[explainQuery][query]': params},
        failure: function() { alert('urg')},
        method:'POST'
    });
}





function findPosX(obj) {
    var curleft = 0;
    if(obj.offsetParent)
        while(1)
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
}

function findPos(obj) {
   return {left:findPosX(obj),top:findPosY(obj)};
}

var cacheTimesShown = false;

function showCacheTimes() {

    allFieldsets = Ext.query('.debugFieldset .recursionLevel_3');

    for(var i=0; i<allFieldsets.length;i++) {
        var overlay = document.createElement("DIV");
        overlay.style.position = 'absolute';
        overlay.style.left = findPosX(allFieldsets[i]) + 'px';
        overlay.style.top = findPosY(allFieldsets[i]) + 'px';
        overlay.style.width = Ext.get(allFieldsets[i]).getComputedWidth() +'px';
        overlay.style.height = Ext.get(allFieldsets[i]).getComputedHeight() +'px';
        overlay.style.zIndex = 7000;
        overlay.style.background    = 'green';
        overlay.style.minHeight = '80px';
        overlay.style.opacity   = 0.5;
        overlay.id              = 'cacheOverlay'+i;
        overlay.className       = 'cacheOverlay';

        var segmentname = allFieldsets[i].id.replace('debugSegment_','');

        lifetime = cacheObjectsJsonArray[segmentname].lifetime;

        if(lifetime<=60) {
            realLifetime = lifetime + ' secs';
        }

        if(lifetime>60 && lifetime <= 3600) {
            realLifetime = lifetime/60;
            realLifetime = realLifetime.toFixed(1) + ' mins';
        }

        if(lifetime>=3600 && lifetime < 86400) {
            realLifetime = lifetime/3600;
            realLifetime = realLifetime.toFixed(1) + ' hrs';
        }

        if(lifetime >= 86400) {
            realLifetime = lifetime/86400;
            realLifetime = realLifetime.toFixed(1) + ' days';
        }

        overlay.innerHTML = '<span style="font:50px verdana;font-weight:bold;opacity:1">' + realLifetime + '</span>';
        document.body.appendChild(overlay);
    }
    cacheTimesShown = true;
}

function hideCacheTimes() {
    cacheOverlay = Ext.query('.cacheOverlay');
    for(var i=0; i<cacheOverlay.length;i++) {
         Ext.get( cacheOverlay[i] ).remove();
    }
    cacheTimesShown = false;
}

function toggleCacheTimes() {
    if(cacheTimesShown) {
        hideCacheTimes();
    } else {
        showCacheTimes();
    }
}


function hideDebugFieldsets() {
    array = Ext.query('.debugFieldset');
    for(i=0;i<array.length;i++) {
        if( array[i].className.indexOf('tidy_error') == -1 ) {
            Ext.get(array[i]).addClass('unobtrusive');
        } else {
            Ext.get(array[i]).addClass('obtrusive');
        }
    }
    removeHeights();
    bgTools.setCookie( 'BG_DEBUG_MODE', 'design', 10, '/');

    Ext.get('site').setWidth(990);
    Ext.get('site_info_bar').setWidth(990);

}

function showDebugFieldsets() {
    array = Ext.query('.debugFieldset');
    for(i=0;i<array.length;i++) {
        Ext.get(array[i]).removeClass('unobtrusive');
    }
    adjustFieldsetStyles();
    bgTools.setCookie( 'BG_DEBUG_MODE', 'coder', 10, '/');

    Ext.get('site').setWidth(Ext.get('site').getWidth()-8);
    Ext.get('site_info_bar').setWidth(Ext.get('site_info_bar').getWidth()-8);
    Ext.get('maincontent').setWidth(Ext.get('maincontent').getWidth()-8);

}

if( typeof(json) != 'undefined' ) {
    setTimeout( 'fixDebugBug()',2000);
}

fixDebugBug = function() {
    Ext.get('site').setWidth(Ext.get('site').getWidth()-8);
    Ext.get('site_info_bar').setWidth(Ext.get('site_info_bar').getWidth()-8);
    Ext.get('site_bar').setWidth(Ext.get('site_bar').getWidth()-8);
    Ext.get('maincontent').setWidth(Ext.get('maincontent').getWidth()-8);
    Ext.get('content').setWidth(Ext.get('maincontent').getWidth()-8);
}


function toggleDebugFieldsets() {
     if( showAllDebugFieldsets ) {
          hideDebugFieldsets();
          Ext.get('debugFieldsetToggle').dom.innerHTML = 'DESIGN MODE';
     } else {
          showDebugFieldsets();
          Ext.get('debugFieldsetToggle').dom.innerHTML = 'DEBUG MODE';
     }
     showAllDebugFieldsets = !showAllDebugFieldsets;
}


// Mail Encryption

function CryptMailto()
{
    var n = 0;
    var r = "";
    var s = "mailto:"+document.forms[0].emailField.value;
    var e = document.forms[0].emailField.value;

    e = e.replace( /@/, " [at] ");
    e = e.replace( /\./g, " [dot] ");

    for( var i=0; i < s.length; i++ )
    {
        n = s.charCodeAt( i );
        if( n >= 8364 )
        {
            n = 128;
        }
        r += String.fromCharCode(n+1);
    }
    document.forms[0].cyptedEmailField.value = r;
    document.forms[0].HTMLCyptedEmailField.value = "<a href=\"javascript:linkTo_UnCryptMailto('"+ r +"');\">"+ e +"</a>";
}

function UnCryptMailto( s )
{
    var n = 0;
    var r = "";
    for( var i = 0; i < s.length; i++)
    {
        n = s.charCodeAt( i );
        if( n >= 8364 )
        {
            n = 128;
        }
        r += String.fromCharCode( n - 1 );
    }
    return r;
}

function linkTo_UnCryptMailto( s )
{
    location.href=UnCryptMailto( s );
}
