var req_global = null;
function getXHR(){
var newReq = null;
	if(window.XMLHttpRequest) 
	{
		try 
		{
		newReq = new XMLHttpRequest();
		}
		catch(e) 
		{
		newReq = false;
		}
	}
	else if(window.ActiveXObject) 
	{
		try 
		{
		newReq = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) 
		{
			try 
			{
			newReq = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) 
			{
			newReq = false;
			}
		}
	}
return newReq;
}


function loadXHR(URL,methode,ID,data) {

	var req = getXHR();
	req_global = req;
	
	if(req) 
	{
	req.onreadystatechange=function(){
    	if (req.readyState == 4 && req.status == 200) {
		rhttp = req.responseText;
			if(methode=="GET" && data.length>0)
			{
				for(i=0;i<data.length;i++)
				{
				if(data[i]=="display") document.getElementById(ID).style.display='block';
				if(data[i]=="undisplay") document.getElementById(ID).style.display='none';
				if(data[i]=="HTML") document.getElementById(ID).innerHTML = rhttp;
				if(data[i]=="TXT") document.getElementById(ID).innerText = rhttp;
				if(data[i]=="SRC") document.getElementById(ID).src = rhttp;
				if(data[i]=="VALUE") document.getElementById(ID).value = rhttp;
				}
			}
		}
	}	
	
	req.open(methode,URL,true);
		if(methode=="POST"){
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	  	req.send(data);
		}
		else
		{
		req.send(null);
		}
	}
	else
	{
	return "XHRKO"; //"alert("The XMLHttpRequest Object is not supported");
	}
}

function processReqChange(ID) {
	var req = req_global;
	if (req.readyState == 4) 
	{
		if (req.status == 200 || req.status == 0) 
		{ // c ok
//		alert(req.responseText);
		httpd = req.responseText;
		document.getElementById(ID).innerHTML = rhttp;	
//		executeJs(rhttp);
		}
		else 
		{ // echec de l'affichage
		alert("There was an issue retrieving the data:\n" +
				"Reason: " + req.statusText);
		}
	}
}



function ajax(URL,methode,ID,data){
	xhr=null;
	getXhr();
	
	xhr.onreadystatechange=function(){
	
    	if (xhr.readyState == 4 && xhr.status == 200) {
		
		rhttp = xhr.responseText;
		
		//executeJs(rhttp);

		document.getElementById(ID).innerHTML = rhttp;
		}
	}

	xhr.open(methode,URL,true);
	if(methode=="POST"){
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  	xhr.send(data);
	}
	else
	{
	xhr.send(null);
	}
}

function transData(myForm){
	var NbElemnt = myForm.length;
	var n = 0;
	var result ="";
		
	for (i=0;i<NbElemnt;i++)
	{
	
	Id =  myForm.elements[i].id;
	
		if (Id!="")
		{
		valeur = document.getElementById(Id).value;
			if(n>0) result = result+"&";
		result = result +Id+ "=" +valeur ;
		n++;
		}
	}
return result;
}

/****************************************************************************/
/**** Stucture d'appel des fonction ajax ************************************/
/**** ajax(URL,METHOD,ID,DATA);				*********************************/
/**** URL 		: adresse de la page à charger	*****************************/
/**** METHOD 	: Method de transfer GET ou  POST pour un formulaire ********/
/**** ID 		: Id du champ de retour *************************************/
/**** DATA 		: Liste en get des arguments post traite par transData ******/
/****************************************************************************/

function executeJs(string){
var len = string.length;
var start = string.indexOf("<script")

	if(start===0 || start>0) // il y a au moins un script dans le code
	{
		if(string.lastIndexOf("<script")==start) // il n'y a qu'un seul script dans le code
		{
		var start = start;
		var Start = eval(start+string.substring(start).indexOf(">"));
		var Stop  = eval(Start+string.substring(Start).indexOf("</script>"));
		eval(string.substring(eval(Start+1),Stop));
		}
		else
		{
			while(string.lastIndexOf("<script")>start)
			{
			var start = eval(start+string.indexOf("<script"));
			var Start = eval(start+string.substring(start).indexOf(">"));
			var Stop  = eval(Start+string.substring(Start).indexOf("</script>"));
				if(start===0 || start>0)
				{
//				alert(start+" -- "+Start+" -- "+Stop);
				eval(string.substring(eval(Start+1),Stop));
				start = Stop+9;
				}
			}
		}
	}
}

/******** simplification des appels ************/
function _Elem(ID){
return document.getElementById(ID);
}

function displayTmpIframe(name,target,display){
	tmpFrame = '';
	tmpFrame += '<iframe name="'+name+'" style="width:80%;height:150px;border:1px blue solid;display:'+display+';">';
	tmpFrame += '</iframe>';
	document.getElementById(target).innerHTML=tmpFrame;
}

function changeCouleur(ligne,color) {
ligne.bgColor = color;
}

function remetCouleur(ligne,color) {
ligne.bgColor = color;
}

function showcgv(){
var openWin = window.open('/juridique/cgv.pdf','CGV','width=800, height=600,location=no,menubar=no,scrollbars=yes');
}

function _IE(){
isIEdoctype = navigator.appName == "Microsoft Internet Explorer" && document.documentElement && navigator.userAgent.indexOf ("Opera") == -1;
return isIEdoctype;
}

function showHelp(help)
{
var URL = "";
	switch(help)
	{
	case 'pa'		: var URL = "/aide/index.php?cat=1&section=1"; break;
	case 'webmail'	: var URL = "/aide/index.php?cat=3&section=1"; break;	
	case 'confident': var URL = "/aide/index.php?cat=4&section=1"; break;
	}

	if(URL.length>0)
	{
	newwindow = window.open(URL,"aide","width=500,height=400,resizable=yes,status=no,location=no,scrollbars=yes");
	newwindow.focus();		
	return false;
	}
}

/*** leftMenu ***/

function librairie(valeur){
top.window.location = _filename['v_librairie']+"?cat="+valeur+"";
}

function gotoPage(myForm){

	if(	myForm.name=='chercheParNom'
	|| 	myForm.name=='chercheParElevage' 
	|| myForm.name=='chercheEtTrouve'
	) var page = "chercheEtTrouve";

		
	
displayTmpIframe("_exec","uid",'none');
myForm.action = "/outils/"+page+".php";
myForm.target="_exec";
myForm.submit();
}

function FocusOn(ID){
_Elem(ID).style.background="#eeeeee";
_Elem(ID).focus();
}

function FocusOff(ID){
_Elem(ID).style.background="#ffffff";
}

//##################################################################//
//#### Systeme de verification de la validite des adresses email ####//
//##################################################################//
function verif_email(email) {

// on passe la donnée saisie par le visiteur en variable pour plus de facilités
adresse = email;
taille = email.length;

// on créé 3 variables pour valider au fur et à mesure le login, le domaine et l'extension qui constituent l'adresse e-mail
validelog = false;
validedom = false;
valideext = false;

// on extrait le 'login' qui se situe avant l'arobace
arob = adresse.lastIndexOf("@");
login = adresse.substring(0,arob);

// on extrait l'extension qui se situe à partir du dernier point
pointfinal = adresse.lastIndexOf(".");
extension = adresse.substring(pointfinal,taille);

// on extrait le domaine qui se trouve entre l'arobace et le dernier point
domaine = adresse.substring(arob+1,pointfinal);

var Alerte = "";
// un login a toujours plus de 2 caractères, on fait le test
	if ( login.length > 2 ) 
	{
	validelog = true;
	}
	else 
	{
	Alerte += "\n"+_textAlert['LoginNonValide'];
	validelog = false;
	}

// un domaine a toujours plus de 1 caractère, on fait le test
	if ( domaine.length > 1 ) 
	{
	validedom = true;
	}
	else 
	{
	Alerte += "\n"+_textAlert['DomaineNonValide'];
	validelog = false;
	}

// une extension a toujours 2 ou 3 caractères, on fait le test
	if ( pointfinal > -1 && (extension.length == 3 || extension.length == 4) ) 
	{
	valideext = true;
	}
	else 
	{
	Alerte += "\n"+_textAlert['ExtensionNonValide'];
	valideext = false;
	}

// on vérifie que nos trois variables sont vraies pour accepter la soumission du formulaire
	if ( validelog == true && validedom == true && valideext == true ) {
	return true;
	}
	else 
	{
	alert(_textAlert['EmailNonValide']+Alerte+"\n"+_textAlert['MerciEmail']);
	return false;
	}
}

/*************** Ecrire à qqun *****************/
function writeTo(type,uid){
	//1 vide l'uid
	SubLoaderOn();
	BID = "uid";
	var URL = "/outils/WriteToMe.php?type="+type+"&uid="+uid;
	document.getElementById(BID).className="WriteToMe";
	document.getElementById(BID).style.display="block";
		if(loadXHR(URL,"GET",BID,new Array('display','HTML'))=="XHRKO")
		{ // Le navigateur ne gere pas le XHR
		document.getElementById(BID).innerHTML="POET";
		}
}
/**
function writeToR(wtype,wuid)
{
	BID = "PopupWin";
	var URL = "/outils/WriteToMe.php?type="+wtype+"&uid="+wuid;
	var _titre = "Write To Me";
	var css = "newStyle";
//	Popup.CreateMyPopup({name:BID, zIndex:"20", startExec:"SubLoaderOn();HideAllSelect();HideScrollBar();", closeExec:"SubLoaderOff();ShowAllSelect();ShowScrollBar();", top:200, left:400, width:700, ajax:{url:URL, method:"GET", data:new Array('HTML')}});
	Popup.CreateMyPopup({name:BID, titre:_titre, className:css,move:0, left:350, width:687, height:577, goToCenter:"center", startExec:"SubLoaderOn();", closeExec:"SubLoaderOff()", zIndex:20, ajax:{url:URL, method:"GET", data:new Array('HTML')}});
}

************* Ecrire à qqun *****************/
function writeToR(wtype,wuid)
{
	BID = "PopupWin";
//	var URL = "/outils/WriteToMe.php?type="+wtype+"&uid="+wuid;
	var URL = "/outils/WriteToMe.3.php?type="+wtype+"&uid="+wuid;
//	SubLoaderOn();
	openLiteWin(URL,715,615);	
	//  Popup.CreateMyPopup({name:BID, zIndex:"20", startExec:"SubLoaderOn();HideAllSelect();HideScrollBar();", closeExec:"SubLoaderOff();ShowAllSelect();ShowScrollBar();", top:200, left:400, width:700, ajax:{url:URL, method:"GET", data:new Array('HTML')}});
}

function writeToNotUser(wtype,wuid)
{
	BID = "PopupWin";
	var URL = "/outils/WriteToMe.3.php?type="+wtype+"&uid="+wuid+"&notUser=1";
	window.location=URL;
//	var _titre = "Write To Me";
//	var css = "newStyle";
//	Popup.CreateMyPopup({name:BID, titre:_titre, className:css,move:0, left:350, width:687, height:577, align:"center", startExec:"SubLoaderOn();", closeExec:"SubLoaderOff()", zIndex:20, ajax:{url:URL, method:"GET", data:new Array('HTML')}});	
}

function HideAllSelect()
{
	for(i=0;i<document.getElementsByTagName("select").length;i++)
	{
		document.getElementsByTagName("select")[i].style.visibility = "hidden";
	}
}

function HideScrollBar()
{
	document.getElementsByTagName("html")[0].style.overflow = "hidden";
	document.getElementsByTagName("body")[0].style.overflow = "hidden";
}

function ShowScrollBar()
{
	document.getElementsByTagName("html")[0].style.overflow = "auto";
	document.getElementsByTagName("body")[0].style.overflow = "auto";
}

function ShowAllSelect()
{
	for(i=0;i<document.getElementsByTagName("select").length;i++)
	{
		document.getElementsByTagName("select")[i].style.visibility = "visible";
	}
}

function ClosePseudoWindow(){
	BID = "uid";
	parent.document.getElementById(BID).className="";
	parent.document.getElementById(BID).style.display="none";
	parent.document.getElementById(BID).innerHTML="";
	parent.SubLoaderOff();
	parent.location.reload();
}


function ClosePhotoWindow(){
	BID = "uid";
	parent.document.getElementById(BID).className="";
	parent.document.getElementById(BID).style.display="none";
	parent.document.getElementById(BID).innerHTML="";
	parent.SubLoaderOff();
//	parent.location.reload();
}

function SubLoaderOn(){
	if(_IE()) Select_off();
document.getElementById('SubLoader').className="SLON";
}

function SubLoaderOff(){
	if(_IE()) Select_on();
document.getElementById('SubLoader').className="SLOFF";
}

function Select_off(){

	if(!target) var target = this;
	if(!_lon_disabled_arr) var _lon_disabled_arr = new Array();
	var select_arr = target.document.getElementsByTagName("select");

	for (var i = 0; i < select_arr.length; i++) 
	{
		if (select_arr[i].disabled)	continue;
	select_arr[i].disabled = true;

	_lon_disabled_arr.pop(select_arr[i]);
	
	var clone = target.document.createElement("input");
		clone.type = "hidden";
		clone.name = select_arr[i].name;
	var values = new Array();
		for (var n = 0; n < select_arr[i].length; n++) 
		{
			if (select_arr[i][n].selected) 
			{
			values[values.length] = select_arr[i][n].value;
			}
		}
	clone.value = values.join(",");
	select_arr[i].parentNode.insertBefore(clone, select_arr[i]);
	}
}

function Select_on(){
if(!target) var target = this;
 var clones_arr = document.getElementsByTagName("select");
	for (var n = 0; n < clones_arr.length; n++) 
	{
	if (clones_arr[n].disabled==false)	continue;
	clones_arr[n].disabled=false;
	}
}

/***** le tchat en attendant *****/
function newtchat(){

	if(typeof WinOpen!='undefined')
	{
	WinOpen.focus();
	}
	else
	{
	WinOpen = window.open("/tchat/init.php","tchat","resizable=no,width=300,height=100");
	WinOpen.focus();	
	}
}  

function closeTchat(){
// alert(typeof WinOpen);
	if(typeof WinOpen!='undefined')
	{
	WinOpen.close();
	}
}

function openLiteWin(url,width,height){

olw = window.open(url,'image','resizable=yes,width='+width+',height='+height+',location=yes,menubar=no,scrollbars=no,status=no,toolbar=no');
olw.focus();
}

function in_array(arrayStack,value){
var R=0;
//	alert("arrayStack : "+arrayStack.length);
	for(i=0;i<arrayStack.length;i++)
	{
		if(arrayStack[i]==value)
		{
		R++;
		break;
		}
	}
	if(R==1) 
		return true; 
	else 
		return false;
}

function gotoAct(act,value){
	alert(act);
	switch(act){
		case "Engagement":
//		URL = 'http://expofelines.webfelin.loc/index.php?expo_id='+value;
		URL = '/engagement_en_exposition.php?expo_id='+value;
		self.window.location=URL;
		break;
	}
}

// Un autre construct
if (typeof Maintool == 'undefined') {
  /**
   * Namespace definition.
   * @constructor
   */
  Maintool = function() {};
}

Maintool.include = function(strSrc) {
  document.write('<s' + 'cript type="text/javascript" src="' + strSrc +
   '"></s' + 'cript>');
};