
var ajaxBaseUrl='http://www.groupe-dasilva.com/';
function InitJS(s)
{
	ajaxBaseUrl=s;
}


function ValidateSearch(idSearchInput)
{
	s=document.getElementById(idSearchInput).value; 
	if (s=='') 
		return; 
	if (s=='Recherche') 
	{
		document.getElementById(idSearchInput).value=''; 
		return; 
	} 
	location.href=ajaxBaseUrl+'rechercher,src,'+s+'.html';
}



var xhr = null;

if(!document.getElementById) document.getElementById=function (id) {  return eval("document.all."+id); }

var mf_array=new Array();
var mf_busy='false';
var mf_timer_h=null;
var mf_timer_state=0;
var mf_cache=new Array();

function display_mf(row_id,ref_ds,ajax_arg,url)
{
	var colspan='';
	/* display of the wait frame */
	trace( 'call  display_mf: '+row_id );
	
		
	document.getElementById(row_id+'-d').innerHTML = '<img src="'+ajaxBaseUrl+'media/img/wait.gif"> Chargement des informations en cours' ;

		document.getElementById(row_id+'-d').style.visibility="visible";
		document.getElementById(row_id+'-r').style.height='40px';

	var jq=new Array();
	jq[0]=row_id;
	jq[1]=ref_ds;
	jq[2]='';
	jq[3]=ajax_arg;
	jq[4]=url;
	if (mf_cache[ajax_arg+"="+ref_ds])
	{
		print_mf(jq,mf_cache[ajax_arg+"="+ref_ds],row_id);
		return;
	}
	try {trace('array[0]='+mf_array[0][0]); } catch(err){}
	try {trace('array[1]='+mf_array[1][0]); } catch(err){}
	try {trace('array[2]='+mf_array[2][0]); } catch(err){}
	try {trace('array[3]='+mf_array[3][0]); } catch(err){}
	trace('pushing into array '+row_id);
	mf_array.push(jq);
	try {trace('array[0]='+mf_array[0][0]); } catch(err){}
	try {trace('array[1]='+mf_array[1][0]); } catch(err){}
	try {trace('array[2]='+mf_array[2][0]); } catch(err){}
	try {trace('array[3]='+mf_array[3][0]); } catch(err){}
	mf_query();
	
}
function mf_query()
{
	trace( 'call  mf_query');
	//check wherever a query is already in progress	
	if (mf_busy=='true')
	{
		trace('mf_busy set');
		return false;
	}
	if (mf_array.length<1)
	{
		trace('array is empty');	
		return false;
	}
	
	
	trace('mf_busy not set');
	//we have no query in progress
	var jq=new Array();
	jq=mf_array[0];
	trace('setting mf_busy');
	mf_busy='true';
	
	/* small ajax chunck to get the mf */
	if(window.XMLHttpRequest) 
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject) 
	{ 
		try 
		{ 
			xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
		} 
		catch (e) 
		{ 
			xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
	} 
	else 
	{ 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour"); 
		xhr = false; 
		return false;
	} 
	
	xhr.onreadystatechange = function() 
	{	
		/* if we have a result and the header code is 200 (OK), we display our result */
		if(xhr.readyState == 4 && xhr.status == 200)
		{
			var s='';
			s=xhr.responseText;
			prepare_mf(s);
		}
		else if(xhr.readyState == 4)
		{
			document.getElementById(row_id+'-d').innerHTML = 'Lecture de l\'objet spécifié impossible</td>' ;
			mf_array=new Array();
			trace('xhr.readystate=4, but not 200, clearing the array');
		}
	} 
	xhr.open("POST",ajaxBaseUrl+'ajax.php',true); 
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
	trace('xhr_request :'+jq[0]);
	xhr.send(jq[3]+"="+jq[1]+'&row_id='+jq[0]); 
	mf_timer();
	
}

function prepare_mf(s)
{
	var srow_id='';
	srow_id=s.substr(0,25);
	srow_id=trim(srow_id);
	trace( 'call  prepare_mf: '+srow_id );
	s=s.substr(25);
	s=s.replace('%%home%%',ajaxBaseUrl);
	var jq=new Array();
	jq=mf_array[0];
	//we cache it client side
	mf_cache[jq[3]+"="+jq[1]]=s	;
	print_mf(jq,s,srow_id);
	try {trace('array[0]='+mf_array[0][0]); } catch(err){}
	try {trace('array[1]='+mf_array[1][0]); } catch(err){}
	try {trace('array[2]='+mf_array[2][0]); } catch(err){}
	try {trace('array[3]='+mf_array[3][0]); } catch(err){}
	mf_array.shift();
	trace('shifting array');
	mf_busy='false';
	try {trace('array[0]='+mf_array[0][0]); } catch(err){}
	try {trace('array[1]='+mf_array[1][0]); } catch(err){}
	try {trace('array[2]='+mf_array[2][0]); } catch(err){}
	try {trace('array[3]='+mf_array[3][0]); } catch(err){}
	trace ('resettinf mf_busy');
	if (mf_array.length>0)
		mf_query();
}

function print_mf(jq,s,srow_id)
{

	if (jq[0]!=srow_id)
		return alert('Erreur de colision Ajax');
	document.getElementById(srow_id+'-d').innerHTML = s;	
	var h=0;
	h=document.getElementById(srow_id+'-d').offsetHeight+21;
	document.getElementById(srow_id+'-r').style.height=h+'px';
	
}
function trim (myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 
function trace( msg )
{
	if( typeof( jsTrace ) != 'undefined' )
	{
		jsTrace.send( msg );
	}
}
function validate_search_form(form_id,url)
{
	with (form_id)
	{
		if (q.value.length<3)
		{
			alert('Le texte recherché doit être de 3 charactères minimum');
			return false;
		}
		url=url+q.value+".html";
		location.href=url;
		return false;
	}
}

function mf_timer()
{
	if (mf_timer_state!=0)//timer already running
		return;
	if (mf_array.length<1)//we don't need to launch the timer if the arry is empty
		return;
	mf_timer_h=setTimeout('mf_timer_event()',2500);
	mf_timer_state=1;
}
function mf_timer_event()
{
	mf_busy=false;	
	mf_timer_state=0;//to keep track of the timer
	mf_query();
}


function ajax_sendQuery(url)
{
	if(window.XMLHttpRequest) 
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject) 
	{ 
		try 
		{ 
			xhr = new ActiveXObject("Msxml2.XMLHTTP"); 
		} 
		catch (e) 
		{ 
			xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
	} 
	else 
	{ 
		return false;
	} 
	
	xhr.onreadystatechange = function() 
	{	
		/* if we have a result and the header code is 200 (OK), we display our result */
		if(xhr.readyState == 4 && xhr.status == 200)
		{
			var s='';
			s=xhr.responseText;
			alert(s);
		}
	} 
	xhr.open("GET",ajaxBaseUrl+url,true); 
	alert(ajaxBaseUrl+url);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 	
}
