[comment]
ui_component: cart
ui_component_type: content
ui_component_group: checkout
ui_component_label: Shopping cart display (full)

others_bought:
	label: Use "others who bought this" here
	widget: yesno

upsell_in_cart:
	label: Put upsell come-in under item
	widget: yesno

[/comment]

<!-- BEGIN COMPONENT [control component cart] -->

<table width="95%" cellspacing="0">
<tr>
	<td align="center">

	[calc]
		my $cname = $Config->{CookieName} || 'MV_SESSION_ID';
		$Scratch->{have_cookie} = $Tag->read_cookie($cname)
			and delete $Scratch->{tried};
		return;
	[/calc]
	[if scratch have_cookie]
	[elsif scratch tried]
    		You must have cookies set to leave the basket. Check out now or forever
    		lose your shopping cart.
	[/elsif]
	[else]
		[set tried]1[/set]
		[bounce href="[area ord/basket]"]
	[/else]
	[/if]

	<FORM ACTION="[process-target secure=1]" METHOD=POST name="basket">
    	<INPUT TYPE=hidden NAME=mv_session_id VALUE="[data session id]">
    	<INPUT TYPE=hidden NAME=mv_doit      VALUE=refresh>
    	<INPUT TYPE=hidden NAME=mv_orderpage VALUE="ord/basket">
    	<INPUT TYPE=hidden NAME=mv_checkout  VALUE="ord/checkout">
    	<INPUT TYPE=hidden NAME=mv_nextpage  VALUE=index>
    	<br>

	<table>
    	<tr>
      		<td>
        		<table cellspacing="0" cellpadding="4" border="0">
			<TR>
          			<td class="contentbar2"><b>&nbsp;Remove</b></td>
			        <td class="contentbar2" align="center"><b>SKU</b></td>
          			<td class="contentbar2"><b>Description</b></td>
          			<td class="contentbar2"><b>Quantity</b></td>
          			<td class="contentbar2" align="center"><b>Price</b></td>
          			<td class="contentbar2"><b>Extension&nbsp;</b></td>
			</TR>
			<TBODY>
	
[if items]
[then]
[item-list modular=1]

[item-change 2][condition]2[/condition]
[/item-change 2]

[item-calc]
	return if '[item-modifier mv_si]';
	delete $Scratch->{subitems[item-increment]};
	my $master = '[item-modifier mv_mi]';
#Log("Checking master item $master");
	$row_class = ++$count % 2 ?  'maincontent' : 'contentbar1';
	my $item = '[item-increment]';
	my $up = q{[item-data merchandising upsell_to]};
	my $cr = q{[item-data merchandising cross_sell]};
	$upsell_remove{'[item-code]'} = 1;
	$cross_remove{'[item-code]'} = 1;
	my %seen = ( '' => 1 );
	my @subitems;

	for my $i (@$Items) {
		next unless $i->{mv_si};
		push @subitems, $i->{code}
			if $i->{mv_mi} eq $master;
	}

	$Scratch->{subitems[item-increment]} = join " ", @subitems;

	$Scratch->{upsell} .= " $up" if $up;
	$Scratch->{cross_codes} .= " $cr" if $cr;
	my @up = split /\s+/, $Scratch->{upsell};
	my @cr = split /\s+/, $Scratch->{cross_codes};
	@up = grep  ( (!$seen{$_}++ && ! $upsell_remove{$_}), @up);
	@cr = grep  ( (!$seen{$_}++ && ! $cross_remove{$_}), @cr);
	$Scratch->{upsell} = join " ", @up;
	$Scratch->{cross_codes} = join " ", @cr;
	return;
[/item-calc]

	<TR class="[item-calc]$row_class || 'contentbar1'[/item-calc]">
		<TD align=center>
	    		<INPUT TYPE=checkbox NAME="[quantity-name]" onClick="this.form.action='[process-target]', this.form.submit()" VALUE=0>
	  	</TD>
	  	<TD><b>[item-sku]</b></TD>
	  	<td>[page [item-sku]]<b>[item-data products description]</b></A>

	[if scratch dealer]
	[if-item-data pricing sku]
	    <BR>[page quantity [item-code]]
	    QUANTITY PRICING</A>
	[/if-item-data]
	[/if]
	[if-item-field weight]
	[seti weight][summary amount=`[item-quantity] * [item-field weight]`][/seti]
	[/if-item-field]

[if type=explicit compare="[control others_bought]"]
	[if-item-data merchandising others_bought]
	[perl tables=products]
		my $hash = [item-data merchandising others_bought];
		my @ary = sort { $hash->{$b} <=> $hash->{$a} } keys %$hash;
		return '' unless @ary;
		my %in_basket;
		splice(@ary, 3);
		for(@{$Carts->{main}}) {
			$in_basket{$_->{code}} = 1;
		}
		@ary = grep ! $in_basket{$_}, @ary;
		return '' unless @ary;
		my $out = <<'EOF';
	    <TABLE>
	    <TR class="contentbar2">
              <TD>Customers who bought this item also bought:</TD>
	    </TR>
            <TR class="[item-calc]$row_class || 'contentbar1'[/item-calc]">
	      <TD>
EOF
		for(@ary) {
 			my $desc = tag_data( 'products', 'description', $_);
			$out .= <<EOF;
		<A HREF="[area $_]">$desc</A><BR>
EOF
		}
		return $out . '</TD></TR></TABLE>';
	[/perl]
	[/if-item-data]
[/if]


[if type=explicit compare="[control upsell_in_cart]"]
	[set upsell_found][/set]
	[loop list="[item-data merchandising upsell_to]"]
	[if scratch upsell_found]
	<TABLE CELLPADDING=0 CELLSPACING=0>
	<TR class="contentbar2">
		<TD class="contentbar1">
			Other items you may like:
	      	</TD>
	      	<TD class="contentbar1"></TD>
	</TR>
	<TR>
	      	<TD class="contentbar1">
		  [list]
		  [loop-calc]
		  @ary = grep $_->{code} eq q{[loop-code]}, @{$Carts->{main}};
		  return if scalar @ary;
		  $Scratch->{upsell_found} = 1;
		  return q{<A HREF="[area [loop-code]]">[loop-description]</A><BR>};
		  [/loop-calc]
		  [/list]
	      	</TD>
	</TR>
	</table>

	[/if]
	[/loop]
[/if]

	<br>

	[if-item-data options o_enable]
		[if-item-data !options o_modular]
			[table-organize cols=4 table=' ' font="size=1" pretty=1]
			[item-options td=1 label=1 bold=1 price=1]
			[/table-organize]
		[/if-item-data]
	[/if-item-data]

	  </TD>

[input-filter name="[quantity-name]" op="nullselect digits_dot"][/input-filter]

[if-item-field gift_cert]
	  <TD ALIGN=CENTER><small>Amount of gift:</small></TD>
	  <TD ALIGN=CENTER><INPUT TYPE=text NAME="[quantity-name]" VALUE="[item-quantity]" SIZE=7></TD>
	  <TD ALIGN=right>
	    [item-subtotal]
	  </TD>
[else]
	  <TD ALIGN=CENTER>
	    <INPUT TYPE=text NAME="[quantity-name]" VALUE="[item-quantity]" SIZE=3>
	  </TD>
	[if discount [item-code]]
	  <TD ALIGN=right>
	    Regular price <STRIKE>[item-price]</STRIKE>
	    <BR>
	    <B>Your price: [discount-price]<br>
	    You save: [item-difference]
	  </TD>
	  <TD ALIGN=right>
	    <strike>[item-subtotal]</strike><br>
	    <B>[item-discount-subtotal]<BR>
	    You save: [item-discount]</b>
	  </TD>
	[else]
	  <TD ALIGN=right>[item-price]</TD>
	  <TD ALIGN=right>[item-subtotal]</TD>
	[/else]
	[/if]
[/else]
[/if-item-field]
	</TR>

[if scratch subitems[item-increment]]
	[calc]
	$string = <<EOF;
[loop list="[scratch subitems[item-increment]]"][loop-description]
[/loop]
EOF
	my $modify = $Tag->area( {
		href => 'modular_modify',
		form => '
		mv_arg=[item-modifier mv_mi]
		sku=[item-code]
		',
	});

	my @lines = split /\n/, $string;
	my $half = int(scalar(@lines) / 2);
	my $first = join "<BR>", splice @lines, 0, $half;
	my $last = join "<BR>", @lines;

	return <<EOF;
<TR class="[item-calc]$row_class || 'cartalt'[/item-calc]">
  <TD COLSPAN=3 align="left">
    $first<BR>
    <A HREF="$modify">modify</A>
  </td>
  <TD COLSPAN=3 align="left">
    $last
  </td>
  <td>&nbsp;</td>
</TR>
EOF
	[/calc]
[/if]

[item-tag-address
			set="[cgi mv_an[item-modifier mv_ip]]"
			address_label=nick
			nick="[cgi mv_an[item-modifier mv_ip]]"
			if="[value separate_addresses]"
			form="
				mv_action=refresh
				edit_addresses=1
				"
			textarea=1
			widget=links]
[address]

	<TR class="[item-calc]$row_class || 'cartalt'[/item-calc]">

[if cgi edit_addresses]
	  <TD>&nbsp;</TD>
	  <TD>&nbsp;</td>
	  <TD>
	    <SMALL>
	    <INPUT TYPE=hidden NAME="[modifier-name mv_an]" VALUE="{mv_an}">
	    {textarea}
	    </SMALL>
	  </TD>
	  <TD><INPUT TYPE=submit VALUE=Save></TD>
[else]
	  <TD COLSPAN=2>
	    <SMALL>Retrieve:<BR>
	    {address_book}
	    </small>
	  </TD>
	  <TD>
	    <SMALL>
	    <PRE>{mv_ad}</PRE><INPUT TYPE=hidden NAME="[modifier-name mv_ad]" VALUE="[filter entities]{mv_ad}[/filter]">
	    </SMALL>
	  </TD>
	  <TD>&nbsp;</TD>
[/else]
[/if]
	  <TD>&nbsp;</TD>
	  <TD>&nbsp;</TD>
	</TR>
[/address]
[/item-tag-address]

[if session logged_in]
	<TR class="[item-calc]$row_class || 'cartalt'[/item-calc]">
	  <TD ALIGN="right" COLSPAN="6" valign="top">
		[if value separate_addresses]

		[page href="@@MV_PAGE@@" form="
			separate_addresses=0
			mv_action=return
		"]Same shipping address</A>&nbsp;&nbsp;&nbsp;
		[page href="@@MV_PAGE@@" form="edit_addresses=1"]<small>Edit address</small></A>&nbsp;&nbsp;&nbsp;
		[page href="ship_addresses" form="ui_return_to=@@MV_PAGE@@"]<small>Add address</small></A>
		[else]
		[page href="@@MV_PAGE@@" form="
			separate_addresses=1
			mv_action=return
		"]Separate shipping addresses</A>
		[/else]
		[/if]
	  </td>
	</TR>

[/if]

[/item-list]
[/then]
[else]

	<TR>
	  <TD ALIGN=CENTER COLSPAN=6 class="contentbar1">
	    <b>No items at the moment.</b>
	  </TD>
	</TR>

[/else]
[/if]

        </TBODY>
        </table>

      </td>
    </tr>
    </table>

    <br>

    <table border="0" width="60%">  
    <tr>
      <td>

	<table border="0" width="100%">
        <tr> 
	  <td>
	    <INPUT type="image" src="__THEME__/recalculate_button.gif" BORDER=0>
	  </td>
	  <td align="center" valign="center"> 
    		[button
     		  text="Check Out"
		  src="__THEME__/checkout_button.gif"
		  hidetext=1
		  form=basket
		  ]
			mv_todo=return
			mv_nextpage=ord/checkout
		[/button]
	  </td>
	  <td align="center">
	    [if type=explicit compare="[control continue_shopping]"]
    	      [button
		text="Continue shopping"
     		src="continue_shopping.gif"
		hidetext=1
		form=basket
	      ]
     	  		[bounce page=index]
        		mv_nextpage=nothing
    	      [/button]
	    [/if]
	  </td>
      	  <td align="Right">
            <table cellspacing="0" cellpadding="4" border="0">
            <tr> 
              <td align=right class="contentbar1">
                Shipping Weight:
              </td>
              <td class="contentbar2" align="right">[summary format="%s" total=1]</td>
            </tr>
            <tr>
              <td align="right" class="contentbar1">
                <b>Subtotal:</b>
              </td>
              <td class="contentbar2" align=right><b>[subtotal]</b></td>
            </tr>
	    </table>
	  </td>
	</tr>
	<tr>
	  <td colspan="4" align="center">
	    <br>
  [set Save Cart]
   mv_todo=return
   mv_nextpage=ord/basket
   save_cart=none
   [save_cart nickname="[value c_nickname]" recurring="[value c_recurring]"]
  [/set]

[if !scratch just_nickname]
  [seti just_nickname][tag time]%b-%d-%Y[/tag][/seti]
[/if]

[if session logged_in][then]
  [if value save_cart eq 'recurring']
    	    <FORM ACTION="[process-target]" METHOD=POST>
    	    To save this recurring order, give it a nickname, then press 'Save Cart'.<br>
    	    Nickname:
    	    <INPUT TYPE=TEXT NAME="c_nickname" SIZE=11 VALUE="[scratch just_nickname]">
    	    <input type=hidden name=mv_session_id value="[data session id]">
			<INPUT TYPE=HIDDEN NAME="c_recurring" VALUE="1">
    	    <INPUT TYPE=HIDDEN NAME="save_cart" VALUE="recurring">
    	    <INPUT TYPE=HIDDEN NAME="mv_todo" VALUE="return">
    	    <INPUT TYPE=HIDDEN NAME="mv_check" VALUE="Save Cart">
    	    <INPUT TYPE=SUBMIT VALUE="Save Cart">
    	    </FORM>
  [elsif value save_cart eq 'cart']
    	    <FORM ACTION="[process-target]" METHOD=POST>
    	    To save this cart, give it a nickname, then press 'Save Cart'.<br>
    	    Nickname:
    	    <INPUT TYPE=TEXT NAME="c_nickname" SIZE=11 VALUE="[scratch just_nickname]">
    	    <INPUT TYPE=HIDDEN NAME="c_recurring" VALUE="0">
    	    <INPUT TYPE=HIDDEN NAME="save_cart" VALUE="cart">
    	    <INPUT TYPE=HIDDEN NAME="mv_todo" VALUE="return">
    	    <INPUT TYPE=HIDDEN NAME="mv_check" VALUE="Save Cart">
			<input type=hidden name=mv_session_id vlaue="[data session id]">
    	    <INPUT TYPE=SUBMIT VALUE="Save Cart">
	    </FORM>
  [/elsif]
  [else]
      [button
          text="Save This Cart"
          src="__THEME__/savecart.gif"
          extra="class=contentbar2"
          hidetext=1
          form=basket
          mv_check="Save This Cart"
      ]
          mv_todo=return
          mv_nextpage=ord/basket
          save_cart=cart
      [/button]
      [button
          text="Set As Recurring Order"
          src="__THEME__/saverecur.gif"
          extra="class=contentbar2"
          hidetext=1
          form=basket
          mv_check="Set As Recurring Order"
      ]
          [set save_cart]recurring[/set]
          mv_todo=return
          mv_nextpage=ord/basket
          save_cart=recurring
      [/button]
  [/else]
  [/if]
[/then][/if]
						
	  </td>					
        </tr>
        </table>

      </td>
    </tr>
    </TABLE>
    </FORM>

  </td>
</tr>
</table>

<!-- END COMPONENT [control component cart] -->
