summaryrefslogtreecommitdiff
path: root/httemplate/elements/select-phonenum.html
blob: 18abe3dea29068f44cd07c874cc2bb71fd970aa8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<% include('/elements/xmlhttp.html',
              'url'  => $p.'misc/phonenums.cgi',
              'subs' => [ $opt{'prefix'}. 'get_phonenums' ],
          )
%>

<SCRIPT TYPE="text/javascript">

  function opt(what,value,text) {
    var optionName = new Option(text, value, false, false);
    var length = what.length;
    what.options[length] = optionName;
  }

  function <% $opt{'prefix'} %><% $previous %>_changed(what, callback) {

    what.form.<% $opt{'prefix'} %>phonenum.disabled = 'disabled';
    what.form.<% $opt{'prefix'} %>phonenum.style.display = 'none';
    var phonenumwait = document.getElementById('<% $opt{'prefix'} %>phonenumwait');
    phonenumwait.style.display = '';
    var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror');
    phonenumerror.style.display = 'none';

    var thing = "<% $previous eq 'region' ? '_REGION ' : '' %>" + what.options[what.selectedIndex].value;

    function <% $opt{'prefix'} %>update_phonenums(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;

%     if ($opt{empty}) {
        if ( what.form.<% $opt{'prefix'} %>phonenum.type != 'select-multiple' ){
          opt(what.form.<% $opt{'prefix'} %>phonenum, '', '<% $opt{empty} %>');
        }
%     }

      // add the new phonenums
      var phonenumArray = eval('(' + 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);
      }

      //var phonenumFormLabel = document.getElementById('<% $opt{'prefix'} %>phonenumlabel');

      what.form.<% $opt{'prefix'} %>phonenum.disabled = '';

      phonenumwait.style.display = 'none';
      if ( phonenumArray.length >= 1 ) {
        what.form.<% $opt{'prefix'} %>phonenum.disabled = '';
        what.form.<% $opt{'prefix'} %>phonenum.style.display = '';
      } else {
        var phonenumerror = document.getElementById('<% $opt{'prefix'} %>phonenumerror');
        phonenumerror.style.display = '';
      }

      //run the callback
      if ( callback != null ) 
        callback();

	var phonenum_sel = what.form.<% $opt{'prefix'} %>phonenum;
	var bulkdid = document.getElementById('bulkdid');
	if ( bulkdid != null ) {
	    var numCheckboxes = Math.min(phonenum_sel.options.length-1,<% $opt{'bulknum'} %>);
	    var i;
	    for(i = 0; i < numCheckboxes; i++){
		document.getElementById('bulkdid_'+i).style.display = 'block';
		document.getElementById('checkbox_bulkdid_'+i).checked = false;
		var tn = phonenum_sel.options[i+1].value;
		document.getElementById('checkbox_bulkdid_'+i).value = tn;
		document.getElementById('label_bulkdid_'+i).innerHTML = tn;
	    }
	    for(i = numCheckboxes; i < <% $opt{'bulknum'} %>; i++){
		document.getElementById('bulkdid_'+i).style.display = 'none';
		document.getElementById('checkbox_bulkdid_'+i).value = '';
		document.getElementById('checkbox_bulkdid_'+i).checked = false;
		document.getElementById('label_bulkdid_'+i).innerHTML = '';
	    }
	}

    }

    // go get the new phonenums
    <% $opt{'prefix'} %>get_phonenums( thing, <% $opt{'svcpart'} %>, <% $opt{'prefix'} %>update_phonenums );

  }

% if ( $opt{'tollfree'} ) {
    function <% $opt{'prefix'} %>update_phonenums(phonenums) {
	// lame hack so I can copy the code from above
	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;

%     if ($opt{empty}) {
        opt(what.form.<% $opt{'prefix'} %>phonenum, '', '<% $opt{empty} %>');
%     }

      // add the new phonenums
      var phonenumArray = eval('(' + 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);
      }

      what.form.<% $opt{'prefix'} %>phonenum.disabled = '';

      if ( phonenumArray.length >= 1 ) {
        what.form.<% $opt{'prefix'} %>phonenum.disabled = '';
        what.form.<% $opt{'prefix'} %>phonenum.style.display = '';
      } 

    }
    <% $opt{'prefix'} %>get_phonenums( 'tollfree', <% $opt{'svcpart'} %>, <% $opt{'prefix'} %>update_phonenums );
% }

</SCRIPT>

% 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>
% }

<SELECT <% $opt{multiple} ? 'MULTIPLE SIZE=25' : '' %>
        ID   = "<% $opt{'prefix'} %>phonenum"
        NAME = "<% $opt{'prefix'} %>phonenum" 
        <% $opt{'disabled'} %>
%#        notonChange="<% $opt{'prefix'} %>phonenum_changed(this); <% $opt{'onchange'} %>"
>
% unless ( $opt{multiple} ) {
    <OPTION VALUE="">Select phone number</OPTION>
% }
</SELECT>

<%init>

my %opt = @_;

$opt{disabled} = 'disabled' unless exists $opt{disabled};

my $previous = $opt{'region'} ? 'region' : 'exchange';

</%init>