function $(elementID) { if (document.getElementById) { return document.getElementById(elementID); } else if (document.all) { return document.all[elementID]; } else if (document.layers) { document.layers[elementID]; } else { window[elementID]; } } // basic AJAX connector function getHttpObject() { var xmlHttpRequest; /*@cc_on @if (@_jscript_version >= 5) try { xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (exception1) { try { xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (exception2) { xmlHttpRequest = false; } } @else xmlhttpRequest = false; @end @*/ if (!xmlHttpRequest && typeof XMLHttpRequest != 'undefined') { try { xmlHttpRequest = new XMLHttpRequest(); } catch (exception) { xmlHttpRequest = false; } } else { try{ xmlHttpRequest=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttpRequest; } var HttpObjState = getHttpObject(); var HttpObjCity = getHttpObject(); function clearSelect(selectObj, newText) { for (var i=selectObj.options.length;i>=0;i--) selectObj.options[i] = null; selectObj.options[0] = new Option(newText,"", false, false ); } // Runs getStates with a parameter enabling to invoke a callback. // If client wills to use a callback, it must implement it in itself. // Please see countryChanged() and stateChanged() descriptions in // the city_dd.jsp component. function getStates(country, selectedState, selectedCity, runStateCallback) { clearSelect(document.getElementById('state'), "Loading..."); clearSelect(document.getElementById('destination'), "-----------------------"); HttpObjState.open("GET", "../CityDropdownServlet?task=getStateOptions&countryNameForCity=" + country + "&selectedState=" + selectedState + "&selectedCity=" + selectedCity, true); // HttpObjState.onreadystatechange= stateResponse; HttpObjState.onreadystatechange = function () { if (HttpObjState.readyState == 4) { try { var stateSelect = $('state'); var ops = HttpObjState.responseXML.getElementsByTagName('option'); var StateSelected = ''; for (var i = 0; i < ops.length; i++) { if (ops[i].getAttribute("selected") == "true") { stateSelect.options[i] = new Option(ops[i].firstChild.data, ops[i].attributes[0].value, true, true); StateSelected = ops[i].attributes[0].value; stateSelect.options[i].selected = true; } else { stateSelect.options[i] = new Option(ops[i].firstChild.data, ops[i].attributes[0].value, false, false); } } if (ops.length <= 1) { getCities($('country').value, 'NA', selectedCity) } else { getCities($('country').value, selectedState, selectedCity) } // Run the callback to handle custom logic upon country change. // Any client using the country-state-city dropdown component and // willing to implement a custom callback should define it in itself. if (runStateCallback != undefined) { statesLoadedCallback(); } } catch (ex) { // alert("exception"); } } } HttpObjState.send(null); } // Runs getCities with a parameter enabling to invoke a callback. // If client wills to use a callback, it must implement it in itself. // Please see countryChanged() and stateChanged() descriptions in // the city_dd.jsp component. function getCities(country, state, city, runCityCallback) { clearSelect(document.getElementById('destination'), "Loading..."); HttpObjCity.open("GET", "../CityDropdownServlet?task=getCityOptions&stateNameForCity=" + state + "&countryNameForCity=" + country + "&selectedCity=" + city, true); HttpObjCity.onreadystatechange = function() { if (HttpObjCity.readyState == 4) { try { var citySelect = $('destination'); var CitySelected = ''; var ops = HttpObjCity.responseXML.getElementsByTagName("option"); for (var i = 0; i < ops.length; i++) { if (ops[i].getAttribute("selected") == "true") { citySelect.options[i] = new Option(ops[i].firstChild.data, ops[i].attributes[0].value, true, true); CitySelected = ops[i].attributes[0].value; citySelect.options[i].selected = true; } else citySelect.options[i] = new Option(ops[i].firstChild.data, ops[i].attributes[0].value, false, false); } // Run the callback to handle custom logic upon country change. // Any client using the country-state-city dropdown component and // willing to implement a custom callback should define it in itself. if (runCityCallback != undefined) { citiesLoadedCallback(); } } catch (ex) { // alert("exception"); } } } HttpObjCity.send(null); } function new_win(url,name,options) { var new_window = window.open(url, name, options) //4889 - Sujay - 20041125 new_window.focus(); } function preselect(selectObject, value) { for (i = 0; i < selectObject.options.length; i++) { if (selectObject.options[i].value.toUpperCase() == value.toUpperCase()) { selectObject.selectedIndex = i; return value; } } return ""; } function preselectCombo(selectObject, value) { for (i = 0; i < selectObject.options.length; i++) { if (selectObject.options[i].value == value) { selectObject.options[i].selected = true; } } } function preselectTextbox(textboxObject, value) { textboxObject.value = value; } function resetSelect(selectObject) { selectObject.selectedIndex = 0; } function swapCountry(countrySelectObject, selectedState) { var usaStates = new Array("AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN", "IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV", "NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","PR","RI","SC","SD","TN", "TX","UT","VT","VA","WA","WV","WI","WY"); var canadaStates = new Array("AB","BC","MB","NB","NT","NS","ON","PE","QC","SK","NF","NU","YT"); var usa = false; var canada = false; for (i = 0; i < usaStates.length; i++) { if (selectedState.toUpperCase() == usaStates[i].toUpperCase()) { usa = true; break; } } for (i = 0; i < canadaStates.length; i++) { if (selectedState.toUpperCase() == canadaStates[i].toUpperCase()) { canada = true; break; } } if (usa) { preselect(countrySelectObject, "US"); } if (canada) { preselect(countrySelectObject, "CA"); } } function swapState(stateSelectObject, selectedCountry) { if (selectedCountry.toUpperCase() != "US" && selectedCountry.toUpperCase() != "CA" && selectedCountry.toUpperCase() != "") { preselect(stateSelectObject, "NA"); } else { if (stateSelectObject.value == "NA" || selectedCountry=="") { preselect(stateSelectObject, ""); // "Select A State/Province" } } } function incDate(dateElement, currentDate, isReverse) { // consider currentDate is in 'mm/dd' format var splits = currentDate.split("/"); var valid = false; if (splits.length == 2) { if (!isNaN(trim(splits[0])) && !isNaN(trim(splits[1]))) { valid = true; } } if (!valid) { return; } if(isReverse=='false') { var m = parseInt(trim(splits[0]) , 10); var d = parseInt(trim(splits[1]) , 10); } else { var m = parseInt(trim(splits[1]) , 10); var d = parseInt(trim(splits[0]) , 10); } var daysInMonth = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // Set 29 days in Feb if this is a leap year if ("undefined" != typeof(isLeapYear) && isLeapYear == false) { daysInMonth[1] = 28; } d++; if (d < 1 || d > daysInMonth[m - 1]) { d = 1; m++; } if (m < 1 || m > 12) { m = 1; } // convert m/d to mm/dd if (m < 10) { m = "0" + m; } if (d < 10) { d = "0" + d; } if(isReverse=='false') var result = m + "/" + d; else if(isReverse=='true') var result = d + "/" + m; dateElement.value = result; } function incDatePromo(dateElement, currentDate, isReverse, incParam) { // consider currentDate is in 'mm/dd' format var splits = currentDate.split("/"); var valid = false; if (splits.length == 2) { if (!isNaN(trim(splits[0])) && !isNaN(trim(splits[1]))) { valid = true; } } if (!valid) { return; } if(isReverse=='false') { var m = parseInt(trim(splits[0]) , 10); var d = parseInt(trim(splits[1]) , 10); } else { var m = parseInt(trim(splits[1]) , 10); var d = parseInt(trim(splits[0]) , 10); } var daysInMonth = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // Set 29 days in Feb if this is a leap year if ("undefined" != typeof(isLeapYear) && isLeapYear == false) { daysInMonth[1] = 28; } var daysRemainingInMonth = eval(daysInMonth[m - 1]) - eval(d); if(daysRemainingInMonth < 0){ daysRemainingInMonth = 0; } var mlosToBeAdded = eval(incParam) - eval(daysRemainingInMonth); d = eval(d) + eval(incParam); if (d < 1 || d > daysInMonth[m - 1]) { d = eval(mlosToBeAdded); m++; } if(d == 0){ d = 1; } if (m < 1 || m > 12) { m = 1; } // convert m/d to mm/dd if (m < 10) { m = "0" + m; } if (d < 10) { d = "0" + d; } if(isReverse=='false') var result = m + "/" + d; else if(isReverse=='true') var result = d + "/" + m; dateElement.value = result; } //being used in Use Case 6 Exception 2 function decrDate(dateElement, currentDate) { // consider currentDate and dateElement.value is in 'mm/dd' format var splits1 = dateElement.value.split("/"); var splits2 = currentDate.split("/"); var valid = false; if (splits2.length == 2) { if (!isNaN(trim(splits2[0])) && !isNaN(trim(splits2[1])) && !isNaN(trim(splits1[0])) && !isNaN(trim(splits1[1]))) { valid = true; } } if (!valid) { return; } var m1 = parseInt(trim(splits1[0]) , 10); var d1 = parseInt(trim(splits1[1]) , 10); var m2 = parseInt(trim(splits2[0]) , 10); var d2 = parseInt(trim(splits2[1]) , 10); var daysInMonth = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // Set 29 days in Feb if this is a leap year if ("undefined" != typeof(isLeapYear) && isLeapYear == false) { daysInMonth[1] = 28; } if ((m1 == m2) && (d1 > d2)) { d2--; if (d2 < 1 || d2 > daysInMonth[m2 - 1]) { m2--; d2 = daysInMonth[m2 - 1]; } if (m2 < 1 || m2 > 12) { m2 = 12; d2 = daysInMonth[m2 - 1]; } // convert m/d to mm/dd if (m2 < 10) { m2 = "0" + m2; } if (d2 < 10) { d2 = "0" + d2; } var result = m2 + "/" + d2; dateElement.value = result; } else { // convert m/d to mm/dd if (m1 < 10) { m1 = "0" + m1; } if (d1 < 10) { d1 = "0" + d1; } var result = m1 + "/" + d1; dateElement.value = result; } } function trim(str) { return str.replace(/^\s*|\s*$/g,""); } // takes the original URL and removes any entry_src out of there function getEntrySourceUrl(original) { var startIndex = original.indexOf("entry_source"); if (startIndex == -1) { return original; } var endIndex = original.indexOf("&", startIndex); var ret; if (endIndex != -1) { ret = original.substring(0, startIndex) + original.substring(endIndex + 1); } else { ret = original.substring(0, startIndex); } return ret; } // Set of handlers to populate the country-state-city dropdown with // a value user has selected from the popular destinations list. var _dd_city; var _dd_state; var _dd_country; function populateCityStateDropdown(value) { // Remember the selected value var splitted = value.split(','); _dd_city = splitted[0]; _dd_state = splitted[1]; _dd_country = splitted[2]; if ($("country").value == _dd_country && $("state").value == _dd_state ) { $("destination").value = _dd_city; return; } if ($("country").value == _dd_country ) { preselect($("state"), _dd_state); if (document.createEventObject){ // dispatch for IE var stateEvt = document.createEventObject(); stateEvt.runCallback = true; $("state").fireEvent('onchange', stateEvt); } else{ // dispatch for firefox + others var stateEvt = document.createEvent("HTMLEvents"); stateEvt.initEvent("change", true, true); // event type,bubbling,cancelable stateEvt.runCallback = true; $("state").dispatchEvent(stateEvt); } return; } // Pre-select the country preselect($("country"), _dd_country); // Create an event obj and fire it if (document.createEventObject){ // dispatch for IE var countryEvt = document.createEventObject(); countryEvt.runCallback = true; $("country").fireEvent('onchange', countryEvt); } else{ // dispatch for firefox + others var countryEvt = document.createEvent("HTMLEvents"); countryEvt.initEvent("change", true, true); // event type,bubbling,cancelable countryEvt.runCallback = true; $("country").dispatchEvent(countryEvt); } // Further handling will happen in statesLoadedCallback... } function statesLoadedCallback() { // Pre-select the state preselect($("state"), _dd_state); // Create an event obj and fire it if (document.createEventObject){ // dispatch for IE var stateEvt = document.createEventObject(); stateEvt.runCallback = true; $("state").fireEvent('onchange', stateEvt); } else{ // dispatch for firefox + others var stateEvt = document.createEvent("HTMLEvents"); stateEvt.initEvent("change", true, true); // event type,bubbling,cancelable stateEvt.runCallback = true; $("state").dispatchEvent(stateEvt); } // Further handling will happen in citiesLoadedCallback... } function citiesLoadedCallback() { preselect($("destination"), _dd_city); } //TED 7753 var txtCityState = new Array(); var checkedValues; var txtCity; var txtState; var txtCountry; function populateCityState(r,f){ for(var i=0;i