/**
 * @brief	Fonctions utilisées pour gérer le garage de la caserne
 * @author	Renan
 * @since	27/05/2010
 * @version	1
 */


function Garage()
{
	this.formEquipement = false;	//affichage du formulaire de l'équipement ?
	this.nSapeur = 0;				//nombre de sapeur pour ce véhicule
	this.page	= 0;				//page en cours du garage
	this.triGarage	= null;			//tri effectué sur le garage
	this.viewAll	= false;		//permet de supprimer la pagination qunad ça vaut true
	
	/* mise à jour de l'équipement nécessaire pour un véhicule */
	this.viewEquipement = function( vid )
	{
		$.post('/fr/game/pages/garage.ajax.php', { action:'equipement', vehicule: vid }, function(data){
			if (data[0] != false) {
				$('#listeMaterielVehicule').html(data[0]);
			}
			else 
				$('#listeMaterielVehicule').html('<span class="Style3">Erreur ce véhicule n\'est pas à vous !</span>');
			
		}, 'json');
	}
	
	
	/* voir le formulaire d'armement du véhicule (les sapeurs qui seront dans ce camion) et du matériel */
	this.garde = function( vid )
	{
		this.formEquipement = false;

		
		//appel ajax
		$.post('/fr/game/pages/garage.ajax.php', { action:'viewFormGarde', vehicule:vid }, function(data){
			contenuPopupAjax(data[0]);
			garage.nSapeur = data[1];
		}, 'json');
	}
	 
	/* armer un véhicule */
	this.armerVehicule = function()
	{
		var lesSapeurs = new Array();
		var pompier = 0;
		var postPompier = '';
		var erreur = false;
		var vid = $('input[name=vid]').val();
		
		//vérification que le formulaire soit bien remplis (toute les listes sélectionnées + que des sapeur différent)
		for(i=0; i<this.nSapeur; i++)
		{
			pompier = parseInt( $('select[name=armementVehicule'+i+'] option:selected').val() );
			if( in_array(pompier,lesSapeurs) || pompier == 0)
				erreur = true;
			else
			{
				lesSapeurs[lesSapeurs.length] = pompier;
				postPompier += ','+pompier;
			}
		}
		
		//envoi ou affichage erreur
		if(erreur == true)
		{
			$('#erreurFormGarde').html('<b>ERREUR,</b><br/>Le camion n\'est pas complet ou des pompiers occupent plusieurs poste !');
		}
		else
		{
			$.post('/fr/game/pages/garage.ajax.php', { action:'garde', vehicule:vid, hommes:postPompier.substr(1) }, function(data){
				
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
			}, 'json');
		}
	}
	
	/* Armer un véhicule automatiquement */
	this.armerVehiculeAuto = function()
	{
		var erreur = false;
		var vid = $('input[name=vid]').val();
		
			$.post('/fr/game/pages/garage.ajax.php', { action:'gardeAuto', vehicule:vid }, function(data){
				
				if( data[0] == false )
					message( data[1], '#TB_ajaxContent');
				else
				{
					fermerPopupAjax();
					message( data[1] );
					garage.chargement( garage.page ); // rechargement du garage !
				}
				
			}, 'json');
	}
	
	
	/* vider un véhicule */
	this.viderVehicule = function()
	{
		var vid = $('input[name=vid]').val();
		
		$.post('/fr/game/pages/garage.ajax.php', { action:'viderGarde', vehicule:vid}, function(data){
							
				fermerPopupAjax();
				message(data[1]);
								
				//rafraicchissement du garage (a venir)
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* désarmer tous les véhicules */
	this.desarmeAll = function()
	{
		$.post('/fr/game/pages/garage.ajax.php', { action:'desarmeAll'}, function(data){
				message(data[1]);
				
				//rafraicchissement du garage (a venir)
				garage.chargement( garage.page );
		}, 'json');
	}
	
	
	
	/* équiper un véhicule */
	this.equipe = function(){
		var vid = $('input[name=equipe]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'equipeVehicule', vehicule:vid}, function(data){
							
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage (a venir)
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	
	/* déséquiper un véhicule */
	this.desequipe = function(){
		var vid = $('input[name=desequipe]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'desequipeVehicule', vehicule:vid}, function(data){
							
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* déséquiper tous les véhicules */
	this.desequippeAll = function()
	{
		$.post('/fr/game/pages/garage.ajax.php', { action:'desequipeAll'}, function(data){
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
		}, 'json');
	}
	
	/* vendre un véhicule */
	this.vendre = function()
	{
		var vehId = $('input[name=vehiculeIdvente]').val();
		var prix = $('input[name=prixdevente]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'vendre', vehicule:vehId, prix:prix }, function(data){
				
				message(data[1], '#TB_ajaxContent');
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
		}, 'json');
	}
	
	
	/* vendre un véhicule à la casse */
	this.casse = function()
	{
		var vehId = $('input[name=vehiculeIdvente]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'casse', vehicule:vehId }, function(data){
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
		}, 'json');
	}
	
	/* renommer véhicule */
	this.renommer = function()
	{
		var vehId 	= $('input[name=vehiculeIdvente]').val();
		var name 	= parseInt($('input[name=ident]').val());
		$.post('/fr/game/pages/garage.ajax.php', { action:'renommer', vehicule:vehId, nom:name }, function(data){
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
		}, 'json');
	}
	
	/* nettoyer un véhicule */
	this.nettoyer = function(){
		var vid = $('input[name=proprete_veh]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'nettoyer', vehicule:vid}, function(data){
							
				message(data[1], '#TB_ajaxContent');
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* nettoyer tout véhicule */
	this.nettoyerAll = function(){
		$.post('/fr/game/pages/garage.ajax.php', { action:'nettoyerAll'}, function(data){
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* faire le plein d'un véhicule */
	this.fairePlein = function(){
		var vid = $('input[name=plein_veh]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'fairePlein', vehicule:vid}, function(data){
							
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* faire le plein tout véhicule */
	this.pleinAll = function(){
		$.post('/fr/game/pages/garage.ajax.php', { action:'fairePleinAll'}, function(data){
				message(data[1]);
				
				$("#pleinAllVeh").html("<b>Faire le plein d\'essence (0 Fz)</b>");
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* reparation du véhicue */
	this.reparer = function(){
		var vid = $('input[name=reparation_veh]').val();
		$.post('/fr/game/pages/garage.ajax.php', { action:'reparer', vehicule:vid}, function(data){
							
				fermerPopupAjax();
				message(data[1]);
				
				//rafraicchissement du garage
				garage.chargement( garage.page );
				
		}, 'json');
	}
	
	/* chargement du Garage avec les véhicules */
	this.chargement = function(page)
	{
			this.page = page;
			$.post('/fr/game/pages/garage.ajax.php', { action: 'garage', tri: this.triGarage, viewAll:this.viewAll, page: this.page }, function(data){
				$('#listeVehicule-container').html(data[0]);
				
				garage.pagination(data[1]);
			}, 'json');
	}
	
	/* tri sur un véhicule */
	this.tri = function()
	{
		var pagination = 0;
		this.triGarage = parseInt( $('select[name=triCaserne] option:selected').val() );
		
		//on recharge
		this.chargement(1);
	}
	
	/* tout afficher sur la meme page */
	this.nopagination = function()
	{
		this.viewAll = !this.viewAll;
		this.chargement(1);
	}
	
	/* recréation de la pagination */
	this.pagination = function(nPage)
	{
		var paginationHtml = '';
		if(nPage > 1 && this.viewAll==false)
		{
			paginationHtml += 'Pages : ';
			for (i = 1; i <= nPage; i++) {
				if (i == this.page) 
					paginationHtml += '<b>'+i+'</b>';
				else 
					paginationHtml += '<span id="pagination' + i + '">' + i + '</span>';
				
				if (i < nPage) 
					paginationHtml += ' - ';
			}
		}
		
		$('#pagination').html(paginationHtml);
	}
	
	this.checkIdPerso = function()
	{
		$('#checkId').empty();
		var input = parseInt($('input[name=ident]').val());
		if(!isNaN(input) && input>0 && input<=1000 )
		{
			$('#checkId').html('<img src="/fr/static/images/icons/accept.png" width="12" height="12" />');
		}
		else{
			$('#checkId').html('<img src="/fr/static/images/icons/cancel.png" width="12" height="12" /><span style="color:red;"> Valeur incorrecte, il te faut un chiffre compris entre 1 et 1000.</span>');
		}
	}
}

