/**
 * @author frederic.leroy
 */

Ext.extend(Ext.Element, Ext.Element, {
	repaint: function(r) {
		var dom = this.dom;
		this.addClass("x-repaint");
        setTimeout(function(){
            Ext.get(dom).removeClass("x-repaint");
        }, 1);
		if (r) {
			var els = this.select('*');
			els.addClass("x-repaint");
			setTimeout(function(){
            	els.removeClass("x-repaint");
        	}, 1);
		}
	}
});

Ext.onReady(function() {

	var imgsheader = Ext.select('div[id=general-pict] img');
	var imgcurrent = 0
	var interval = 8000
	
	imgsheader.setStyle({
	  	display: 'none',
		position: 'absolute'
	});
	
	imgsheader = Ext.DomQuery.select('div[id=general-pict] img');
	
		
	var imgcurrent = Math.floor(Math.random() * imgsheader.length)

	Ext.get(imgsheader[imgcurrent]).setStyle({
	  	display: 'inline',
		position: 'absolute'
	  })
	
	
    var task = {
        run: function() {
            var imgnext = (imgcurrent == imgsheader.length -1) ? 0 : imgcurrent + 1;
			
            var el_on = Ext.get(imgsheader[imgcurrent]);
			var el_new = Ext.get(imgsheader[imgnext]);
			
            el_on.fadeOut({ useDisplay:true, duration: 2});
			el_new.fadeIn({useDisplay:true, duration: 2})
			
			imgcurrent=imgnext;
        },
        interval: interval //8 second,
        
    }
	
	if (imgsheader.length > 1) {
		var runner = new Ext.util.TaskRunner();
		runner.start.defer(interval, this, [task]);
	}
	
	if (Ext.get('left-menu')) {	
		var leftmnu = new Ext.ux.Menu('menu-items', {
			direction: 'vertical'
		});
	}
    var xh = Ext.select('*[class*=x-hidden]').removeClass('x-hidden');
    

	try {
		Ext.get('left-menu').setVisibilityMode(Ext.Element.DISPLAY);
	}
	catch(err) {
		
	}
	
	var li = Ext.DomQuery.select('ul[id=menu-items] li');
	if (li.length==0) {
		hideleftmenu();
	}
	
	try {
		Ext.get('top-menu').setVisibilityMode(Ext.Element.DISPLAY);
		var child = Ext.get('top-menu').child('a[href=' + window.location.pathname + ']').parent().addClass('selected');
	}
	catch(err) {
			
	}
	
	if (window.init) {
		init();
	}
	
	if (window.location.pathname.slice(0,6)!='/auth/') {
		var query = window.location.search.substring(1); 
	  	var vars = query.split("&"); 
	  	for (var i=0;i<vars.length;i++) { 
		    var pair = vars[i].split("="); 
		    if (pair[0] == 'f') { 
			  hideleftmenu()
			  hidetopmenu()
		      showleftmenu.defer(1000,this,[true]);
			  showtopmenu.defer(1000,this,[true]);
		    } 
	  	} 
	}
	
	//Ext.get('main-body-container').slideOut.defer(2000, Ext.get('main-body-container'), ['t' ,{duration: 3}]);
	
	
});


function hideleftmenu(anim) {
	var leftmenu = Ext.get('left-menu');
	if (leftmenu) {
		if (anim) {
			leftmenu.slideOut('l', {duration: 1});
		} else {
			leftmenu.hide();
		}
	}
}   

function showleftmenu(anim)  {
	
	var leftmenu = Ext.get('left-menu');
	
	if (leftmenu) {
		if (anim) {
			leftmenu.slideIn('l', {duration: 1, callback: function() {
				leftmenu.repaint();
			}});
		} else {
			leftmenu.show()();
		}
	}
}

function hidetopmenu(anim) {
	var topmenu = Ext.get('top-menu')
	if (topmenu) {
		if (anim) {
			topmenu.slideOut('t', {duration: 1});
		} else {
			topmenu.hide();
		}
	}
}

function showtopmenu(anim) {
	var topmenu = Ext.get('top-menu')
	if (topmenu) {
		if (anim) {
			topmenu.slideIn('t', {duration: 1});
		} else {
			topmenu.show();
		}
	}
}

function showhide(id,visible,anim) {
	var el = Ext.get(id);
	
	if (el) {
		el.setVisibilityMode(Ext.Element.DISPLAY);
		

		if (anim) {
		    visible ? el.fadeIn() : el.fadeOut({useDisplay: true});
		} else {
		    el.setVisible(visible);
		}
		
		
		var foc = el.first('*[@fc]');
		if (foc) {
			foc.focus()
		}
		el.repaint(true);
	}
}


