
/** 
 * SetInnerHTML Securise (cf http://www.developpez.net/forums/showthread.php?p=1185289#post1185289)
 * 
 * @param string divId
 * @param string HTML
 */
function setInnerHTML(divId, HTML) {
  divContent = document.getElementById(divId) ;
  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");
  }
  var AllScripts=divContent.getElementsByTagName("script");
  for (var i=0; i<AllScripts.length; i++) {
	 var s=AllScripts[i];
	 if (s.src && s.src!="") {
		// Precedement asynchrone, mis en synchrone pour eviter des problemes de dependances de scripts
		AjaxGetData(s.src, eval) ;
	 }
	 else {
		eval(s.innerHTML)
	 }
  }
}
/**
 * Receive data and put it in div 'div_contents'
 * 
 * @param string data
 */
function receive_ajax(data) {
	setInnerHTML('div_contents', data);
}

/**
 * Send an AJAX query using GET method
 * 
 * @param string url
 * @param {Object} callback 
 */
function AjaxGetData(url, callback) {
	var XMLHttpRequestObject = false;
	if (window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if (window.ActiveXObject){
		XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	  
	if (XMLHttpRequestObject) {
		try{
			document.body.style.cursor = 'wait';
			XMLHttpRequestObject.open("GET", url);
			XMLHttpRequestObject.onreadystatechange = function() {
					if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
						var data = XMLHttpRequestObject.responseText;
						document.body.style.cursor = '';
						callback(data);
					}
			}
		
			XMLHttpRequestObject.send(null);
		} catch (e) {}
	}
	else {
		window.location = url;
	}
}

/**
 * Send an AJAX query using POST method
 * 
 * @param string url
 * @param string parameters
 * @param {Object} callback
 */
function AjaxPostData(url, parameters, callback) {
	var XMLHttpRequestObject = false;
	parameters = parameters + '&ajax=1';
	
	if(window.XMLHttpRequest) {
		XMLHttpRequestObject = new XMLHttpRequest();
	}
	else if(window.ActiveXObject) {
		XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(XMLHttpRequestObject) {
		document.body.style.cursor = 'wait';
		XMLHttpRequestObject.open("POST", url, true);
		XMLHttpRequestObject.onreadystatechange = function() {
						if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
							var data = XMLHttpRequestObject.responseText;
							document.body.style.cursor = '';
							callback(data);
						}
		}
		XMLHttpRequestObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", parameters.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");	
		XMLHttpRequestObject.send(parameters);
	}
	else {
		window.location = url;
	}
}

/**
 * Display the selected post
 * 
 * @param integer pid
 */
function displayPost(pid, link) {
	obj = document.getElementById('post_'+pid);
	if(obj.style.display=='') {
		obj.style.display='none';
	}
	else {
		obj.style.display='';
	}
}

/**
 * Show/hide elements in the FAQ
 * 
 * @param integer i
 * @param integer total_faqs
 */
function clic_faq(i, total_faqs) {
	for (z=1;z<=total_faqs;z++) {
		if(z!=i){
			document.getElementById('faq'+z).style.display='none';
		}
	}

	if(document.getElementById('faq'+i).style.display=='') {
		document.getElementById('faq'+i).style.display='none';
	}
	else {
		document.getElementById('faq'+i).style.display='';
	}
}
