/**
* JavaScript for mod_cart.php
*
* @package Site
* @subpackage Templates
* @author Pavel "Papi" Jartsev <papi@digitalfruit.ee>
*/

function copyFields( checkbox )
{
	var f = checkbox.form;
	var names = [ 'name', 'company', 'street', 'city', 'state', 'zip', 'country' ];

	names.each( function( i ) {
		if ( f.elements['s_'+i] ) {
			if ( f.elements['b_'+i].tagName.toLowerCase() == 'select' )
				f.elements['s_'+i].selectedIndex = ( checkbox.checked ? f.elements['b_'+i].selectedIndex : 0 );
			else
				f.elements['s_'+i].value = ( checkbox.checked ? f.elements['b_'+i].value : '' );
		}
	});
}

function toggleButtons( state )
{
	switch ( state ) {
		case 1:
			$('button-checkout').hide();
			$('button-change').show();
			break;
		case 2:
			$('button-change').hide();
			$('button-checkout').show();
			break;
	}
}

function updateCart( prod_id )
{
	if ( prod_id ) {
		$(CART_FORM).elements['qty[' + prod_id + ']'].value = 0;
	}
		
	$(CART_FORM).request({
		method: 'post',
		parameters: {
			'task': 'update'
		},
		onSuccess: function( transport ) {
			toggleButtons(2);
			
			var json = transport.responseJSON;
			$('cart-items').update( json.cart_items );
			if ( json.cart_items > 0 ) {
			
				// remove product rows
				if ( typeof json.remove == 'object' ) {
					json.remove.each( function( i ){
						var tr = $('cost'+i).up('tr');
						Element.remove( tr );
					});
					
					// correct even/odd CSS-class for product table rows
					var table = $('products');
					var row_class = 'edata';
					for ( var r = 1, r_length = table.rows.length; r < r_length; ++r ) {
						var cells = table.rows[r].cells;
						for ( var c = 0, c_length = cells.length; c < c_length; ++c ) {
							var cell = cells[c];
							Element.extend( cell );
							cell.removeClassName( 'edata' );
							cell.removeClassName( 'odata' );
							cell.addClassName( row_class );
						}
						row_class = row_class == 'edata' ? 'odata' : 'edata';
					}
				}
				
				// update product costs
				if ( typeof json.cost == 'object' ) {
					for ( var i in json.cost ) {
						$('cost'+i).update( json.cost[i] );
					}
				}
				
				$('order-totals').update( json.order_totals );
				
			// cart is empty
			} else {
				$('article').update( '<p>' + I18N.empty_cart + '</p>' );
			}
		}
	});
}