Faits: A. A.a. Début 2008, Y._, domiciliée à ... (VD), qui désirait effectuer une croisière de loisirs en Méditerranée avec des amis et leurs enfants (soit un groupe d'une dizaine de personnes), est entrée en contact avec X._ SA (ci-après: X._), une société anonyme ayant son siège à Genève et dont le but est le commerce, le courtage, la location, le management et la maintenance de bateaux et, d'une manière générale, toute activité qui concerne la navigation de plaisance. Dans sa brochure promotionnelle 2008, X._ proposait l'affrètement de yachts en charter privé de haut standing avec un service cinq étoiles, un hébergement de première classe et le professionnalisme d'un équipage hautement entraîné. Y._ porta son choix sur le yacht " A._ " qui figurait dans cette brochure. Le 12 février 2008, Y._, désignée comme l'affréteur, a conclu avec la société W._ Ltd Jersey, désignée comme propriétaire du bateau, un contrat d'affrètement portant sur la mise à disposition du bateau de plaisance à voile le " A._ ", mouillant au port de Naples, pour la période du 10 au 24 juillet 2008, la croisière devant se terminer au port de Palerme. Le prix de l'affrètement était fixé à 150'000 USD, somme comprenant la mise à disposition du personnel et de divers équipements maritimes sportifs. A ce prix s'ajoutait une avance de 35'000 USD destinée à couvrir les frais opérationnels du yacht à prix coûtant. Un abattement a cependant été consenti par le propriétaire et Y._ a payé au total 177'500 fr. X._ a également signé le contrat du 12 février 2008, mais l'art. 21 des conditions générales incorporées à la convention indiquait qu'elle ne signait qu'en relation avec cette clause, laquelle prévoyait sa commission de courtier et détaillait les cas d'exclusion de sa responsabilité en relation avec l'exécution du contrat. Le 4 juillet 2008, soit quelques jours avant l'embarquement, le propriétaire a annoncé qu'il ne pouvait pas mettre le bateau à disposition, en raison d'un cas de force majeure de nature mécanique. Il a été établi qu'en mai 2008, le bateau avait subi une avarie technique majeure du système d'entraînement et que les diverses réparations entreprises n'avaient pas donné satisfaction, de sorte qu'il a été nécessaire d'immobiliser le bateau du début juillet 2008 à fin août 2008 pour installer une nouvelle pompe hydraulique. Ces circonstances impliquaient, selon les conditions générales du contrat, que le propriétaire ne doive pas payer la peine conventionnelle stipulée; il devait en revanche restituer les sommes reçues. Ce point n'est plus discuté devant le Tribunal fédéral. A.b. X._ s'est efforcée de trouver une solution de remplacement pour Y._. Elle lui a proposé d'affréter deux bateaux successivement, mais cette solution n'a pas pu se concrétiser, parce que le second bateau n'était en réalité pas disponible. Y._ a alors proposé d'affréter un bateau à moteur qu'elle avait elle-même trouvé, le " B._ ". Le 9 juillet 2008, la précitée a signé un contrat, identique au précédent, qui la liait à la société V._ Srl, propriétaire du bateau " B._ ", également mouillé à Naples. Le prix de l'affrètement, pour une durée équivalente de quinze jours, était fixé à 78'000 euros, auquel s'ajoutait une avance de 19'500 euros pour les frais opérationnels et un montant de 3'700 euros pour les frais de remise du bateau. X._ a elle-même payé cette somme, sans opposition de Y._, à l'aide des fonds qu'elle avait récupérés pour elle auprès du propriétaire du " A._ ". Y._ a embarqué avec ses invités à Naples les 10 et 11 juillet 2008. Elle a toutefois débarqué, avec ses invités, dans le port de Capri le 14 juillet 2008, parce qu'elle était insatisfaite des prestations fournies. Des pannes étaient survenues, l'équipement ne lui convenait pas et elle jugeait le personnel incompétent. Y._ a dû séjourner avec ses invités à Capri pendant 24 heures et assumer les frais de ce séjour. A.c. Le 15 juillet 2008, X._, alertée par Y._, lui a soumis par télécopie un troisième contrat, identique aux deux précédents, portant sur l'affrètement du bateau " C._ ". Ce contrat, que Y._ a retourné signé, la liait à la société U._ SpA en tant que propriétaire du bateau, X._ étant à nouveau désignée comme courtier. Le prix de l'affrètement, pour les dix jours restants, était fixé à 110'000 USD auquel s'ajoutait une avance de 12'072 USD, pour les frais opérationnels. Y._ avait été informée, le 14 juillet, que ce bateau était sensiblement plus cher, ce qu'elle a accepté au regard de sa responsabilité envers ses invités. X._ a payé les montants convenus, sans objection de Y._ et avant l'embarquement de cette dernière, le 15 juillet 2008, cela avec les fonds récupérés des mains du propriétaire du bateau " B._ " et en faisant l'avance de la différence. Le voyage à bord du " C._ " n'a donné lieu à aucune difficulté et s'est terminé le 24 juillet 2008. B. Les parties sont entrées en litige au sujet du décompte entre elles. Par demande déposée auprès du Tribunal de première instance de Genève le 4 mars 2009, Y._ a formé une action en paiement à l'encontre de X._, réclamant à cette dernière la somme de 121'161 fr. avec intérêts à 5% dès le 1er décembre 2008. X._ s'est opposée à cette demande et a conclu reconventionnellement à ce que sa partie adverse soit condamnée à lui verser la somme de 78'262 fr. avec intérêts à 5% dès le 25 septembre 2008. La demanderesse s'est opposée aux conclusions reconventionnelles. Par jugement du 22 septembre 2011, le Tribunal de première instance a rejeté la demande principale et a admis la demande reconventionnelle. Partant, il a condamné Y._ a payé à X._ la somme de 78'262 fr. avec intérêts à 5% dès le 25 septembre 2008. En substance, le tribunal a considéré que le contrat conclu entre les parties devait être qualifié de contrat de courtage et qu'il n'était pas soumis à la loi sur les voyages à forfait; il a jugé que X._ avait correctement exécuté ses obligations de courtier et avait droit au remboursement de l'avance effectuée pour la mise à disposition du bateau " C._ ". Y._ a appelé de ce jugement, concluant, sur demande principale, à ce que sa partie adverse soit condamnée à lui verser la somme de 48'943 fr.30 avec intérêts à 5% dès le 1er décembre 2008 et à ce que la demande reconventionnelle soit rejetée. X._ a conclu à la confirmation du jugement attaqué. Par arrêt du 8 juin 2012, la Chambre civile de la Cour de justice du canton de Genève a considéré, à l'inverse du juge de première instance, que le contrat était soumis à la loi sur les voyages à forfait; elle a admis que le prix d'affrètement du bateau " B._ " devait être réduit de moitié en raison des défauts de ce bateau, que X._, en tant qu'organisateur du voyage, devait rembourser les frais de l'escale forcée à Capri et ne pouvait réclamer aucun supplément pour le bateau " C._ " fourni en remplacement; compte tenu des avances déjà payées par Y._, la cour cantonale a déterminé à 41'658 fr. le trop-perçu. En conséquence, le jugement de première instance a été annulé et la cour cantonale a condamné X._ à verser à Y._ la somme de 41'658 fr. avec intérêts à 5% dès le 1er décembre 2008. C. X._ exerce un recours en matière civile au Tribunal fédéral. Soutenant que la cour cantonale a violé le droit fédéral en appliquant la loi sur les voyages à forfait alors qu'il fallait appliquer les règles sur le contrat de courtage, elle conclut à l'annulation de la décision attaquée et à la condamnation de sa partie adverse à lui payer la somme de 78'262 fr. avec intérêts à 5% dès le 25 septembre 2008. L'intimée propose le rejet du recours et la confirmation de l'arrêt attaqué. Les parties ont répliqué et dupliqué.