/**
 * 
 * Ce fichier permet d'effectuer des requêtes ajax
 * $Auteur: Kevin
 * $Version: $Id: ajax.js 16 2009-11-18 22:25:53Z ke20 $ $
 */

function asynAjaxQuery(params, path, callback)
{
	var xhr = getHttpRequest();
	xhr.onreadystatechange = function ()
    {
		$('loading').style.display = (xhr.readyState < 4) ? 'block' : 'none';
		$('loading').style.visibility = (xhr.readyState < 4) ? 'visible' : 'hidden';
		
		if(xhr.readyState == 4)
		{
			if(xhr.status == 200) {
				if(callback) {
					callback(xhr.responseText);
				}
			}
			else
				alert('problème avec la requête');
		}
	};
	
	xhr.open("POST",path,true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr.send(params);
}

function setPictureCat(e, p_id)
{	
	var func = function () {
		loading(false);
	};
	
	var param = "mid=setPictureCat";
	param += "&1=" + e.value;
	param += "&2=" + p_id;
	
	asynAjaxQuery(param, "ajax/ajax.php", func);
}

/**
 * Requete ajax pour ajouter un élément en favorie
 * 
 */
function addFavourites(e, type, id)
{	
	var param = "mid=addFavourite";
	param += "&1=" + type;
	param += "&2=" + id;
	
	// définition de ce qu'on fait après l'appel
	var func = function(reponse) {
		e.onclick = function() { 
			delFavourites(e, type, id, reponse.replace(/(\r|\n| )*/, '')); 
		};
		e.src = 'img/btn_rmFavourites.gif';
	};
	
	asynAjaxQuery(param, "ajax/ajax.php", func);
}

/**
 * Requete ajax pour retirer un element des favories
 * 
 */
function delFavourites(e, type, id, id_fav)
{	
	var func = function () {
		e.onclick = function() { 
			addFavourites(e, type, id); 
		};
		e.src = 'img/btn_addFavorites.gif';
	};
	
	var param = "mid=delFavourite";
	param += "&1=" + id_fav;
	
	asynAjaxQuery(param, "ajax/ajax.php", func);
}

function AjaxSaveNote(type, id, note)
{	
	var func = function(response) 
	{
		for(var j = 0; j < 5; j++) 
		{	
			if(j < note) {
				$('star_' + j).src = "img/star_full.png";
			}
			
			$('star_' + j).onmouseover = function() {};
			$('star_' + j).onmouseout = function() {};
			$('star_' + j).onclick = function() {};
		}
	};
	
	var param = "mid=saveNote";
	param += "&1=" + id;
	param += "&2=" + note;
	param += "&3=" + type;
	
	asynAjaxQuery(param, "ajax/ajax.php", func);
}

/**
 * Appel ajax pour 
 * @param infos
 * @return
 */
function report(e, infos)
{
	var date = new Date();
	var params = "mid=report";
	params += "&1=" + infos;
	params += "&2=" + date.getTime(); // Pour le cache
	
	var func = function (response) {
		if(response.match('success')) {
			e.parentNode.innerHTML = 
				'Rapport envoyé';
		} else {
			alert('Une erreur est survenue.');
		}
	};
	
	text = 'Si vous continuez un message d\'erreur va être envoyé automatiquement.\r\n\r\n';
	text += 'Êtes vous sur de vouloir continuer?';
	
	var valid = confirm(text);
	if(valid) {
		asynAjaxQuery(params, "ajax/ajax.php", func);
	}
}


function rmAddonFile(e, idAddonFile, name)
{
	var text = 'Êtes vous sur de vouloir supprimer le fichier ' + name + '?';
	var valid = confirm(text);
	if(!valid) { return false; }
	
	var d = new Date();
	var params = "mid=rmAddonFile";
	params += "&1=" + idAddonFile;
	params += "&time=" + d.getTime();
	
	var func = function (response) 
	{
		var message = '';
		if(response.match('success')) 
		{	
			// On récupère notre élément de tableau contenant le fichier
			var parent = e.parentNode;
			while(parent.tagName != 'TR') {
				parent = parent.parentNode;
			}
			
			// On supprime la ligne du tableau
			var rowTable = parent;
			rowTable.parentNode.removeChild(parent);
		} 
		else {
			alert('Une erreur est survenue.');
		}
	};
	
	asynAjaxQuery(params, "ajax/ajax.php", func);
}

