var initializeMe = (function(){
    var global = this;
    var base = null;
    var safe = false;
    var listenerType = (global.addEventListener && 2)||
                            (global.attachEvent && 3)|| 0;
    function getStackFunc(funcRef, arg1,arg2,arg3,arg4){
        var next = null;
        function l(ev){
            funcRef((ev?ev:global.event), arg1,arg2,arg3,arg4);
            if(next)next = next(ev);
            return (arg1 = arg2 = arg3 = arg4 = funcRef = null);
        };
        l.addItem = function(d){
            if(next){
                next.addItem(d);
            }else{
                next = d;
            }
        };
        return l;
    };
    return (function(funcRef, arg1,arg2,arg3,arg4){
        if(base){
            base.addItem(
                       getStackFunc(funcRef, arg1,arg2,arg3,arg4)
                        );
        }else{
            base = getStackFunc(funcRef, arg1,arg2,arg3,arg4);
        }
        if(!safe){
            switch(listenerType){
                case 2:
                    global.addEventListener("load", base, false);
                    safe = true;
                    break;
                case 3:
                    global.attachEvent("onload", base);
                    safe = true;
                    break;
                default:
                    if(global.onload != base){
                        if(global.onload){
                            base.addItem(getStackFunc(global.onload));
                        }
                        global.onload = base;
                    }
                    break;
            }
        }
    });
})();

function form_manager() {
	if(!document.getElementsByTagName) {
		// no DOM support
		return;
	}
	
	var hidden_block = document.getElementById(arguments[2]);

	var switcher = document.getElementsByTagName('input');
	for(var i = 0; i < switcher.length; i++) {
		if(switcher[i].name == arguments[1]) {
			if(switcher[i].checked) {
				hidden_block.style.display = '';
			}
			else {
				hidden_block.style.display = 'none';
			}
			
			switcher[i].onclick = function() {
				if(hidden_block.style.display == '') {
					hidden_block.style.display = 'none';
				}
				else {
					hidden_block.style.display = '';
				}
			}
			break;
		}
	}
}

function links_manager() {
	if(!document.getElementsByTagName) {
		// no DOM support
		return;
	}

	var a = document.getElementsByTagName('a');
	for(var i = 0; i < a.length; i++) {
		if(a[i].rel == "external") {
			a[i].target = "_blank";
		}
	}
}

function get_blogs() {
	if(!document.getElementById) {
		// no DOM support
		return;
	}
	
	var d = document;
	
	// remove information about javascript
	var enable_js = d.getElementById('enable_js');
	var wrap = d.getElementById('wrap');
	wrap.removeChild(enable_js);
	
	var blogs_to_parse = parseInt(arguments[1]);
	
	var fnWhenDone = function(oXML) { 
		blog_data = eval("(" + oXML.responseText + ")");
		
		if((blog_data != '') && (blog_data.status != 0)) {	
			var blog = d.createElement('div');
			blog.className = 'the_blog';
			blog.setAttribute('id', blog_data.screen);
			
			var blog_title = d.createElement('h3');
			blog_title.setAttribute('id', blog_data.css_id);
			blog_title.setAttribute('title', blog_data.name);
			
			var blog_subtitle = d.createElement('span');
			blog_subtitle.className = 'hide';
			blog_subtitle.appendChild(d.createTextNode(blog_data.name));
			
			blog_title.appendChild(blog_subtitle);
			
			var blog_content = d.createElement('p');
			blog_content.className = 'single';
			
			var blog_link = d.createElement('a');
			blog_link.className = 'pink';
			blog_link.setAttribute('href', blog_data.link);
			blog_link.appendChild(d.createTextNode(blog_data.title));
			
			blog_content.appendChild(blog_link);
			blog_content.appendChild(d.createElement('br'));
			
			var blog_date = d.createElement('span');
			blog_date.className = 'date';
			blog_date.appendChild(d.createTextNode(blog_data.date));
			
			blog_content.appendChild(blog_date);
			blog_content.appendChild(d.createElement('br'));
			blog_content.appendChild(d.createTextNode(blog_data.desc));
			
			blog.appendChild(blog_title);
			blog.appendChild(blog_content);
			
			update_page(blog);
		}
		
		// hide indicator
		if((parseInt(blog_data.f) + 1) == blogs_to_parse) {
			kill_loader();
		}
	};
	
	// show indicator
	update_page(build_loader());
	for(i = 0; i < blogs_to_parse; i++) {
		var myConn = new XHConn();
		
		if (!myConn) {
			// No XMLHTTP support
			return;
		}
		else {
			myConn.connect("src/feeder.php", arguments[2], "f=" + i, fnWhenDone);
		}
	}
}

function update_page(domNode) {
	var d = document;
	var wrap = d.getElementById('wrap');
	var warn = d.getElementById('warn');
	wrap.insertBefore(domNode, warn);	
}

function build_loader() {
	var progressBar = document.createElement('img');
    progressBar.setAttribute('id', 'progressBar');
	progressBar.setAttribute('src', 'res/images/indicator.gif');
	progressBar.setAttribute('width', 16);
	progressBar.setAttribute('height', 16);
	progressBar.setAttribute('alt', 'Wskaźnik aktywności');
	
	return progressBar;
}

function kill_loader() {
	var progressBar = document.getElementById('progressBar');
	
	if(progressBar) {
		progressBar.parentNode.removeChild(progressBar);
	}
}

