window.addEvent('domready', init);

function init() {
	var brain = $('brain');
	if(window.ie) {
		//brain.moveToBottom();
		brain.setStyle('position', 'absolute');
		brain.setStyle('top', '0px');
		brain.setStyle('left', '0px');
	}
	brain.setStyle('height', window.getHeight() + 'px');
	var so = new SWFObject("/assets/flash/cpu.swf", "cpu", "220", "100%","1","#eeeeee");
	so.addParam('wmode','transparent');
	so.write('brain');
	
	window.addEvent('mousewheel', on_scroll);
	window.addEvent('scroll', on_scroll);
	window.addEvent('resize', on_resize);
}

function on_resize() {
	$('brain').setStyle('height', window.getHeight() + 'px')
}

function on_scroll() {
	var pos = window.getScrollTop() / (window.getScrollHeight() - window.getHeight());
	try {
		document.getElementById('cpu').updateBG(pos);
	} catch(e) {} 
	
	if( cur_post ) {
		show_tag(cur_post, false, '', '');
	}
	if(window.ie) {
		$('brain').setStyle('top', window.getScrollTop()+'px');
	}
}

function refresh_page( o ) {
	var method = o.method ? o.method : 'post';
	
	var pars = '';
	if(o.form)   pars = $(o.form).toQueryString();
	if(o.pars)   pars += o.pars;
	if(o.jdata)  pars += '&jdata=' + Json.encode(o.jdata);
	
	if(o.loader) show_loader();
	
	if(!o.url) {
		alert('url: URL needed');
		return false;
	} 

	if(o.debug) {
		console.log('url: %o \npars: %o', o.url, pars);
	}
	
	if(o.div) {
		if( o.onComplete ) {
			var ajax_object = new Ajax(o.url, {update: o.div, method: method, data: pars, onComplete: o.onComplete }).request();
		} else {
			var ajax_object = new Ajax(o.url, {update: o.div, method: method, data: pars }).request();
		}
	} else {
		var response = o.onComplete ? o.onComplete : json_response;
		var ajax_object = new Ajax(o.url, {method: method, data: pars, onComplete: response}).request();
	}
	
	return ajax_object;
}

function json_response( data ) {
	// AJAX view error -- show alert
	var regex = /^\s*\{\"/;
	if( ! regex.test(data) ) {
		return;
	}
	
	var response_data = Json.decode(data);
	
	if( response_data.debug ) {
		if($('debug'))	$('debug').innerHTML = data;	
		else alert(o.responseText);
	} 

	if( response_data.output ) {
		response_data.output.each( function(d){
			$(d.id).innerHTML = d.html;
		});
	}
	if( response_data.javascript ) { eval(response_data.javascript); }
	if( response_data.clearForm ) {	$(response_data.clearForm).reset(); }
}