sub search {
   $lxdebug->enter_sub();
 
-  my ($button1, $button2, $onhand, $makemodel, $serialnumber, $l_serialnumber, $toplevel, $bought);
-
-  $form->{title} = (ucfirst $form->{searchitems}) . "s";
-  $form->{title} = $locale->text($form->{title});
-
   # switch for backward sorting
   $form->{revers} = 0;
 
   # $locale->text('Parts')
   # $locale->text('Services')
 
-  # use JavaScript Calendar or not
-  $form->{jsscript} = 1;
-  my $jsscript = "";
-  if ($form->{jsscript}) {
-
-    # with JavaScript Calendar
-    $button1 = qq|
-       <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}"></td>
-       <td><input type=button name=transdatefrom id="trigger1" value=|
-      . $locale->text('button') . qq|></td>
-      |;
-    $button2 = qq|
-       <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}"></td>
-       <td><input type=button name=transdateto name=transdateto id="trigger2" value=|
-      . $locale->text('button') . qq|></td>
-     |;
-
-    #write Trigger
-    $jsscript = Form->write_trigger(\%myconfig, "2", "transdatefrom", "BL", "trigger1", "transdateto", "BL", "trigger2");
-  } else {
-
-    # without JavaScript Calendar
-    $button1 = qq| <td><input name=transdatefrom id=transdatefrom size=11 title="$myconfig{dateformat}"></td>|;
-    $button2 = qq| <td><input name=transdateto id=transdateto size=11 title="$myconfig{dateformat}"></td>|;
-  }
-
-  unless ($form->{searchitems} eq 'service') {
-
-    $onhand = qq| <input name=itemstatus class=radio type=radio value=onhand> | . $locale->text('On Hand') . qq|
-                  <input name=itemstatus class=radio type=radio value=short> | . $locale->text('Short') . qq|
-|;
-
-    $makemodel = qq|
-        <tr>
-          <th align=right nowrap>| . $locale->text('Make') . qq|</th> <td><input name=make size=20></td>
-          <th align=right nowrap>| . $locale->text('Model') . qq|</th> <td><input name=model size=20></td>
-        </tr>
-|;
-
-    $serialnumber = qq|
-          <th align=right nowrap>| . $locale->text('Serial Number') . qq|</th> <td><input name=serialnumber size=20></td>
-|;
+  my $is_service  = $form->{searchitems} eq 'service';
+  my $is_assembly = $form->{searchitems} eq 'assembly';
 
-    $l_serialnumber = qq|
-        <td><input name=l_serialnumber class=checkbox type=checkbox value=Y> | . $locale->text('Serial Number') . qq|</td>
-|;
-
-  }
-
-  if ($form->{searchitems} eq 'assembly') {
-
-    $form->{title} = $locale->text('Assemblies');
-
-    $toplevel = qq|
-        <tr>
-         <td></td>
-          <td colspan=3>
-         <input name=null class=radio type=radio value=1 checked> |
-      . $locale->text('Top Level') . qq|
-         <input name=bom class=checkbox type=checkbox value=1> |
-      . $locale->text('Individual Items') . qq|
-          </td>
-        </tr>
-|;
-
-    $bought = qq|
-       <tr>
-         <td></td>
-         <td colspan=3>
-           <table>
-             <tr>
-               <td>
-                 <table>
-                   <tr>
-                     <td><input name=sold class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Sold') . qq|</td>
-                   </tr>
-                   <tr>
-                     <td colspan=2><hr size=1 noshade></td>
-                   </tr>
-                   <tr>
-                     <td><input name=ordered class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Ordered') . qq|</td>
-                   </tr>
-                   <tr>
-                     <td colspan=4><hr size=1 noshade></td>
-                   </tr>
-                   <tr>
-                     <td><input name=quoted class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Quoted') . qq|</td>
-                   </tr>
-                 </table>
-               </td>
-               <td width=5%> </td>
-               <th>| . $locale->text('From') . qq|</th>
-                $button1
-               <th>| . $locale->text('To (time)') . qq|</th>
-                $button2
-             </tr>
-           </table>
-         </td>
-       </tr>
-|;
-
-  } else {
+  $form->{title} = (ucfirst $form->{searchitems}) . "s";
+  $form->{title} = $locale->text($form->{title});
+  $form->{title} = $locale->text('Assemblies') if $is_assembly;
 
-    $bought = qq|
-        <tr>
-          <td></td>
-          <td colspan=3>
-           <table>
-             <tr>
-               <td>
-                 <table>
-                   <tr>
-                     <td><input name=bought class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Bought') . qq|</td>
-                     <td><input name=sold class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Sold') . qq|</td>
-                   </tr>
-                   <tr>
-                     <td colspan=4><hr size=1 noshade></td>
-                   </tr>
-                   <tr>
-                     <td><input name=onorder class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('On Order') . qq|</td>
-                     <td><input name=ordered class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Ordered') . qq|</td>
-                   </tr>
-                   <tr>
-                     <td colspan=4><hr size=1 noshade></td>
-                   </tr>
-                   <tr>
-                     <td><input name=rfq class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('RFQ') . qq|</td>
-                     <td><input name=quoted class=checkbox type=checkbox value=1></td>
-                     <td nowrap>| . $locale->text('Quoted') . qq|</td>
-                   </tr>
-                 </table>
-               </td>
-               <td width=5%> </td>
-               <td>
-                 <table>
-                   <tr>
-                     <th>| . $locale->text('From') . qq|</th>
-                     $button1
-                     <th>| . $locale->text('To (time)') . qq|</th>
-                     $button2
-                   </tr>
-                 </table>
-               </td>
-             </tr>
-           </table>
-         </td>
-       </tr>
-|;
-  }
+  $form->{jsscript} = 1;
 
   $form->header;
 
-  print qq|
-<body>
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=searchitems value=$form->{searchitems}>
-<input type=hidden name=title value="$form->{title}">
+  print $form->parse_html_template('ic/search', { is_assembly => $is_assembly, is_service => $is_service, dateformat => $myconfig{dateformat} });
 
-<input type=hidden name=revers value="$form->{revers}">
-<input type=hidden name=lastsort value="$form->{lastsort}">
-
-<table width="100%">
-  <tr><th class=listtop>$form->{title}</th></tr>
-  <tr height="5"></tr>
-  <tr valign=top>
-    <td>
-      <table>
-        <tr>
-          <th align=right nowrap>| . $locale->text('Part Number') . qq|</th>
-          <td><input name=partnumber size=20></td>
-          <th align=right nowrap>| . $locale->text('EAN') . qq|</th>
-          <td><input name=ean size=20></td>
-        </tr>
-        <tr>
-          <th align=right nowrap>|
-    . $locale->text('Part Description') . qq|</th>
-          <td colspan=3><input name=description size=40></td>
-        </tr>
-       <tr>
-          <th align=right nowrap>| . $locale->text('Group') . qq|</th>
-          <td><input name=partsgroup size=20></td>
-         $serialnumber
-       </tr>
-       $makemodel
-        <tr>
-          <th align=right nowrap>| . $locale->text('Drawing') . qq|</th>
-          <td><input name=drawing size=20></td>
-          <th align=right nowrap>| . $locale->text('Microfiche') . qq|</th>
-          <td><input name=microfiche size=20></td>
-        </tr>
-       $toplevel
-        <tr>
-          <td></td>
-          <td colspan=3>
-            <input name=itemstatus class=radio type=radio value=active checked> |
-    . $locale->text('Active') . qq|
-           $onhand
-            <input name=itemstatus class=radio type=radio value=obsolete> |
-    . $locale->text('Obsolete') . qq|
-            <input name=itemstatus class=radio type=radio value=orphaned> |
-    . $locale->text('Orphaned') . qq|
-         </td>
-       </tr>
-       $bought
-        <tr>
-         <td></td>
-          <td colspan=3>
-           <hr size=1 noshade>
-         </td>
-       </tr>
-       <tr>
-          <th align=right nowrap>|
-    . $locale->text('Include in Report') . qq|</th>
-          <td colspan=3>
-            <table>
-              <tr>
-                <td><input name=l_partnumber class=checkbox type=checkbox value=Y checked> |
-    . $locale->text('Part Number') . qq|</td>
-               <td><input name=l_description class=checkbox type=checkbox value=Y checked> |
-    . $locale->text('Part Description') . qq|</td>
-               $l_serialnumber
-               <td><input name=l_unit class=checkbox type=checkbox value=Y checked> |
-    . $locale->text('Unit of measure') . qq|</td>
-             </tr>
-             <tr>
-                <td><input name=l_listprice class=checkbox type=checkbox value=Y> |
-    . $locale->text('List Price') . qq|</td>
-               <td><input name=l_sellprice class=checkbox type=checkbox value=Y checked> |
-    . $locale->text('Sell Price') . qq|</td>
-               <td><input name=l_lastcost class=checkbox type=checkbox value=Y checked> |
-    . $locale->text('Last Cost') . qq|</td>
-               <td><input name=l_linetotal class=checkbox type=checkbox value=Y checked> |
-    . $locale->text('Line Total') . qq|</td>
-             </tr>
-             <tr>
-                <td><input name=l_priceupdate class=checkbox type=checkbox value=Y> |
-    . $locale->text('Updated') . qq|</td>
-               <td><input name=l_bin class=checkbox type=checkbox value=Y> |
-    . $locale->text('Bin') . qq|</td>
-               <td><input name=l_rop class=checkbox type=checkbox value=Y> |
-    . $locale->text('ROP') . qq|</td>
-               <td><input name=l_weight class=checkbox type=checkbox value=Y> |
-    . $locale->text('Weight') . qq|</td>
-              </tr>
-             <tr>
-                <td><input name=l_image class=checkbox type=checkbox value=Y> |
-    . $locale->text('Image') . qq|</td>
-               <td><input name=l_drawing class=checkbox type=checkbox value=Y> |
-    . $locale->text('Drawing') . qq|</td>
-               <td><input name=l_microfiche class=checkbox type=checkbox value=Y> |
-    . $locale->text('Microfiche') . qq|</td>
-               <td><input name=l_partsgroup class=checkbox type=checkbox value=Y> |
-    . $locale->text('Group') . qq|</td>
-              </tr>
-             <tr>
-                <td><input name=l_subtotal class=checkbox type=checkbox value=Y> |
-    . $locale->text('Subtotal') . qq|</td>
-               <td><input name=l_soldtotal class=checkbox type=checkbox value=Y> |
-    . $locale->text('soldtotal') . qq|</td>
-               <td><input name=l_deliverydate class=checkbox type=checkbox value=Y> |
-    . $locale->text('deliverydate') . qq|</td>    
-             </tr>
-            </table>
-          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-  <tr><td colspan=4><hr size=3 noshade></td></tr>
-</table>
-
-$jsscript
-
-<input type=hidden name=nextsub value=generate_report>
-
-<input type=hidden name=login value=$form->{login}>
-<input type=hidden name=password value=$form->{password}>
-
-<input type=hidden name=revers value="$form->{revers}">
-<input type=hidden name=lastsort value="$form->{lastsort}">
-<input type=hidden name=sort value="description">
-
-<input type=hidden name=ndxs_counter value="$form->{ndxs_counter}">
-
-<br>
-<input class=submit type=submit name=action value="|
-    . $locale->text('Continue') . qq|">
-<input class=submit type=submit name=action value="|
-    . $locale->text('TOP100') . qq|">
-</form>
-
-</body>
-</html>
-|;
   $lxdebug->leave_sub();
 }    #end search()