window.controller = {
	
	'imgs': [],
	
	'init': function(){
		
		this.$$('fadein', document, 'img', function(node){
					
					window.controller.set_opacity(node, 0);
					window.controller.imgs.push(node);
					
				}
			);
		
		document.body.className = '';
		
		var alpha = 0;
		var a = 0.1;
		var speed = 0;
		var max_speed = 3;
		var steep = 1;
		
		while(alpha < 100){
			
			if(speed < max_speed)
				speed += a;
			alpha += speed;
			
			steep++;
			setTimeout("window.controller.render("+alpha+")", steep * 10);
			
			}
		
		
		},
	
	// ######################### //
	
	'render': function(alpha){
		
		for(var i = 0, c = window.controller.imgs.length; i < c; i++)
			window.controller.set_opacity(window.controller.imgs[i], alpha);
		
		},
	// ######################### //
	
	/*
	 * Get elemnts by classname
	 *
	*/
	
	'$$': function(className, node, tag, fct, limit){
		node = node || document;
		var returnElements = [];
		tag = tag || '*';
		var i = 0;
		var j = 0;
		var c = 0;
		var els;
		var e;
				
		if(document.getElementsByClassName){
			els = node.getElementsByClassName(className);
			if(fct || tag != '*' )
				for(i=0, c = els.length; i<c && (!limit || j < limit) ; i++ ){
					e = els[i];
					if(tag != '*') {
						if(e.nodeName.toLowerCase() == tag ){
							returnElements.push(e);
							if(fct)
								fct(e);
							j++;
							}
						}
					else{
						returnElements.push(e);
						if(fct)
							fct(e);
						j++;
						}
					}
			}
		else 
			if (document.evaluate) {
				className 				= "[contains(concat(' ', @class, ' '), ' " + className + " ')]";
				var classesToCheck 		= '';
				var xhtmlNamespace		= 'http://www.w3.org/1999/xhtml';
				var namespaceResolver	= (document.documentElement.namespaceURI === xhtmlNamespace) ? xhtmlNamespace : null;
				
				try	{
					els = document.evaluate('.//' + tag + className, node, namespaceResolver, 0, null);
				}
				catch (e) {
					els = document.evaluate('.//' + tag + className, node, null, 0, null);
				}
				
				while ((e = els.iterateNext() && (!limit || j < limit) )  ) {
					returnElements.push(e);
					if(fct)
						fct(e);
					j++;
					}
				}
			
			else {
				els = node.getElementsByTagName(tag);
				var pattern = new RegExp('(^|\\s)'+className+'(\\s|$)');
				for( i = 0, c = els.length ; i < c && (!limit || j < limit) ; i++){
					e = els[i];
					if (pattern.test(e.className)){
						returnElements.push(e);
						if(fct)
							fct(e);
						j++;
						}
					}
				
				}
		if(returnElements.length == 0)
			return false;
		else
			if(returnElements.length == 1 && limit == 1)
				return returnElements[0];
			else
				return returnElements;
		
		return false;
		
		},
	
	// ######################### //

	png_bg: function(item, url, repeat){
		if(item)
			if(rbet.is_IE6)
				if(url)
					item.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + url + '\',sizingMethod=' + ( repeat ? 'scale' : 'crop') + ');';
				else
					item.style.filter = '';
			else
				if(url)
					item.style.background = 'url(' + url + ')' + ( repeat ? '' : ' no-repeat');
				else
					item.style.background = '';
		},
	
	// ######################### //
	
	set_opacity: function(item, value){
		
		item.style.opacity = value / 100;
		item.style.filter = 'alpha(opacity='+ value +')';
		
		return item;
		
		}
	
	// ######################### //
	
	}

	
	
window.onload = function(){
	
	window.controller.init();
	
	
	}