diff --git a/pgan_raffle/MOCK_DATA.csv b/pgan_raffle/MOCK_DATA.csv new file mode 100644 index 0000000..550f6ba --- /dev/null +++ b/pgan_raffle/MOCK_DATA.csv @@ -0,0 +1,1001 @@ + +Eachelle Proger +Con Lamond +Kaitlyn Lideard +Cassandre Humberstone +Peria Druett +Eustace Scarratt +Aksel Cockaday +Cozmo Birkin +Malena Alenshev +Niccolo Scouler +Giulia Wright +Tannie Etter +Danica Whines +Natty Goodbarr +Vinny Jovicic +Anya Dumbrill +Noell Skipper +Dasie Skupinski +Dorella Phillipp +Griselda Nowick +Goldina Bradneck +Fanni Joynt +Leonelle Siveyer +Joyce Denyer +Alleen Goodwill +Lewiss Marcone +Selene Kubach +Kevin Fulmen +Brady Goldin +Ewan Casari +Shellie Emsley +Pryce Kenn +Cissy Gamwell +Bentlee Melody +Koressa Gewer +Miguela Chevins +Ricca Wackett +Kelcy Husher +Tawnya Baxster +Kelbee Cazin +Susannah Stansell +Merola Maginot +Clevey Learmouth +Isa Youd +Hewie Gleadle +Rurik Rendle +Murdoch Sivill +Deb Havik +Byrom Osan +Lynnett MacGrath +Annelise Eldrett +Adlai Tomblings +Henderson Elsmore +Alley Stede +Muffin Shynn +Nancy Foan +Kevina Culley +Edgardo Woodsford +Esma Vanns +Nate Charon +Reggie Fandrey +Madlin Hagger +Kennith Ferrari +Germaine Sharply +Darryl Redmire +Coletta Blincko +Julieta Cohane +Elfrida Blazevic +Kathleen Gostling +Lucian McKern +Kimmie Waycott +Othello Gobert +Thomas Onians +Daisy Montague +Janenna Goodship +Roxana Stair +Bobette Eckhard +Gizela Fazan +Terence Leimster +Ortensia Pappi +Rey Wickey +Dorolice Piddlesden +Addia Galle +Celie Georgeot +Barbie Greenwell +Geneva Krolak +Mellicent Magowan +Hedy Hein +Faber McNair +Jany Preble +Deni Pirrone +Jenine Presley +Phylis Wycliff +Katheryn Boultwood +Lonnard Cordingly +Ambrose Keightley +Edith Whooley +Reynolds Darby +Denise Ishchenko +Holly-anne Phillimore +Wat Anand +Nora Bettles +Gwynne Dukesbury +Berenice Fairtlough +Val Dollimore +Orson Spiller +Roarke Thacker +Samuele Couve +Olympie Duncanson +Sande Isgate +Juline Hiers +Teresita Antosik +Joseito Sheepy +Else Rushworth +Loren Ingram +Francene Baggett +Iggie Sansam +Alf Mahy +Tiff Brasner +Leisha Tulip +Lori Dannatt +Tomas Cajkler +Josephina Pledger +Aldous Florez +Georgia Kennefick +Kilian Ekell +Caroline McGinty +Berti Kuhlen +Carmine Legion +Glory Bruni +Melesa Galliver +Hildegarde Terbrug +Dane Cuffley +Marcille Cescon +Siouxie Harcus +Delcine Jeeves +Dorthy Aleksic +Ruthy Schoenfisch +Pierrette Kemball +Torey Britcher +Olive Rhule +Gwennie Gouldeby +Kristi Risborough +Tawnya Petruk +Lamont Timms +Flori Heintz +Henderson Swires +Dyane Iacoboni +Tulley Fleis +Paola Maxworthy +Lewes Lilly +Erasmus Garvagh +Neila Bozier +Danie Leech +Cathrin Blakely +Pierce Croker +Wadsworth Holdin +Putnam Lambin +Adelice Sarfat +Vivia Meake +Cassius McGreary +Marijn Timothy +Christy Havick +Daria Heinl +Earlie Mair +Pacorro Macveigh +Sharla Collymore +Maire Flannigan +Twila Joint +Merrilee Deex +Gretna Mylchreest +Ezra Petrushanko +Matthew Glencrash +Lyndsey Bang +Forbes Habbershon +Audrey Blueman +Valaree Mulhall +Corella Beldum +Alysia Jeenes +Ola O'Curneen +Cassie Miguet +Matteo Rubenchik +Rooney Fifoot +Puff Martell +Jaclin Hedling +Danya Dayer +Nina Binns +Beverlee Ellam +Guy Goundsy +Jarrid Gawith +Pattin Pinckney +Deloria Jeary +Kippar Libreros +Laetitia Barensen +Nathaniel Kaman +Matthaeus Blewitt +Denny Tonepohl +Vivia Longhorne +Hagen Bonsall +Vanessa Dearle-Palser +Edeline Manoch +Candace Clements +Patin Melson +Nissy Behrens +Tammie Gilsthorpe +Adah Wraight +Gilberta Cleary +Michel Dayton +Randee Lyndon +Genevra Ellson +Rozamond Demko +Corena Synan +Neile Gosz +Daffie Mennear +Gardie Creenan +Dov Kondrat +Lynne Goade +Petra Marple +Lewie Shearston +Torey Nockalls +Melisa Parton +Ambrosio Simonazzi +Krystyna Copestick +Tibold Gaggen +Donnie Marczyk +Den Kiln +Anissa Collyer +Darn Toulch +Rodney Liddel +Webb Hayden +Arlena Millward +Foss Spinney +Debbi Le Grove +Julissa Ellison +Atlante Botley +Alexandra Gunby +Danny Kleinber +Cleon Yakushkin +Ulrica Ennor +Sisile Leroux +Yetta Stocken +Caril Boultwood +Mora Gallehock +Jacky Delia +Maritsa Krollman +Josepha Bagot +Halley Bowle +Nelie Elton +Chauncey Sexstone +Adolpho Gladebeck +Killy McInnerny +Mollie Siflet +Trix Fleckness +Raleigh Jorck +Cammie Bouchier +Cecelia Wreak +Ambrose Fish +Carlie Hurich +Benedick Duigenan +Ab Goolden +Hayyim Goroni +Arron Peasee +Xavier Ellery +Kevan Berends +Nelly Hearmon +Vanya Winchcum +Rivy Moulsdall +Kendricks Groneway +Arda Chessel +Rourke Addie +Opalina Corps +Randie Dick +Ariel Sharpley +Denice Cawson +Ami Pemble +Mary Strange +Pier Cuttelar +Ave Robertelli +Wandis De Benedetti +Bryce Gorsse +Gerard Robion +Casey Dufore +Kermy Kirsz +Piggy Wodham +Malvina Ventom +Ynes Bosch +Elka Crudge +Ikey Ziemens +Brenda Rumke +Aksel Orpin +Manda Starrs +Alfy Giamuzzo +Tommie Jeacock +Ellene Meiningen +Con Clayden +Cal Momford +Jocko Tibald +Arie LeEstut +Yank Caesmans +Evin Retallick +Norma Corkish +Garrot Burles +Felipe Testro +Helenka Sartain +Cammie Fulle +Kerrie Hardiker +Rafaelita Conti +Shalna Sylvester +Millie McArley +Giorgi Hayley +Selie Keme +Kinna Alexandrou +Stanfield McCreedy +Ethel Tilbey +Kelley Sketch +Janette Brun +Flint Solly +Ingar Hawyes +Zola Hempshall +Corina Milan +Stacey Cohen +Tabor Crowcombe +Ivan Rumgay +Gannie Gonsalo +Linell Gillebride +Wynn Hardan +Charley de Chastelain +Marnie Dunstone +Reggy Storkes +Ronnie L'Archer +Noelle Chillcot +Gauthier Vanyashkin +Adelle Van Velden +Philbert MacKnight +Curry Vokes +Jerrold Peer +Weston Bezarra +Aleece Wiltshier +Bondie Ludy +Udall Wanley +Kendrick Pawellek +Abbi Eaden +Eva Chelsom +Terri Rastall +Berenice Veal +Fifine Vondrys +Sergio Gherardesci +Dermot Paff +Shellysheldon Donizeau +Holden MacDuff +Eulalie Mibourne +Kalila Kirkham +Arvie Donaho +Taryn Durnall +Noll Levick +Clara Tugwell +Corbie Ferres +Hermine Gedling +Frankie Venners +Sarette Petric +Jillie Blewett +Joela Denerley +Glenn Jurczak +Hynda Bugler +Micheline Monahan +Fields Covey +Nola Haryngton +Verney Gillet +Base O'Conor +Noach Kyd +Sammy Lippiett +Klarika Paschke +Kare Lidgey +Lolita Giffin +Jobyna Lillistone +Aharon Brum +Joletta Leyzell +Fabe Abbots +Denise Lorenzo +Shir Hembery +Kimbell Ivashev +Emogene Hayles +Marj Reynold +Raf Kemmis +Krystyna McPherson +Emmye Perse +Gina Roggers +Andee Dwire +Orbadiah Lyman +Mirella Claxton +Kandace Bellworthy +Opal Braden +Lucky Tapner +Cecil Hiskey +Giacinta Varian +Mahmud Smallridge +Felike Woolhouse +Clarke Willcock +Georgena Dellenbach +Lulita Beswick +Kelley Kairns +Fiorenze Deftie +Roddie Isgate +Faye Orkney +Cicily Gairdner +Sara O'Doireidh +Wes Ailward +Flo Galey +Johan Garrelts +Eldin Muldoon +Opal Rutigliano +Lothaire Bickerton +Howard Vennard +Sloan Oldale +Darnall Normaville +Sibel McGing +Deane Badsey +Odille Ochterlony +Brita Priestman +Lilith Kinchin +Floris O'Connor +Ara Whitechurch +Penni Gingedale +Karylin Munday +Kelila Kenaway +Ysabel Mainz +Mallory Shipman +Melisa Coldbath +Land Manser +Enos Bamlet +Berte Ivanyutin +Raf Birtwhistle +Ciel Hardisty +Lilian Willets +Miltie Gregan +Lissie Holyland +Nicola Mackrell +Phillis Rabjohns +Heloise Habben +Carlotta Aguirrezabala +Jud Hardway +Carla Drabble +Olva Croyden +Halsy Sandeson +Trix Whitemarsh +Sherwynd Jeffryes +Roxana Denyer +Marissa Parkman +Zitella Klulicek +Jaine Bonsul +Corissa Iorio +Sherman Bowler +Grazia Iacovaccio +Olly Kibel +Nealson Iacopo +Morton Dundredge +Greg Braunfeld +Carroll Melwall +Vernen Clampton +Sydel Sparry +Hortensia Buckles +Adda Bridle +Ranee Idle +Carmelita Beeble +Adelheid Minci +Roberta Dottridge +Swen Marfe +Eveline McCartney +Natal Fillan +Niels Denyakin +Yehudit Josland +Darsie Mearns +Jonie Dupoy +Merell Hughman +Bonnibelle Abramino +Berti Eggle +Bear Summerside +Cristine Bachellier +Perry Kerins +Elladine Arlow +Pren Nyssen +Claudine Blackford +Julee Grimwad +Helenelizabeth Schimank +Jerri Lomasny +Tye Santo +Bar Dellenbach +Nicky Losseljong +Sloan Cadman +Evan Keave +Dniren Zuanelli +Colleen Deely +Marjie Perrygo +Moreen Spohrmann +Wenona Janicijevic +Obidiah Piscot +Judye Jozsika +Marlie Mansfield +Con Grocott +Shannon Sainsbury +Freda Yon +Zonnya Wedlock +Annis Carlozzi +Ganny Bengle +Pansie Gentner +Inna Chisholme +Aharon Realff +Anneliese Botten +Barri Lozano +Jonathon Darey +Carce Veljes +Sandra McLuckie +Sigrid Osbidston +Florie Busst +Jenda Vain +Flynn Ewbanck +Nadeen Picot +Bidget Dudny +Corbet Allright +Tull Malin +Allin Danko +Evy Rout +Michal Linnitt +Bettina Phizakarley +Benito Howsin +Blinnie Dufour +Sharyl Snaddin +Kirsten Phair +Myrilla Bugge +Carlyle Lowfill +Coral Gibbett +Marlena Beynon +Cristine Speenden +Lela Doubleday +Kip Scapens +Tobin Ullyatt +Clair Wix +Steffi Lusgdin +Elena Gaughan +Colene Casellas +Guillema Pacher +Tito Povah +Salim Oakden +Stanfield Whimp +Fan Dovey +Hildagarde Lyles +Ketty Van der Velde +Twyla Joesbury +Nolan Fawssett +Massimo Scutts +Tailor Lyford +Tremayne Frobisher +Darelle Hakey +Mindy Maly +Winonah Timby +Sarina Del Monte +Brucie Kerby +Lynde de Clerc +Ethyl Bentick +Eden Asbury +Millie Lebell +Jillian Leaming +Cyb Kitman +Deeyn Rennock +Gisela Radin +Alane Gemnett +Madella Kingman +Chelsea Woodyatt +Kelbee Bromehed +Wat Kelsell +Clementina Yankeev +Alec Rickhuss +Trescha Pepys +Consalve Ianiello +Elane Waugh +Phillip Haggish +Kearney Kaser +See Lowson +Chlo Putten +Eb Winspear +Cyb Clarson +Ivar Karlik +Karlotta Paulazzi +Lief Denis +Wenona Willsmore +Terra Grugerr +Terza Causey +Renae Salvador +Ancell Snailham +Morrie Fauning +Elfreda Chaloner +Bessy Lantuff +Merwyn Ketteman +Juliana Jacquet +Kalil Cobley +Tim Buller +Shermy Sinkinson +Sophi Henricsson +Duke McElroy +Judd Haveline +Bernete Fidge +Janela Glynn +Shalne Dochon +Hansiain Fryett +Ely Moehle +Stephanus Hanwell +Meyer Keast +Laird Just +Melva Cussins +Dory Gaythorpe +Nananne Everex +Brnaby Burtonwood +Cordie MacFarlan +Roxana Gino +Elvyn Dunbabin +Meriel Carpe +Heriberto Eastope +Bernice Cusack +Darcy Lindsley +Lilah Sillick +Lissy Mountford +Tyler Pimlott +Trula Thickins +Thaddeus Britch +Sigismond Cranstone +Carlynne Fagan +Kahlil Enrico +Gwendolyn Calan +Concordia Pritchitt +Laney Frisel +Vincent Vassay +Catie Cadwaladr +Trudi Friese +Anjela Marham +Carmela Eves +Bill Suston +Ola Vischi +Sharia Swatton +Vikky Peron +Alia Scibsey +Virgina Sizey +Latisha Allmond +Pinchas Millins +Pieter Phillis +Patrice Veschambre +Vitoria Lafontaine +Holt Simanek +Rockie Wentworth +Aleta Dewitt +Sinclair Frizell +Even Rubartelli +Sumner Napleton +Aretha Ionnidis +Christye Farquhar +Eric Ryhorovich +Rollo Sjostrom +Lucias Nowick +Zacharias Jedrzejewski +Pascale Sandlin +Eli Denys +Tiffie Gallone +Ravi Tees +Vallie Denisard +Lucio Pinckney +Raddie Frain +Reggis Jenkin +Wyatan Rainville +Kym Duchesne +Katrine Sever +Kimbra Kenway +Chaunce Bigadike +Bendite Kindon +Korey Mohun +Heath Gideon +Conan Charity +Laurence Kohlert +Mirabel Elgood +Kathi Hammant +Wally Shoemark +Belvia Hoppner +Martainn Leeson +Verine McGrotty +Gabriela Farrin +Hilly Partlett +Barde Dy +Gothart Fyfe +Bertina Petrovykh +Rebecca Boxe +Irvin Ambrogini +Gary Coster +Reagan Lathleiff +Jayme Wilprecht +Andromache Kahane +Celeste Brereton +Martin Salsbury +Elmore Pride +Ingeberg Olensby +Waylon Putt +Kelwin Edmondson +Nedi Billo +Isador Hallifax +Katie Doleman +Yorker Thoumas +Enid Wittman +Court Filipic +Val Jeff +Ellene Prescott +Sinclare MacCurley +Doreen Willison +Jayme Bellow +Cathlene Wraight +Juan Gregine +Darcy Vincent +Fanny Brudenell +Lora O'Dowling +Faye Pallant +Latrina Barmadier +Carly Crennan +Marj Casel +Vevay Marczyk +Adamo Nolte +Lita Tradewell +Tabor Caneo +Sibel Krzyzaniak +Denyse Turneaux +Avrom Rosiello +Pamella Annakin +Floria Klemensiewicz +Hilde Domingues +Cly Leethem +Marieann Dansken +Myranda Hillaby +Inness Holsall +Quentin Buckles +Taryn Bontine +Merola Cicconettii +Skye Skrine +Dre Verecker +Jerrilee Bucher +Bruce Sommerville +Lizbeth Noteyoung +Viviyan Gilhool +Charis Sagar +Sawyer Sommer +Ricardo Stonhouse +Melly Capp +Lindsy Looker +Lon Wegner +Curcio Bewlay +Aubrey Tzuker +Lona Pasquale +Sol Jeaycock +Niki Theobald +Frederick Medhurst +Marianna McMakin +Yule Castellan +Jacklyn Dearn +Ida Binden +Heida Laidler +Emily Dyerson +Myrna Bewfield +Rozelle Pappi +Krystal Goroni +Bonnie Kilbourn +Ezri Stormes +Elianora Dignall +Sibyl Dachs +Pollyanna Normanvell +Luciana Alessandone +Rosy Beggini +Ansley Peirazzi +Gabriello Filipiak +Kirbee Sibbons +Roseline Cotterrill +Mada Wedmore +Minni Schiementz +Sadye Light +Corabelle McNess +Shurlock Clausewitz +Madge Stapylton +Zuzana Curless +Stace Delve +Abbott Hinckes +Karrie Vale +Shannon Tallyn +Felic Blinerman +Gherardo McHale +Zora Dennis +Ashlen Marham +Walton Wyne +Johna Bart +Elita Bakewell +Coletta Challace +Richardo Petrosian +Audie Charter +Thornton Matchell +Averil Dukesbury +Colver Wanderschek +Brittney Drees +Royal Gianinotti +Obadias Harring +Douglas Urlich +Shelba Copo +Maressa Pheasey +Maurits Firmage +Othella Raatz +Rici Gotter +Dud Brunner +Tann Wetherby +Ranique Eteen +Nathanial Mc Gorley +Joseph Hillett +Amii Ogden +Florrie Sizeland +Dominic Raddin +Ezmeralda Griss +Celestina Spurrett +Ezechiel Peniman +Sharon Harriagn +Sile Gready +Dag Jumel +Allsun Krollman +Lars Wethey +Chadd Douglas +Field Drayton +Sisely Derycot +Vivienne Peebles +Tammie Popworth +My Keeffe +Duke Patillo +Brandice Neat +Emmi Shimmans +Hart Parsand +Tabbitha Stronough +Atalanta Berryann +Wilhelm Tutton +Willow Geane +Lucretia Winterson +Kala Kubica +Olive Fawbert +Chrysler Batchellor +Humfrey Jakab +Bobbie Powys +Tildie Melhuish +Thain Randerson +Gran Swiffin +Kim Pudney +Jessey Dumbare +Jojo Heathcoat +Deane Jerrams +Loutitia Benger +Bear Boken +Kara-lynn Sissel +Jamey Sterman +Gerrie McArd +Sibylla Hartless +Chrysler Vickery +Jackquelin Jerred +Bordie Husthwaite +Cloris Lake +Monah Jurick +Adriane Dikelin +Mortimer Garred +Berny Gyrgorwicx +Ted Stoven +Vasilis Kleinschmidt +Wrennie Thurner +Marijo Spenley +Malissa Tschursch +Toddy Borzone +Arte Mullis +Myrta Martschke +Anthea Elfleet +Fonz Melpuss +Charlotta Stellino +Jay Jeeves +Yves Izzat +Renaud Haysman +Alexandrina Kubal +Aubree Grocott +Ax Paddell +Joellyn Muffin +Kelsi Coils +Hildegaard Northern +Rockey Fandrich +Keefe Stranaghan +Shara Vyvyan +Tilly Munning +Randie Perse +Hayden Imorts +Giovanna Moodie +Calida Haston +Alford Albrooke +Esme McAw +Nealy Diamond +Mabel Blunsum +Enriqueta Gladdis +Cassandra Ingyon +Hatti Hryniewicz +Augustus Livesay +Jillana Ribchester +Helaina Matteris +Micki Stanaway +Richart Giacovetti +Cybill Raspel +Ashlen Wyrall +Alie O'Calleran +Stephani Foyle +Des Sleite +Clair MacAindreis +Currey Phizackarley +Chicky Josuweit +Roma Postins +Hussein Andreini +Maxy Growcock +Mada Leigh +Paddy Amiranda +Gayel Waldram +Hinda Rebeiro +Christina Crosgrove +Cece Horstead +Jecho McPhaden +Pieter Brigginshaw +Erich Crichten +Eula Westrip +Anya Overbury +Lauree Nunson +Abrahan Harbidge +Lowell Haddacks +Jackqueline Dealey +Gui Shulver +Chris Coumbe +Nadya Worge +Bradly Blackmuir +Waly Smitherham +Kynthia Venart +Kate Purkins +Thibaut Caulwell +Abagael Burberow +Chic Apted +Isis Le Franc +Yurik Olerenshaw +Desirae Winckworth +Ambrosio Clearley +Silvain Clopton +Thom Dosdill +Pace Epinay +Marylin De Malchar +Paulina Eggins +Zane Fenemore +Corrie Taffley +Dalis Kimmince +Hakeem Falks +Maryellen Hoffmann +Fabio Methingam +Wilona Brocklesby +Arliene Hillaby +Kenna Hadrill +Ginni Braunds +Andrea Purvis +Candis Ciobutaro +Berni Marrows +Stanislas Blanckley +Carce Ashbey +Mellie Devoy +Selene Whardley +Dinah Wynter +Darya Tidder +Marline Johanning +Jacqueline Spritt +Kory Harrald +Alameda Obert +Blanca Manketell +Madelena Guilayn +Wynn Button +Rosalyn Mandy +Gilligan Llorens +Charin Parkin +Regen Matelaitis +Agnese Danne +Lib Drury +Tanhya Pauleau +Lorene Volcker +Eliot Wooffinden +Dita Hoogendorp +Pammy Fogg +Arielle Trengove +Margit Shankle +Pasquale Rafe +Webster Gwinnell +Adele Rzehorz +Rafe McIleen +Jack Bonnick +Tamma Adnam +Jacynth Crotty +Isabelita MacAvddy +Odelle Forrington +Quinn Nozzolii +Adolphus Blencowe +Danielle Lawtey diff --git a/pgan_raffle/bg.png b/pgan_raffle/bg.png new file mode 100644 index 0000000..c3e5e9c Binary files /dev/null and b/pgan_raffle/bg.png differ diff --git a/pgan_raffle/congrats.mp3 b/pgan_raffle/congrats.mp3 new file mode 100644 index 0000000..681e6c7 Binary files /dev/null and b/pgan_raffle/congrats.mp3 differ diff --git a/pgan_raffle/congrats1.mp3 b/pgan_raffle/congrats1.mp3 new file mode 100644 index 0000000..f199dd7 Binary files /dev/null and b/pgan_raffle/congrats1.mp3 differ diff --git a/pgan_raffle/igiling.gif b/pgan_raffle/igiling.gif new file mode 100644 index 0000000..9497131 Binary files /dev/null and b/pgan_raffle/igiling.gif differ diff --git a/pgan_raffle/igiling.mp3 b/pgan_raffle/igiling.mp3 new file mode 100644 index 0000000..a65b283 Binary files /dev/null and b/pgan_raffle/igiling.mp3 differ diff --git a/pgan_raffle/index-styles.css b/pgan_raffle/index-styles.css new file mode 100644 index 0000000..bbf0ae1 --- /dev/null +++ b/pgan_raffle/index-styles.css @@ -0,0 +1,114 @@ +/* Reset for clean styling */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; + } + + body { + font-family: Arial, sans-serif; + background-color: #f9f9f9; + padding: 20px; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + } + + h2 { + text-align: center; + margin-bottom: 10px; + font-size: 1.5rem; + color: #333; + } + + + + .boxes { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin-bottom: 20px; + justify-content: center; + } + + .box { + display: flex; + justify-content: center; + align-items: center; + width: 100px; + height: 100px; + background-color: #4caf50; + color: white; + font-weight: bold; + border-radius: 8px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + text-align: center; + } + + .box:hover { + background-color: #45a049; + transform: scale(1.05); + transition: all 0.3s ease-in-out; + } + + @media (max-width: 768px) { + .box { + width: 80px; + height: 80px; + } + } + + @media (max-width: 480px) { + .box { + width: 60px; + height: 60px; + font-size: 0.8rem; + } + } + + .container { + max-width: 99%; /* Increase container width */ + margin: 10px auto; + background: rgba(255, 255, 255, 0.1); + border-radius: 15px; + padding: 20px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); + } + + /* Logo Santa hat */ +.logo-container { + display: inline-block; + position: relative; + } + .santa-hat { + position: absolute; + top: -45px; + left: 50%; + transform: translateX(-50%) rotate(0deg); + width: 50px; + height: 50px; + background: red; + border-radius: 50%; + border-bottom: 10px solid white; + animation: hatDrop 2s ease-out infinite alternate; + } + .santa-hat:before { + content: ""; + position: absolute; + top: -15px; + left: 50%; + transform: translateX(-50%); + width: 15px; + height: 15px; + background: white; + border-radius: 50%; + } + @keyframes hatDrop { + 0% { + transform: translateX(-50%) rotate(-20deg); + } + 100% { + transform: translateX(-50%) rotate(20deg); + } + } \ No newline at end of file diff --git a/pgan_raffle/index.html b/pgan_raffle/index.html new file mode 100644 index 0000000..c651c04 --- /dev/null +++ b/pgan_raffle/index.html @@ -0,0 +1,51 @@ + + + + + + CSV Boxes + + + +
+
+ +
+
+ +
+

PRIZZES

+
+
+
+

PRIZZES

+
+
+
+ + + + diff --git a/pgan_raffle/offices-high.html b/pgan_raffle/offices-high.html new file mode 100644 index 0000000..77f8c88 --- /dev/null +++ b/pgan_raffle/offices-high.html @@ -0,0 +1,44 @@ + + + + + + Offices High + + + +
+

Selected Price (High):

+

Available Offices

+
+
+ + + + diff --git a/pgan_raffle/offices-low-remove.csv b/pgan_raffle/offices-low-remove.csv new file mode 100644 index 0000000..e69de29 diff --git a/pgan_raffle/offices-low.html b/pgan_raffle/offices-low.html new file mode 100644 index 0000000..9c7c294 --- /dev/null +++ b/pgan_raffle/offices-low.html @@ -0,0 +1,99 @@ + + + + + + Offices Low + + + +
+

Selected Price (Low):

+

Available Offices

+
+
+ + + + diff --git a/pgan_raffle/offices.csv b/pgan_raffle/offices.csv new file mode 100644 index 0000000..483cbb8 --- /dev/null +++ b/pgan_raffle/offices.csv @@ -0,0 +1,3 @@ +PGO-MIS +PGO +PHRMO diff --git a/pgan_raffle/paripapap.gif b/pgan_raffle/paripapap.gif new file mode 100644 index 0000000..710f88c Binary files /dev/null and b/pgan_raffle/paripapap.gif differ diff --git a/pgan_raffle/paripapap_music.mp3 b/pgan_raffle/paripapap_music.mp3 new file mode 100644 index 0000000..9cb1b55 Binary files /dev/null and b/pgan_raffle/paripapap_music.mp3 differ diff --git a/pgan_raffle/pgan_logo.png b/pgan_raffle/pgan_logo.png new file mode 100644 index 0000000..029ca53 Binary files /dev/null and b/pgan_raffle/pgan_logo.png differ diff --git a/pgan_raffle/raffle.html b/pgan_raffle/raffle.html new file mode 100644 index 0000000..42b001b --- /dev/null +++ b/pgan_raffle/raffle.html @@ -0,0 +1,113 @@ + + + + + + PGAN Christmas Raffle + + + + + + + + + + + + Paripapap GIF + Igiling GIF + + +
+ +
+ + +
+ +
+
+ +

+ 🎄 + PGAN Christmas Raffle + 🎅 +
+
+
+
+
+
+
+
+
+
+
+
+

+ +
+ +
+ +
+
+ + + + + + + + + diff --git a/pgan_raffle/script.js b/pgan_raffle/script.js new file mode 100644 index 0000000..d55a532 --- /dev/null +++ b/pgan_raffle/script.js @@ -0,0 +1,169 @@ +const fileInput = document.getElementById("file-input"); +const boxContainer = document.getElementById("box-container"); +const raffleButton = document.getElementById("raffle-button"); +const backgroundMusicOptions = [ + document.getElementById("background-music"), + document.getElementById("background-music1"), +]; +const congratsMusicOptions = [ + document.getElementById("congrats-music1"), + document.getElementById("congrats-music2"), +]; +const winnerModal = new bootstrap.Modal( + document.getElementById("winnerModal"), + { + backdrop: "static", + keyboard: false, + } +); +const winnerNameDisplay = document.getElementById("winner-name"); +const removeWinnerButton = document.getElementById("remove-winner"); +const paripapapGif = document.getElementById("paripapap-gif"); +const igilingGif = document.getElementById("igiling-gif"); + +let names = []; +let spinning = false; +let currentWinnerIndex = null; + +// Initialize both images hidden +paripapapGif.style.display = "none"; +igilingGif.style.display = "none"; + +// Function to show the appropriate GIF based on the audio playing +function showGifForMusic(audioId) { + if (audioId === "background-music") { + paripapapGif.style.display = "block"; + igilingGif.style.display = "none"; + } else if (audioId === "background-music1") { + paripapapGif.style.display = "none"; + igilingGif.style.display = "block"; + } +} + +// Add event listeners for play, pause, and ended events on the audio elements +backgroundMusicOptions.forEach((music) => { + music.addEventListener("play", () => showGifForMusic(music.id)); + music.addEventListener("pause", () => { + paripapapGif.style.display = "none"; + igilingGif.style.display = "none"; + }); + music.addEventListener("ended", () => { + paripapapGif.style.display = "none"; + igilingGif.style.display = "none"; + }); +}); + +// Load names from CSV and populate boxes +fileInput.addEventListener("change", (event) => { + const file = event.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + names = e.target.result.split("\n").filter((name) => name.trim() !== ""); + populateBoxes(); + raffleButton.disabled = names.length === 0; + }; + reader.readAsText(file); + } +}); + +// Populate the UI with boxes +function populateBoxes() { + boxContainer.innerHTML = ""; + names.forEach((name, index) => { + const box = document.createElement("div"); + box.classList.add("box"); + box.textContent = name.trim(); + box.dataset.index = index; + boxContainer.appendChild(box); + }); +} + +// Handle raffle button click +raffleButton.addEventListener("click", () => { + if (names.length === 0 || spinning) return; + + spinning = true; + raffleButton.disabled = true; // Disable the button + + // Stop any previously playing background music + backgroundMusicOptions.forEach((music) => { + music.pause(); + music.currentTime = 0; + }); + + // Play a random background music + const randomBackgroundMusic = + backgroundMusicOptions[ + Math.floor(Math.random() * backgroundMusicOptions.length) + ]; + randomBackgroundMusic.play(); + + const boxes = Array.from(document.querySelectorAll(".box")); + let randomInterval; + let highlightedIndex; + + // Randomly highlight boxes + function randomHighlight() { + if (highlightedIndex !== undefined) { + boxes[highlightedIndex].classList.remove("highlighted"); + } + highlightedIndex = Math.floor(Math.random() * boxes.length); + boxes[highlightedIndex].classList.add("highlighted"); + } + + randomInterval = setInterval(randomHighlight, 200); + + // Reveal the winner after a delay + setTimeout(() => { + clearInterval(randomInterval); + randomHighlight(); + + const winnerBox = boxes[highlightedIndex]; + currentWinnerIndex = highlightedIndex; + winnerBox.classList.add("winner"); + + const winnerName = names[highlightedIndex]; + winnerNameDisplay.textContent = winnerName.trim(); + + // Stop background music and play random congrats music + randomBackgroundMusic.pause(); + randomBackgroundMusic.currentTime = 0; + + // Play a random congratulatory music + const randomCongratsMusic = + congratsMusicOptions[ + Math.floor(Math.random() * congratsMusicOptions.length) + ]; + randomCongratsMusic.play(); + + // Show winner modal + winnerModal.show(); + + spinning = false; + raffleButton.disabled = false; // Re-enable the button after process + }, 8500); +}); + +// Remove winner and allow a new draw +removeWinnerButton.addEventListener("click", () => { + if (currentWinnerIndex !== null) { + names.splice(currentWinnerIndex, 1); + populateBoxes(); + currentWinnerIndex = null; + raffleButton.disabled = names.length === 0; + winnerModal.hide(); + } +}); + +// Add snowflakes dynamically +const snowContainer = document.getElementById("snow-container"); +for (let i = 0; i < 100; i++) { + const snowflake = document.createElement("div"); + snowflake.className = "snowflake"; + snowflake.style.left = Math.random() * 100 + "vw"; + snowflake.style.animationDelay = Math.random() * 10 + "s"; + snowflake.style.animationDuration = 5 + Math.random() * 10 + "s"; + snowflake.style.width = snowflake.style.height = 5 + Math.random() * 5 + "px"; + snowContainer.appendChild(snowflake); +} diff --git a/pgan_raffle/style.css b/pgan_raffle/style.css new file mode 100644 index 0000000..b2b682e --- /dev/null +++ b/pgan_raffle/style.css @@ -0,0 +1,349 @@ +/* General adjustments for body and container */ +body.bg-christmas { + margin: 0; + padding: 0; + background: url("./bg.png") no-repeat top center; + background-size: cover; /* Ensures it covers the screen proportionally */ + background-attachment: fixed; /* Keeps the background fixed during scrolling */ + height: 100vh; /* Ensures it occupies the full height of the viewport */ + overflow-x: hidden; /* Prevents horizontal scrolling */ +} + +button:disabled { + opacity: 0.6; + cursor: not-allowed; +} + +.container { + max-width: 99%; /* Increase container width */ + margin: 10px auto; + background: rgba(255, 255, 255, 0.1); + border-radius: 15px; + padding: 20px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +/* Styling for boxes */ +#box-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 10px; + padding: 5px; +} + +.box { + display: flex; + justify-content: center; + align-items: center; + width: 120px; /* Adjust width for more compact layout */ + height: 80px; /* Adjust height for more compact layout */ + background-color: #f9f9f9; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + font-weight: bold; + text-align: center; + color: #333; + box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); + transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + cursor: pointer; +} + +.box:hover { + transform: scale(1.1); + box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2); +} + +/* Highlighted box */ +.highlighted { + background-color: #ffd700; + color: #fff; + border: 2px solid #ff6347; + animation: pulse 1s infinite; + z-index: 101; +} + +@keyframes pulse { + 0%, + 100% { + transform: scale(1); + } + 50% { + transform: scale(1.05); + } +} + +/* Winner box */ +.winner-display { + background-color: #28a745; + color: #fff; + font-size: 3.5rem; + border: 3px solid #fff; + animation: winnerPulse 2s infinite; +} + +@keyframes winnerPulse { + 0%, + 100% { + box-shadow: 0 0 15px rgba(40, 167, 69, 0.8); + } + 50% { + box-shadow: 0 0 30px rgba(40, 167, 69, 1); + } +} + +/* Responsive layout adjustments */ +@media (min-width: 1200px) { + #box-container { + gap: 15px; + } + + .box { + width: 150px; + height: 90px; + font-size: 1.5rem; + } +} + +@media (max-width: 768px) { + .box { + width: 100px; + height: 70px; + font-size: 0.9rem; + } +} + +@media (max-width: 480px) { + .box { + width: 80px; + height: 60px; + font-size: 0.8rem; + } +} + +/* Logo styles */ +.logo { + max-width: 230px; + height: auto; +} + +/* Snowflakes animation */ +#snow-container { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; + pointer-events: none; +} +.snowflake { + position: absolute; + background: white; + width: 8px; + height: 8px; + border-radius: 50%; + opacity: 0.8; + animation: snow 10s linear infinite; +} +@keyframes snow { + 0% { + transform: translateY(-100px); + } + 100% { + transform: translateY(110vh); + } +} + +/* Logo Santa hat */ +.logo-container { + display: inline-block; + position: relative; +} +.santa-hat { + position: absolute; + top: -45px; + left: 50%; + transform: translateX(-50%) rotate(0deg); + width: 50px; + height: 50px; + background: red; + border-radius: 50%; + border-bottom: 10px solid white; + animation: hatDrop 2s ease-out infinite alternate; +} +.santa-hat:before { + content: ""; + position: absolute; + top: -15px; + left: 50%; + transform: translateX(-50%); + width: 15px; + height: 15px; + background: white; + border-radius: 50%; +} +@keyframes hatDrop { + 0% { + transform: translateX(-50%) rotate(-20deg); + } + 100% { + transform: translateX(-50%) rotate(20deg); + } +} + +/* Glowing button */ +/* Glowing Button with White Border */ +button.glowing { + border: 1px solid white; /* Adds a white border */ + box-shadow: 0 0 15px rgba(255, 0, 0, 0.7), 0 0 25px rgba(255, 0, 0, 0.5); /* Red glow */ + animation: glowingEffect 2s infinite; + transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out; +} + +/* Glowing animation */ +@keyframes glowingEffect { + 0% { + box-shadow: 0 0 10px rgba(255, 0, 0, 0.7), 0 0 20px rgba(255, 0, 0, 0.5); + } + 50% { + box-shadow: 0 0 20px rgba(255, 255, 255, 1), 0 0 40px rgba(255, 0, 0, 0.8); + } + 100% { + box-shadow: 0 0 10px rgba(255, 0, 0, 0.7), 0 0 20px rgba(255, 0, 0, 0.5); + } +} + +/* Hover Effect for Interaction */ +button.glowing:hover { + transform: scale(1.1); /* Slight enlargement */ + box-shadow: 0 0 30px rgba(255, 255, 255, 0.9), 0 0 50px rgba(255, 0, 0, 1); +} + +/* Fancy Heading Styles */ +.fancy-heading { + font-family: "Merry Christmas", cursive; /* Festive font */ + font-size: 4rem; + font-weight: bold; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3), 0 0 10px rgba(255, 255, 255, 0.7); + position: relative; + padding: 20px 0; + animation: headingGlow 3s infinite ease-in-out; +} + +/* Glow Animation for the Text */ +@keyframes headingGlow { + 0%, + 100% { + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3), + 0 0 10px rgba(255, 255, 255, 0.7); + } + 50% { + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3), 0 0 20px rgba(255, 255, 255, 1); + } +} + +/* Emoji Animations */ +.christmas-tree { + animation: bounceTree 2s infinite; +} + +.santa { + animation: dropHat 2s infinite; +} + +/* Bounce Animation for the Tree */ +@keyframes bounceTree { + 0%, + 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-10px); + } +} + +/* Drop Animation for Santa */ +@keyframes dropHat { + 0% { + transform: translateY(-10px); + } + 50% { + transform: translateY(0); + } + 100% { + transform: translateY(-10px); + } +} + +/* Light Bulbs Wrapper Styling */ +.lights-wrapper { + display: flex; + justify-content: center; + margin-top: 10px; +} + +/* Light Bulbs */ +.lightbulb { + width: 15px; + height: 15px; + margin: 5px; + border-radius: 50%; + animation: blink 1.5s infinite ease-in-out; + box-shadow: 0 0 5px rgba(255, 255, 255, 0.8); +} + +.lightbulb.red { + background-color: red; + animation-delay: 0.2s; +} + +.lightbulb.green { + background-color: green; + animation-delay: 0.4s; +} + +.lightbulb.blue { + background-color: blue; + animation-delay: 0.6s; +} + +.lightbulb.yellow { + background-color: yellow; + animation-delay: 0.8s; +} + +.lightbulb.purple { + background-color: purple; + animation-delay: 1s; +} + +/* Blink Animation for the Light Bulbs */ +@keyframes blink { + 0%, + 100% { + opacity: 0.6; + transform: scale(0.9); + } + 50% { + opacity: 1; + transform: scale(1.1); + } +} + +.playing-image-paripapap { + position: absolute; + width: 40%; + top: 16%; + left: 31%; + z-index: 100; +} + +.playing-image-igiling { + position: absolute; + width: 17%; + top: 16%; + left: 40%; + z-index: 100; +}