var backup='';

	
function prepareData() {
	$('connexion').fade();
	setTimeout('$("bo_loading").appear()',1000);
	sendRequest('cnx',null);
}


function sendDeco() {
	document.getElementById('connexion').fade();
	sendRequest('decnx', null);
}
	
function tryCnx() {
	sendRequest('auto_cnx', null);
}

function appendInput(element, type, name, id, valeur){
	input = document.createElement("input");
	input.setAttribute("type", type);
	input.setAttribute("name", name);
	input.setAttribute("id", id);
	input.setAttribute("value", valeur);
	element.appendChild(input);
}

function sendRequest(op, param, param2){
		var url = 'php//gestion_httprequest.php';
		var ident = $('ident').value;
		
		if ((op=='inscription') || (op=='profil')) {
			var form_profil = $('form_profil').cloneNode(true);
			
			for (var i = 0; i < form_profil.elements.length; i++) form_profil.elements[i].value = escape(form_profil.elements[i].value);
			form_profil.newsletters.value = $("i_ch_news").checked;
			form_profil.i_pays.value = $("i_pays").value ;			
			form_profil.i_civilite.value = $("i_civilite").value;
			form_profil.i_pwd.value = MD5(escape($("i_pwd").value));
			$('form_profil').fade();
			$('msg').update("<div id='bo_loading'></div>");
			
			appendInput(form_profil, "hidden", "ident_http", "ident_http", $('ident').value);
			appendInput(form_profil, "hidden", "operation", "operation", op);
			
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: form_profil.serialize(true),
								onSuccess: function(transport){getResponse(transport);}, 
								onFailure: function(){ alert('Something went wrong...') }
			});
		}
		else if (op == 'cnx') {
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: { ident_http: ident, operation: op, login: escape($("login").value), password: MD5(escape($("password").value)), souvenir: $("souvenir").checked },
								onSuccess: function(transport){getResponse(transport);}, 
								onFailure: function(){ alert('Something went wrong...') }
			});
		}
		else if (op == 'msg-suppr') {
			var MessageList = $('MessageList').cloneNode(true);
			for (var i = 0; i < MessageList.elements.length; i++) MessageList.elements[i].value = escape($('MessageList').elements[i].value);
			appendInput(MessageList, "hidden", "ident_http", "ident_http", $('ident').value);
			appendInput(MessageList, "hidden", "operation", "operation", 'msg_suppr');
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: MessageList.serialize(true),
								onSuccess: function(transport){getResponse(transport);}, 
								onFailure: function(){ alert('Something went wrong...') }
			});
		}
		else if (op == 'msg-send') {
			var MessageList = $('MessageList').cloneNode(true);
			for (var i = 0; i < MessageList.elements.length; i++) MessageList.elements[i].value = escape($('MessageList').elements[i].value);
			appendInput(MessageList, "hidden", "ident_http", "ident_http", $('ident').value);
			appendInput(MessageList, "hidden", "operation", "operation", msg_send);
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: MessageList.serialize(true),
								onSuccess: function(transport){getResponse(transport);}, 
								onFailure: function(){ alert('Something went wrong...') }
			});		
		}
		else if (op == 'mail_send') {
			$('form_mail').toggle();
			var Mail_Content = $('form_mail').cloneNode(true);
			for (var i = 0; i < Mail_Content.elements.length; i++) Mail_Content.elements[i].value = escape($('form_mail').elements[i].value);
			appendInput(Mail_Content, "hidden", "ident_http", "ident_http", $('ident').value);
			appendInput(Mail_Content, "hidden", "operation", "operation", "mail_send");
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: false,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: Mail_Content.serialize(true),
								onSuccess: function(transport){getmailresult(transport); }, 
								onFailure: function(transport){alert('Le mail n\'a pas pu être envoyé, merci de réessayer ultérieurement...') }
			});
		}
		else if (op == 'verif_code') {
			if ($('verif_code').value.length < 6) return;
			var code = encodeURIComponent($('verif_code').value);
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: { ident_http: ident, input_code: MD5(escape(code)), operation: op },
								onSuccess: function(transport){getVerifCode(Decode(transport.responseText));}, 
								onFailure: function(){}
			});
		}
		else if(op=='delete_news') {
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: { ident_http: ident, operation: op, numnews: param },
								onSuccess: function(transport){callback_delete_news(Decode(transport.responseText));}, 
								onFailure: function(){}
			});
		}
		else if(op=='direct') {
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: param,
								onSuccess: function(transport){ajaxSaveReturn(Decode(transport.responseText), param2);}, 
								onFailure: function(){ alert('Something went wrong...') }
			});
		}
		else {
			new Ajax.Request(	url,{
								method: 'post',
								asynchronous: true,
								contentType: 'application/x-www-form-urlencoded',
								encoding: 'iso-8859-1',
								parameters: { ident_http: ident, operation: op },
								onSuccess: function(transport){getResponse(transport);}, 
								onFailure: function(){ alert('Something went wrong...') }
			});
		}
	}

	function getResponse(transport) {
		backup = Decode(transport.responseText);
		$('bo_loading').fade();
		if (callback_immediat(backup)==true) setTimeout('callback(backup)',1000);
	}
	
	function Decode(donnee) {
		return unescape(donnee);
	}


function addEvent(obj, event, fct) {
	if (obj.attachEvent) //Est-ce IE ?
		obj.attachEvent("on" + event, fct); //Ne pas oublier le "on"
	else obj.addEventListener(event, fct, false);
}

function EcrireCookie(nom, valeur) {
	var argv=EcrireCookie.arguments;
	var argc=EcrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
	
	
function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

	
function LireCookie(nom) {
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0) break;
	}
	return null;
}

	
function EffaceCookie(nom) {
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	EcrireCookie(nom,null,date);
}

Object.extend(Ajax.InPlaceEditor.prototype, {
	onLoadedExternalText: function(transport) {
		Element.removeClassName(this.form, this.options.loadingClassName);
		this.editField.disabled = false;
		this.editField.value = transport.responseText;
		Field.scrollFreeActivate(this.editField);
	}
});

Object.extend(Ajax.InPlaceEditor.prototype, {
		getText: function() {
		return /*this.element.childNodes[0] ? this.element.childNodes[0].nodeValue :*/ this.element.innerHTML;
	}
});
