// JavaScript Document

//************************************************
// Affichage des sous-menus 
//************************************************
var arrImg = new Array();

sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

//****************************************************************
// Fonction d'import des animations Flash 
//****************************************************************

function RunFlash(swf, hauteur, largeur, nom) {
	document.write("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,22,0\" width=\""+hauteur+"\" height=\""+largeur+"\" id=\""+nom+"\">\n");
	document.write("<param name=\"quality\" value=\"high\">\n");
	document.write("<param name=\"wmode\" value=\"transparent\">\n");
	document.write("<param name=\"movie\" value=\""+swf+"\">\n");
	document.write("<embed src=\""+swf+"\" quality=\"high\" wmode=\"transparent\" width=\""+hauteur+"\" height=\""+largeur+"\""
				   +" name=\""+nom+"\" align=\"middle\" type=\"application/x-shockwave-flash\""
				   +" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" swLiveConnect=\"true\">\n");
	document.write("</object>\n");
}

//************************************************
// Affichage du POPUP du plan d'accès 
//************************************************

function funcPopupPlan(varUrl)
	{
	WinPopUpPlan = window.open (varUrl, "PopUpPlan", "height=579, width=700, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no");
	WinPopUpPlan.focus();
	var ScreenW = screen.availWidth;
	var ScreenH = screen.availHeight;
	WinPopUpPlan.moveTo((ScreenW-600)/2, (ScreenH-600)/2);
	}


//************************************************
// Affichage du POPUP d'envoi de page 
//************************************************

function funcPopup(varUrl, varWidth, varHeight)
	{
	WinPopUpPlan = window.open (varUrl, "PopUp", "height="+ varHeight +", width="+ varWidth +", toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no");
	WinPopUpPlan.focus();
	var ScreenW = screen.availWidth;
	var ScreenH = screen.availHeight;
	WinPopUpPlan.moveTo((ScreenW-600)/2, (ScreenH-600)/2);
	}

//************************************************
// fonction permettant l'affichage du POPUP image
//************************************************
function funcPopupImg(varId,varFileField,varTab,varLabel)
	{
		//title='" + escape(varLabel) + "'
	var strHtmlCode =	"<html>"
						+"<head><link href='_css/web.css' rel='stylesheet' type='text/css'></head>"
						+"<body class='zoom'>"
						+"<div><img src='_inc/IMG_DbImgView.asp?strTable="+varTab+"&strSelectField="+varTab+"Id&strSelectValue="
						+ varId +"&strFileField=" + varFileField + "&blnAffiche=oui&strImgNoFile=images/_charte/NoFile.gif"
						+ "' onload='window.opener.funcPopupResizeToImg();'>"
						+ "<br>"
						+ varLabel + "<br>"
						+ '<a href="#" onClick="window.print();">[imprimer l\'image]</a></font></div>'
						+ "</div>"
						+"</body></html>";
	
	WinPopUpImg = window.open ("", "PopUpImg", "toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no");
	WinPopUpImg.document.write(strHtmlCode);
	WinPopUpImg.document.close();
	WinPopUpImg.document.title= "Zoom image";
	WinPopUpImg.focus();
	}

//fonction permettant de redimensionner le POPUP en fonction de la taille de l'image
function funcPopupResizeToImg()
	{
	var ScreenW = screen.availWidth;
	var ScreenH = screen.availHeight;
	var ImgW = WinPopUpImg.document.images[0].width;
	var ImgH = WinPopUpImg.document.images[0].height;
	WinPopUpImg.resizeTo(ImgW+20, ImgH+100);
	WinPopUpImg.moveTo((ScreenW-ImgW)/2, (ScreenH-ImgH)/2);
	}

//****************************************************************
// Gestion de l'affichage du contenu du title d'un lien ou du alt d'une image
//****************************************************************

var niceTitleDummy;
var varTxt = "";

function initNiceTitle()
	{
	niceTitleDummy = document.createElement("div");
	niceTitleDummy.style.position = "absolute";
	niceTitleDummy.className = "nicetitle";
	niceTitleDummy.style.left = "-1000em";
	niceTitleDummy.style.top = "-1000em";
	document.body.appendChild(niceTitleDummy);
	}

function hideNiceTitle(e) {
	var lnk = getNodeWithTag(getEventTarget(e), "a");
	if (varTxt != "")
		{
		lnk.setAttribute("title",varTxt);
		varTxt = "";
		}
	niceTitleDummy.style.left = "-1000em";
	niceTitleDummy.style.top = "-1000em";
	niceTitleDummy.innerHTML = "";
	}

function showNiceTitle(e) {
	var lnk = getNodeWithTag(getEventTarget(e), "a");
	var spanEls = lnk.getElementsByTagName("SPAN");
	for (var i=0; i<spanEls.length; i++)
		{
		spanEls[i].setAttribute("title","");
		}
	if (window.event)
		{
		x = window.event.clientX+document.body.scrollLeft; 
		y = window.event.clientY+document.body.scrollTop;
		}
	else
		{
		x = e.clientX + window.scrollX; 
		y = e.clientY + window.scrollY;
		}

	if (varTxt == "")
		{
		varTxt = lnk.getAttribute("title");
		lnk.setAttribute("title","");
		}

	niceTitleDummy.style.left = x+7;
	niceTitleDummy.style.top = y+18;
	niceTitleDummy.innerHTML = "<img src='images/nt_img.gif'><br><div>"+ varTxt +"</div>";
	}

function makeNiceTitles()
	{
	for (var i=0; i<document.links.length; i++)
		{
		var lnk = document.links[i];
		if (lnk.title)
			{
			addEvent(lnk, "mousemove", showNiceTitle);
			addEvent(lnk, "mouseout", hideNiceTitle);
			}
		}
	initNiceTitle();
	}

var niceAltDummy;
var varAltTxt = "";

function initNiceAlt()
	{
	niceAltDummy = document.createElement("div");
	niceAltDummy.style.position = "absolute";
	niceAltDummy.className = "nicetitle";
	niceAltDummy.style.left = "-1000em";
	niceAltDummy.style.top = "-1000em";
	document.body.appendChild(niceAltDummy);
	}

function hideNiceAlt(e) {
	var img = getNodeWithTag(getEventTarget(e), "img");
	if (varAltTxt != "")
		{
		img.setAttribute("alt",varAltTxt);
		varAltTxt = "";
		}
	niceAltDummy.style.left = "-1000em";
	niceAltDummy.style.top = "-1000em";
	niceAltDummy.innerHTML = "";
	}

function showNiceAlt(e) {
	var img = getNodeWithTag(getEventTarget(e), "img");
	if (window.event)
		{
		x = window.event.clientX+document.body.scrollLeft; 
		y = window.event.clientY+document.body.scrollTop;
		}
	else
		{
		x = e.clientX + window.scrollX; 
		y = e.clientY + window.scrollY;
		}

	if (varAltTxt == "")
		{
		varAltTxt = img.getAttribute("alt");
		img.setAttribute("alt","");
		}

	niceAltDummy.style.left = x+7;
	niceAltDummy.style.top = y+18;
	niceAltDummy.innerHTML = "<img src='images/nt_img.gif'><br><div>"+ varAltTxt +"</div>";
	}

function makeNiceAlts()
	{
	for (var i=0; i<document.images.length; i++)
		{
		var img = document.images[i];
		if (img.alt)
			{
			addEvent(img, "mousemove", showNiceAlt);
			addEvent(img, "mouseout", hideNiceAlt);
			}
		}
	initNiceAlt();
	}

function addEvent(obj, evType, fn){
	if (obj.attachEvent){
		return obj.attachEvent("on" + evType, fn);
	} else if (obj.addEventListener){
		obj.addEventListener(evType, fn, true);
		return true;
	} else {
		return false;
	}
}

function getEventTarget(event)
{
	if (window.event && window.event.srcElement)
		return window.event.srcElement;
	else if (event && event.target)
		return event.target;
	return null;
}

function getNodeWithTag(el, tag) {
	// toLowerCase is for Gecko bug, supposed to be uppercase
	tag = tag.toLowerCase();
	while ((el != null) && ((el.nodeType != 1) || (el.tagName.toLowerCase() != tag)))
		el = el.parentNode;
	return el;
}

//************************************************
// Mise à jour de la carte de recherche des adhérents 
//************************************************
var varInit = false;
function funcUpdateMap(varObj,varValue)
	{
	var objMap;
	if (window.attachEvent)
		{
		objMap = document.getElementById("AdherentSearchMap");
		}
	else
		{
		objMap = document["AdherentSearchMap"];
		}
	if ((varObj.type == "checkbox") && (varInit == false))
		{
		if (varObj.value == 0)
			{
			varObj.value = 1;
			varValue = 1;
			}
		else
			{
			varObj.value = 0;
			varValue = "";
			}
		}
	if (objMap != null)
		{
		if (varObj.name == "AdFermeCodepostal")
			{
			if (varValue.length == 5)
				{
				objMap.SetVariable('KbGeolocalCpMin',varValue);
				objMap.SetVariable('KbGeolocalCpMax',(varValue*1)+1);
				objMap.Play();
				}
			if (varValue.length == 0)
				{
				objMap.SetVariable('KbGeolocalCpMin',43000);
				objMap.SetVariable('KbGeolocalCpMax',44000);
				objMap.Play();
				}
			}
		else
			{
			objMap.SetVariable(varObj.name,varValue);
			objMap.Play();
			}
		}
	}

// Initialisation de la carte
function funcInitMap()
	{
	varInit = true;
	var objForm;
	var objMap;
	if (window.attachEvent)
		{
		objForm = document.getElementById("formAdherentSearch");
		objMap = document.getElementById("AdherentSearchMap");
		}
	else
		{
		objForm = document.getElementById("formAdherentSearch");
		objMap = document["AdherentSearchMap"];
		}
	if ((objForm != null) && (objMap != null))
		{
		for (i=0; i<objForm.length; i++)
			{
			if ((objForm.elements[i].type == "checkbox") && (objForm.elements[i].checked == false))
				{
				//on ne tient pas compte du champ
				}
			else
				{
				funcUpdateMap(objForm.elements[i],objForm.elements[i].value);
				}
			}
		}
	varInit = false;
	}

//************************************************
// Surbrillance des lignes des tableaux d'adhérents 
//************************************************

sfHover = function() {
	if (document.getElementById("AdherentList") != null)
		{
		var sfEls = document.getElementById("AdherentList").getElementsByTagName("TR");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

//************************************************
// Fonction gérant l'affichage des blocs éléments
//************************************************

function funcDisplayDiv(varObj)
	{
	if (varObj.style.display == "block")
		varObj.style.display = "none";
	else
		if (varObj.style.display == "none")
			varObj.style.display = "block";
		else
			varObj.style.display = "none";
	}

//************************************************
// Initialisation de la page 
//************************************************
function funcOnload()
	{
	makeNiceTitles();
	makeNiceAlts();
	funcInitMap();
	}
	
//-------------------------------------------------------------------------------
//	Fonction de suppression d'une image en base
//-------------------------------------------------------------------------------
function funcImgDelToDb(varTable, varSelectField, varSelectValue, varFileField, varBlnMsg, varReload)
	{
	var	strMessage = "<h4><center><font color=#FF0000>La suppression de l'image est en cours</font></center></h4>"
					+'<div align="center"><img src="images/progression.gif"></div><br><br>';
	var strHtmlCode = 	 "<html>"
 						+"<body leftmargin=3 topmargin=3 marginwidth=3 marginheight=3 onBlur='focus();'>"
						+"<div align='left'><font color='#000000' style='font-family:Verdana, sans-serif;font-size:11;'>" + strMessage + "&nbsp;&nbsp;</font></div>"
						+ "</div>"
						+"</body></html>";
	WinPopupImgDel = window.open ("_inc/funcImgUpload.asp?strAction=delete&strTable=" + varTable + "&strSelectField=" + varSelectField + "&strSelectValue=" + varSelectValue + "&strFileField=" + varFileField, "popupImgDel", "height=800, width=450, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, center=yes, directories=no, status=no, modal=1");
	}

	
//-------------------------------------------------------------------------------
//	Fonction de lancement d'un upload d'image en base
//-------------------------------------------------------------------------------
function funcImgToDb(varPath, varTable, varSelectField, varSelectValue, varFileField, varBlnMsg, varReload)
	{
		alert("ok");
	var ado_stream = new ActiveXObject("ADODB.Stream");

	var xml_dom = new ActiveXObject("MSXML2.DOMDocument");
	xml_dom.loadXML('<?xml version="1.0" ?> <root/>');
	xml_dom.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes");

	var l_node1 = xml_dom.createElement("file1");
	l_node1.dataType = "bin.base64";
	if (varPath != "")
	   	{
		// open stream object and read source file
		ado_stream.Type = 1;  // 1=adTypeBinary 
		ado_stream.Open(); 
		ado_stream.LoadFromFile(varPath);
	
	   // store file content into XML node
	   l_node1.nodeTypedValue = ado_stream.Read(-1); // -1=adReadAll
	   ado_stream.Close();
	   xml_dom.documentElement.appendChild(l_node1);
		// send XML document to SysWeb server
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		xmlhttp.open("POST","_inc/funcImgUpload.asp?strAction=upload&strTable="+ varTable +"&strSelectField="+ varSelectField +"&strSelectValue="+ varSelectValue +"&strFileField=" + varFileField + "&strPath=" + varPath, false);
		xmlhttp.send(xml_dom);
		}
	else
		{
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		xmlhttp.open("POST","_inc/funcImgUpload.asp?strAction=delete&strTable="+ varTable +"&strSelectField="+ varSelectField +"&strSelectValue="+ varSelectValue +"&strFileField="+ varFileField, false);
		xmlhttp.send(xml_dom);
		}
	
//   	if (varBlnMsg)
		alert(xmlhttp.responseText);

	if (varReload == 1)
		window.location.href = window.location.href;
}

//-------------------------------------------------------------------------------
// Fonction de suppression d'une image
//-------------------------------------------------------------------------------
function funcImgDelete(varImg)
	{
	varImg.outerHTML = '<img alt="' + varImg.alt + '" id="' + varImg.id + '" title="Photo" src="images/_charte/NoFile.gif" onLoad="funcRedimImg(this,200,200);">';
//	alert(varImg.outerHTML);
	}

function funcImgChange(varImg, varSrc)
	{
	varImg.outerHTML = '<img alt="' + varImg.alt + '" id="' + varImg.id + '" title="Photo" src="' + rewriteLocalURL(varSrc) + '" onLoad="funcRedimImg(this,200,200);">';
	varImg.src = varSrc;
//	alert('ImgChange : ' +varImg.outerHTML);
	}

function funcChgImg(varForm, varPath, varTable, varSelectField, varSelectValue, varFileField, varMaxWidth, varMaxHeight)
	{
//alert ('ok')	;
	// Affichage de l'image
	var strSrc = '';
	var tempHtml = document.getElementById(varFileField + 'Viewer').outerHTML;
	var strTitle1 = "Placer le pointeur hors de la photo pour afficher celle-ci dans sa taille réduite";
	var strOuterHtml = '<img id="' + varFileField + 'Viewer" >';
	var strOuterHtml2 = '<img id="' + varFileField + 'Viewer"  title="cliquez pour afficher l\'image dans sa taille réelle" ';
	strOuterHtml2 +=    'onClick="this.width=this.alt;this.title=\'Placer le pointeur hors de la photo pour afficher celle-ci dans sa taille réduite\'" ';
	strOuterHtml2 +=    'onMouseLeave="this.title=\'Cliquer pour afficher la photo dans sa taille réelle\';if (this.width > 152) this.width=150;" ';
	strOuterHtml2 +=	   ' >';
	document.getElementById(varFileField + 'Viewer').outerHTML = strOuterHtml;
	if (varPath != "")
		strSrc = varPath;
	else
		strSrc = "images/NoFile.gif";
	document.getElementById(varFileField + 'Viewer').src = strSrc;
	var intWidth = document.getElementById(varFileField + 'Viewer').width;
	var intHeight = document.getElementById(varFileField + 'Viewer').height;
	document.getElementById(varFileField + 'Viewer').outerHTML = strOuterHtml2;
	document.getElementById(varFileField + 'Viewer').src = strSrc;			
//alert(document.getElementById(varFileField + 'Viewer').width);
	if (varSelectValue > 0)
		{
		if ((document.getElementById(varFileField + 'Viewer').width > varMaxWidth) || (document.getElementById(varFileField + 'Viewer').height > varMaxHeight))
			alert("L'image va être redimensionnée au format "+ varMaxWidth +" pixels X "+ varMaxHeight +" pixels, car elle est trop grande (" + intWidth + " pixels X " + intHeight + " pixels).\nL'opération peut durer de 30 secondes à 1 minute selon la taille.");		
		for (var i=0; i<document.all[varForm].length ; i++)
			if (document.all[varForm][i].name.toLowerCase() == varFileField.toLowerCase())
				{
//				if (varPath.toLowerCase().indexOf('.gif') > -1)
//					if (confirm("S'agit-il d'un Gif animé") == true)
//						funcImgToDb(varPath, varTable, varSelectField, varSelectValue, varFileField, true, true);
//					else
						funcImgToDb(varPath, varTable, varSelectField, varSelectValue, varFileField, true, false);
//				else
					funcImgToDb(varPath, varTable, varSelectField, varSelectValue, varFileField, true, false);
				break;
				}
		}
	else
		if ((document.getElementById(varFileField + 'Viewer').width > varMaxWidth) || (document.getElementById(varFileField + 'Viewer').height > 600))
			alert("L'image sera redimensionnée au format "+ varMaxWidth +" pixels X "+ varMaxHeight +" pixels, car elle est trop grande (" + intWidth + " pixels X " + intHeight + " pixels).");
	}



//-------------------------------------------------------------------------------
//	Fonction de redimensionnement des images
//-------------------------------------------------------------------------------
function funcRedimImg(varImg, varWidth, varHeight)
	{
	var oldWidth = varImg.width;
	var oldHeight = varImg.height;
	arrImg[varImg.alt] = varImg.width + 'X' + varImg.height;
//	alert(varImg.alt + ' - ' + arrImg[varImg.alt]);
//	alert(varImg.width + ' X ' + varImg.height);
	var newWidth = oldWidth;
	var newHeight = oldHeight;
	if (varImg.width > varWidth)
		{
		newWidth = varWidth;
		newHeight = Math.round((varWidth/oldWidth) * oldHeight);
		varImg.width = newWidth;
		varImg.height = newHeight;
		oldWidth = newWidth;
		oldHeight = newHeight;
		}
	if (newHeight > varHeight)
		{
		newHeight = varHeight;
		newWidth = Math.round((varHeight/oldHeight) * newWidth);
		varImg.width = newWidth;
		varImg.height = newHeight;
		}
	}
	
//****************************************************************
// Gestion des INPUT d'authentification
//****************************************************************
function funcChgElt(varElt)
	{
	var oElt;
	try
		{
		oElt = document.createElement('<input type="password" name="' + varElt.name + '" id="' + varElt.id + '" value="">');
		varElt.insertAdjacentElement("BeforeBegin",oElt);
		varElt.outerHTML = '';
		oElt.focus();
		oElt.select();
		}
	catch(e) {}
	if (!oElt || !oElt.name)
		{
		varElt.type = 'password';				
		varElt.value = '';
		}
	}	
	
window.onload = funcOnload;

