var UI = {
	
	CAB : null,
	
	viewCoolBox: function(url, title) {
		if($chk(UI.CAB)) {
			UI.CAB.byebye();	
		}
		UI.CAB = new CoolAjaxBox({url: url, params: {title:title} });
		UI.CAB.request();
	},
	
	viewLoginBox: function(url, title, successpath) {
		if($chk(UI.CAB)) {
			UI.CAB.byebye();	
		}
		UI.CAB = new CoolAjaxBox({url: url, params: {title:title, successpath:successpath} });
		UI.CAB.request();
	},
	
    isElement: function(el) {
        if($type(el) == 'element') {
            return true;
        } else {
            return false;
        }
    },

	login : { 
	
		dblclickcatch : false,
	
		request: function(successpath) {
			if(!$chk(successpath)) {
				successpath = 'index.php';	
			}
			UI.login.successpath = successpath;
			
			if(!UI.login.dblclickcatch) {
				UI.login.dblclickcatch = true;
				$('loginloadingicon').setProperty('src','images/loading.gif');
				$('loginloadingicon').setStyle('visibility','visible');
				$('loginloadingicon').setStyle('opacity',1);
				new Request.JSON({
					method: 'post',
					data: {username: $('username').get('value').trim(), password: $('password').get('value').trim()},
					url: '_ajax/default.requestlogin.ajax.php',
					onFailure: function(exc) {
						alert(Localization.network_error);
						$('loginloadingicon').setStyle('visibility','hidden');
					},
					onError: function() {
						alert(Localization.network_error);
						$('loginloadingicon').setStyle('visibility','hidden');
					},
					onSuccess: function(o) {
						switch(o.success) {
							case(-1):
								UI.login.error(o);
								break;
							case(0):
								UI.login.error(o);
								break;
							case(1):
								UI.login.success();
								break;
						}
					}
				}).send();
				
			}
				
		},
		
		success: function() {
			Cookie.write('username', $('username').get('value').trim(), {duration:365});
			location.href = UI.login.successpath;
		},
		
		error: function(o) {
			$('loginloadingicon').setProperty('src','images/icons/cross.png');
			var fadeout = function() {
				$('loginloadingicon').fade('out');	
				unsetdblclickcatch.delay(500);
			};
			fadeout.delay(2500);
			var unsetdblclickcatch = function() {
				UI.login.dblclickcatch = false;
			};
			
			if(o.errortype == 2) {
				alert(Localization.coolbox_activationrequired);
				//UI.viewHTMLBox('coolbox.activationrequired.ajax.php',Localization.coolbox_activationrequired);
			} else if(o.errortype == 3) {
				alert(Localization.coolbox_accountdisabled);
				/* todo - should show a box with information about account being disabled */
				//UI.viewHTMLBox('coolbox.activationrequired.ajax.php',Localization.coolbox_activationrequired);
			} else {
				alert(Localization.login_failed);
				//UI.viewHTMLBox('coolbox.loginfailed.ajax.php',Localization.login_failed);	
			}
			
		}
		
	},
	
	logout : { 
	
		request: function() {
			
			$('loginloadingicon').setProperty('src','images/loading.gif');
			$('loginloadingicon').setStyle('visibility','visible');
			$('loginloadingicon').setStyle('opacity',1);
			location.href = 'index.php?status=logout';
			
		}
		
	}
	
}

//MooTools Accordion, <http://mootools.net/more>. Copyright (c) 2006-2008 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(B,A){this.elements=this.subject=$$(B);this.parent(A);},compute:function(G,H,I){var C={};for(var D in G){var A=G[D],E=H[D],F=C[D]={};
for(var B in A){F[B]=this.parent(A[B],E[B],I);}}return C;},set:function(B){for(var C in B){var A=B[C];for(var D in A){this.render(this.elements[C],D,A[D],this.options.unit);
}}return this;},start:function(C){if(!this.check(arguments.callee,C)){return this;}var H={},I={};for(var D in C){var F=C[D],A=H[D]={},G=I[D]={};for(var B in F){var E=this.prepare(this.elements[D],B,F[B]);
A[B]=E.from;G[B]=E.to;}}return this.parent(H,I);}});var Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,wait:false,alwaysHide:false},initialize:function(){var C=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});
this.parent(C.elements,C.options);this.togglers=$$(C.togglers);this.container=$(C.container);this.previous=-1;if(this.options.alwaysHide){this.options.wait=true;
}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;
}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity";}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";
}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";}for(var B=0,A=this.togglers.length;B<A;B++){this.addSection(this.togglers[B],this.elements[B]);
}this.elements.each(function(E,D){if(this.options.show===D){this.fireEvent("active",[this.togglers[D],E]);}else{for(var F in this.effects){E.setStyle(F,0);
}}},this);if($chk(this.options.display)){this.display(this.options.display);}},addSection:function(E,C,G){E=$(E);C=$(C);var F=this.togglers.contains(E);
var B=this.togglers.length;this.togglers.include(E);this.elements.include(C);if(B&&(!F||G)){G=$pick(G,B-1);E.inject(this.togglers[G],"before");C.inject(E,"after");
}else{if(this.container&&!F){E.inject(this.container);C.inject(this.container);}}var A=this.togglers.indexOf(E);E.addEvent("click",this.display.bind(this,A));
if(this.options.height){C.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(this.options.width){C.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});
}C.fullOpacity=1;if(this.options.fixedWidth){C.fullWidth=this.options.fixedWidth;}if(this.options.fixedHeight){C.fullHeight=this.options.fixedHeight;}C.setStyle("overflow","hidden");
if(!F){for(var D in this.effects){C.setStyle(D,0);}}return this;},display:function(A){A=($type(A)=="element")?this.elements.indexOf(A):A;if((this.timer&&this.options.wait)||(A===this.previous&&!this.options.alwaysHide)){return this;
}this.previous=A;var B={};this.elements.each(function(E,D){B[D]={};var C=(D!=A)||(this.options.alwaysHide&&(E.offsetHeight>0));this.fireEvent(C?"background":"active",[this.togglers[D],E]);
for(var F in this.effects){B[D][F]=C?0:E[this.effects[F]];}},this);return this.start(B);}});
