var MWJ_ldD = [];

function importXML( oURL, oFunct, oNoRand, oDelay ) {
	//note: in XML importing event handlers, 'this' refers to window
	if( !oNoRand ) { oURL += ( ( oURL.indexOf('?') + 1 ) ? '&' : '?' ) + ( new Date() ).getTime(); } //prevent cache
	if( window.XMLHttpRequest ) {
		//alternate XMLHTTP request - Gecko, Safari 1.2+ and Opera 7.6+
		MWJ_ldD[MWJ_ldD.length] = new XMLHttpRequest();
		MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 && MWJ_ldD['+(MWJ_ldD.length-1)+'].status < 300 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+'].responseXML); }' );
		MWJ_ldD[MWJ_ldD.length-1].open("GET", oURL, true);
		MWJ_ldD[MWJ_ldD.length-1].send(null);
		return true;
	}
	if( !navigator.__ice_version && window.ActiveXObject ) {
		//the Microsoft way - IE 5+/Win (ICE produces errors and fails to use try-catch correctly)
		try { //IE Mac has the property window.ActiveXObject but produces errors if you try and use it
			try { var tho = new ActiveXObject( 'Microsoft.XMLDOM' ); //newer
			} catch(e) { var tho = new ActiveXObject( 'Msxml2.XMLHTTP' ); } //older
			MWJ_ldD[MWJ_ldD.length] = tho;
			MWJ_ldD[MWJ_ldD.length-1].onreadystatechange = new Function( 'if( MWJ_ldD['+(MWJ_ldD.length-1)+'].readyState == 4 ) { '+oFunct+'(MWJ_ldD['+(MWJ_ldD.length-1)+']); }' );
			MWJ_ldD[MWJ_ldD.length-1].load(oURL);
			return true;
		} catch(e) {}
	}
	if( document.createElement && document.childNodes ) {
		//load the XML in an iframe
		var ifr = document.createElement('DIV');
		ifr.style.visibility = 'hidden'; ifr.style.position = 'absolute'; ifr.style.top = '0px'; ifr.style.left = '0px';
		//onload only fires in Opera so I use a timer for all
		if( !window.MWJ_XML_timer ) { window.MWJ_XML_timer = window.setInterval('MWJ_checkXMLLoad();',100); }
		ifr.innerHTML = '<iframe src="'+oURL+'" name="MWJ_XML_loader_'+MWJ_ldD.length+'" height="0" width="0"><\/iframe>';
		MWJ_ldD[MWJ_ldD.length] = oFunct+'MWJ_SPLIT'+(oDelay?oDelay:1)+'';
		document.body.appendChild(ifr);
		return true;
	}
	return false;
}

function MWJ_checkXMLLoad() {
	//check if each imported file is available (huge files may not have loaded completely - nothing I can do - use the delay to help)
	for( var x = 0; x < MWJ_ldD.length; x++ ) { if( MWJ_ldD[x] && window.frames['MWJ_XML_loader_'+x] ) {
		setTimeout( MWJ_ldD[x].split('MWJ_SPLIT')[0] + '(window.frames.MWJ_XML_loader_'+x+'.window.document);', parseInt(MWJ_ldD[x].split('MWJ_SPLIT')[1]) );
		MWJ_ldD[x] = false;
	} }
}

function displayFilters(xmlDoc){
	if( xmlDoc.documentElement && xmlDoc.documentElement.tagName && xmlDoc.documentElement.tagName.toUpperCase() == 'HTML' ) {
			setTimeout('alert(\'Votre naviguateur ne g&egrave;re pas ces fonctionalit&eacute;s.\\nVeuillez utiliser un naviguateur internet plus r&eacute;cent.\\nMerci de votre compr&eacute;hension.\');',50); 
	return; 
	}
       
        var root = xmlDoc.getElementsByTagName('filters');

	var table="<table><tr><td>Filtre</td><td>Table</td><td>Titre</td><td>Url</td><td>Indexs</td><td>Condition</td></tr>";
	if (xmlDoc.getElementsByTagName('filter').length==0){
		table+="<tr colspan='4'><td>Aucun filtre</td></tr>";
	}
	else{
		
		if (root[0].childNodes[0].nodeType ==3) { //Gecko
		
			for (var i=0 ; i < xmlDoc.getElementsByTagName('filter').length; i++){
			
	            table+="<tr>";
				var current_filter = xmlDoc.getElementById('f'+i);
				
				var tab = current_filter.getElementsByTagName('nom')[0];
				table+="<td>"+tab.firstChild.nodeValue+"</td>";
				
	           var url_node = current_filter.getElementsByTagName('url')[0];
				var url = url_node.firstChild.nodeValue +"?";
			
				var tab = current_filter.getElementsByTagName('table')[0];
				table+="<td>"+tab.firstChild.nodeValue+"</td>";
				
				var title = current_filter.getElementsByTagName('title')[0];
				table+="<td>"+title.firstChild.nodeValue+"</td>";
				
				var item = current_filter.getElementsByTagName('item');
				for (j=0 ; j<item.length ; j++){
					var current_item = item.item(j);
					if (j>0){url += '&amp;'}
					url += current_item.getAttribute('key')+'='+current_item.getAttribute('value');
				}
				table +="<td>"+url+"</td>";
				
				var index = current_filter.getElementsByTagName('index');
				table+="<td><ul>";
				for (j=0 ; j<index.length ; j++){
					var current_index = index[j];
					table+="<li>"+current_index.firstChild.nodeValue+"</li>";
				}
				table+="</ul></td>"
				
				var condition = current_filter.getElementsByTagName('condition');
				table+="<td><ul>";
				for (j=0 ; j<condition.length ; j++){
					var current_condition = condition[j];
					table+="<li>"+current_condition.getAttribute('column')+" = "+current_condition.getAttribute('value')+"</li>";
				}
				table+="</ul></td></tr>";
				
				
			}
		}
		else{//ie
			
			for (var i=0 ; i < xmlDoc.getElementsByTagName('filter').length; i++){
			
	            table+="<tr>";
				var current_filter = root[0].childNodes[i];
	            var nom_node = current_filter.childNodes[0]; 
				table+="<td>"+nom_node.firstChild.nodeValue+"</td>";
				
				var url_node = current_filter.childNodes[1];
				var url = url_node.firstChild.nodeValue +"?";
				
				var tab = current_filter.childNodes[2];
				table+="<td>"+tab.firstChild.nodeValue+"</td>";
				
				var title = current_filter.childNodes[3];
				table+="<td>"+title.firstChild.nodeValue+"</td>";
				
				var current_item = current_filter.childNodes[4];
				var j=4;
				while(current_item.nodeName=='item'){
					if (j>4){url += '&amp;'}
					url += current_item.getAttribute('key')+'='+current_item.getAttribute('value');
					j++;
					current_item = current_filter.childNodes[j];
				}
				table +="<td>"+url+"</td>";

				table+="<td><ul>";
				while(current_filter.childNodes[j] && current_filter.childNodes[j].nodeName=='index'){
					var current_index = current_filter.childNodes[j];
					table+="<li>"+current_index.firstChild.nodeValue+"</li>";
                    j++;
				}
                table+="</ul></td>";
				
				table+="<td><ul>";
				while(j<current_filter.childNodes.length){
                     var current_condition = current_filter.childNodes[j];
					table+="<li>"+current_condition.getAttribute('column')+" = "+current_condition.getAttribute('value')+"</li>";
                    j++;
				}
                table+="</ul></td></tr>";
				
					
			}
		}
	}
	table+="</table>";
	document.getElementById('filtertab').innerHTML=table;
	//location.hash = 'filtertab';
}

function isTextField(typedesc){
  var exp;
  exp = new RegExp("(^text)|(^varchar)", 'gi');
  return exp.test(typedesc);
}

function getFilters(xmlDoc){

	if( xmlDoc.documentElement && xmlDoc.documentElement.tagName && xmlDoc.documentElement.tagName.toUpperCase() == 'HTML' ) {
			setTimeout('alert(\'Votre naviguateur ne g&egrave;re pas ces fonctionalit&eacute;s.\\nVeuillez utiliser un naviguateur internet plus r&eacute;cent.\\nMerci de votre compr&eacute;hension.\');',50);  
	return; 
	}
	
	
    var root = xmlDoc.getElementsByTagName('filters');
	
	var sel = document.getElementsByName('filtre')[0];
	
	var opt = document.createElement('option');
	opt.setAttribute('value',0);
	opt.setAttribute('checked','checked');
	
	var data = document.createTextNode(' - Choisissez une catégorie - ');
	
	opt.appendChild(data);
	sel.appendChild(opt);
	
	if (xmlDoc.getElementsByTagName('filter').length==0){
		return;
	}
	else{
		
		if (root[0].childNodes[0].nodeType ==3) { //Gecko
		
			for (var i=0 ; i < xmlDoc.getElementsByTagName('filter').length; i++){
			
	            opt =document.createElement('option');
				opt.setAttribute('value','f'+i);
				
				var current_filter = xmlDoc.getElementById('f'+i);
				var nom_node = current_filter.getElementsByTagName('nom')[0];
				data=document.createTextNode(nom_node.firstChild.nodeValue);
				
				opt.appendChild(data);
				sel.appendChild(opt);
			}
		}
		else{//ie
			
			for (var i=0 ; i < xmlDoc.getElementsByTagName('filter').length; i++){
			
				opt =document.createElement('option');
				opt.setAttribute('value','f'+i);
				
				var current_filter = root[0].childNodes[i];
	            var nom_node = current_filter.childNodes[0]; 
				data=document.createTextNode(nom_node.firstChild.nodeValue);
				
				opt.appendChild(data);
				sel.appendChild(opt);
					
			}
		}
	}
	
}

function setParam(xmlDoc){
	if( xmlDoc.documentElement && xmlDoc.documentElement.tagName && xmlDoc.documentElement.tagName.toUpperCase() == 'HTML' ) {
			setTimeout('alert(\'Votre naviguateur ne g&egrave;re pas ces fonctionalit&eacute;s.\\nVeuillez utiliser un naviguateur internet plus r&eacute;cent.\\nMerci de votre compr&eacute;hension.\');',50); 
	return; 
	}
	
    var root = xmlDoc.getElementsByTagName('filters');
	
	var container = document.getElementById('search_hide');
	container.innerHTML='';
	var id = document.advanced.filtre.value;
	
		
	if (root[0].childNodes[0].nodeType ==3) { //Gecko
			
			var filter = xmlDoc.getElementById(id);
			
			var name_in = document.createElement('input');
			name_in.setAttribute('type','hidden');
			name_in.setAttribute('name','cat');
			var name_node = filter.getElementsByTagName('nom')[0];
			name_in.setAttribute('value',name_node.firstChild.nodeValue);
			container.appendChild(name_in);
			
			var url_in = document.createElement('input');
			url_in.setAttribute('type','hidden');
			url_in.setAttribute('name','search_url');
			var url_node = filter.getElementsByTagName('url')[0];
			url_in.setAttribute('value',url_node.firstChild.nodeValue);
			container.appendChild(url_in);
			
			var table_node = filter.getElementsByTagName('table')[0];
			var table_in = document.createElement('input');
			table_in.setAttribute('type','hidden');
			table_in.setAttribute('name','table');
			table_in.setAttribute('value',table_node.firstChild.nodeValue);
			container.appendChild(table_in);
			
			var title_node = filter.getElementsByTagName('title')[0];
			var table_in = document.createElement('input');
			table_in.setAttribute('type','hidden');
			table_in.setAttribute('name','stitle');
			table_in.setAttribute('value',title_node.firstChild.nodeValue);
			container.appendChild(table_in);
				
			var item = filter.getElementsByTagName('item');
			var item_data='';
			for (j=0 ; j<item.length ; j++){
				var current_item = item.item(j);
				if (item.length>0 && j<item.length-1){
					item_data += current_item.getAttribute('key')+' = '+current_item.getAttribute('value')+' ; ';
				}
				else{
					item_data += current_item.getAttribute('key')+' = '+current_item.getAttribute('value');
				}
			}
			var item_in = document.createElement('input');
			item_in.setAttribute('type','hidden');
			item_in.setAttribute('name','item');
			item_in.setAttribute('value',item_data);
			container.appendChild(item_in);

			
			var index_nodes = filter.getElementsByTagName('index');
			var indexes ='';
			for (j=0 ; j<index_nodes.length ; j++){
				var current_index = index_nodes[j];
				if (index_nodes.length>0 && j<index_nodes.length-1){
					indexes += current_index.firstChild.nodeValue + " ; ";
				}
				else{
					indexes += current_index.firstChild.nodeValue;
				}
			}
			var index_in = document.createElement('input');
			index_in.setAttribute('type','hidden');
			index_in.setAttribute('name','index');
			index_in.setAttribute('value',indexes);
			container.appendChild(index_in);
			
			
			var condition_nodes = filter.getElementsByTagName('condition');
			if (condition_nodes){
				var conditions='';
				var et ='';
				for (j=0 ; j<condition_nodes.length ; j++){
					var current_condition = condition_nodes[j];
					(condition_nodes.length>0 && j<condition_nodes.length-1) ? et=' AND ' : et='';
					conditions += current_condition.getAttribute('column')+"="+current_condition.getAttribute('value')+et;
				}
				var cond_in = document.createElement('input');
				cond_in.setAttribute('type','hidden');
				cond_in.setAttribute('name','condition');
				cond_in.setAttribute('value',conditions);
				container.appendChild(cond_in);
			}
	}
	else{//ie
			var st = new String(id);
			var i = parseInt(st.charAt(1),10);
			var filter = root[0].childNodes[i];
			
			var name_node = filter.childNodes[0];
			var name_in = document.createElement('input');
			name_in.setAttribute('type','hidden');
			name_in.setAttribute('name','cat');
			name_in.setAttribute('value',name_node.firstChild.nodeValue);
			container.appendChild(name_in);
			
			var url_in = document.createElement('input');
			url_in.setAttribute('type','hidden');
			url_in.setAttribute('name','search_url');
			var url_node = filter.childNodes[1];
			url_in.setAttribute('value',url_node.firstChild.nodeValue);
			container.appendChild(url_in);
			
			var table_node = filter.childNodes[2];
			var table_in = document.createElement('input');
			table_in.setAttribute('type','hidden');
			table_in.setAttribute('name','table');
			table_in.setAttribute('value',table_node.firstChild.nodeValue);
			container.appendChild(table_in);
						
			var title_node = filter.childNodes[3];
			var table_in = document.createElement('input');
			table_in.setAttribute('type','hidden');
			table_in.setAttribute('name','stitle');
			table_in.setAttribute('value',title_node.firstChild.nodeValue);
			container.appendChild(table_in);
			
			var current_item = filter.childNodes[4];
			var j=4;
			var item_data='';
			while(current_item.nodeName=='item'){
				if (filter.childNodes[j+1].nodeName!='item'){
					item_data += current_item.getAttribute('key')+' = '+current_item.getAttribute('value');
				}
				else{
					item_data += current_item.getAttribute('key')+' = '+current_item.getAttribute('value') + ' ; ';
				}
				j++;
				current_item = filter.childNodes[j];
			}
			var item_in = document.createElement('input');
			item_in.setAttribute('type','hidden');
			item_in.setAttribute('name','item');
			item_in.setAttribute('value',item_data);
			container.appendChild(item_in);
			
			
			var indexes ='';
			while(filter.childNodes[j] && filter.childNodes[j].nodeName=='index'){
				
				if (!filter.childNodes[j+1] || filter.childNodes[j+1].nodeName!='index'){ 
					indexes+=filter.childNodes[j].firstChild.nodeValue;
				}
				else{
					indexes+=filter.childNodes[j].firstChild.nodeValue+" ; ";
				}
				j++;
			}
			var index_in = document.createElement('input');
			index_in.setAttribute('type','hidden');
			index_in.setAttribute('name','index');
			index_in.setAttribute('value',indexes);
			container.appendChild(index_in);
			
			
			if (j<filter.childNodes.length){
				var conditions = '';
				var et = '';
				while(j<filter.childNodes.length){
					(filter.childNodes.length>0 && j<filter.childNodes.length-1) ? et=' AND ' : et = '';
	                var current_condition = filter.childNodes[j];
					conditions += current_condition.getAttribute('column')+"="+current_condition.getAttribute('value')+et;
	                j++;
				}
				var cond_in = document.createElement('input');
				cond_in.setAttribute('type','hidden');
				cond_in.setAttribute('name','condition');
				cond_in.setAttribute('value',conditions);
				container.appendChild(cond_in);
			}

	}

}

function stripInput(value){
	var chaine = new String(value);
	chaine = chaine.replace(/\"/,' ');
        chaine = chaine.replace(/\'/,' ');
	return chaine.toString();
}