var slider_images 	= new Array();
var slider_try 		= 0;
var slider_inc 		= 0;
var slider_prev_inc = 0;
var slider_started 	= false;

function SliderInit(images){			
		var slider = document.getElementById('slider');
		var slider_port = document.getElementById('slider_port');
		var slider_msg = document.getElementById('slider_msg');
		slider_images=images;
		if (!slider) return;
		
		if (slider_try<50){
			var imgs = slider_port.getElementsByTagName('img');
			for(var i=0;i<imgs.length;i++){								
				if (imgs[i].loaded!=true){					
					slider_try++;
					slider_msg.innerHTML = 'Patientez';
					for(var i=0;i<slider_try;i++)	
						slider_msg.innerHTML += '.';
					setTimeout("SliderInit()",500);	
					return;
				}
								
			}		
		}				
		slider_msg.innerHTML = '&nbsp;';
		if ( parseInt(slider.offsetWidth) <= parseInt(slider_port.offsetWidth) )
			return;
		slider_inc = -2;		
		
		setTimeout("SliderScroll()",100);			
}

function SliderScroll(){			
	var slider = document.getElementById('slider');
	var slider_port = document.getElementById('slider_port');
	if ( !slider.style.left ) slider.style.left = '1px';
	slider.style.left = (parseInt(slider.style.left) + slider_inc) + 'px';	
	var offset = ( parseInt(slider.offsetWidth)-parseInt(slider_port.offsetWidth) )+parseInt(slider.style.left);
	if ( offset < -100 )
		slider_inc = -slider_inc;
	if ( parseInt(slider.style.left) >= 100 )
		slider_inc = -slider_inc;				
	slider_started = true;		
	setTimeout("SliderScroll()",25);
}

function onSliderImgLoad(elmt){
	elmt.loaded=true;		
}

function onSliderClick(url){		
	onSliderOut();
	showImageBox(url);
	//document.location = url;
}
	
function onSliderOver(){
	if (!slider_started) return;			
	slider_prev_inc = slider_inc;
	slider_inc = 0;
}
	
function onSliderOut(){
	if (!slider_started) return;			
	slider_inc = slider_prev_inc;
}	

// ---=== RT CLOCK ===---

function UpdateClock() {
		var hhmmss="", adate, min, sec;
		adate = new Date()
		hhmmss += adate.getHours();
		min = adate.getMinutes();
		if (min < 10) hhmmss += ":0" + min;
		else hhmmss += ":" + min;
		sec = adate.getSeconds();
		if (sec < 10) hhmmss += ":0" + sec;
		else hhmmss += ":" + sec;
		hhmmss = " " + hhmmss;  
	   document.getElementById('clock').innerHTML=hhmmss;
       setTimeout("UpdateClock()",1000);
}	

// ---=== BOX ===---	
	
function showBox(width, height, content){	
	//Creation fond
	var main = document.createElement("div");
	main.id					= '_box';				
	main.className			= 'boxBack';		
	main.style.zIndex		= 100;	
	//Creation de la box
	var box = document.createElement("div");
	box.className			= 'boxBody';			
	//Taille
	if (width) box.style.width		= width;
	if (height)	box.style.height	= height;			
	//Positionnement
	var orgx=(screen.width-parseInt(width))/2;
	if (orgx<0) orgx=0;
	var orgy=(screen.height-parseInt(height)-200)/2;
	orgy+=document.body.scrollTop;
	if (orgy<document.body.scrollTop+16) orgy=document.body.scrollTop+16;
	//alert(screen.height + ' - ' + height + ' - ' + orgy );
	box.style.left=orgx;
	box.style.top=orgy;
	//Adding	
	box.innerHTML			= content;
	main.appendChild(box);				
	//Creation bouton
	var btn = document.createElement("img");
	btn.style.border	= 0;
	btn.src				= js_url + '/images/box/close.png';
	btn.className		= 'boxBtn';			
	btn.title			= 'Close';
	btn.onclick=function(){closeBox();};
	//Positionnement
	btn.style.top=orgy-16+2;
	btn.style.left=(orgx+parseInt(width)-16+20+2)+'px';
	//Adding	
	main.appendChild(btn);
	//Ajout au document	
	document.body.appendChild(main);				
	return main;				
}

function closeBox(box){	
	var box = document.getElementById('_box');
	document.body.removeChild(box);		
}

function getPosX(obj){
    if (obj.offsetParent)
        return (obj.offsetLeft + getPosX(obj.offsetParent));
    else
        return (obj.offsetLeft);
}
function getPosY(obj){
    if (obj.offsetParent)
        return (obj.offsetTop + getPosY(obj.offsetParent));
    else
        return (obj.offsetTop);
}

// ---=== BOX ===---

var showImageBox_try=0;
var showImageBox_img = new Image();	

function showImageBox(url){	
	if (showImageBox_try==0){		
		showImageBox_img.src = url;
		showImageBox_try++;
		setTimeout("showImageBox('" + url + "')", 500);				
		return;
	}
	if (showImageBox_try<50){
		if (showImageBox_img.complete!=true){
			showImageBox_try++;
			setTimeout("showImageBox('" + url + "')", 500);				
			return;
		}		
	}	
	showImageBox_try=0;
	var buffer='';
	buffer  += '<img src="' + url + '" border="0"><br/>';	
	return showBox(showImageBox_img.width+'px' ,showImageBox_img.height+'px', buffer);	
}

// ---=== MENU ===---

var menu_timer=null;
var menu_tree=null;

function menu_visible(id, visible){
	var area = document.getElementById('menu_area_' + id);
	if (!area) return
	if (visible) 
		area.style.display='block';
	else
		area.style.display='none';	
}

function menu_position(id, x, y){	
	var area = document.getElementById('menu_area_' + id);
	if (!area) return
	area.style.top=y;
	area.style.left=x;
}

function menu_all_visible( visible, except){
	if (!except) except=0;
	for(var i=0;i<menu_tree.length;i++){
		if (i==except) continue;				
		menu_visible(i,visible)
	}
}

function menu_parents_visible(id, visible){
	var current=id;
	while(current!=0){
		menu_visible(current, visible);
		current=menu_tree[current];
	}
}

function menu_over(id){	
	if (!id) return;	
	var item = document.getElementById('menu_item_' + id);
	if (!item) return;		
	clearTimeout(menu_timer);
	var parentid=menu_tree[id];	
	var parent = document.getElementById('menu_item_' + parentid);		
	menu_all_visible(0, parentid);	
	menu_parents_visible(id,1);		
	menu_position(id, getPosX(item), parseInt(getPosY(item)+item.offsetHeight+1) + 'px');	
	item.oldClass=item.className;
	if ((item.className=='menu_item')||(item.className=='menu_subitem'))
		item.className=item.className+'_selected';
}

function menu_out(id){	
	if (!id) return;	
	var item = document.getElementById('menu_item_' + id);
	item.className=item.oldClass;
	if (!item) return;	
	menu_timer = setTimeout( 'menu_all_visible(0);', 1000);
}

// ---=== TOOLS ===---

function log(msg){
	var logwin = document.getElementById('log');
	logwin.innerHTML=logwin.innerHTML+msg+'<br/>';
}

function inspect(obj, maxLevels, level){
	var str = '', type, msg;
    if(level == null)  level = 0;    
    if(maxLevels == null) maxLevels = 1;
    if(maxLevels < 1) return '<font color="red">Error: Levels number must be > 0</font>';
    if(obj == null)
    return '<font color="red">Error: Object <b>NULL</b></font>';
    str += '<ul>';
    for(property in obj){
      try{         
          type =  typeof(obj[property]);
          str += '<li>(' + type + ') ' + property + ( (obj[property]==null)?(': <b>null</b>'):('')) + '</li>';
          if((type == 'object') && (obj[property] != null) && (level+1 < maxLevels))
          str += inspect(obj[property], maxLevels, level+1);
      }
      catch(err){        
        if(typeof(err) == 'string') msg = err;
        else if(err.message)        msg = err.message;
        else if(err.description)    msg = err.description;
        else                        msg = 'Unknown';
        str += '<li><font color="red">(Error) ' + property + ': ' + msg +'</font></li>';
      }
    }
    str += '</ul>';
    return str;
}

function _(elmt){
	return document.getElementById(elmt);
}

// ---=== SCROLL ===---

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

