remove popup border cruft
[freeside.git] / httemplate / elements / cust_payby.html
index 20ad343..6404bcb 100644 (file)
@@ -11,7 +11,8 @@
 
       <TD>
         <SELECT NAME="<%$name%>_payby"
-                onChange="<%$name%>_payby_changed(this)"
+                ID="<%$id%>_payby"
+                onChange="payby_changed(this)"
         >
 %         foreach my $payby (@payby) {
             <OPTION VALUE="<% $payby %>"
                ID        = "<%$id%>_paycvv"
                SIZE      = 2
                MAXLENGTH = 4
-               VALUE     = "<% $cgi->param($name.'_paycvv') %>"
+               VALUE     = "<% scalar($cgi->param($name.'_paycvv')) || ('*' x length($cust_payby->paycvv)) %>"
                onChange  = "<% $onchange %>"
         >
-        <BR><FONT SIZE="-1"><% mt('CVV2') |h %>&nbsp;(<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('<%$p%>docs/cvv2.html', 480, 275, 'cvv2_popup' ), CAPTION, 'CVV2 Help', STICKY, AUTOSTATUSCAP, CLOSECLICK, DRAGGABLE ); return false;"><% mt('help') |h %></A>)</FONT>
+        <BR><FONT SIZE="-1"><% mt('CVV2') |h %>&nbsp;<& /elements/popup_link.html,
+           'action'      => $p.'docs/cvv2.html',
+           'label'       => mt('(help)'),
+           'actionlabel' => 'CVV2 Help',
+           'width'       => 480,
+           'height'      => 275,
+           'nocenter'    => 1,
+           #popup_name    => 'cvv2_popup',
+        &></FONT>
       </TD>
 
       <TD ID="<%$id%>_td_payname" <%$card_display%>>
         </SELECT>
         <BR><FONT SIZE="-1"><% mt('Account type') |h %></FONT>
       </TD>
-%     my( $account, $aba ) = split('@',
-%       ( $cgi->param($name.'_payby') || $cust_payby->payby ) =~ /^(CHEK|DCHK)$/
-%         ? $cgi->param($name.'_payinfo')
-%         : $cust_payby->payinfo
-%       );
-%     my $branch = '';
-%     ($branch,$aba) = split('\.',$aba)
-%       if $echeck_country eq 'CA';
+
+%     my ( $account, $aba, $branch ) = ( '', '', '' );
+%     if ( $cgi->param($name.'_payby') =~ /^(CHEK|DCHK)$/ ) {
+%       $account = $cgi->param($name.'_payinfo1');
+%       $aba     = $cgi->param($name.'_payinfo2');
+%       $branch  = $cgi->param($name.'_payinfo3');
+%     } elsif ( $cust_payby->payby =~ /^(CHEK|DCHK)$/ ) {
+%       ( $account, $aba ) = split('@', $cust_payby->payinfo);
+%       ( $branch,  $aba ) = split('\.',$aba)
+%         if $echeck_country eq 'CA';
+%     }
 %
 %     #false laziness w/view/cust_main/billing.html and misc/payment.cgi
 %     my $routing_label = $echeck_country eq 'US' ? 'ABA/Routing #'
           <& /elements/select-state.html,
                'prefix'  => $name. '_pay',
                'empty'   => emt('(choose)'),
-               'state'   => $cgi->param($name.'_paystate')
-                              || $cust_payby->paystate,
+               'state'   => ( scalar($cgi->param($name.'_paystate'))
+                                || $cust_payby->paystate ),
                #was cust_main->country in 3.x, but this will do until/unlesss
                # someone needs to track foreign bank states
-               'country' => scalar($conf->config('countrydefault')) || 'US',
+               'country' => ( scalar($conf->config('countrydefault')) || 'US' ),
           &>
           <BR><FONT SIZE="-1"><% mt('Bank state') |h %></FONT>
         </TD>
   </TABLE>
 
 % }
-% unless ( $opt{'html_only'} ) {
+% unless ( $opt{'html_only'} || $payby_changed_init ) {
   <SCRIPT TYPE="text/javascript">
 
-    function <%$name%>_payby_changed(what) {
+    function payby_changed(what) {
+      var field_match = what.id.match(/(.*)_payby$/);
+      var field_id = field_match[1];
       var payby = what.options[what.selectedIndex].value;
       if ( payby == 'CARD' ) {
-        document.getElementById('<%$id%>_td_payinfo').style.display = '';
-        document.getElementById('<%$id%>_td_paydate').style.display = '';
-        document.getElementById('<%$id%>_td_paycvv').style.display = '';
-        document.getElementById('<%$id%>_td_payname').style.display = '';
-        document.getElementById('<%$id%>_td_payinfo1').style.display = 'none';
-        document.getElementById('<%$id%>_td_payinfo2').style.display = 'none';
-        document.getElementById('<%$id%>_td_paytype').style.display = 'none';
-        document.getElementById('<%$id%>_td_payname_CHEK').style.display = 'none';
-        var td_payinfo3 = document.getElementById('<%$id%>_td_payinfo3');
+        document.getElementById(field_id+'_td_payinfo').style.display = '';
+        document.getElementById(field_id+'_td_paydate').style.display = '';
+        document.getElementById(field_id+'_td_paycvv').style.display = '';
+        document.getElementById(field_id+'_td_payname').style.display = '';
+        document.getElementById(field_id+'_td_payinfo1').style.display = 'none';
+        document.getElementById(field_id+'_td_payinfo2').style.display = 'none';
+        document.getElementById(field_id+'_td_paytype').style.display = 'none';
+        document.getElementById(field_id+'_td_payname_CHEK').style.display = 'none';
+        var td_payinfo3 = document.getElementById(field_id+'_td_payinfo3');
         if ( td_payinfo3 ) {
           td_payinfo3.style.display = 'none';
         }
-        var td_paystate = document.getElementById('<%$id%>_td_paystate');
+        var td_paystate = document.getElementById(field_id+'_td_paystate');
         if ( td_paystate ) {
           td_paystate.style.display = 'none';
         }
       } else if ( payby == 'CHEK' ) {
-        document.getElementById('<%$id%>_td_payinfo').style.display = 'none';
-        document.getElementById('<%$id%>_td_paydate').style.display = 'none';
-        document.getElementById('<%$id%>_td_paycvv').style.display = 'none';
-        document.getElementById('<%$id%>_td_payname').style.display = 'none';
-        document.getElementById('<%$id%>_td_payinfo1').style.display = '';
-        document.getElementById('<%$id%>_td_payinfo2').style.display = '';
-        document.getElementById('<%$id%>_td_paytype').style.display = '';
-        document.getElementById('<%$id%>_td_payname_CHEK').style.display = '';
-        var td_payinfo3 = document.getElementById('<%$id%>_td_payinfo3');
+        document.getElementById(field_id+'_td_payinfo').style.display = 'none';
+        document.getElementById(field_id+'_td_paydate').style.display = 'none';
+        document.getElementById(field_id+'_td_paycvv').style.display = 'none';
+        document.getElementById(field_id+'_td_payname').style.display = 'none';
+        document.getElementById(field_id+'_td_payinfo1').style.display = '';
+        document.getElementById(field_id+'_td_payinfo2').style.display = '';
+        document.getElementById(field_id+'_td_paytype').style.display = '';
+        document.getElementById(field_id+'_td_payname_CHEK').style.display = '';
+        var td_payinfo3 = document.getElementById(field_id+'_td_payinfo3');
         if ( td_payinfo3 ) {
           td_payinfo3.style.display = '';
         }
-        var td_paystate = document.getElementById('<%$id%>_td_paystate');
+        var td_paystate = document.getElementById(field_id+'_td_paystate');
         if ( td_paystate ) {
           td_paystate.style.display = '';
         }
       } else {
         alert( 'unknown payby ' + payby );
       }
+      spawn_custpaybynum(what);
     }
 
   </SCRIPT>
+%   $payby_changed_init = 1;
 % }
+<%once>
+my $payby_changed_init = 0;
+</%once>
 <%init>
 
 my( %opt ) = @_;
@@ -287,9 +305,18 @@ if ( $curr_value ) {
 } else {
   $cust_payby = new FS::cust_payby {};
 }
-my $sel_payby = $cust_payby->payby;
-$sel_payby = 'CARD' if $sel_payby eq 'DCRD' || $sel_payby eq '';
-$sel_payby = 'CHEK' if $sel_payby eq 'DCHK';
+my $sel_payby = $cgi->param($name.'_payby') || $cust_payby->payby;
+# convert DCRD to CARD + no weight, and the same for DCHK/CHEK
+if ($sel_payby eq 'DCRD') {
+  $sel_payby = 'CARD';
+  $cust_payby->weight('');
+} elsif ($sel_payby eq 'DCHK') {
+  $sel_payby = 'CHEK';
+  $cust_payby->weight('');
+} elsif (!$sel_payby) {
+  # default
+  $sel_payby = 'CARD';
+}
 
 my @payby = FS::payby->cust_payby;
 my %conf_payby = map { $_=>1 } $conf->config('payby');