var D = true;
    clean_selections = function(not_s, own_class, id){
        node = document.getElementById(id)
            p = node.parentNode
            for (i = 0; i < p.childNodes.length; i++){
                c = p.childNodes[i]
                    if(c.tagName == 'A'){
                        c.setAttribute('class', not_s)
                            c.setAttribute('className', not_s)
                    }
            }
        node.setAttribute('class', own_class)
            node.setAttribute('className', own_class)
    }
    gotomain = function(){
        scroll(0,100)
    }
cleaned = []
clean_field_once = function(o){
    if (!(o.name in cleaned)){
        cleaned[o.name] = true;
        o.value = ''
    }
}
debug = function(txt){
    if(D){
        var dBox = document.getElementById("js_debug");
        dBox.innerHTML = txt + "<br/>" + dBox.innerHTML;
    }
}

SearcherBox = function(pname){
    this.names = new Array();
    this.pre_name = pname;
    this.change = function(i){
        this.select(i);
    }
    this.select = function(i){
        this.replace(i);
    }
    this.add = function(item){
        debug("add "+item);
        this.names[this.names.length] = item;
    }
    this.replace = function(w){
        debug('TO:'+w)
            var lsel = 0;
        t =['searcher_0','searcher_1','searcher_2']
            for(i=0; i < 3; i++){
                debug('ID"'+t[i]+'"')
                    var el = document.getElementById(t[i]);
                if (el.style.display == "inline")
                    lsel = el;
                el.style.display = "none";
            }
        var pv = document.getElementById(w);
        pv.style.display = "inline";
        var stare = lsel.getElementsByTagName('input');
        var nowy = pv.getElementsByTagName('input');
        nowy[0].value = stare[0].value;
    }
}

    Remove = function(id){
        var e = document.getElementById(id)
            e.parentNode.removeChild(e)
    }
    RemoveNode = function(n){
        n.parentNode.removeChild(n)
    }
var loading_count = 0;
loading = function(){
    s = document.getElementById("status")
        s.style.visibility = "visible";
    loading_count += 1;
}
completed = function(){
    s = document.getElementById("status")
        s.style.visibility = "hidden";
    loading_count -= 1;
}
menu = function(id, hash_name, url){
    loading(); 
    new Ajax.Updater('main', url, 
            {asynchronous:true, 
evalScripts:true,
onComplete:function(request){
completed();
clean_selections('', 'selected', id);
eval(request.responseText)
}});
document.location.hash = 'url:' + hash_name
pageTracker._trackPageview('/'+hash_name)
}

menus = function(id, hash_name, url){
    loading(); 
    new Ajax.Updater('content', url, 
            {asynchronous:true, 
evalScripts:true,
onComplete:function(request){
completed();
clean_selections('', 'selected', id);
eval(request.responseText)
}});
document.location.hash = 'url:' + hash_name
pageTracker._trackPageview('/'+hash_name)
}

ctrl = false
keypress = function(event){
    if(event.keyCode == 17){
        ctrl = true
    }
    if(event.keyCode == 116 || (ctrl && event.keyCode == 82)){
        s = /^#url:.*$/
            ur = document.location.hash
            if (s.match(ur)){
                document.location.href = '/' + ur.substr(5)
            }
        return false;
    }
    if(event.keyCode == 505){
        s = /^#url:.*$/
            ur = document.location.hash
            if (s.match(ur)){
                document.location.href = '/' + ur.substr(5)
            }
        return false;
    }
    debug(event.keyCode)
}


keyrelased = function(event){
    if (event.keyCode == 17){
        ctrl = false
    }
}
//document.onkeydown = keypress 
//document.onkeyup = keyrelased 

comment_plus = function(comment_id){
    loading();-
        new Ajax.Updater( "comment_vote_" + comment_id,
                "/comment/plus/" + comment_id,
                {asynchronous:true,
evalScripts:true,
onComplete:function(request){
completed();
eval(request.responseText)
},
onLoading:function(request){loading()}
});
return false;
}
comment_minus = function(comment_id){
    loading();
    new Ajax.Updater("comment_vote_" + comment_id,
            "/comment/minus/" + comment_id,
            {asynchronous:true,
evalScripts:true,
onComplete:function(request){
completed();
eval(request.responseText)
},
onLoading:function(request){loading()}
});
return false;
}
comment_edit = function(comment_id){
    new Ajax.Updater("comment_text_" + comment_id,
            '/comment/edit/' + comment_id + '?inline=1',
            {asynchronous:true,
evalScripts:true,
onComplete:function(request){
completed();
eval(request.responseText);
},
onLoading:function(request){
loading();
}
});
return false;
}
comment_remove = function(comment_id){
    new Ajax.Updater('comment_messages', 
            '/comment/remove/' + comment_id,
            {asynchronous:true,
evalScripts:true,
onComplete:function(request){
completed();
eval(request.responseText);
Remove("comment_" + comment_id);
},
onLoading:function(request){
loading()
}
});
return false;
}

    box_blogs = function(url){
        loading()
            new Ajax.Updater('box_blogs',
                    url,
                    {asynchronous:true,
evalScripts:true,
onComplete:function(request){
eval(request.responseText);
completed();
},
onSuccess:function(request){
completed();
},
onFailure:function(request){
completed()
}

});
return false;			
}

    top_domains = function(url){
        loading()
            new Ajax.Updater('top_domains',
                    url,
                    {asynchronous:true,
evalScripts:true,
onComplete:function(request){
eval(request.responseText);
completed();
},
onSuccess:function(request){
completed();
},
onFailure:function(request){
completed()
}
}); 
return false;
}
top_content = function(url){
    loading();
    new Ajax.Updater('box_top',
            url,
            {asynchronous:true,
evalScripts:true,
onComplete:function(request){
eval(request.responseText);
completed();
},
onSuccess:function(request){
completed();
},
onFailure:function(request){
completed()
}
}); 
return false;
}
comment_add = function(item_id){
    loading();
    new Ajax.Updater('comment_box',
            '/comment/index/' + item_id,
            {asynchronous:true,
evalScripts:true,
onComplete:function(request){
eval(request.responseText);
completed();
}
});
return false;
}
comment_submit = function(id, th){
    loading();
    new Ajax.Updater({ success: 'comments', failure: 'comment_form' },
            '/comment/save/'+id+'?inline=1',
            {asynchronous:true,
evalScripts:true,
parameters:Form.serialize(th),
onComplete:function(request){
eval(request.responseText);
completed();
},
onSuccess:function(request){
tinyMCE.activeEditor.setContent('');
//						tinyMCE.execCommand('mceRemoveControl', false, 'message');
//						$('message').value = '';
//						tinyMCE.execCommand('mceAddControl', false, 'message');
completed();
$$('.error-message').each(function(e){e.remove()})
document.location.hash = $$('.comment').last().id
},
onFailure:function(request){
completed()
}
});
return false;
}

item_vote = function(id){
    loading();
    new Ajax.Updater({ success: 'vote_'+id, failure: 'message' },
            '/usernews/vote/'+id,
            {asynchronous:true,
evalScripts:true,
onComplete:function(request){
eval(request.responseText);
completed();
},
onSuccess:function(request){
completed();
},
onFailure:function(request){
completed()
}
});
return false;
}

    show_comment = function(id){
        el = $(id)
            el.style.visibility = "visible";
        el.style.display = "block";
    }
/*-----------------------------------------------------------
 * cookies library
 * --------------------------------------------------------*/
function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}

/*-----------------------------------------------------------
 *Toggles element's display value
 *Input: any number of element id's
 *Output: none 
 *---------------------------------------------------------*/
function toggleDisp() {
    for (var i=0;i<arguments.length;i++){
        var d = $(arguments[i]);
        if (d.style.display == 'none')
            d.style.display = 'block';
        else
            d.style.display = 'none';
    }
}
/*-----------------------------------------------------------
 *Toggles tabs - Closes any open tabs, and then opens current tab
 *Input:     1.The number of the current tab
 *           2.The number of tabs
 *           3.(optional)The number of the tab to leave open
 *           4.(optional)Pass in true or false whether or not to animate the open/close of the tabs
 *Output: none 
 *---------------------------------------------------------*/
function toggleTab(num,numelems,opennum,animate) {
    createCookie('top_content_tab', num, 30)
    if ($('tabContent'+num).style.display == 'none'){
        for (var i=1;i<=numelems;i++){
            if ((opennum == null) || (opennum != i)){
                var temph = 'tabHeader'+i;
                var h = $(temph);
                if (!h){
                    var h = $('tabHeaderActive');
                    h.id = temph;
                }
                var tempc = 'tabContent'+i;
                var c = $(tempc);
                if(c.style.display != 'none'){
                    if (animate || typeof animate == 'undefined')
                        Effect.toggle(tempc,'blind',{duration:0.5, queue:{scope:'menus', limit: 3}});
                    else
                        toggleDisp(tempc);
                }
            }
        }
        var h = $('tabHeader'+num);
        if (h)
            h.id = 'tabHeaderActive';
        h.blur();
        var c = $('tabContent'+num);
        c.style.marginTop = '0px';
        if (animate || typeof animate == 'undefined'){
            Effect.toggle('tabContent'+num,'blind',{duration:0.5, queue:{scope:'menus', position:'end', limit: 3}});
        }else{
            toggleDisp('tabContent'+num);
        }
    }
}


count_essence = function(rodzic_id, start, limit, d) {
    var rodzic = $(rodzic_id);
    var dzieci = rodzic.immediateDescendants();
    var size = start;
    var flag = true;
    var dest = false;
    var depth = d+1;
    dzieci.each(function(el, i) {
        if (el.match('div') && !el.previous()) {
            var id = el.identify();
            var res = count_essence(id, size, limit, depth);
            if (res['dest']) {
                dest = res['dest'];
                flag = false;
            }
            else {
                size += res['size'];
            }
        }
        if (el.match('table')) size++;
        if (el.match('p')) size++;
        if (el.match('ul')) size++;
        if (el.match('ol')) size++;
        if (size >= limit && flag) {
            dest = el;
            flag = false;
        }
    });
    return {'dest': dest, 'size': size, 'depth': depth};
}
adv_find_dest_element = function(rodzic_id, limit) {
    var ret = count_essence(rodzic_id, 0, limit, 0);
    if (ret['dest']) {
        //ret['dest'].insert({before: '<div>tutaj</div>'});
        return ret['dest'];
    }
}

move_adv = function(rodzic, reklama, alternative) {
    var rodzic_id = rodzic.identify();
    var elem = $(reklama);
    var alternative = $(alternative);
    if (alternative) {
        alternative.replace(elem);
    }
    else {
        var dest = adv_find_dest_element(rodzic_id, 3);
        if (dest) {
            elem.remove();
            dest.insert({before: elem});
        }
    }
}

