/** * @author daniel.smith */ var stateCallback = function() { return { success: function(o) { if(o.responseText !== undefined){ addNewOptions(o.argument.stateSelectElm, o.responseXML); /* * Locate hidden field that may contain return index of previously selected state option * Until app dev has this portion covered, hardcode index value for testing * * When complete, replace var prevValue = 'state'; with var prevValue = null; * */ var prevValue = null; // SHOULD BE CA, NY, etc. /* Locate hidden value for previously-selected state: app uses multiple variations */ var hiddenInput = o.argument.stateSelectElm.form['selProv']; if (typeof hiddenInput == 'undefined') { hiddenInput = o.argument.stateSelectElm.form['_D:states']; } if (typeof hiddenInput == 'undefined') { hiddenInput = o.argument.stateSelectElm.form['_D:/atg/userprofiling/ProfileFormHandler.editValue.state']; } if (typeof hiddenInput == 'undefined') { hiddenInput = o.argument.stateSelectElm.form['_D:provinceb']; } if (typeof hiddenInput != 'undefined' && hiddenInput.value && hiddenInput.value !== '' && hiddenInput.value !== ' ') { prevValue = hiddenInput.value; } /* use hiden value to update select list */ if (prevValue !== null) { var options = o.responseXML.getElementsByTagName('option'); if (options.length > 1) { for (var i = 1; i < options.length; i++) { if (options[i].getAttribute('value') == prevValue) { o.argument.stateSelectElm.selectedIndex = i; break; } } } } else { o.argument.stateSelectElm.options[0].text = (typeof defaultSelectMessage != 'undefined' && defaultSelectMessage !== null && defaultSelectMessage !== '') ? defaultSelectMessage : "- Select -"; } } }, failure: function(o) { /* do nothing */ }, argument: { stateSelectElm: "blank" }, timeout: 5000 }; }; function addNewOptions(selectElm, optionXml) { selectElm.options.length = 0; var opts = optionXml.getElementsByTagName('option'); for (var i=0;i 0) { var url = getAjaxJspForFeedback() +"?country=" + escape(CDD.value); var SCB = new stateCallback(); SCB.argument.stateSelectElm = statePickerElm; if (statePickerElm.options) { statePickerElm.options.length = 0; statePickerElm.options[0] = new Option("- Please wait ... ", ""); } YAHOO.util.Connect.asyncRequest('GET', url, SCB, null); } } } } } //run the init function YAHOO.util.Event.addListener(window, "load", function(e) {initCountryEvents();});