default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / elements / select-phonenum.html
index 118fe49..f0ff03c 100644 (file)
@@ -37,16 +37,15 @@ passing the exchange (or region) and
 
 <SCRIPT TYPE="text/javascript">
 
-  function opt(what,value,text) {
+  function jopt(what,value,text) {
     var optionName = new Option(text, value, false, false);
-    var length = what.length;
-    what.options[length] = optionName;
+    what.append(optionName);
   }
 
   function <% $opt{'prefix'} %><% $previous %>_changed(what, callback) {
 
-    what.form.<% $opt{'prefix'} %>phonenum.disabled = 'disabled';
-    what.form.<% $opt{'prefix'} %>phonenum.style.display = 'none';
+    $('#<% $opt{'prefix'} %>phonenum').prop('disabled', true);
+    $('#<% $opt{'prefix'} %>phonenum').css('display', 'none');
     var phonenumwait = document.getElementById('<% $opt{'prefix'} %>phonenumwait');
     phonenumwait.style.display = 'inline';
     var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror');
@@ -56,36 +55,41 @@ passing the exchange (or region) and
 
     function <% $opt{'prefix'} %>update_phonenums(phonenums) {
 
+      var reply = JSON.parse(phonenums);
       // blank the current phonenum
-      for ( var i = what.form.<% $opt{'prefix'} %>phonenum.length; i >= 0; i-- )
-          what.form.<% $opt{'prefix'} %>phonenum.options[i] = null;
+      $('#<% $opt{prefix} %>phonenum').empty();
 
 %     if ($opt{empty}) {
         if ( what.form.<% $opt{'prefix'} %>phonenum.type != 'select-multiple' ){
-          opt(what.form.<% $opt{'prefix'} %>phonenum, '', '<% $opt{empty} %>');
+          jopt($('#<% $opt{'prefix'} %>phonenum'), '', '<% $opt{empty} %>');
         }
 %     }
 
       // add the new phonenums
-      var phonenumArray = eval('(' + phonenums + ')' );
+      var phonenumArray = reply.phonenums;
       for ( var s = 0; s < phonenumArray.length; s++ ) {
           var phonenumLabel = phonenumArray[s];
           if ( phonenumLabel == "" )
               phonenumLabel = '(n/a)';
-          opt(what.form.<% $opt{'prefix'} %>phonenum, phonenumArray[s], phonenumLabel);
+          jopt($('#<% $opt{'prefix'} %>phonenum'), phonenumArray[s], phonenumLabel);
       }
 
       //var phonenumFormLabel = document.getElementById('<% $opt{'prefix'} %>phonenumlabel');
 
-      what.form.<% $opt{'prefix'} %>phonenum.disabled = '';
+    $('#<% $opt{'prefix'} %>phonenum').prop('disabled', false);
 
       phonenumwait.style.display = 'none';
       if ( phonenumArray.length >= 1 ) {
-        what.form.<% $opt{'prefix'} %>phonenum.disabled = '';
-        what.form.<% $opt{'prefix'} %>phonenum.style.display = '';
+        $('#<% $opt{'prefix'} %>phonenum').prop('disabled', false);
+        $('#<% $opt{'prefix'} %>phonenum').css('display', '');
       } else {
         var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror');
         phonenumerror.style.display = 'inline';
+        if ( reply.error ) {
+          phonenumerror.textContent = reply.error;
+        } else {
+          phonenumerror.textContent = 'Select a different <% $opt{'region'} ? 'region' : 'city/exchange' %>';
+        }
       }
 
       //run the callback
@@ -125,11 +129,10 @@ passing the exchange (or region) and
        what = document.getElementById('<% $opt{prefix} %>phonenum');
 
        // blank the current phonenum
-      for ( var i = what.form.<% $opt{'prefix'} %>phonenum.length; i >= 0; i-- )
-          what.form.<% $opt{'prefix'} %>phonenum.options[i] = null;
+        $('#<% $opt{prefix} %>phonenum').empty();
 
 %     if ($opt{empty}) {
-        opt(what.form.<% $opt{'prefix'} %>phonenum, '', '<% $opt{empty} %>');
+        jopt($('#<% $opt{'prefix'} %>phonenum'), '', '<% $opt{empty} %>');
 %     }
 
       // add the new phonenums
@@ -138,14 +141,14 @@ passing the exchange (or region) and
           var phonenumLabel = phonenumArray[s];
           if ( phonenumLabel == "" )
               phonenumLabel = '(n/a)';
-          opt(what.form.<% $opt{'prefix'} %>phonenum, phonenumArray[s], phonenumLabel);
+          jopt($('#<% $opt{'prefix'} %>phonenum'), phonenumArray[s], phonenumLabel);
       }
 
-      what.form.<% $opt{'prefix'} %>phonenum.disabled = '';
+      $('#<% $opt{'prefix'} %>phonenum').prop('disabled', false);
 
       if ( phonenumArray.length >= 1 ) {
-        what.form.<% $opt{'prefix'} %>phonenum.disabled = '';
-        what.form.<% $opt{'prefix'} %>phonenum.style.display = '';
+        $('#<% $opt{'prefix'} %>phonenum').prop('disabled', false);
+        $('#<% $opt{'prefix'} %>phonenum').css('display', '');
       } 
 
     }
@@ -157,7 +160,7 @@ passing the exchange (or region) and
 % unless ( $opt{'tollfree'} ) {
 <DIV ID="phonenumwait" STYLE="display:none"><IMG SRC="<%$fsurl%>images/wait-orange.gif"> <B>Finding phone numbers</B></DIV>
 
-<DIV ID="phonenumerror" STYLE="display:none"><IMG SRC="<%$fsurl%>images/cross.png"> <B>Select a different <% $opt{'region'} ? 'region' : 'city/exchange' %></B></DIV>
+<DIV ID="phonenumerror" STYLE="display:none; font-weight: bold"><IMG SRC="<%$fsurl%>images/cross.png"></DIV>
 % }
 
 <SELECT <% $opt{multiple} ? 'MULTIPLE SIZE=25' : '' %>