function Provision(dbRequest){
	this.request=dbRequest;

	this.ajouter=function(nom,debut,fin){
		this.request.onupgradeneeded = function (event) {
			var baseAMettreAjour = event.target.result;
			var ancienneVersion = event.oldVersion;
			var nouvelleVersion = event.newVersion;
			switch (ancienneVersion) {
				case 0:
					baseAMettreAjour.createObjectStore('provision', { keyPath:
					'id', autoIncrement: true });
					break;
				case 1:
					break;	
			};
		}

		this.request.onsuccess = function () {
			var baseActive = this.result;
			// Nous démarrons une transaction avec la base sur la table utilisateurs en lecture-écriture
			var transaction = baseActive.transaction('provision',
			'readwrite');
			// Puis nous insérons notre valeur avec add() sur l'ObjectStore, en ajoutant en second argument la clé de notre valeur
			var ajout = transaction.objectStore('provision').add({nom: nom,debut:debut,fin:fin});
			// Et enfin, comme l'ajout est asynchrone, nous attendons son retour
			ajout.onsuccess = function() {
			// Notre valeur a bien été insérée
			// Elle aura en plus une propriété id automatiquement ajoutée
                Materialize.toast('Vatsy vaovao!', 4000);
                var lpro=new Provision(db_manager.open("smarkhelp7",2));
            	lpro.afficher($("#provision_list"));
			};
            baseActive.close();
		};

		this.request.onerror= function(e){
			alert("erreur. . . ");
		};
	};
    
    this.afficher=function(element){
		this.request.onupgradeneeded = function (event) {
			var baseAMettreAjour = event.target.result;
			var ancienneVersion = event.oldVersion;
			var nouvelleVersion = event.newVersion;
			switch (ancienneVersion) {
				case 0:
					baseAMettreAjour.createObjectStore('provision', { keyPath:
					'id', autoIncrement: true });
					//provision.createIndex('indexNom', 'nom', {unique: true});
					break;
				case 1:
					break;	
			};
		}

		this.request.onsuccess = function (event) {
            element.html("");
			var baseActive = event.target.result;
			// Nous démarrons une transaction avec la base sur la table utilisateurs en lecture-écriture
            console.log(baseActive);
			var transactionLecture = baseActive.transaction('provision','readonly');
	
			var recuperationPointeur =transactionLecture.objectStore('provision').openCursor();

			recuperationPointeur.onsuccess = function (event) {
				// Nous récupérons le pointeur qui sait naviguer dans la table
				var pointeur = event.target.result;
				//alert(pointeur.size);
                if(pointeur && pointeur.value){
element.append('<a role="tab" data-toggle="tab" href="#liste_produit" class="pro_pro list-group-item allow-badge widget" data-uib="twitter%20bootstrap/list_item" data-ver="1" value="'+pointeur.value.id+'"><h4 class="moy-font list-group-item-heading l-provision">'+pointeur.value.nom+'</h4><p class="sm-font list-group-item-text">'+pointeur.value.debut+' - '+pointeur.value.fin+'</p><div class="check-style"></div></a>');
                    pointeur.continue();
                }
                else
                	if(element.html()=="") element.html("<div class=\"cyan lighten-5 center-align\" style=\"width:100%;padding: 5px;\">Tsy mbola misy</div>");
			}
            baseActive.close();
		};

		this.request.onerror= function(e){
			alert("erreur. . . ");
		};
	};
    
    this.recup=function(id){
		this.request.onupgradeneeded = function (event) {
			var baseAMettreAjour = event.target.result;
			var ancienneVersion = event.oldVersion;
			var nouvelleVersion = event.newVersion;
			switch (ancienneVersion) {
				case 0:
					baseAMettreAjour.createObjectStore('provision', { keyPath:
					'id', autoIncrement: true });
					break;
				case 1:
					break;	
			};
		}

		this.request.onsuccess = function (event) {
			var baseActive = event.target.result;
			// Nous démarrons une transaction avec la base sur la table utilisateurs en lecture-écriture
			var trans = baseActive.transaction(['provision'],'readwrite').objectStore('provision');
            var quest = trans.get(parseInt(id));
            quest.onerror = function(event) {
              
            };
            quest.onsuccess = function(event) {
                var data = event.target.result;
                $("#pro-detail").html(data.nom+" ("+data.debut+" - "+data.fin+")");
            };
		};

		this.request.onerror= function(e){
			alert("erreur. . . ");
		};
	};
    
}