var display="none";

function update_view_search_ajax(inputCritereTable,inputOtherTable,display_view,search_id)
{		
	try
		{
		delete load_parameters;
		}
	catch(ex)
		{
		}
	display = display_view;	
		
	agent.call('','update_view_search_ajax','update_view_search_ajax_return',inputCritereTable,inputOtherTable,search_id);	
}

function update_view_search_ajax_return(str)
{		
	document.getElementById('loader').style.display = "none";
	if(str=="ville_ko")
	{
		document.getElementById('erreur_ville').style.display = "block";
		document.getElementById('conteneur_main').style.display = "block";
		document.getElementById('result_ajax').style.display="none";
		document.getElementById('mapgm').style.display = "none";
		document.getElementById('affine_search').style.display = "none";
		document.getElementById('loader').style.display = "none";	
	}
	else
	{
		document.getElementById('erreur_ville').style.display = "none";
		if(display=="map")
		{
			document.getElementById('result_ajax').style.display="block";
			document.getElementById('mapgm').style.display = "block";
			
			try{			
				changeSizeDiv(display);								
			}catch(e)
			{}	
			setInnerHTML(document.getElementById('result_ajax'), str);
//			if(window.execScript) window.execScript(loadgm());
//			else
window.eval(loadgm());
			map.enableDragging();			
			document.getElementById('result_ajax').innerHTML=str;
			addPolygon();		
			
		}
		else if(display=="all")
		{
			
			document.getElementById('result_ajax').style.display="block";
			document.getElementById('mapgm').style.display = "block";
			document.getElementById('mode_polygone').style.display = "block";	
			document.getElementById('text_result').style.display = "block";
			
			
			try{			
				
				affichediv();
				changeSizeDiv(display);					
				
			}catch(e)
			{}			
			setInnerHTML(document.getElementById('result_ajax'), str);
			
			
//			if(window.execScript) window.execScript(loadgm());
//			else
window.eval(loadgm());
			map.enableDragging();
			document.getElementById('result_ajax').innerHTML=str;
			addPolygon();	
		}
		else
		{			
			document.getElementById('result_ajax').style.display="block";
			document.getElementById('mapgm').style.display = "none";		
			document.getElementById('mode_polygone').style.display = "none";
			
			try{			
				
				affichediv();	
				changeSizeDiv(display);	
				
			}catch(e)
			{}	
			
			setInnerHTML(document.getElementById('result_ajax'), str);	
			document.getElementById('result_ajax').innerHTML=str;
			
		}
		document.getElementById('affine_search').style.display = "block";
	}	
}

function polygone_search(polyZone,search_id)
{
	if(typeof(mode_ajax_poly) != 'undefined')
	{
	var str_polygon = '';
	for(var i=0; i<(polyZone.length-2);i++)
		{
		
		str_polygon += polyZone[i].x + ',' + polyZone[i].y + '/';				
		}
		if(typeof(nom_formulaire_ajax) != 'undefined') {
			var nom_form = nom_formulaire_ajax;
		} else {
			var nom_form = "advanced_search";
		}
	document.forms[nom_form].map_polygone.value = str_polygon;
	}
	else
	{
	//displayLoader();
	map.clearOverlays();
	//alert(search_id);
	agent.call('','polygone_search_ajax','polygone_search_ajax_return',polyZone,search_id);
	}
}

function polygone_search_ajax_return(str)
{		
	//alert(str);
	updateView();	
}

function update_polygone_bdd_search(polyZone,search_id)
{
	//alert(search_id);
	agent.call('','polygone_search_ajax','update_polygone_bdd_search_return',polyZone,search_id);
}

function update_polygone_bdd_search_return(str)
{
	
}

function suggest_country(value)
{
	agent.call('','suggest_country_ajax','suggest_country_ajax_return',value);	
}

function suggest_country_ajax_return(str)
{	
	document.getElementById('display_country').style.display = "block";	
	document.getElementById('display_country').innerHTML = str;
}

function nextList(siteId,sort,searchId,pageId,inputCritereTable,inputOtherTable,display_view)
{
	//displayLoader();
	agent.call('','search_next_list','search_next_list_return',siteId,sort,searchId,pageId,inputCritereTable,inputOtherTable,display_view);
}

function displayLoader()
{
	try
	{
		document.getElementById("title_advanced_search").style.display = "none";			
	}
	catch(error){}
	try	{
		
		document.getElementById("desc_advanced_search").style.display = "none";		
	}
	catch(error){}
	
	try{document.getElementById('loader').style.display = "block";	}catch(e){}
	try{document.getElementById('conteneur_main').style.display = "none";}catch(e){}
	try{document.getElementById('result_ajax').style.display="none";}catch(e){}
	try{document.getElementById('mapgm').style.display = "none";}catch(e){}
	try{document.getElementById('affine_search').style.display = "none";}catch(e){}
	try{document.getElementById('erreur_ville').style.display = "none";}catch(e){}
}

function search_next_list_return(str)
{
	document.getElementById('result_ajax').style.display="block";
	document.getElementById('mapgm').style.display = "none";		
	setInnerHTML(document.getElementById('result_ajax'), str);		
	document.getElementById('result_ajax').innerHTML=str;
	document.getElementById('affine_search').style.display = "block";	
}

function setInnerHTML(divContent, HTML) 
{
  divContent.innerHTML=HTML; 
  var All=divContent.getElementsByTagName("*");
  for (var i=0; i<All.length; i++) 
  {
	All[i].id=All[i].getAttribute("id");
	All[i].name=All[i].getAttribute("name");
	All[i].className=All[i].getAttribute("class");
  }
  var AllScripts=divContent.getElementsByTagName("script");
  for (var i=0; i<AllScripts.length; i++) 
  {
	 var s=AllScripts[i];
	 if (s.src && s.src!="") {
		// Précédement asynchrone, mis en synchrone pour éviter des problèmes de dépendances de scripts
		eval(getFileContent(s.src));
	 }
	 else {
		eval(s.innerHTML);
	 }
  }
}

 
function getFileContent(url) {
   var Xhr=GetXmlHttpRequest();
   Xhr.open("GET",url,false);
   Xhr.send(null);
   return Xhr.responseText;
}

function trim(string) 
{
	return string.replace(/(^\s*)|(\s*$)/g,'');
}

function DOMinnerHTML(obj,method,data) 
{
	/*si vide, pas la peine de ocntinuer*/
	if (data.length==0) return '';
	/*detection du < de début de balise*/
	var pbalise=data.indexOf('<');
	if (pbalise>0) {
		var text=data.substring(0,pbalise);
		/*supprime ce qu'on va ajouter*/
		data=data.substring(pbalise,data.length);
		/*ajoute le node*/	
		text=document.createTextNode(text);
		if (method=="add")
			obj.appendChild(text);
		else
			obj.replaceChild(text, obj.firstChild);
		DOMinnerHTML(obj,'add',data);
	}
	else if (pbalise==0) {
		/*ici, on commence par une balise*/
		var posSelfClose=data.indexOf('/>');		
		var posClose=data.indexOf('>');
 
		/*detection des attributs*/
		var balise=trim(data.substring(1,((posSelfClose==posClose-1)?posSelfClose:posClose)));	
 
		var attr=Array();
		if (balise.indexOf('=')!=-1)
			attr=balise.split('=');
 
		if (balise.indexOf(' ')!=-1)
			balise=balise.substring(0,balise.indexOf(' '));
 
		if (posSelfClose==posClose-1) {
			/*cas d'une balise autofermé*/
			/*on crée la balise et on continu en mode normal*/
			var cible=document.createElement(balise);
			/*supprime la balise des data restante*/
			data=data.substring(posSelfClose+2,data.length);
		} else {
			/*creation de la blise puis recursivité pour le contenu*/
 
			var cible=document.createElement(balise);
			/*place a part la balise et son contenu*/
			var contenu=data.substring(posClose+1,data.length);
			contenu=contenu.substring(0,contenu.indexOf('</'+balise));
			/*supprime la balise et son contenu des data restante*/
			data=data.substring(data.indexOf('</'+balise)+3+balise.length,data.length);
			if (contenu!='')
				DOMinnerHTML(cible,'add',contenu);
 
		}
 
 
 
		for(var i = 0; i <= attr.length-1; i++) {	
			if (!attr[i]) continue;
			if (!attr[i+1]) continue;		
			if (trim(attr[i])=='') continue;
			if (trim(attr[i+1])=='') continue;	
 
			/*recupere l'attribut*/
			var att=trim(attr[i].substring(attr[i].indexOf(' '),attr[i].length));
			/*pour la valeur, on vire le 1er "*/
			attr[i+1]=attr[i+1].substring(1,attr[i+1].length);			
			/*puis on chppe la parti avant le " restant*/
			var attVal=trim(attr[i+1].substring(0,attr[i+1].indexOf('"')));
 
			var tmp=attr[i+1].substring(attVal.length+2,attr[i+1].length);
 
			if (document.all) {
				var tmp2=att.toLowerCase();
				if (tmp2=="class")
					cible.setAttribute("className", attVal);
				else if (tmp2.substring(0,2)=="on") /*evenement onclick, onmouseover, etc...*/
					eval('cible.'+att+' = function() {'+attVal+'};');
				else if (tmp2=="checked")
					cible.setAttribute("defaultChecked", attVal);
				else if (tmp2=="style") {
					/*on doit décomposé et appliquez les attribut 1 à 1*/
					var sty=attVal.split(';');
					for(var j = 0; j <= sty.length-1; j++) {	
						var style=sty[j].split(':');
						if (trim(style[0])=='') continue;
						/*traduction des mot composé en camelCase*/
						var pt=style[0].indexOf('-');
						if (pt!=-1) {
							var tmp3=style[0].substring(pt+1,pt+2);
							tmp3=style[0].substring(0,pt)+tmp3.toUpperCase()+style[0].substring(pt+2,style[0].length);
							style[0]=tmp3;
						}
						cible.style.setAttribute(style[0], style[1]);	
					}
				} else
					cible.setAttribute(att, attVal );				
			}  else
				cible.setAttribute(att, attVal );
 
			if (tmp!='')
				attr[i+1]="_ "+tmp;
		}
 
		if (method=="add")
			obj.appendChild(cible);
		else
			obj.replaceChild(cible, obj.firstChild);
 
		DOMinnerHTML(obj,'add',data);
	}
	else if (pbalise=-1) {
		/*ajoute le texte trouvé*/	
		var text=document.createTextNode(data);
		if (method=="add")
			obj.appendChild(text);
		else
			obj.replaceChild(text, obj.firstChild);
	}
}
