var txt_height = function(a, b) {
	if(a == 'moins') {
		var height = Math.floor(Math.floor($(b).getHeight())-20)+"px";
	}
	else {
		var height = Math.floor(Math.floor($(b).getHeight())+20)+"px";
	}
	$(b).setStyle({height: height});
};


function disp_or_not(element, width) {
	if(screen.width <= width) {
		element.style.display = "none";
	}
	else {
		element.style.display = "block";
	}
}

function goto(url, timeout) {
	if(typeof(timeout) != 'undefined') {
		setTimeout("location.href="+url+";", timeout);
	}
	else {
	location.href = url;
}
}

function GetValueFromIndex(select) {
	var id = select.selectedIndex;
	var value = select.options[id].value;
	return value;
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
	}
	else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
	}
}

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function addfavourites() {
var ptitle = document.getElementsByTagName("title")[0].innerHTML;

if ( navigator.appName != 'Microsoft Internet Explorer' ){ 

		window.sidebar.addPanel(ptitle,location.href,''); 
	} 

else { 

		window.external.AddFavorite(location.href,ptitle);
	 }

}

function gogole_display(opt) {
 

var valeur = location.hash;
//window.alert(valeur);
if(opt == 1) {
if((valeur.search(/p[0-9]+/) != -1) || (valeur.search(/viewtopic\.php\?p=[0-9]+/) != -1)) {

}

else {
var bloc = document.getElementById("Gogole_ad");
google_ad_client = "pub-1532782001250342"; 
 google_ad_width = 120;
 google_ad_height = 240;
 google_ad_format = "120x240_as";
 google_ad_type = "text"; 
google_ad_channel = "2603143219";
 google_color_border = "FFFFFF"; 
google_color_bg = "FFFFFF"; 
google_color_link = "1D8CC2"; 
google_color_text = "6f6f6f"; 
google_color_url = "FF9900"; 
var texte = '<center></sc'+'ript><scri'+'pt type="text/java'+'script" src="http://pagead2.googlesy'+'ndication.com/pagead/show_ads.js"></scr'+'ipt></center><br />';

document.write(texte);
}
}

else if(opt == 2) {
if((valeur.search(/p[0-9]+/) != -1) || (valeur.search(/viewtopic\.php\?p=[0-9]+/) != -1)) {

google_ad_client = "pub-1532782001250342";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text";

google_ad_channel = "2603143219";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "1D8CC2";
google_color_text = "6F6F6F";
google_color_url = "FF9900";


var texte = '<scri'+'pt type="text/java'+'script" src="http://pagead2.googlesy'+'ndication.com/pagead/show_ads.js"></scr'+'ipt>';

document.write(texte);


}

}






}


function add_del_page() {
if(window.confirm("Toutes les modifications en cours seront perdues, voulez-vous vraiment continuer ?")) {
return true;
}
else {
return false;
}


}

// FOnction pour changer l'attribut "action" d'un formulaire (ex : preview)
function changeaction(formulaire, valeur) {
document.forms[formulaire].action = valeur; 
}

window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}

function show_menu_dl(bool) {
	if(bool) {
		if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.search(/MSIE\ 7\.0/) != -1 && screen.width > 800) {
			document.getElementById('smenu_dl').style.visibility = 'visible';
		}
		else {
			montre('smenu4');
		}
		
	}
	else {
		if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.search(/MSIE\ 7\.0/) != -1 && screen.width > 800) {
			document.getElementById('smenu_dl').style.visibility = 'hidden';
		}
		else {
			montre('');
		}
	}
}

function show_menu_ressources(bool) {
	if(bool) {
		if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.search(/MSIE\ 7\.0/) != -1 && screen.width > 800) {
			document.getElementById('smenu_res').style.visibility = 'visible';
		}
		else {
			montre('smenu3');
		}
		
	}
	else {
		if(navigator.appName == "Microsoft Internet Explorer" && navigator.appVersion.search(/MSIE\ 7\.0/) != -1 && screen.width > 800) {
			document.getElementById('smenu_res').style.visibility = 'hidden';
		}
		else {
			montre('');
		}
	}
}

function showmailbox()
{
		var objet=document.getElementById('mailbox');
		objet.style.display="block";		
}		

/* &&&&&&&& NOTE : /!\ Ne pas utiliser de noms numériques pours les champs utilisés avec les deux fonctions suivantes &&&&&& */
//fonction de vérification du formulaire
function checkform(f, except_arr, tinyMCE_isupdated, badtags_opt) {
var errortext = "";
var checkedgroups = "";
var checkedgroupsbox = "";

if(typeof(tinyMCE) != "undefined" && (typeof(tinyMCE_isupdated) == "undefined" || !tinyMCE_isupdated)) { // Si tinyMCE est activé il faut d'abord mettre à jour les textareas avant de récupérer leurs données 
	upd_mce_badtags(f, badtags_opt);
}

for(var i=0; i<f.elements.length; i++) {
	var element = f.elements[i];
	var forbidden = false;
	if(except_arr) {
		for(var h=0;h<except_arr.length; h++) {
			if(except_arr[h] == element.name) {
				forbidden = true;
			}
		}
	}
	if(forbidden) { continue; }
	else {
	switch(element.type) {
		case "text":
		case "textarea":
		case "password":
			if (element.value.replace(/\s/g, "") == "" && element.disabled != "disabled") {
				errortext +=element.name + "\n";
			}
	
		break;
		
		case "checkbox":
			if(!element.checked) {
				var namebox = "" + element.name;
				
				var groupbox = f.elements[namebox];
				if(checkedgroupsbox.indexOf("[" + element.name + "]") > -1) {
					continue;
				}
				else {
					checkedgroupsbox += "[" + element.name + "]";
				}
				var groupokbox = false;
				for (var y=0; y < groupbox.length; y++) {
					if (groupbox[y].checked) {
						groupokbox = true;
					}
				}
				if(!groupokbox) {
					errortext += element.name + "\n"
				}
			}
		break;
		
		case "radio":
			var nameradio = "" + element.name;
			
			var group = f.elements[nameradio];
			if(checkedgroups.indexOf("[" + element.name + "]") > -1) {
			continue;
			}
			else {
			checkedgroups += "[" + element.name + "]";
			}
			var groupok = false;
			for (var y=0; y < group.length; y++) {
				if (group[y].checked) {
					groupok = true;
				}
			}
			if(!groupok) {
				errortext += element.name + "\n"
			}
			break;
			
		case "select-one":
		case "select-multiple":
			var selectok = false;
			for (var z=0; z<element.options.length; z++) {
				var item = element.options[z];
				if (item.selected && item.value != "") {
					selectok = true;
				}
			}
			if (!selectok) {
			errortext += element.name + "\n";
			}
		break;
		
		default:
		break;
		
	}
	}
	
} // fermeture de la boucle de lecture de f.elements[]

if(errortext == "") {
	return true;
}
else {
	window.alert("Les champs obligatoires suivants n'ont pas été remplis \n \n" 
	+ errortext);
return false;
}

} // fin de la fonction

//fonction de creation d'objet de type XMLHttpRequest()
function GetHttpRequest() {
		var http = null;

 
		if (window.XMLHttpRequest)
		{
 			http = new XMLHttpRequest();
			if (http.overrideMimeType) 
			{
				http.overrideMimeType('text/xml');
			}
		} 
		else if (window.ActiveXObject) 
		{
			try {
				http = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e)
			{
				try {
					http = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
        	}
		return http;
// fin de la fonction
}


//Preview :
function preview(field) {
if(field.value) {
var value = field.value;//.replace(/\+/g, '\%2B');
var data = "texte="+encodeURIComponent(value);
		var http = null;
		if (window.XMLHttpRequest)
		{
 			http = new XMLHttpRequest();

		} 
		else if (window.ActiveXObject) 
		{
			try {
				http = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e)
			{
				try {
					http = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
        	}
	var f = field.form;

	var loadNodePrev = document.createElement("p");
	loadNodePrev.innerHTML = "<img src='http://www.pcinfo-web.com/style/loading.gif' alt='loading' />";
	loadNodePrev.style.position = "fixed";
	loadNodePrev.style.bottom = "0px";
	loadNodePrev.style.right = "0px";
	loadNodePrev.style.backgroundColor = "red";
	loadNodePrev.style.fontWeight = "bold";
	loadNodePrev.style.color = "white";	
	loadNodePrev.setAttribute("id", "loadNodePrev");
	document.body.appendChild(loadNodePrev);
	
	http.onreadystatechange = function() {
		if(http.readyState == 4) {
			if(http.status == 200) {
				loadNodePrev.innerHTML = "Effectu&eacute;";
				
				window.setTimeout("document.getElementById('loadNodePrev').parentNode.removeChild(document.getElementById('loadNodePrev'));", 3000);
				if(document.getElementById("preview_box_"+field.name)) {
				document.getElementById("preview_box_"+field.name).innerHTML = "<p id='preview_title'>Pr&eacute;visualisation : </p>" + http.responseText;
				}
				else {
					var PreviewNode = document.createElement("div");
					PreviewNode.setAttribute("style", "background-color:gray; border:1px solid black;");
					PreviewNode.setAttribute("id", "preview_box_"+field.name);
					PreviewNode.innerHTML = "<p id='preview_title'>Pr&eacute;visualisation : </p>" + http.responseText;
					var nodepos = document.getElementById(field.name);
					nodepos.parentNode.insertBefore(PreviewNode, nodepos);
				}

			}
			
			else {
				var ErrorNode = document.createElement("div");
				ErrorNode.innerHTML = "<b><span style='font-color:red;' >Erreur : "+http.statusText+"</span></b>";
				document.body.replaceChild(ErrorNode, document.getElementById("loadNodePrev"));
			}
			
		}
	
	}
	
	http.open("POST", "/ajax.php?func=preview", true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.send(data);
	
return true;
}
else {

	alert("Vous devez taper un texte");
	return false;
	
}

}


function convertUrl(string) {
	return encodeURIComponent(string);//.replace(/\+/g, '%2B').replace("€", "%80"));
}

function upd_mce_badtags(f, badtags_opt) {
	for(var ij=0;ij<f.elements.length;ij++) {
		var elem = f.elements[ij];
		if(elem.type == 'textarea') {
			//tinyMCE.execCommand('mceToggleEditor',false,elem.id);
			if(typeof(tinyMCE) != "undefined" && typeof(tinyMCE.get(elem.id)) != "undefined") { // Si tinyMCE est activé sur le champs que l'on doit corriger, on force d'abord la sauvegarde du contenu de tinyMCE dans le champ avant de corriger
				tinyMCE.get(elem.id).save();
			}
			if(typeof(badtags_opt) != "undefined" && badtags_opt && badtags_opt.active) {
				var stop = true;
				for(var ghj = 0; ghj < badtags_opt.fields.length; ghj++) {
					if(badtags_opt.fields[ghj] == elem.id) {
						var stop = false;
					}
				}
				if(!stop) { // Si le champ est bien un champ qu'il faut vérifier :
					badtags(elem, true, false, false);
				}
			}
			if(typeof(tinyMCE) != "undefined" && typeof(tinyMCE.get(elem.id)) != "undefined") {// Si tinyMCE est activé sur le champs que l'on doit corriger, on recharge ensuite le contenu maintenant corrigé 
				tinyMCE.get(elem.id).load();
			}
			//tinyMCE.execCommand('mceToggleEditor',false,elem.id);
		}
	}
}

function PCWSerializeForm(f) {
	//alert('PCWSerializeFOrm is running');
var values = "";
var registered = "";
var registered_box = "";


for(var i=0; i<f.elements.length; i++) {
var element = f.elements[i];
switch(element.type)
{
case "text":
case "hidden":
case "textarea":
case "password":
 values += "&" + escape(element.name) + "=" + convertUrl(element.value);
		 //alert(element.value);
		 //alert(convertUrl(element.value));
break;

case "checkbox":
	var namebox = "" + element.name;
	var length = f.elements[namebox].length;
	if(length > 1) {
		if(registered_box.indexOf(element.name) != -1) { continue; }
		else {
			if(element.checked) {
				registered_box += escape(element.name) + "&";
				values += "&" + escape(element.name) + "=" + convertUrl(element.value);
			}
		}
	}
	else {
		if(element.checked) {
			values += "&" + escape(element.name) + "=" + convertUrl(element.value);
		}
	}
break;

case "select-one":
for(var j=0; j<element.options.length; j++) {
	var item = element.options[j];

	if(item.selected) {
	values += "&" + escape(element.name) + "=" +convertUrl(element.value);
	}
}
break;

case "radio":
	if(registered.indexOf(element.name) != -1) { continue; }
	else {
		if(element.checked) {
			registered += escape(element.name) + "&";
			values += "&" + escape(element.name) + "=" + convertUrl(element.value);
		}
	}
break;

}
}
//fin de l'enregistrement des données

values = values.substr(1);
	return values;
}
//fonction d'envoi de formulaires en ajax
/* @param f : formulaire
 * @param cible : fichier a exécuter
 * @param verif : exécution ou non de checkform() avant d'envoyer (et nenvoit pas en cas d'échec de vérification
 * @param disable : désactivation des champs du fomulaire une fois celui-ci envoyé sans erreur
 * @param tinyMCE_isupdated : si true alors les champs tinyMCE sont considérés comme mis à jour et sendajax() n'y touche pas. Si false alors sendajax() mettra les textareas a jour à l'aide du paramètre suivant
 * @param OBJECT badtags_opt : objet définissant si on doit ou non corriger les balises et celles de quels champs on doit corriger (attributs active et fields)
 * @param myfunction : fonction exécutée après désactivation ou non du formulaire, une fois la requête exécutée, le XMLDOC est automatiquement passé en 1er paramètre à myfunction(), et la présence ou non d'erreur (true = erreur, false = pas d'erreur) est passée en deuxième argument
 * @param myfctn_arg : argument passed to myfunction in last argument /!\ To pass plural arguments use {arg1: xxx, arg2: xxx} and make the function using as this !!! WARNING !!!! BEWARE THAT THIS ARGUMENT WILL BE THE ¡¡¡ THIRD ¡¡¡ ARGUMENT !!!!!!
*/

function sendajax(f, cible, processus, verif, disable, tinyMCE_isupdated, badtags_opt, myfunction, myfctn_arg) {
if((typeof(tinyMCE) != "undefined" && (typeof(tinyMCE_isupdated) == "undefined" || !tinyMCE_isupdated)) || typeof(badtags_opt) != "undefined") { // Si tinyMCE est activé il faut d'abord mettre à jour les textareas avant de récupérer leurs données 
	if(typeof(badtags_opt) != 'undefined') {
		upd_mce_badtags(f, badtags_opt);
	}
	else {
		upd_mce_badtags(f);
	}
}
if(verif) { if(!checkform(f, null, true)) { return false; }  }

var values = PCWSerializeForm(f);
//f.elements.disabled = true;

var loadNode = document.createElement("div");
loadNode.setAttribute("id", "loadNode");
/* loadNode.style.position = "fixed";
loadNode.style.bottom = "0px";
loadNode.style.right = "0px";*/
loadNode.style.backgroundColor = "transparent";
loadNode.style.fontWeight = "bold";
loadNode.style.color = "red";

loadNode.innerHTML = "<img src='http://www.pcinfo-web.com/style/loading.gif' title='loading' alt='loading' />";
if(f.elements['submit'] && f.elements['submit'].parentNode && f.elements['submit'].parentNode.appendChild(loadNode)) {
	
}
else {
	f.appendChild(loadNode);
}

var http = GetHttpRequest();
//window.alert('http enclenché');

		http.onreadystatechange = function()
		{ 
			if(http.readyState == 4)
			{
				if(http.status == 200)
				{
							var xmldoc = http.responseXML;
							
					if(xmldoc.getElementsByTagName("error")[0].firstChild.data == 0 || xmldoc.getElementsByTagName("error")[0].firstChild.data == "0") {
						var is_error = false;
					}
					else {
						var is_error = true;
					}
					
					if(disable && !is_error) {
								for (var xy=0;xy<f.elements.length; xy++) {
									f.elements[xy].disabled = true;
								}
							}
							
					if(typeof(myfunction) == "undefined" || !myfunction) {
							if(http.responseXML) { 
							// Note : on met une condition des fois que loadNode ait été supprimé par un programme tiers
							if(typeof(loadNode) != "undefined") loadNode.innerHTML = xmldoc.getElementsByTagName("message")[0].firstChild.data;
							if(typeof(xmldoc.getElementsByTagName("hideafter")[0].firstChild.data) != "undefined" && xmldoc.getElementsByTagName("hideafter")[0].firstChild.data == "no") {
							}
							else {
								window.setTimeout("document.getElementById('loadNode').parentNode.removeChild(document.getElementById('loadNode'));", 4000);
							}
						}
					}
					else {
						myfunction(xmldoc, is_error, myfctn_arg);
							}
				}	
				else	
				{
						loadNode.innerHTML = "<span style='color:red;' ><strong>Erreur </strong>: <i>" + http.statusText + "</i>";	
				}	
					
			} 
		}; 


if(processus == "GET" || processus == "get") {
var cible_get = (cible.search(/\.php\?/) != -1) ? String(cible + "&" + values) : String(cible + "?" + values);

http.open("GET", cible_get, true);
}
else if(processus == "POST" || processus == "post") {
http.open("POST", cible, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//window.alert('POST enclenchee');
}
else { window.alert('No method found'); }
var send = (processus == "POST" || processus == "post") ? values : null;
//alert("Message de maintenance : \n"+send);
http.send(send);
return true;
}



//fonction de détection de présence... ou non, de MP ( en fonction de la valeur de {PRIVATE_MESSAGE_INFO} )
function detectMP() {
	var valeur = "{PRIVATE_MESSAGE_INFO}";
	var find = valeur.search(/Vous avez/);
	if(find != -1) {
		var nombre = valeur.search(/[0-9]/);
		var chiffre = valeur.substr(nombre, 2);
		if(chiffre > 1) {
			document.write('<strong>Vous avez '+chiffre+' nouveaux messages</strong>');
		}
		else { document.write('<strong>Vous avez 1 nouveau message</strong>'); } 
	}
	else { document.write('Vous n\'avez aucun nouveau message'); }
}



//fonction pour l menu déroulant
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}

// Fonction pour la pop up du chat IRC
function pop_it(the_form) {
	my_form = eval(the_form)
	var tchat = window.open("http://www.zeolia.net/applet/wait.php", "tchat", "height=440, width=640, menubar='no', toolbar='no', location='no', status='no', scrollbars='no'");
	my_form.target = "tchat";
	my_form.submit();
	tchat.focus();
}


function hide_ucp_panel() {
	var ucp_panel = document.getElementById("ucp_nav");
	if(!document.getElementById("ucp_showpanel_link")) {
		//alert("Not found, insert one");
		var link = document.createElement("div");
		link.innerHTML = '<a href="#" style="display:none;" onclick="hide_ucp_panel();"  id="ucp_showpanel_link" >Montrer le menu de navigation</a>';
		ucp_panel.parentNode.parentNode.parentNode.parentNode.insertBefore(link, ucp_panel.parentNode.parentNode.parentNode);
	}
	//alert(Cookie.get("show_ucpnav"));
	
	if(ucp_panel.style.visibility == "hidden" || typeof(Cookie.get("show_ucpnav")) == "undefined" || (Cookie.get("show_ucpnav") == "oui" && ucp_panel.style.visibility != "visible")) { // On appelle la fonction alors que le menu est caché => On montre le menu
		//alert(1);
		ucp_panel.style.visibility = "visible";
		ucp_panel.style.position = "static";
		ucp_panel.style.top = "0px";
		ucp_panel.style.width = "180px";
		document.getElementById("ucp_showpanel_link").style.display = "none";
		Cookie.set("show_ucpnav", "oui");
	}
	else { 
		//alert(2);
		//if(Cookie.get("show_ucpnav") == "non" || (ucp_panel.style.visibility == "visible" && Cookie.get("show_ucpnav") == "oui")){
		ucp_panel.style.visibility = "hidden";
		ucp_panel.style.position = "absolute";
		ucp_panel.style.top = "-1000px";
		ucp_panel.style.width = "0px";
		document.getElementById("ucp_showpanel_link").style.display = "block";
		Cookie.set("show_ucpnav", "non");
	}
}

function pop_open(href, width, height, name) {
	if(!name) name = "pop_up"
	if(!width) width = 300;
	if(!height) height = 400;
	window.open(href, name, "height="+height+", width="+width+", menubar='no', toolbar='no', location='no', status='no', scrollbars='no'");
}

function show_hide(id) {
	if(!id) {
		alert("Erreur, aucun id fourni");
	}
	var b = document.getElementById(id);
	
	if(b.style.display == "none") {
		b.style.display = "";
	}
	else {
		b.style.display = "none";
	}
}

// Vérifie si la fonction demandée est une fonction 
function is_func(func) {
	if(typeof(func) == 'function') {
		return true;
	}
	else {
		return false;
	}
}


function expand_codepre(div) {
	//alert(div.style.width);
	var pre = div.childNodes[1];
	if(div.style.width == "auto") {
		//pre.style.overflow = "auto";
		pre.style.maxHeight = "400px";
		div.style.width = "400px";

	}
	else {
		div.style.width = "auto";
		//pre.style.overflow = "visible";
		pre.style.maxHeight = "none";
	}
}

function select_code(div) {
	// Get ID of code block
	//var e = a.parentNode.parentNode.parentNode.getElementsByTagName('DIV')[0];
	var e = div.childNodes[1];
	if (document.selection) {
		var r = document.body.createTextRange();
		r.moveToElementText(e);
		r.select();
	}
	else {
		var s = window.getSelection();
		var r = document.createRange();
		r.setStartBefore(e);
		r.setEndAfter(e);
		s.addRange(r);
	}
}

var ajax = {
	xhr : null,
	init : function () { this.xhr = GetHttpRequest(); },
	
	send : function() {
		if(typeof(this.method) == "undefined") {
			alert("Erreur, aucune méthode n'est définie"); return false;
		}
		if(typeof(this.url) == "undefined") {
			alert("Erreur, aucune URL n'est définie pour la requête.");
			return false;
		}
		if(typeof(this.async) == "undefined" || this.async == null) {
			this.async = true;
		}
		
		if(this.method == "GET" || this.method == "get") {
			var cible_get = (this.url.search(/\.([A-Z]+)\?/i) != -1) ? String(this.url + "&" + this.params.join("&")) : String(this.url + "?" + this.params.join("&"));

			this.xhr.open("GET", cible_get, this.async);
		}
		else if(this.method == "POST" || this.method == "post") {
			this.xhr.open("POST", this.url, this.async);
			this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		}
		else { window.alert('No method found'); }
		var send = (this.method == "POST" || this.method == "post") ? this.params.join("&") : null;
		this.xhr.send(send);
		return true;
	}
}

function insertAfter(node_insert, referenceNode) {
   if(referenceNode.parentNode.lastChild == referenceNode) { 
        referenceNode.parentNode.appendChild(node_insert); 
    }
	else {
		referenceNode.parentNode.insertBefore(node_insert, referenceNode.nextSibling);
	}
}

function node_suicide(node) {
	node.parentNode.removeChild(node);
}