/** * Project: VisitAruba Plus * File: cm.plusjoin.js * * @link http://www.visitaruba.com/plus * @copyright 2008 CaribMedia * @author Michiel van der Blonk * @package JoinForm */ window.onload = function() { if ($('frmOrder')) { if ($('btnBirthDate')) $('btnBirthDate').style.display = 'inline'; if ($('btnArrivalDate')) $('btnArrivalDate').style.display = 'inline'; } }; // page is just a wrapper for various functions var page = { price: { total : 0, baseRenewal : 12, base : 13.95, shipping: 3.95, international: 1, shortNotice: 2 }, cardNumberLost : function(target) { if (!target.form) return; var fld = target.form.Membership; if (fld.value=='' && target.checked) fld.value = '08000000000000'; }, updatePrice: function(target) { if (!target.form) return; var frm = target.form; if (frm.formaction.value.toLowerCase() == 'new') this.price.total = this.price.base; else this.price.total = this.price.baseRenewal; // get target field var name = target.name.toLowerCase(); var value = target.value.toLowerCase(); this.price.total += this.price.shipping; // international only applies for postal mail if ($('optPostalMail').selected) { var country = frm.Country.value.toLowerCase(); var isUSorCanada = country =='us' || country=='ca'; if (!isUSorCanada) this.price.total += this.price.international; } if ($('Arrival_Date').value!='') { var d = new Date($('Arrival_Date').value); var today = new Date(); var diff = today.workdays(d); if (diff < 5) this.price.total += this.price.shortNotice; // postal mail not within 6 weeks (6*5 workdays) if (diff < 30) { if ($('optPostalMail').selected) $('optHotelResort').selected = true; $('optPostalMail').disabled = true; $('optPostalMail').className = 'disabled'; // refresh select box page.toggleAddressField($('Delivery_Method')); } else { $('optPostalMail').disabled = false; $('optPostalMail').className = ''; } } $('priceText').innerHTML = 'My credit card will be charged the amount of US $' + this.price.total + ''; $('priceInfo').style.display = 'block'; }, checkHotel: function() { if ($('optHotelResort').selected) { if ($('optHolidayInn').selected) $('at-own-risk').style.display = 'block'; else $('at-own-risk').style.display = 'none'; } }, calendars: [], nextSeason : function() { var seasonMonth = 10; // november var seasonDay = 1; // last day var today = new Date(); var seasonStart = new Date(today.getFullYear(), seasonMonth, seasonDay); if (today.getTime() > seasonStart.getTime()) return new Date(today.getFullYear() + 1, seasonMonth, seasonDay); else return seasonStart.navigate(7); // 1 week extra }, options: { Arrival_Date: { title:"Choose a date:", close:true, navigator:true, mindate: new Date().navigate(-30).format(), init: function () {this.maxDate = page.nextSeason()}}, Birth_Date: { title:"Choose a date:", close:true, navigator:true, pagedate: Date.yearsAgo(38).format('month'), maxdate:Date.yearsAgo(17)} } , popup: function(href, opt) { var options = 'width=200,height=200,resizable=1'; if (typeof opt == "string") options = opt; window.open('cvv.html', 'new_window', options); return false; }, showCal: function(id) { if (!page.calendars[id]) { if (this.options[id].init) this.options[id].init(); page.calendars[id] = new YAHOO.widget.Calendar(id + "_Container", this.options[id]); page.calendars[id].selectEvent.subscribe(page.handleSelect, page.calendars[id], true); page.calendars[id].render(); } else page.calendars[id].show(); return false; }, handleSelect: function(type,args,obj) { var dates = args[0]; var date = dates[0]; var year = date[0], month = date[1], day = date[2]; var id = obj.containerId.replace('_Container',''); var $d = new Date(year, month-1, day); $(id).value = $d.format(); // call onchange to update price if it's available if ($(id).onchange) $(id).onchange(); obj.hide(); }, toggleReservationName: function(target) { var frm = $('frmOrder'); if (target.checked) { if (frm.Middle_Initial.value=='') frm.reservation_name.value = frm.Salutation.value + " " + frm.First_name.value + " " + frm.Last_name.value; else frm.reservation_name.value = frm.Salutation.value + " " + frm.First_name.value + " " + frm.Middle_Initial.value + " " + frm.Last_name.value; } else frm.reservation_name.value = ''; }, toggleAddressField: function(target) { $('deliveryHotelResort').style.display = 'none'; $('deliveryAddressField').style.display = 'none'; switch(target.value) { case 'Delivered To a Specified Address': $('deliveryAddressField').style.display = 'block';break; case 'Delivered To My Hotel/Resort': $('deliveryHotelResort').style.display = 'block';break; } } };