var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

// resize fix for ns4
var origWidth, origHeight;
if (ns4) {
	origWidth = window.innerWidth; origHeight = window.innerHeight;
	window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 400;
var offX= 20;	// how far from mouse to show tip
var offY= 6; 
var tipFontFamily= "tahoma, arial, helvetica, sans-serif";
var tipFontSize= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "#000000";
var tipBgColor= "#DDECFF"; 
var tipBorderColor= "#000080";
var tipBorderWidth= 2;
var tipBorderStyle= "ridge";
var tipPadding= 3;

// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing: 
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
messages[0] = new Array('images/frisea.jpg','Here is a red balloon on a white background','black','white');
messages[1] = new Array('images/frisea.jpg','Pour passage de vis ou pour protection des composants','black','white');
messages[2] = new Array('images/friseb.jpg','A Fixer, clipper ou sur cable','black','white');
messages[3] = new Array('images/frisec.jpg','A fixer, à clipper ou à griffer','black','white');
messages[4] = new Array('images/frised.jpg','A empreintes ou à butée','black','white');
messages[5] = new Array('images/frisee.jpg','A pincer ou coulissant','black','white');
messages[6] = new Array('images/frisef.jpg','','black','white');
messages[7] = new Array('images/friseg.jpg','','black','white');
messages[8] = new Array('images/friseh.jpg','','black','white');
messages[9] = new Array('images/frisei.jpg','Entretoises, simples ou inserts','black','white');
messages[10] = new Array('images/frisej.jpg','Par goujon de  1/4 de tour ou par clippage du goujon','black','white');
messages[11] = new Array('images/frisek.jpg','','black','white');
messages[12] = new Array('images/menu/a1.jpg','Pour passage de vis : Les renfort métalliques pour passage de vis permettent de sécuriser un panneau, afin de l assembler à l aide de vis dans un montage. Ils sont toujours facilement démontable et réutilisables, ils se différencient par leurs formes (ouverts, fermés, avec ou sans désengagement) et par leur méthodes d assemblage (à clipper, à pincer ou à griffer).Ces clips s appliquent généralement sur des matières plastiques ( ou fragiles et malléables)','black','white');
messages[13] = new Array('images/menu/a2.jpg','Pour protection de composant : Les renforts métalliques pour protection de composants permettent de sécuriser un élément à insérer dans un assemblage. Ils peuvent être démontables dans certains cas, et réutilisables. Ils se différencient par leur formes, leurs méthodes d assemblages, et leurs fonctions. Certains admettent le passage d un composant, d autres élimineront simplement certaines contraintes à leur supports, du type frottement pour pièces plastiques','black','white');
messages[14] = new Array('images/menu/b1.jpg','A fixer : Attaches câbles à fixer sur panneaux, (à l aide de vis, rivets...) permettant le maintien de câbles de différentes sections dans un assemblage (ovoïde, carré, rectangulaire, tubulaires)','black','white');
messages[15] = new Array('images/menu/b2.jpg','A clipper : Attaches câbles à clipper sur panneaux, (de faible épaisseur) permettant d assembler des tubes ou des câbles dans un montage, certains sont démontables, et réutilisables.','black','white');
messages[16] = new Array('images/menu/b3.jpg','Sur câble : Attaches câbles sur câbles, permettant le maintien de câbles en les assemblant deux par deux. Facilement démontables et réutilisables','black','white');
messages[17] = new Array('images/menu/c1.jpg','A fixer : Clip câbles à fixer sur panneaux, (à l aide de vis, rivets...) permettant le maintien de plaques de différentes épaisseurs dans un assemblage. certains sont démontables, et réutilisables','black','white');
messages[18] = new Array('images/menu/c2.jpg','A clipper : Fixation pour panneaux à clipper, permettant d assembler des plaques. Facilement démontables et réutilisables','black','white');
messages[19] = new Array('images/menu/c3.jpg','Sur câble : Fixation pour panneaux à griffer, permettant le maintien de divers composant (tubes, plaques...) souvent utilisés comme contact ressort dans un assemblage. Ils sont souvent démontables et réutilisables','black','white');
messages[20] = new Array('images/menu/d1.jpg','A empreintes : Les freins de vis à empreintes permettent l arrêt en rotation de la vis un fois montée dans un assemblage (la vis est immobilisée une fois dans l empreinte). Ils sont facilement démontables et réutilisables. Ils s appliquent aux vis à tête hexagonale.','black','white');
messages[21] = new Array('images/menu/d2.jpg','A butée : Les freins de vis à butées permettent l arrêt en rotation de la vis une fois montée dans un assemblage (le clip exerce une force sur la tête de vis afin de l immobiliser). Ils sont facilement démontables et réutilisables, ils s appliquent aux vis à tête hexagonale.','black','white');
messages[22] = new Array('images/menu/e1.jpg','A pincer : Composé d un clip et d un écrou carée en acier, il se pince sur un rebord de tôle perforée et autorise les fixations "en aveugle" lors de l assemblage final, avec un couple de serrage très élevé..','black','white');
messages[23] = new Array('images/menu/e2.jpg','Coulissant : Composé également d un clip et d un écrou carré en acier, il se loge dans un profilé et permet ainsi un très grand déplacement.','black','white');
messages[24] = new Array('images/menu/f1.jpg','Ces anneaux ont la particularité de se déformer élastiquement, ils s arc-boutent sur des tiges lisses (axes, rivets, tubes...) lors des efforts opposés au sens du montage. Leur mise en place est instantanée, et ils donnent une élasticité au montage résistant ainsi aux vibration. La présence d une gorge renforce l indémontabilité. Ils se présentent sous différentes formes et peuvent être également être réalisé pour des applications spéciales par soucis de forme, de résistance ou d encombrement ','black','white');
messages[25] = new Array('images/menu/g1.jpg','Les ressorts molettes s insèrent généralement dans des montages afin de venir leur appliquer une force à l aide d une molette, de manière à contraindre le ressort et à jouer sur sa flexion. Ceci permet généralement d obtenir un ou plusieurs arrêts (cran), qui sont fonction du nombre de dents que comporte la molette (elles peuvent être rentrantes ou sortantes). Ils sont souvent facilement démontables et réutilisables et se différencient par leurs formes (plat, avec butée, avec griffe), et par leurs méthodes d assemblage (à clipper, à glisser ou à griffer). Ces clips s appliquent généralement sur des matières plastiques (ou fragiles et malléables). ','black','white');
messages[26] = new Array('images/menu/h1.jpg','Montage sur partie réceptrice par la face avant et totalement en aveugle. L effort de clippage est très faible et peut s appliquer manuellement. L assemblage est démontable de façon traditionelle.','black','white');
messages[27] = new Array('images/menu/i1.jpg','Bague entretoises : Bagues entretoises, permettant de se mettre en position, elles peuvent êtres circulaires, oblongues, rayonnées ou chanfreinées.','black','white');
messages[28] = new Array('images/menu/i2.jpg','Bagues simples : Bagues permettant le renfort d éléments dans divers montages. Certaines bagues ont la particularité de pouvoir être roulées au diamètre voulu en adoptant un système d attache en "T" sécurisé par un poinçonnage/sertissage. D autres sont simples avec les arêtes chanfreinées.','black','white');
messages[29] = new Array('images/menu/i3.jpg','Bagues inserts : Insert généralement moulés ou glissés dans un logement, permettant la protection de son support, ainsi que la possibilité de fixation de celui ci.','black','white');
messages[30] = new Array('images/menu/j1.jpg','Par goujon 1/4 de tour : L ensemble goujon et clip 1/4 de tour assure une fermeture sécurisée. Le clip se met en place par simple clippage dans un poinçonnage carré par l extérieur du support. Le 1/4 de tour s applique manuellement sans l aide d aucun outil..','black','white');
messages[31] = new Array('images/menu/j2.jpg','Par clippage du goujon : Avec un goujon adapté à deux clips identiques, on obtient une fermeture et une ouverture par simple poussée et traction. Le goujon reste en place sur la partie amovible, le système de fermeture étant assuré par l élasticité du ressort traité.','black','white');
messages[32] = new Array('images/menu/k1.jpg','Nos équipe de développements sont en mesure de définier des pièces selon votre besoin fonctionnel. Des prototypes seront alors réalisés pour approbation. Les clips présentés ci-après répondent à des applications spéciales demandées par nos clients','black','white');

////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var i=0; i<messages.length; i++) {
  	theImgs[i] = new Image();
		theImgs[i].src = messages[i][0];
  }
}

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles for all but ns4. 
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ns4)? document.tipDiv.document: (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = (ns4)? document.tipDiv: tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		if (ns4) document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = trackMouse;
	}
}

window.onload = initTip;

/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,num) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	// set colors if included in messages array
	if (messages[num][2])	var curBgColor = messages[num][2];
	else curBgColor = tipBgColor;
	if (messages[num][3])	var curFontColor = messages[num][3];
	else curFontColor = tipFontColor;
	if (ns4) {
		var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>'+ startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
		tooltip.write(tip);
		tooltip.close();
	} else if (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
		tipcss.backgroundColor = curBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
	mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
	mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
		mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ns4)? tooltip.width: (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ns4)? tooltip.height: (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns4||ns5)? window.innerWidth-20+window.pageXOffset: document.body.clientWidth+document.body.scrollLeft;
	var winHt = (ns4||ns5)? window.innerHeight-20+window.pageYOffset: document.body.clientHeight+document.body.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = (ns4)? mouseX-(tpWd+offX): mouseX-(tpWd+offX)+"px";
	else tipcss.left = (ns4)? mouseX+offX: mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = (ns4)? winHt-(tpHt+offY): winHt-(tpHt+offY)+"px";
	else tipcss.top = (ns4)? mouseY+offY: mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}

//-->
