// Navigateur utilisé
var Nav_Agent 		= navigator.userAgent.toLowerCase();
var Nav_IE 			= ((Nav_Agent.indexOf("msie") != -1)  && (Nav_Agent.indexOf("opera") == -1)) ? true : false;
var Nav_Moz 		= (Nav_Agent.indexOf("firefox") != -1) ? true : false;
var Nav_Opera 		= (Nav_Agent.indexOf("opera") != -1 && parseInt(navigator.appVersion) >= 9) ? true : false;
var Nav_Safari 		= ((Nav_Agent.indexOf('safari') != -1) && (Nav_Agent.indexOf('mac') != -1)) ? true : false;
var Nav_Konqueror 	= (Nav_Agent.indexOf('konqueror') != -1);

TMP_PLEINE_PAGE = new Array();

/*
**	Change le contenue du menu de l'administration
**	elements : qui nous interesse
**	class_default : base pour l'active et le desactive
**	id_sel : tab selectionné
**	count : nombre de tab
*/
function change_menu(elements, class_default, id_sel, count)
{
	var class_activ = class_default + '_active';
	var menu;	
	var smenu;	
	if (count)
	{
		for (var i = 0; i < count; i++)
		{
			if((menu = document.getElementById('menu_' + i)) && (smenu = document.getElementById('smenu_' + i)))
			{
				if(id_sel == i)
				{
					menu.className = class_activ;
					smenu.style.visibility = 'visible';
				}
				else
				{
					menu.className = class_default;
					smenu.style.visibility = 'hidden';
				}
			}
		}
	}
}

/*
**  Fonction permettant de bloquer les boutons l'ors de l'appuye 
**	_theForm : form qui nous interesse
**	_tagName : type d'object (INPUT, SELECT, ETC)
**	_className : sous type de l'object (BOUTTON, LISTING, ETC)
**	_actionName : Effet a donner (DISABLE, NAME, ETC)
**	_actionValue : Valeur de l'action
*/
function DisableButton(_theForm, _tagName, _className, _actionName, _actionValue)
{
	var mEle;
	var count;
	if(mEle = document.forms[_theForm].elements)
	{
		if(count = mEle.length)
		{
			for (var i = 0; i < count; i++)
			{
				if( (mEle[i]['tagName'].toUpperCase() == _tagName.toUpperCase()) &&  (mEle[i]['className'].toUpperCase() == _className.toUpperCase()))
				{
					DelimiteInTab(mEle[i], _actionName, '.');
				}
			}
		}
	}
	return false;
	/*
	**  Fonction permettant de retourner l'object a ayant désendue dans le tableau 
	**	_ele : object qui nous interesse
	**	_valData : data du style  : stlye.display, disabled, ect
	**	_valDelimite : sous type de l'object (BOUTTON, LISTING, ETC)
	*/
	function DelimiteInTab(_ele, _valData, _valDelimite)
	{
		var objs		= _valData.split(_valDelimite);
		var count;
		var _bool 		= false;
		var _obj	  	= '';
		if(objs)
		{
			if(count = objs.length)
			{
				for (var i = 0; i < count; i++)
				{
					if(_obj)
					{
						switch(typeof(_ele[_obj][objs[i]]))
						{
							case 'object':
								_obj[_obj] = [objs[i]];
								break;
							case 'undefined':
								return false;
							default:
								_ele[_obj][objs[i]] = _actionValue;
								_bool = true;
								break;
						}
					}
					else
					{					
						switch(typeof(_ele[objs[i]]))
						{
							case 'object':
								_obj = [objs[i]];
								break;
							case 'undefined':
								return false;
							default:
								_ele[_obj][objs[i]] = _actionValue;
								_bool = true;
								break;
						}
					}
				}
				return _bool;
			}
		}
		return _bool;
	}
}
/*
**	Récupération de l'ofset d'un element
**	_elment : qui nous interesse
**	_height : Ajout suplémentaire au niveau de la hauteur
**	_width : Ajout suplémentaire au niveau de la largeur
**	_fenetre : Fenetre sur la quel on va travailler
*/
function redim_fenetre_by_element(_element, _height, _width, _fenetre)
{
	if(_element)
	{
		height = _fenetre.getsize(_element, 'h', false);
		width = _fenetre.getsize(_element, 'w', false);
	
		_fenetre.resizeTo(width + (_width ? _width : 0), height + (_height ? _height : 0));			
	}
}

/* Fonction permettant de cocher/décocher les checkbox en un clic */
function setCheckboxes(theForm, elementName, isChecked)
{
	var chkboxes = document.forms[theForm].elements[elementName];
	var count = chkboxes.length;

	if (count)
	{
		for (var i = 0; i < count; i++)
		{
			if(!chkboxes[i].disabled)
			{
				chkboxes[i].checked = isChecked;
			}
		}
	}
	else
	{
		chkboxes.checked = isChecked;
	}
		return true;
}

/*
**	Mod sondage
*/
function f_sondage_afficher(valeur, titresondage, titresujet)
{  
	var m1;
	var m5;
	if((m1 = document.getElementById('sondage1')) && (m5 = document.getElementById('sujet_titre')))
	{
		if (valeur) 
		{
			var voir="block";
			m5.innerHTML=titresondage;
		}
		else
		{
			var voir="none";
			m5.innerHTML=titresujet;
		}
		m1.style.display=voir;
	}
}

/*
**	FSBThemes, change la couleur de fond d'un object
*/
function change_bgcouleur(strObj, objColor)
{
	var obj;
	if(obj = document.getElementById(strObj))
	{
		obj.style.background = (Nav_IE ? objColor.style.backgroundColor : objColor.style.background);
	}
}

/*
**	FSBThemes, mise en plein page d'un object
*/
function redim_area(strArea, strObj)
{
	if(objArea = document.getElementById(strArea))
	{
		if(TMP_PLEINE_PAGE[strArea] == null)
		{
			TMP_PLEINE_PAGE.push(strArea);
			TMP_PLEINE_PAGE[strArea] = new Array('rows', 'cols');
			TMP_PLEINE_PAGE[strArea]['rows'] = objArea.rows;
			TMP_PLEINE_PAGE[strArea]['cols'] = objArea.cols;
		}	
	
		if(pleine_page(strObj))
		{
			//document.body.syle.width = '100%';
			cur = document.getElementById(strObj);
			height = (Nav_IE ? (document.height ? document.height : document.body.clientHeight) : window.innerHeight);
			while(height > getsize(cur, 'h', false))
			{
				objArea.rows++
			}
			objArea.rows--;
		}
		else
		{
			objArea.rows = TMP_PLEINE_PAGE[strArea]['rows'];
			objArea.cols = TMP_PLEINE_PAGE[strArea]['cols'];
			TMP_PLEINE_PAGE[strArea] = null;
		}		
	}
}
/*
**	FSBThemes, mise en plein page d'un object
*/
function pleine_page(strObj)
{
	if(obj = document.getElementById(strObj))
	{
		if(TMP_PLEINE_PAGE[strObj] == null)
		{
			TMP_PLEINE_PAGE.push(strObj);
			TMP_PLEINE_PAGE[strObj] = new Array('position', 'top', 'left', 'right', 'height', 'width');
			TMP_PLEINE_PAGE[strObj]['position'] = (obj.style.position ? obj.style.position : '');
			TMP_PLEINE_PAGE[strObj]['top'] = getsize(obj, 't', false);
			TMP_PLEINE_PAGE[strObj]['left'] = getsize(obj, 'l', false);
			TMP_PLEINE_PAGE[strObj]['right'] = getsize(obj, 'r', false);
			TMP_PLEINE_PAGE[strObj]['height'] = getsize(obj, 'h', false);
			TMP_PLEINE_PAGE[strObj]['width'] = getsize(obj, 'w', false);
		}	
		if(obj.style.position == 'absolute')
		{
			obj.style.top = TMP_PLEINE_PAGE[strObj]['top'];
			obj.style.left = TMP_PLEINE_PAGE[strObj]['left'];
			obj.style.right = TMP_PLEINE_PAGE[strObj]['right'];
			obj.style.height = TMP_PLEINE_PAGE[strObj]['height'];
			obj.style.width = TMP_PLEINE_PAGE[strObj]['width'];
			obj.style.position = TMP_PLEINE_PAGE[strObj]['position'];
			TMP_PLEINE_PAGE[strObj] = null;
			return false;
		}
		else
		{
			obj.style.position = 'absolute';
			obj.style.top = 0 + 'px';
			obj.style.left = 0 + 'px';
			obj.style.right = 0 + 'px';
			obj.style.height = 100 + '%';
			obj.style.width = 100 + '%';
			return true;
		}	
	}
}

/*
** 	Renvoie un password généré avec un nombre
** 		nombre => nombre de caratéres
*/
function gen_pass(nombre)
{
	var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
	var pass = '';
	for (var i=0; i < nombre; i++)
	{
		pass = pass + chars.charAt(Math.floor(Math.random() * chars.length));
	}  return pass;
}

/*
** Function pour la pub
*/
// Les éléments
window.onload = function()
{
	//Donne la largeur au tableau
	if(a_bar = document.getElementById('tableau_sujets'))
	{
		_width = getsize(document.getElementById('tableau_bar'), 'w', false);
		a_bar.style.width = 'auto';
		a_bar.style.width = _width + 'px';
		a_bar.width = _width + 'px';
		//alert( e_bar.width + '\n' + _width);
	}
	
	//Donne la largeur au tableau
	if(tableau_smile = document.getElementById('tableau_smile'))
	{
		redim_fenetre_by_element(tableau_smile, 80, 10, this)
	}
	
	if(google_bar = document.getElementById('ma_pub_google'))
	{
		i_mini = -98; // Bar visible au minimun de x pixel
		i_maxi = 0; // Bar souvre sur un Maximun de x pixel
		i_decale = 2; // Décalage de pixel
		i_temps_visible = 4; // Temps ou la barre est visible quand on passe la souris ou à l'affichage de la page	 
		i_count_temps = 0; // Temps pour l'attende
		i_direction = 0; // Direction de la barre
		setInterval("timer()", 100); // Timer de précision sur 0.1 seconde ;) 
		//"l" onmouseout="^fv"
		google_bar.onclick = function()
		{
			if(i_direction != 2)
			{ 
				i_direction = 2; 
			}
			else if(i_direction != 0)
			{
				i_direction = 1; 
			}
		}
		if(Nav_IE)
		{
			if(c_bar = document.getElementById('clique_me'))
			{
				c_bar.style.width = 'auto';
			}
		}
	}
};

function timer()
{
	//if(google_bar)
	{
		var i_sur_size = getsize(google_bar, 't', false);  // Récupération de la taille
		
		if(i_direction == 0)
		{ // Rien en court
			if(i_sur_size >	 i_mini)
			{			
				if(i_sur_size == i_maxi)
				{
					i_count_temps += 0.05;
					if(i_count_temps > i_temps_visible)
					{
						i_count_temps = 0;
						i_direction = 1; // On descend s'il vous plaie
					}					
				}			
			}
		} 
		else if( i_direction == 1)
		{ // On veut se cacher 
			// if(i_sur_size >	 i_mini)
			// {
				// google_bar.style.top = (i_sur_size-i_decale) + 'px';
			// } 
			// else 
			{
				i_direction = 0;
				google_bar.style.top = i_mini + 'px';
			}	
		} 
		else if(i_direction == 2)
		{ // On veut se monter
			// if(i_sur_size <	 i_maxi)
			// {
				// google_bar.style.top = (i_sur_size+i_decale) + 'px';
			// } 
			// else 
			{
				i_direction = 0;
				i_count_temps = 0;
				google_bar.style.top = i_maxi + 'px';
			}	
		}
	}
}
	
/*
**	Récupération de l'ofset d'un element
**	_elment : qui nous interesse
**	_valeur : height, width, top, left
**	_parent : si on recupere une valeur absolue de l'element
*/
function getsize(_element, _valeur, _parent)
{
	var val = 0;
	while(_element)
	{
		switch(_valeur)
		{
			case 'h': // height
				val += _element.offsetHeight;break;
			case 'w': // width
				val += _element.offsetWidth;break;
			case 't': //top
				val += _element.offsetTop;break;
			case 'l': // left
				val += _element.offsetLeft;break;
			case 'r': // right
				val += _element.offsetRight;break;
		}	
		if(_parent)
		{ 
			_element =  _element.offsetParent;
		} 
		else 
		{
			break;
		}
	}
	return val;
}