// PLAYERS ---------- // ------- function playersentered(c) { if( courses[ c ].c1 == -1 || courses[ c ].c2 == -1 || courses[ c ].c3 == -1 ) { eval( 'document.bookingform.cost' + c + '.value = \'\'' ); return; } eval( 'var bfp = document.bookingform.play' + c ); eval( 'var bfc = document.bookingform.cost' + c ); eval( 'var bfd = document.bookingform.date' + c ); if (bfp.value == 0) { bfc.value = ''; } else { // Ensure date is valid and in usable format thedate = bfd.value; if (isValidDate(thedate,'/')) { calculatecost(c); } else { // alert('Please enter a valid date (dd/mm/yyyy format)'); bfc.value = ''; } } } // COSTS // ----- function course( coursename, currentprice, handicap, homepage, c1, c2, c3 ) { this.coursename = coursename; this.currentprice = currentprice; this.handicap = handicap; this.homepage = homepage; this.c1 = c1; this.c2 = c2; this.c3 = c3; } var courses = new function() { this['1'] = new course( 'Alcaidesa', '80/58', '28/36', '/courses/costa_del_sol/alcaidesa.php', 58, 80, 0 ), this['2'] = new course( 'Alhaurin', '75/35', '28/37', '/courses/costa_del_sol/alhaurin.php', 37, 75, 0 ), this['3'] = new course( 'Almenara', '85/75', '28/36', '/courses/costa_del_sol/almenara.php', 75, 85, 0 ), this['4'] = new course( 'Atalaya Old', '80/55', '27/35', '/courses/costa_del_sol/atalaya.php', 55, 80, 0 ), this['5'] = new course( 'Atalaya New', '80/55', '27/35', '/courses/costa_del_sol/atalaya.php', 55, 80, 0 ), this['6'] = new course( 'Cabopino', '60/50', '28/36', '/courses/costa_del_sol/cabopino.php', 50, 60, 0 ), this['7'] = new course( 'El Paraiso', '80/45', '24/24', '/courses/costa_del_sol/elparaiso.php', 45, 80, 0 ), this['8'] = new course( 'Estepona', '58/44', '27/35', '/courses/costa_del_sol/estepona.php', 44, 58, 0 ), this['9'] = new course( 'Flamingos', '99/53', '28/36', '/courses/costa_del_sol/flamingos.php', 53, 99, 0 ), this['10'] = new course( 'Guadalhorce', '55/55', '28/36', '/courses/costa_del_sol/guadalhorce.php', 55, 55, 0 ), this['11'] = new course( 'La Cala - North', '75/42', '24/28', '/courses/costa_del_sol/lacala.php', 42, 75, 0 ), this['12'] = new course( 'La Cala - South', '75/42', '24/28', '/courses/costa_del_sol/lacala.php', 42, 75, 0 ), this['13'] = new course( 'La Cala - Europe', '75/42', '24/28', '/courses/costa_del_sol/lacala.php', 42, 75, 0 ), this['14'] = new course( 'La Canada', '56/50', '28/36', '/courses/costa_del_sol/lacanada.php', 50, 56, 0 ), this['15'] = new course( 'La Duquesa', '65/45', '28/36', '/courses/costa_del_sol/la_duquesa.php', 45, 65, 0 ), this['16'] = new course( 'La Quinta', '85/70', '27/35', '/courses/costa_del_sol/laquinta.php', 70, 85, 0 ), this['17'] = new course( 'La Reserva', '145/118', '36/36', '/courses/costa_del_sol/la_reserva.php', 118, 145, 0 ), this['18'] = new course( 'Las Brisas', 'on req', '28/36', '/courses/costa_del_sol/lasbrisas.php', -1, -1, 0 ), this['19'] = new course( 'Los Arqueros', '65/40', '28/36', '/courses/costa_del_sol/los_arqueros.php', 40, 65, 0 ), this['20'] = new course( 'Los Naranjos', '87/65', '28/36', '/courses/costa_del_sol/los_naranjos.php', 65, 87, 0 ), this['21'] = new course( 'Lauro', '55/45', '28/36', '/courses/costa_del_sol/lauro.php', 45, 55, 0 ), this['22'] = new course( 'Marbella Resort', 'on req', '27/34', '/courses/costa_del_sol/marbella.php', -1, -1, 0 ), this['23'] = new course( 'Marbella Club', 'on req', '27/34', '/courses/costa_del_sol/marbella_club.php', -1, -1, 0 ), this['24'] = new course( 'Miraflores', '60/40', '24/28', '/courses/costa_del_sol/miraflores.php', 40, 60, 0 ), this['25'] = new course( 'MonteMayor', '90/65', '24/28', '/courses/costa_del_sol/monte_mayor.php', 65, 90, 0 ), this['26'] = new course( 'Rio Real', '90/59', '24/28', '/courses/costa_del_sol/rioreal.php', 59, 90, 0 ), this['27'] = new course( 'San Roque Old', '100/80', '24/28', '/courses/costa_del_sol/sanroque.php', 80, 100, 0 ), this['28'] = new course( 'San Roque New', '90/70', '24/28', '/courses/costa_del_sol/sanroque.php', 70, 90, 0 ), this['29'] = new course( 'Santa Clara', '105/91', '24/28', '/courses/costa_del_sol/santa_clara.php', 91, 105, 0 ), this['30'] = new course( 'Santa Maria', '76/55', '24/28', '/courses/costa_del_sol/santa_maria.php', 55, 76, 0 ), this['31'] = new course( 'Santana', '102/69', '24/28', '/courses/costa_del_sol/santana.php', 69, 102, 0 ), this['32'] = new course( 'Sotogrande', '160/155', '24/28', '/courses/costa_del_sol/sotogrande.php', 155, 160, 0 ), this['33'] = new course( 'Torrequebrada', '90/76', '24/28', '/courses/costa_del_sol/torrequebrada.php', 76, 90, 0 ), this['34'] = new course( 'Valderrama', '266/266', '24/28', '/courses/costa_del_sol/valderrama.php', 270, 270, 0 ), this.length = 34;} // CALCULATE COST // --------------- function calculatecost(r) { na = ""; d = thedate.substr(0, 2); m = thedate.substr(3, 2); y = thedate.substr(6, 4); z = "on req"; if (y == '2007') { if (m >= '01' && m < '06') c = courses[r].c2; // Jan to May '07 inclusive (higher price). if (m >= '06' && m < '12') c = na; // Jun '07 onward - no price. } if (y == '2006') { if (m >= '01' && m < '06') c = na; // Jan to May '06 inclusive - in the past. if (m >= '06' && m <= '08') c = courses[r].c1; // Jun to Aug '06 inclusive - (lower price). if (m == '09') // Sept '06 - (made up of 2 prices). { if (d <= '15') c = courses[r].c1; // Sept '06 - 1st half of month @ lower price). if (d > '15') c = courses[r].c2; // Sept '06 - 2nd half of month @ higher price). } if (m >= '10' && m <= '12') c = courses[r].c2; // Jun to Aug '06 inclusive - (lower price). } if (isNaN( c ) ) eval( 'document.bookingform.cost' + r + '.value = c' ); else eval( 'document.bookingform.cost' + r + '.value = ' + parseFloat(c) + '* document.bookingform.play' + r + '.value' ); calctotal(); } // CALCULATE TOTAL // --------------- function calctotal() { grandtotal = 0.00; for( var n = 1; n <= 34; n++ ) { eval( 'var bfc = document.bookingform.cost' + n + '.value' ); if ((bfc != '') && (bfc != 'n/a')) grandtotal += parseFloat(bfc); } document.bookingform.costtot2.value = grandtotal; } // Y2K // --- function y2k(number) { return (number < 1000) ? number + 1900 : number; } var reason = ''; function isValidDate (myDate,sep) { // checks if date passed is in valid dd/mm/yyyy format if (myDate.length == 10) { if (myDate.substring(2,3) == sep && myDate.substring(5,6) == sep) { var date = myDate.substring(0,2); var month = myDate.substring(3,5); var year = myDate.substring(6,10); var test = new Date(year,month-1,date); if (year == y2k(test.getYear()) && (month-1 == test.getMonth()) && (date == test.getDate())) { reason = ''; return true; } else { reason = 'valid format but an invalid date'; return false; } } else { reason = 'invalid spearators'; return false; } } else { reason = 'invalid length'; return false; } }