/**
* Ajax manager
*
* @author Antoine Ughetto
* @version 0.2
*
* @package P6_framework
* @subpackage javascript
*/
var P6_xmlRequest = {
'div_dest':null,
'complete':null,

'handleSuccess':function(o){
	if(o.responseText != "" && this.div_dest){

		this.div_dest.innerHTML = o.responseText;
		var response = o.responseText;
		var myRegExp = /<script([^>]*)>([\s\S]*?)<\/script>/igm;
		while((tabJS = myRegExp.exec(response)) != null){


			eval(tabJS[2]);
		}
		if(this.complete != null){
			eval(this.complete);
		}
	}
},
'handleFailure':function(o){
	alert( o.status + " " + o.statusText);
},
'get':function(objet) {
	var url = objet.url;
	var call = callback;
	var flux = '';
	var type = "POST";

	this.div_dest = document.getElementById(objet.id);
	if(!this.div_dest){
		this.div_dest = document.getElementsByTagName("body")[0];
	}
	if(objet.callback != undefined){
		call = objet.callback;
	}
	if(objet.flux != undefined){
		flux = objet.flux;
	}
	if(objet.type != undefined){
		type = objet.type;
	}

	if(objet.complete != undefined){
		this.complete = objet.complete;
	}else{
		this.complete = null;
	}

	if(objet.start != undefined){
		eval(objet.start);
	}
	
	if(type == "POST"){
		YAHOO.util.Connect.asyncRequest('POST', objet.url , call, flux);
	}
	if(type == "FORM"){
		YAHOO.util.Connect.setForm(document.getElementById(objet.formId), false);
		YAHOO.util.Connect.asyncRequest('POST', objet.url, call);
	}
	if(type == "UPLOAD"){
		if(objet.callback != undefined) callbackUpload = objet.callback;
		YAHOO.util.Connect.setForm(document.getElementById(objet.formId), true);
		YAHOO.util.Connect.asyncRequest('POST', objet.url, callbackUpload);
	}

	if(objet.indicator != undefined){
		this.div_dest.innerHTML = '<span style="background: url(\''+objet.indicator+'\') no-repeat left center;padding-left:20px;">Loading...</span>';
	}

}
};

/**
*
*	Classic callback
*
**/
var callback ={
	success: P6_xmlRequest.handleSuccess,
	failure: P6_xmlRequest.handleFailure,
	scope:P6_xmlRequest,
	argument: "ok"
};

/**
*
*	Upload callback
*
**/
var callbackUpload = {
	upload : P6_xmlRequest.handleSuccess,
	failure: P6_xmlRequest.handleFailure,
	scope:P6_xmlRequest,
	argument: "ok"
}
