// FUNCTIONS USED FOR LIMITING SPECIAL REQUESTS TO 160 CHARACTERS: end // Original: Ronnie T. Moore // Web Site: The JavaScript Source // Dynamic 'fix' by: Nannette Thacker // Web Site: http://www.shiningstar.net // This script and many more are available free online at // The JavaScript Source!! http://javascript.internet.com function textCounter(field, countfield, maxlimit) { if (field.value.length > maxlimit) { field.value = field.value.substring(0, maxlimit); } else { charsLeft = maxlimit - field.value.length; countfield = document.getElementById('special_requests_limit') countfield.innerHTML = charsLeft + " characters remaining"; } } // FUNCTIONS USED FOR LIMITING SPECIAL REQUESTS TO 160 CHARACTERS: end function displayTime() { theHour = document.theForm.pickup_hour[document.theForm.pickup_hour.selectedIndex].value theMinute = document.theForm.pickup_minute[document.theForm.pickup_minute.selectedIndex].value if (theHour < 12) { am_pm = 'am' } else { am_pm = 'pm' } clarify = '' if (theMinute == "00" && theHour == 0) { clarify = " (midnight)" } if (theMinute == "00" && theHour == 12) { clarify = " (noon)" } if (theHour == 0) { theHour = 12 } if (theHour > 12) { theHour -= 12 } time_to_display = ' ' + theHour + ":" + theMinute + ' ' + am_pm + clarify timeSpot = document.getElementById('newTime') timeSpot.innerHTML = time_to_display } //////////////// REQUIRED FIELDS: begin function updateAddress_origin(text, li) { var whichID = li.id; var houseElem = document.getElementById("house-"+whichID) document.theForm.origin_number.value = houseElem.innerHTML var streetElem = document.getElementById("street-"+whichID) document.theForm.origin_street.value = streetElem.innerHTML document.theForm.origin_apt.value = "" var cityElem = document.getElementById("city-"+whichID) cities = document.theForm.origin_district for (var i=0; i 0) { warningText += "Email Address\n" warningTrack++ if (selectWhichField == "") { selectWhichField = document.theForm.email } } } // if (document.theForm.email_survey_to.value != "") { // var validateEmailSurvey = checkEmail(document.theForm.email_survey_to.value) // // if (validateEmailSurvey > 0) { // warningText += "Email Address for Survey\n" // warningTrack++ // if (selectWhichField == "") { selectWhichField = document.theForm.email_survey_to } // } // } if (warningTrack>0) { // display warning alert(warningText) selectWhichField.focus() } else { // or submit the form var formTracking = 0 doc = document.theForm doc.phone.value = "(" + doc.area_code.value + ") " + doc.phone_number_a.value + "-" + doc.phone_number_b.value + " ext. " + doc.phone_ext.value doc.alternate_phone.value = "(" + doc.area_code_2.value + ") " + doc.phone_number_a_2.value + "-" + doc.phone_number_b_2.value + " ext. " + doc.phone_ext_2.value // make sure email address was entered if they want confirmation if (document.theForm.send_confirm[0].checked == true && document.theForm.email.value == "") { alert("Please enter an email address to receive the order confirmation.") document.theForm.email.select() formTracking++ return false } if (formTracking == 0) { var verifyDate = checkDate() if (verifyDate <= 0) { alert("To ensure that your order receives prompt attention, please select the current time or later.") return false } else if (verifyDate != "cancelScript") { document.theForm.submit() } } } return true // needed to make it not display an error in Netscape } function checkDate() { // determine the current server time //time = 1268764222 //texas time = 1268760622 var serverEpoch = parseInt("1268760622") var serverMonth = parseInt("3") -1 var serverYear = parseInt("2010") var serverDay = parseInt("16") var serverHour = parseInt("13") var serverMinute = parseInt("30") // determine the current client time // var clientMonth = parseInt(document.theForm.pickup_month.value) switch(document.theForm.pickup_month.value) { case "January": clientMonth = 1; break; case "February": clientMonth = 2; break; case "March": clientMonth = 3; break; case "April": clientMonth = 4; break; case "May": clientMonth = 5; break; case "June": clientMonth = 6; break; case "July": clientMonth = 7; break; case "August": clientMonth = 8; break; case "September": clientMonth = 9; break; case "October": clientMonth = 10; break; case "November": clientMonth = 11; break; case "December": clientMonth = 12; break; default: clientMonth = 1; } var clientDay = parseInt(document.theForm.pickup_day.value) var clientHour = parseInt(document.theForm.pickup_hour[document.theForm.pickup_hour.selectedIndex].value) var clientMinute = parseInt(document.theForm.pickup_minute[document.theForm.pickup_minute.selectedIndex].value) var killMessage = "Due to heavy holiday demand, we regret that we are unable to accept reservations for pick ups between 6 p.m. Dec 31 and 6 a.m. Jan 1.\n\nPlease call 222-2222 when you are ready for your cab to be dispatched." if (clientMonth == 12 && clientDay == 31 && clientHour >= 18) { alert(killMessage) return "cancelScript" } if (clientMonth == 1 && clientDay == 1 && clientHour < 6) { alert(killMessage) return "cancelScript" } if (clientMonth == 1 && clientDay == 1 && clientHour == 6 && clientMinute == "00") { alert(killMessage) return "cancelScript" } // determine the selected epoch time by doing the following: // determine year by figuring out if selected month is before this month var selectedYear = serverYear if (clientMonth < serverMonth) { selectedYear = serverYear + 1 } if (clientMonth == serverMonth && clientDay < serverDay) { selectedYear = serverYear + 1 } //alert("selectedYear = " + selectedYear) // fix time var selectedHour = clientHour // fix hour to hh format if (selectedHour < 10) { selectedHour = "0" + selectedHour } // fix month to mm format clientMonth = clientMonth - 1 //javascript is zero-based months if (clientMonth < 10) { clientMonth = "0" + clientMonth } // fix day to dd format if (clientDay < 10) { clientDay = "0" + clientDay } // build date to parse into client epoch time var clientDate = new Date(selectedYear, clientMonth, clientDay, selectedHour, clientMinute, "00") // determine selected epoch time var clientMils = clientDate.valueOf() // this is in mils var clientEpoch = parseInt(clientMils) * .001 // build date to parse into client epoch time var serverDate = new Date(serverYear, serverMonth, serverDay, serverHour, serverMinute, "00") // determine selected epoch time var serverMils = serverDate.valueOf() // this is in mils var serverEpoch = parseInt(serverMils) * .001 // determine the difference in seconds between server time now and client time selected var secondsDifference = clientEpoch - serverEpoch return secondsDifference } // checkEmail is NOT USED, due to problems with older browsers function checkEmail(whichEmail) { var tracking=0 //valid characters, @, 2 or more valid characters, (. plus 2 or more letters)at least once // var regExp = /^[-\w_\.]+\@\w{2,}(\.[-\w_\.]{2,})+$/ // var regExp = /^[-\w_\.]+\@\w{2,}(\.[-\w_\.]{2,})+$/ var regExp = /\@/ if (!regExp.test(whichEmail)) { //alert("WARNING:\n\nthis email is invalid") tracking++ } return tracking } //////////////// REQUIRED FIELDS: end