function inverse() {
	var i;
	var chkboxs = document.getElementsByTagName('INPUT');
	for (i = 0; i < chkboxs.length; ++i)
		if (chkboxs[i].type == 'checkbox')
			chkboxs[i].checked = !chkboxs[i].checked;
	return false;
}

function sel() {
	var i;
	var chkbox0 = document.getElementsByName('0');
	var chkbox1 = document.getElementsByName('1');
	for (i = 0; i < chkbox0.length; ++i) 
		chkbox0[i].checked = !chkbox0[i].checked;
	for (i = 0; i < chkbox1.length; ++i) 
		chkbox1[i].checked = !chkbox1[i].checked;
	return false;
}

//Utilis? dans /hub/demandehubpublic/
function setAnswerHubBody(form, message) {
	form.body.value = message;
	return true;
}

function setBody(form, message) {
	var givePhones = form.givePhones;
	if ("refusedMessage" == message) {
		var message = form.message.value;
		var phone = (null != form.phone) ? form.phone.value : "";
		var mobile = (null != form.mobile) ? form.mobile.value : "";
		
		if (null != form.givePhones) {
			givePhones.checked = false;
		}
		
		form.acceptMessage.value = ("null" != message) ? message : "";
		if (null != form.hiddenphone) {
			form.hiddenphone.value =  phone ;
			form.hiddenmobile.value = mobile;
		}
		form.message.value = form.refusedMessage.value;
		
		if (null != form.phone) {
			form.phone.value = "";
			form.mobile.value = "";
			form.phone.disabled = true;
			form.mobile.disabled = true;
		}
		if (null != form.requestDirectContact) {
			form.requestDirectContact.checked = false;
			form.requestDirectContact.disabled = true;
		}		
	}
	else {
		var hiddenmessage = form.acceptMessage.value;
		var hiddenphone = (null != form.hiddenphone) ? form.hiddenphone.value : "";
		var hiddenmobile = (null != form.hiddenmobile) ? form.hiddenmobile.value : "";
		if (null != form.givePhones) {
			givePhones.checked = true;
		}
		form.message.value = (null != hiddenmessage) ? hiddenmessage : "";
		if (null != form.phone) {
			form.phone.value = hiddenphone;
			form.mobile.value =hiddenmobile;
			form.phone.disabled = false;
			form.mobile.disabled = false;
		}
		if (null != form.requestDirectContact) 
			form.requestDirectContact.disabled = false;
	}
	return;
}

function hidePhones(form) {
	if (!form.givePhones.checked) {
		form.hiddenphone.value = form.phone.value;
		form.hiddenmobile.value = form.mobile.value;
		form.phone.value = "";
		form.mobile.value = "";
		form.phone.disabled = true;
		form.mobile.disabled = true;
	} else {
		form.phone.value = form.hiddenphone.value;
		form.mobile.value = form.hiddenmobile.value;
		form.phone.disabled = false;
		form.mobile.disabled = false;
	}
	return true;
}

// Function r?cup?rant une clef dans le tableau lang pour obtenir la valeur
//, l'affichage de la valeur se fait par une demande de confirmation
// @param : String Clef du tableau global lang
// @param : Tableau de String pour remplacer les @varX
function confirmActionArg(key, translate) {
	return confirm(replaceAllVar(translate, lang[key]));
} // confirmActionArg

// Function r?cup?rant une clef dans le tableau lang pour obtenir la valeur
//, l'affichage de la valeur se fait par une demande de confirmation
function confirmAction(key) {
	return confirm(lang[key]);
} // confirmAction

// Function r?cup?rant une clef dans le tableau lang pour obtenir la valeur
//, l'affichage de la valeur se fait par une alert javascript
function errorAction(key) {
	return alert(lang[key]);
} // errorAction

function preview(form, file) {
	window.open(file);
	return false;
}

var is; 
var isIE3Mac = false; 
// this section is designed specifically for IE3 for the Mac 

if ((navigator.appVersion.indexOf("Mac")!=-1) && (navigator.userAgent.indexOf("MSIE")!=-1) && (parseInt(navigator.appVersion)==3)) 
       isIE3Mac = true; 
else   is = new Is();

function Is () 
{   // convert all characters to lowercase to simplify testing 
    var agt=navigator.userAgent.toLowerCase(); 

    // *** BROWSER VERSION *** 
    // Note: On IE5, these return 4, so use is.ie5up to detect IE5. 
    this.major = parseInt(navigator.appVersion); 
    this.minor = parseFloat(navigator.appVersion); 

    this.nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
                && (agt.indexOf('webtv')==-1)); 

    this.ie   = (agt.indexOf("msie") != -1); 
    this.ie3  = (this.ie && (this.major < 4)); 
    this.ie4  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")==-1) ); 
    this.ie4up  = (this.ie  && (this.major >= 4)); 
    this.ie5  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")!=-1) ); 
    this.ie5up  = (this.ie  && !this.ie3 && !this.ie4); 
} 

function accesImport(){	
if (!isIE3Mac && is.nav) 
	{alert(lang["functions.error.import"]); return false;}
  	else if (!isIE3Mac && is.ie4up)   
  	{return true; }
  	else  {alert(lang["functions.error.import"]); return false;}
}

function inviteContacts() {

var chkBoxes = document.getElementsByTagName('INPUT');

var hiddenFirstName = new Array(0);
var hiddenLastName = new Array(0);
var hiddenEmail = new Array(0);

leformResultat = document.getElementsByName('inviteForm');
var formResultat=leformResultat[0];

var idContact = "";
var nbSelected = 0;

var allMembers = true;

for(i = 0; i < chkBoxes.length; i++)
{
	if (chkBoxes[i].type == 'checkbox' && chkBoxes[i].checked)
	{
//pas de controle de coh?rence
		idContact = chkBoxes[i].getAttribute("Id");
		idContact = idContact.substring(3);
		if ( chkBoxes[i].getAttribute("Name") != "1" ) allMembers = false;
							
		hiddenFirstName[nbSelected] = document.getElementsByName('fn'+idContact)[0].value;
		hiddenLastName[nbSelected] = document.getElementsByName('ln'+idContact)[0].value;		
		hiddenEmail[nbSelected] = document.getElementsByName('em'+idContact)[0].value;	
		nbSelected++;									
	}  	
}

var newHiddenFirstName = new Array(0);
var newHiddenLastName = new Array(0);
var newHiddenEmail = new Array(0);

if (0 == nbSelected) 
	alert(lang["functions.error.selectContact"]);
else {
	for( i = 0; i < nbSelected; i++) {

		newHiddenFirstName[i] = document.createElement('INPUT')
		with (newHiddenFirstName[i] ){
			setAttribute("type", "hidden");
			setAttribute("name", "fn"+i);
			setAttribute("value", hiddenFirstName[i]);
		}

		newHiddenLastName[i] = document.createElement('INPUT')
		with (newHiddenLastName[i] ){
			setAttribute("type", "hidden");
			setAttribute("name", "ln"+i);
			setAttribute("value", hiddenLastName[i]);
		}	
		
		newHiddenEmail[i] = document.createElement('INPUT')
		with (newHiddenEmail[i]){
			setAttribute("type", "hidden");
			setAttribute("name", "em"+i);
			setAttribute("value", hiddenEmail[i]);
		}	

		formResultat.appendChild(newHiddenFirstName[i]);
		formResultat.appendChild(newHiddenLastName[i]);
		formResultat.appendChild(newHiddenEmail[i]);

	}

	if ( allMembers ) {
		with (newHiddenAllMembers = document.createElement('INPUT')){
			setAttribute("type", "hidden"); 
			setAttribute("name", "allMembers");
			setAttribute("value", "true" );
		}
		formResultat.appendChild(newHiddenAllMembers);
	}

}

return nbSelected >0;
}

function deleteContacts() {
var chkBoxes = document.getElementsByTagName('INPUT');

leformResultat = document.getElementsByName('deleteForm');
var formResultat=leformResultat[0];

var idContact = "";
var nbSelected = 0;
var newHiddenId;
var j = 0;
for(i = 0; i < chkBoxes.length; i++)
{
	if (chkBoxes[i].type == 'checkbox' && chkBoxes[i].checked)
	{	
		idContact = chkBoxes[i].getAttribute("Id");
		idContact = idContact.substring(3);
		newHiddenId = document.createElement('INPUT')
		with (newHiddenId){
			setAttribute("type", "hidden");
			setAttribute("name", "contactId"+ j++);
			setAttribute("value", idContact);
		}	
		formResultat.appendChild(newHiddenId);			
		nbSelected++;									
	}  	
}

if (0 == nbSelected) 
	alert(lang["functions.error.selectContact"]);
else if (!confirmAction("functions.confirm.delete")) 
	return false;
return nbSelected > 0;
}

function decision(message) {
	return confirm(message);
}

/* 
 * fonction utilisee lors de l'inscription sur invitation pour avertir
 * l'utilisateur lorsqu'il a change l'adresse email d'inscription au lieu
 * de garder celle qui a servie pour l'invitation
 */
function checkEmail(invitationEmail) {
	var email = document.getElementsByName("email")[0].value;
	var translate = new Array(email);
	return (invitationEmail == email) ? true :  confirm(replaceAllVar(translate, lang["functions.confirm.email"]));
}

function deleteAction(nbCoche) {
	var i;
	var nbSelected = 0;
	for (i = 0; i < nbCoche; ++i) {
		if (document.getElementById("coche" + i).checked) 
			++nbSelected;	
	}
	if (nbSelected == 0)
		alert(lang["functions.error.checkbox"]);
	return (0 < nbSelected) ? decision(lang["functions.confirm.cleanboard"]) : false;
}

function openWebsite(website) {
	window.open(website);
	return false;
}

function doFilter(strToMatch, elementName) {
	
	var element = document.getElementById(elementName);
	
	if (strToMatch.length == 0) {
		if (navigator.appName.match("crosoft")) {
			for (var i = 0; i < element.rows.length; ++i) {			
				element.rows[i].style.display = "block";				
			} 
		} else {
			for (var i = 0; i < element.rows.length; ++i) {			
				element.rows[i].style.display = "table-row";				
			} 	
		}
		return true;
	} 
	else if (strToMatch.length < 2)  {return true;}
	
	
	var pattern = new RegExp("^" + strToMatch, "gi");

	if (navigator.appName.match("crosoft")) {
		for (var i = 0; i < element.rows.length; ++i) {
			element.rows[i].style.display = 
			(element.rows[i].cells[1].firstChild.innerHTML.match(pattern) || document.getElementById("chk" + i).checked)
			? "block" : 
			"none";
		}
	} else {
		for (var i = 0; i < element.rows.length; ++i) {
			element.rows[i].style.display = 
			(element.rows[i].cells[1].firstChild.nextSibling.innerHTML.match(pattern) || document.getElementById("chk" + i).checked)
			? "table-row" : 
			"none";
		}
	}
	return true;
}

//utilisee dans annonceschoixmembres
function verifCheckbox(i) {
	var j = 0;
	for (; j < i; ++j) {
		if (document.getElementById("chk" + j).checked) 
			return true;
	}	
	alert(lang["functions.error.checkbox"]);
	return false;
}

//utilis?e dans /profil/desinscription
function unsubscribe() {
	alert(lang["functions.confirm.deleteAccount"]);
	return confirm(lang["functions.confirm.deleteAccount2"]);
}

function unAttach( attachmentId, doRedirect ) {

		var element = document.getElementById( 'record' + attachmentId );
		if (element != null ) deleteChildren( element, 0 );

		var attachmentForm = document.getElementById( 'attachmentForm' );

		if ( attachmentForm != null  ) {

			if ( !doRedirect ) {
				element = document.getElementById( 'doRedirect' );
				if (element != null ) deleteChildren( element, 0 );
			}

			attachmentForm.submit();
		}
}

function deleteChildren(node,niv){ 
	if (niv > 10) return true;
	if (node.hasChildNodes()){ 
		while(node.hasChildNodes()){ 
			deleteChildren(node.lastChild,niv+1); 
		} 
	}
	else {
		node.parentNode.removeChild(node);
		}
	} 

function highlightURL(niv) {
	var niv=0;
	var cont = true;
	for (j=0;cont;j++){								
		lesResultats = document.getElementById('result'+j);										
		if (lesResultats != null) {								
			highlightLink(lesResultats,niv);
		}	
		else {cont = false;}	
	}			
}

function highlightLink(element, niv) {
  if (niv > 20) return true;
  if (element.nodeType == 3) 
  {
  	  traiteNode(element,niv+1);
  } else {  			    	    	    
	  for (var i = 0; i < element.childNodes.length; i++)
	    if (element.childNodes[i].nodeType == 3 ) {    			 
			traiteNode(element.childNodes[i],niv+1);
	    }
	    else
	      highlightLink(element.childNodes[i], niv+1); 
	}
}

function traiteNode(theNode, niv) {
	
	 	var maRegLink = /(ftp:\/\/|http:\/\/|https:\/\/|www)(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/gi 
		var theText = theNode.nodeValue;
		var ad_parenthese = false;
		
		if (theText != '') {    		
			var theResultatLink = maRegLink.exec( theText) ;
			if (theResultatLink != null) {	    				    	 										
				
				var theTextBefore = document.createTextNode(RegExp.leftContext);								
				
				var theHref = (RegExp.lastMatch.charAt(RegExp.lastMatch.length -1) == "." ? RegExp.lastMatch.substring(0, RegExp.lastMatch.length -1) : RegExp.lastMatch);				
				
				var theCar =  theHref.charAt(theHref.length -1);
				var theString = '';
				var isGood = (theCar >= "a" && theCar <="z" ) || (theCar >= "A" && theCar <="Z" ) || (theCar >= "0" && theCar <="9" );
								
				while ( !isGood && theHref.length > 0 ) {
					theString = theCar + theString; 									
					theHref = theHref.substring(0, theHref.length -1);	
					theCar =  theHref.charAt(theHref.length -1);
					isGood = (theCar >= "a" && theCar <="z" ) || (theCar >= "A" && theCar <="Z" ) || (theCar >= "0" && theCar <="9" ) 								 					
				}											
				
				if (theHref.toLowerCase().indexOf('6nergie')== -1 && theHref.toLowerCase().indexOf('xing') == -1  && theHref.toLowerCase().indexOf('openbc') == -1 && theHref.toLowerCase().indexOf('linkedin')  == -1 ) {
					var theLink = document.createElement("a");
					
					
					// recuperation memberId dans l'URL
					var theUrl = location.href;
					var memberId=0;
					
					if (theUrl.indexOf('?') != -1){
						var theQuery = theUrl.substr(theUrl.indexOf('?')+1);	
						var theQueryTab = theQuery.split('&');						
						
						if (theQueryTab.length >= 1) { // liste des couples param=valeur							
							var i=0;							
							for (i=0;i<theQueryTab.length;i++) {
								 theQueryParamTab = theQueryTab[i].split('=');	// s?paration [0]param [1]valeur
								 
								 if (theQueryParamTab.length >= 1) {
								 	if (theQueryParamTab[0] == "memberId" && theQueryParamTab[1]!="" ){
								 		memberId = theQueryParamTab[1];
								 	}
								 }
							}
						}
					}								
					//alert ("memberid a la fin="+memberId);
					
					// modification de la cible du lien pour passer par click.jsp																											
					var theHrefNew = theHref.indexOf('http') == -1  ? 'http://'+ theHref : theHref;					
					
					// si pas de member id recuperartion du memberid dans la page s'il existe.
					if (memberId == 0 ){ 
						var HiddenMemberIdDansLaPage = document.getElementById('memberId');					
						if (null != HiddenMemberIdDansLaPage){
							
							// test  des valeurs
							if(HiddenMemberIdDansLaPage.value !=0 && HiddenMemberIdDansLaPage.value != '' && HiddenMemberIdDansLaPage.value!=null ){
								memberId = HiddenMemberIdDansLaPage.value;
							}
						}						
					}
					if (memberId != 0 ){
						var theHreftoClick = "http://" + window.location.hostname + "/click.jsp?redirect=" + encodeUrl(theHrefNew) +"&memberId="+memberId;
					}else{
						var theHreftoClick = "http://" + window.location.hostname + "/click.jsp?redirect=" + encodeUrl(theHrefNew);
					}
					
					
					theLink.target = '_blank';
					theLink.setAttribute("href",theHreftoClick);           			
					theLink.innerHTML = theHref;   
					
					// ajout de parenthese					
					var theTextAfter = document.createTextNode(theString + RegExp.rightContext);

					
					var theNewChild = document.createElement('span');						
					theNewChild.appendChild(theTextBefore);	
					theNewChild.appendChild(theLink);
					theNewChild.appendChild(theTextAfter);	
					
					
					var theParent = theNode.parentNode;
					theParent.replaceChild(theNewChild, theNode);										
					
					traiteNode(theNewChild.childNodes[1], niv+1);
					traiteNode(theNewChild.childNodes[2], niv+1);
					
				}
				
			}	   	   	   
													
		}	
}


// Check if a javascript variable has been defined.


function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

/*Gestion langue utilisateur*/
function getLanguage(defaultLanguage) {
	var langIso;
	for (var i = 0; i < defaultLanguage.length; i++) {
		if (defaultLanguage[i].checked) {
			langIso = defaultLanguage[i].value;
		}
	}
	Language.getSortListLanguage(listLanguage, langIso);
} // getLanguage

var listLanguage = function(data) {
	  for (var i in data)
	  		DWRUtil.setValue(i,data[i]);
} // listLanguage
/*Gestion langue utilisateur*/

/*Gestion moteur de recherche*/
function suggestSearch(idInput, suggestWord) {
	document.getElementById(idInput).value = suggestWord;
	document.getElementById('formSearch').submit();	
} // suggestSearch
/*Gestion moteur de recherche*/

/* fonction url encode */
function encodeUrl(str) {
	var result = "";
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	return escape(result);
}
/* fonction utl encode */

function checkTheBox(checkBox) 
{
	if(myCheckBox = document.getElementById(checkBox))
	{
		if (myCheckBox.checked == false)
  		{
      		myCheckBox.checked = true;
  		}
  	}
  
  return true;
}

var mainWindow = null;

function colorChoice(formulaire, nom_champ) {
    // ouvre une fenêtre afin de sélectionner une couleur, qui sera transmise au champ dont le nom est en argument
    // 2 arguments : le formulaire (this.form dans l'appel de la fonction) et le nom du champ
    // pour éviter d'ouvrir plusieurs fenêtres simultanées 
    if (mainWindow && !mainWindow.closed) mainWindow.close();
    // passe 2 paramètres à index1.jsp : le nom du formulaire et celui du champ
    mainWindow = window.open("/outils/color/index.jsp?" + formulaire + "&" + nom_champ, "fenCouleurs", "width=400,height=270,resizable=1");
    if (!mainWindow.opener) mainWindow.opener = self;
    nom_champ.onSelect="1";
    return false;
}
/*
 * selectAll: permet de selectionner un text d'un textarea.
 */
function selectAll(theField) {
	var tempval=eval("document."+theField);
	tempval.focus();
	tempval.select();
	copiedTxt = document.selection.createRange();
   	copiedTxt.execCommand("Copy");
	return true;
}