/*******************************************************************************
  
  GraphicLib.js
  
  fonctions diverses et variées utilisées dans de nombreuses parties du code
  ce fichier est inclu dans chaque page html                   
                    
*******************************************************************************/                     



<!-- retourne true si Bluetooth present , false sinon -->
function Is_Bluetooth_Chipset_Activate()
{
	var retval;
	
	switch( top.v_BT_Chipset )
	{
		case "NOK" :
			retval = false;
		break;

		
		case "OK" :
			retval = true;
		break;
	}

	return retval;
}




function PlayGraphicFilter( targetObj , myEffect)
{
	var element;

	
	if(document.getElementById) 
		element = document.getElementById(targetObj);
	
		
	element.style.filter = myEffect; // set your effect from one of the top 25 differents effects
	element.filters[0].Apply();
	element.filters[0].Play();

	
}






/* renvoie le mode de debuggage en cours */
function GetDebugMode()
{
	switch( top.HTML_disp_static )
	{
		case "DEBUG_STATIC" :	
			return "DEBUG_STATIC";
		break;
		
		
		case "NO_DEBUG_STATIC" :	
			return "NO_DEBUG_STATIC";
		break;
	}

}




/* renvoie le mode CLI de debuggage en cours */
function GetCLIDebugMode()
{
	
	return top.g_debug_cli;

}





/* renvoie la langue courante */
function GetActiveLanguage()
{
	switch(top.language)
	{
		/* NETHERLANDS */
		case "NL" :
			return "NL";
		break;

		/* FRENCH */
		default :
		case "FR" :
			return "FR";
		break;


		/* POLISH */
		case "PL" :
			return "PL";	
		break;
		
		/* ENGLISH */
		case "EN" :
			return "EN";	
		break;
	
	}

}


/* MAJ de la langue courante */
function SetActiveLanguage( new_language )
{

	top.language = new_language;

}




/* obtenir le type de menu chargé , basic ou avancé */
function GetBanerType()
{
	return top.g_BanerType;
}



/*  mettre a jour le type de menu chargé , basic ou avancé */
function SetBanerType( BanerType )
{
	top.g_BanerType = BanerType;
}







/* obtenir la page par default si existante */
function GetDefaultPage()
{
	return top.g_defaultPage;
}


/*  mettre a jour le type de menu chargé , basic ou avancé */
function SetDefaultPage( DefaultPage)
{
	top.g_defaultPage = DefaultPage;
}



/* obtenir le mode de connexion ,  ethernet ou ADSL */
function GetISPConnectionMode()
{
	return top.v_ISP_connectionmode;
}



/* */
function ChClassButton(Mybutton , newClass) 
{ 
	 if(document.getElementById) 
	 { 
	 	document.getElementById(Mybutton).className = newClass;	 
	 } 
	
} 





/* 
   generation d'un bouton 
*/

function GenerateFormButton( SIZE_BUTTON , BUTTON_TYPE , BUTTON_ID , BUTTON_NAME , BUTTON_VALUE , BUTTON_TITLE , RETURN_FUNCTION ) 
{
	switch(SIZE_BUTTON)
	{
		/* la taille standard de presque tout les boutons */
		case "SMALL" :
			document.write("<INPUT id=\"" + BUTTON_ID + "\" name=\"" + BUTTON_NAME + "\"  type=\"" + BUTTON_TYPE + "\"  class=QbuttonSmall 		\
			value=\"" + BUTTON_VALUE + "\" title=\"" + BUTTON_TITLE + "\" 				\
			onmouseover=\"ChClassButton('" + BUTTON_ID + "' , 'QbuttonSmallOver')\"			\
			onmouseout=\"ChClassButton('" + BUTTON_ID + "'  , 'QbuttonSmall')\"			\
			onClick=\"return " + RETURN_FUNCTION + "\" >&nbsp;");
		break;
				
	
		case "MEDIUM" :
			document.write("<INPUT id=\"" + BUTTON_ID + "\" name=\"" + BUTTON_NAME + "\"  type=\"" + BUTTON_TYPE + "\" class=QbuttonMedium		\
			value=\"" + BUTTON_VALUE + "\" title=\"" + BUTTON_TITLE + "\" 				\
			onmouseover=\"ChClassButton('" + BUTTON_ID + "' , 'QbuttonMediumOver')\"		\
			onmouseout=\"ChClassButton('" + BUTTON_ID + "'  , 'QbuttonMedium')\"			\
			onClick=\"return " + RETURN_FUNCTION + "\" >&nbsp;");
		break;
		

		case "BIG" :
			document.write("<INPUT id=\"" + BUTTON_ID + "\" name=\"" + BUTTON_NAME + "\"  type=\"" + BUTTON_TYPE + "\" class=QbuttonBig		\
			value=\"" + BUTTON_VALUE + "\" title=\"" + BUTTON_TITLE + "\" 				\
			onmouseover=\"ChClassButton('" + BUTTON_ID + "' , 'QbuttonBigOver')\"			\
			onmouseout=\"ChClassButton('" + BUTTON_ID + "'  , 'QbuttonBig')\"			\
			onClick=\"return " + RETURN_FUNCTION + "\" >&nbsp;");
		break;

	}
	
}





/* mettre a jour le titre principale du browser internet , en mode debug static */
function SetDebugBrowserTitle(my_title)
{

	<!-- titre page -->
	top.document.title = "Livebox-" + top.country_info + " , " + my_title; 
}




/* mettre a jour le titre principale du browser internet , en mode reel dynamque */
function SetDynamicBrowserTitle(my_title , ISP_tradename , ISP_countryname , ISP_connectionmode)
{
	var msg_tradename , msg_ISP_countryname , msg_connectionmode;
	var final_title , tmp_ISP_connectionmode;

	switch( GetActiveLanguage() )
	{
		
		default:
		case "FR":
			msg_tradename  		= "Opérateur : ";
			msg_ISP_countryname  	= "Pays : ";
			msg_connectionmode	= "connexion : ";
		break;
		
		
		case "EN":
			msg_tradename  		= "ISP : ";
			msg_ISP_countryname  	= "country : ";
			msg_connectionmode	= "connection : ";
		break;
		
	}
	

	if( v_ISP_connectionmode == "ETH" )
		tmp_ISP_connectionmode = "Ethernet";
	else
		tmp_ISP_connectionmode = v_ISP_connectionmode;
	
	final_title = my_title    + " , " + msg_ISP_countryname + v_ISP_countryname;
	final_title = final_title + " , " + msg_tradename 	+ v_ISP_tradename;
	final_title = final_title + " , " + msg_connectionmode  + tmp_ISP_connectionmode;	


	<!-- titre page -->
	top.document.title = final_title;
}







/* imprimer un texte a l'endroit de l'ID donné */ 
function PrintText( TextId , text2print)
{
	if(document.all)
	{
		document.all[TextId].innerHTML = text2print;			/* Internet Explorer */
	}
	else
	
	if (document.getElementById)
 	{
 		document.getElementById(TextId).innerHTML = text2print;		/* Netscape , Safari etc */
	}
}





/* appele si lancement en mode statique */
function LoadDebugDisplayView()
{
	if(document.getElementById)
	{
		if( GetDebugMode() == "DEBUG_STATIC" )
		{
			document.getElementById("TAB_LINE_TEMPLATE").style.display = 'none';
			document.getElementById("TAB_LINE_DEBUG").style.display = 'block';
		}
		else
		{
			document.getElementById("TAB_LINE_TEMPLATE").style.display = 'block';
			document.getElementById("TAB_LINE_DEBUG").style.display = 'none';
		}
	}
}





/* activation d'une feuille de style "alternative" */
function setActiveStyleSheet(title) 
{  	
		
	var i, a, main;  
	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) 
	{    
		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) 
		{
			a.disabled = true;
			if(a.getAttribute("title") == title) a.disabled = false;    
		}  
	}
}





/* choisi la bonne feuille de style selon le pays destination */
function SetStyleSheetByVendor(SelectedVendor)
{
		
	switch(SelectedVendor)
	{
		default :
		case "WOOFR" :
			setActiveStyleSheet("WOOFR_CSS"); 
		break;
		
		
		case "WOONL" :
			setActiveStyleSheet("WOONL_CSS"); 
		break;
		
		
		case "TPSA" :
			setActiveStyleSheet("TPSA_CSS");
		break;
	}
	
}

	
	

/* changer la class de style d'un objet */
function ChClassTD( obj , newClass ) 
{ 

	obj.className = newClass;
} 




/* charger une page dans le cadre "configleftframe" */
function LoadLinkConfigleftframe(link)
{
	/* drapeaux mis a faux juste avant chargement;
		il sera mis a true si cadre correctement chargé */
	RESET_CONFIGLEFTFRAME_LOAD()
	
	window.parent.configleftframe.location  = link;
}



/* charger une page dans le cadre "banerframe" ("abaner.html" ou "bbaner.html") */
function LoadLinkBanerframe(link)
{
	/* drapeaux mis a faux juste avant chargement;
	 	il sera mis a true si cadre correctement chargé */
	RESET_BANERFRAME_LOAD()
	
	window.parent.banerframe.location = link;	         
}



/* charger une page dans le cadre principal "infoframe" */
function LoadLink(link)
{	
	/* éviter d'avoir un cadre banerframe vide */
	if( GET_BANERFRAME_LOAD() == false )
	{
		LoadLinkBanerframe('bbaner.html');
	}

	
	/* drapeaux mis a faux juste avant chargement 
	 	il sera mis a true si cadre correctement chargé */
	RESET_INFOFRAME_LOAD();
	
	window.parent.infoframe.location = link;
}



/* charger une page dans le cadre moi-meme */
function LoadLinkSelf(link)
{
	self.location = link;
		         
}


/* charger une page dans une toute nouvelle fenêtre de browser*/
function LoadLink_new_window(link , title)
{
	var NewWindow = window.open( link , "" );
		         
}





function fonc_onMouseOver(obj)
{
	/* obj.className = 'QTlineselected'; */

}


function fonc_onMouseOut(obj)
{

	/* obj.className = 'QDataTab'; */
}


/* si ENTREE de passage au dessus d'une ligne de donnée d'un tableau */
function Select_tabline(obj)
{
	
	/* obj.className = 'QTlineselected'; */

}


/* si SORTIE de passage au dessus d'une ligne de donnée d'un tableau */
function Deselect_tabline(obj)
{

	/* obj.className = 'QDataTab'; */
}



/* changement d'image pour les pages avec des onglets */
function TabSelectImage(obj , action)
{

	switch(action)
	{
		/* mouseover */
		case 'Mover' :
			obj.className = "menuon";
		break;
	
		/* mouseout */
		case 'Mout' :
			obj.className = "menuoff";	
		break;
	}
	
}







/* 
	faire alterner les classes de style
 	pour les ligne de  données d'un tableau 
 
 */
function TableAlterColor(id_table)
{ 

	 if(document.getElementsByTagName)
	 {  
	   var table = document.getElementById(id_table);   
	   var rows = table.getElementsByTagName("tr");   
	   
	   for(i = 0; i < rows.length; i++)
	   {           
		/* une ligne sur deux */
	     	if( (i % 2) == 0)
	     	{ 
	       		rows[i].className = "QEvendatatab";	/* paire */ 
	     	}
	     	else
	     	{ 
	       		rows[i].className = "QOdddatatab"; 	/* impaire*/
	     	}       
	   } 
	   
	 } 
	 
}



/*********************************************************************/

/* bloque ou non l'appui sur les liens */


/* configleft */
function LOCK_CFGLEFT( ) 
{ 
	top.GUI_ENABLED_ConfigLeft = false;
} 

function UNLOCK_CFGLEFT( ) 
{ 
	top.GUI_ENABLED_ConfigLeft = true;
} 


function ISLOCK_CFGLEFT( ) 
{ 
	if( top.GUI_ENABLED_ConfigLeft == true )
		return false;
	else 
		return true;
} 





/* basic banner */
function LOCK_BBANER( ) 
{ 
	top.GUI_ENABLED_BasicBanner = false;
} 

function UNLOCK_BBANER( ) 
{ 
	top.GUI_ENABLED_BasicBanner = true;
} 

function ISLOCK_BBANER( ) 
{ 
	if( top.GUI_ENABLED_BasicBanner == true )
		return false;
	else 
		return true;
} 




/* advanced banner */
function LOCK_ABANER( ) 
{ 
	top.GUI_ENABLED_AdvancedBanner = false;
} 

function UNLOCK_ABANER( ) 
{ 
	top.GUI_ENABLED_AdvancedBanner = true;
} 

function ISLOCK_ABANER( ) 
{ 
	if( top.GUI_ENABLED_AdvancedBanner == true )
		return false;
	else 
		return true;
} 



/* fonctions pour savoir si un cadre a ete correctement chargé avec la page ad-hoc */

/* cadre configleftframe */
function SET_CONFIGLEFTFRAME_LOAD()
{
	top.Flag_configleftframeLoad = true;
}


function RESET_CONFIGLEFTFRAME_LOAD()
{
	top.Flag_configleftframeLoad = false;
}


function GET_CONFIGLEFTFRAME_LOAD()
{
	return top.Flag_configleftframeLoad;
}



/* cadre banerframe */
function SET_BANERFRAME_LOAD()
{
	top.Flag_banerframeLoad = true;
}


function RESET_BANERFRAME_LOAD()
{
	top.Flag_banerframeLoad = false;
}


function GET_BANERFRAME_LOAD()
{
	return top.Flag_banerframeLoad;
}



/* cadre infoframe */
function SET_INFOFRAME_LOAD()
{
	top.Flag_infoframeLoad = true;
}


function RESET_INFOFRAME_LOAD()
{
	top.Flag_infoframeLoad = false;
}


function GET_INFOFRAME_LOAD()
{
	return top.Flag_infoframeLoad;
}



/* fonction pour faire des boutons style Windows 3D enfoncé/surelevé */

/* passage au dessus du bouton */
function ButtonMakeFlat(el) 
{
	
	with (el.style) 
	{
		border 	   = "1px solid buttonface";
	}
}



/* sortie de passage au dessus du bouton */
function ButtonMakeRaised(el) 
{
	with(el.style) 
	{
		borderLeft   = "1px solid buttonhighlight";
		borderRight  = "1px solid buttonshadow";
		borderTop    = "1px solid buttonhighlight";
		borderBottom = "1px solid buttonshadow";
	}
}


/* si le bouton pressé */
function ButtonMakePressed(el) 
{
	with(el.style) 
	{		
		borderLeft    = "1px solid buttonshadow";
		borderRight   = "1px solid buttonhighlight";
		borderTop     = "1px solid buttonshadow";
		borderBottom  = "1px solid buttonhighlight";
		paddingTop    = "2px";
		paddingLeft   = "2px";
		paddingBottom = "0px";
		paddingRight  = "0px";

	}

}



/* arrondi a "précision" chiffres apres la virgule le parametre "value" */
function roundOff(value , precision)
{
	var value_org;
	
	value_org = value;
	
	value = "" + value
	precision = parseInt(precision);
	var whole = "" + Math.round(value * Math.pow(10, precision));
	var decPoint = whole.length - precision;
	
	if(decPoint != 0)
	{
 	       	result = whole.substring(0, decPoint);
        	result += ".";
        	result += whole.substring(decPoint, whole.length);
    	}
    	else
        {
	        result = whole;
    	}
    
    
	if( value_org < 1 )
	{
		result = "0." + result;
	} 
    
	return result;
}




