var UI = {
	
	CAB : null,
	
	viewLightbox: function(image, title) {
		if($chk(UI.CAB)) {
			UI.CAB.byebye();	
		}
		UI.CAB = new CoolAjaxBox({url: image, params: {title: title} });
		UI.CAB.request();
	},
	
	viewHTMLBox: function(url, title, params) {
		if($chk(UI.CAB)) {
			UI.CAB.byebye();	
		}
		
		var oParams = null;
		var oTitle = {title:title};
		
		if($chk(params)) {
			oParams = $merge(params,oTitle);
		} else {
			oParams = oTitle;			
		}
		
		
		UI.CAB = new CoolAjaxBox({url: url, params: oParams });
		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(), t: $('loginbutton').get('t').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.message);
								break;
							case(0):
								UI.login.error(o);
								if($chk(o.t)) {
									$('loginbutton').setProperty('t',o.t);	
								}
								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) {
				UI.viewHTMLBox('coolbox.activationrequired.ajax.php',Localization.coolbox_activationrequired);
			} else {
				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';
			
		}
		
	},
	
	splash : {
		
		c : 0,
		
		start: function() {
			$each($$('div.splash'), function(el) {
				UI.splash.c = UI.splash.c + 1;
				if(UI.splash.c > 1) {
					$('splash[' + UI.splash.c + ']').setStyle('opacity',0);
				}
			});
			UI.splash.swap(1);
		},
		
		swap: function(idx) {
			var currentEl = 'splash[' + idx + ']';
			if(idx == UI.splash.c) {
				var nextIdx = 1;
			} else {
				var nextIdx = idx+1;
			}
			var nextEl = 'splash[' + nextIdx + ']';
			var timeout = 3000;
			var duration = 2500;
			var fxOut = new Fx.Tween($(currentEl), {
				'duration':duration, 
				onStart: function() {
					var fxIn = new Fx.Tween($(nextEl), {'duration':duration, 'link':'chain'});
					fxIn.start('opacity',0,1);
				},
				onComplete: function() {
					setTimeout("UI.splash.swap(" + nextIdx + ")", timeout);								
				}
			});
			fxOut.start('opacity',1,0);
		}
		
		
	}
	
}

//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);}});

