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

	this.ajouter=function(nom,categorie,qte,prix,prov){
		this.request.onupgradeneeded = function (event) {
			var baseAMettreAjour = event.target.result;
			var ancienneVersion = event.oldVersion;
			var nouvelleVersion = event.newVersion;
			switch (ancienneVersion) {
				case 0:
					baseAMettreAjour.createObjectStore('propro', { 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('propro',
			'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('propro').add({nom: nom,categorie:categorie,qte:qte,prix:prix,prov:prov});
			// 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 voaova!', 4000);
                var pplist=new Propro(db_manager.open("smarkhelp8",2));
                pplist.afficher($("#pro_pro_list"),$("#prov").val());
			};
            baseActive.close();
		};

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

		this.request.onsuccess = function (event) {
            element.html("");
			var baseActive = event.target.result;
            var tabtotal=new Array();
            var somme=0;
			// Nous démarrons une transaction avec la base sur la table utilisateurs en lecture-écriture
            console.log(baseActive);
			var transactionLecture = baseActive.transaction('propro','readonly');
	
			var recuperationPointeur =transactionLecture.objectStore('propro').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){
                    if(pointeur.value.prov==prov){
     tabtotal.push(parseInt(pointeur.value.prix)*parseFloat(pointeur.value.qte));
element.append('<a class="list-group-item allow-badge widget" data-uib="twitter%20bootstrap/list_item" data-ver="1" value="'+pointeur.value.id+'"><span class="badge">'+pointeur.value.qte+' x '+pointeur.value.prix+'Ar</span><h4 class="moy-font list-group-item-heading l-propro">'+pointeur.value.nom+'</h4><p class="sm-font list-group-item-text">'+pointeur.value.categorie+'</p><div class="check-style"></div></a>');
                    }
                    pointeur.continue();
                }
                else{
                    for(var i=0;i<tabtotal.length;i++){
                        somme+=tabtotal[i];
                    }
                    $("#sommetotal").html("Total : "+somme+" Ar");
                }
			}
            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('propro', { 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(['propro'],'readwrite').objectStore('propro');
            var quest = trans.get(parseInt(id));
            quest.onerror = function(event) {
              
            };
            quest.onsuccess = function(event) {
                var data = event.target.result;
                $("#pro-detail").html(data.nom);
            };
		};

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