function viewAs(mode){
    eval('Render.design='+mode+'Design;');
    Cookie.set('viewmode', mode);
    Render.render();
}
function onbodyload(){
    Event.observe(window, 'scroll', AjaxCallbacks.scroll);
	AjaxCallbacks.bodyOnScroll = scrollStatusBar;
    AjaxCallbacks.showLoading = Loading.show;
    AjaxCallbacks.hideLoading = Loading.hide;
    prepareSubmitButtons();
}
function stats(){ajaxUpdate('statusbar', 'cpanel/userStat', {silent:true});}
function scrollStatusBar(){
	var scroll = document.viewport.getScrollOffsets();
	$('statuscontainer').style.top = scroll.top + "px";
}
var Loading = {
    id:'loadIndicator',
    arrange: function(){
    	var scroll = document.viewport.getScrollOffsets(); 
        $(Loading.id).style.top = scroll.top + "px";
    },
    show: function(){
        Element.show(Loading.id);
        Event.observe(window, 'scroll', Loading.arrange);
        Event.observe(window, 'resize', Loading.arrange);
    },
    hide: function(){
    	Element.hide(Loading.id);
    	Event.stopObserving(window, 'scroll', Loading.arrange);
    	Event.stopObserving(window, 'resize', Loading.arrange);
    }
}
function prepareSubmitButtons(){
	$A(document.getElementsByTagName('form')).each(
		function(form){
			if (form.handler == undefined) return;
			var buttons = $A(form.getElementsByTagName('button'));
			buttons.each(
				function(button){
					if(button.name != "handler" || button.type != "submit") return;
					Event.observe(button, 'click', function(){this.form.action = this.value;} );
				}
			);
		}
	);
}
var Overlay = {
	options: {duration: 0.3, from:0, to:0.8, queue: 'end'},
	on: function(onshow){
		Overlay.position();
		Event.observe(window, 'scroll', Overlay.position);
		Event.observe(window, 'resize', Overlay.position);
		var o = Overlay.options;
		o.afterFinish = onshow;
		Effect.Appear('overlay', o);
	},
	off: function(){
		var o = {duration: Overlay.options.duration, from: Overlay.options.to, to: Overlay.options.from};
		Effect.Fade('overlay', o);
		Event.stopObserving(window, 'scroll', Overlay.position);
		Event.stopObserving(window, 'resize', Overlay.position);
	},
	position: function(){
		var d = document.viewport.getDimensions();
		$('overlay').style.width = d.width + 'px';
		$('overlay').style.height = d.height + 'px';
		d = document.viewport.getScrollOffsets();
		$('overlay').style.top = d.top + 'px';
		$('overlay').style.left = d.left + 'px';
	}
}
var ToExtendElements = {
	keepInCenter: function(obj){
		obj = $(obj);
		obj.moveToWindowCenter();
		obj.keepInCenterHandler = obj.moveToWindowCenter.bindAsEventListener(obj);
		Event.observe(window, 'scroll', obj.keepInCenterHandler);
		Event.observe(window, 'resize', obj.keepInCenterHandler);
	},
	stopKeepingInCenter: function(obj){
		obj = $(obj);
		Event.stopObserving(window, 'scroll', obj.keepInCenterHandler);
		Event.stopObserving(window, 'resize', obj.keepInCenterHandler);
	},
	moveToWindowCenter: function(obj){
		obj = $(obj);
		var elem	 = obj.getDimensions();
		var viewport = document.viewport.getDimensions();
		var scroll	 = document.viewport.getScrollOffsets();
		//var offset = Position.cumulativeOffset(Position.offsetParent($(ActionForm.overlayId)));
		var Xnew = parseInt(scroll.left + (viewport.width - elem.width)/2);
		var Ynew = parseInt(scroll.top + (viewport.height - elem.height)/2);
		if (Xnew < 0) Xnew = 0; 
		if (Ynew < 0) Ynew = 0; 
		obj.style.top = Ynew + 'px';
		obj.style.left = Xnew + 'px';
		return obj;
	}
} 
Element.addMethods(ToExtendElements);

var PopupHide = {
	timer: null,
	show: function(obj){
		if (PopupHide[obj.id] != null) clearInterval(PopupHide[obj.id]);
		else obj.show();
	},
	hide: function(obj){
		PopupHide[obj.id] = setTimeout("PopupHide['" + obj.id + "'] = null; $('" + obj.id + "').hide()", 300);
	}
}