
function check_coupon() {
	if ($j('#coupon_code').val() != '') {
		$j.ajax({
			type: "post",
			url: "/updatecart.php",
			dataType: "json",
			data: "c=check_coupon&couponcode="+ $j('#coupon_code').val(),
			success: function(data) {
				$j('#coupon td:first').prepend('<div class="info">'+data.html+'</div>');
				var last_td = $j('#coupon td:last');
				last_td.find('a').hide();
				last_td.append("<a href=\"#\" onclick=\"enter_coupon('"+data.domain+"'); return false;\"><img src=\"http://master.sissel.com/images/new/b_x.jpg\" alt=\"\" /></a>");
				if (data.success) {
					$j('#coupon').addClass('coupon_good');
					last_td.find('img').attr('src', 'http://master.sissel.com/images/new/b_x_good.jpg');
				}
				else {
					$j('#coupon').addClass('coupon_bad');
					last_td.find('img').attr('src', 'http://master.sissel.com/images/new/b_x_bad.jpg');
				}
				$j('#cart-tables td.coupon_code div').hide();
				$j('#coupon td.coupon_code').append('<span>'+ $j('#coupon_code').val() +'</span>');

				update_subtotals(data.subtotals);
				$j('#cart-tables #cart_total').html(data.cart_total);
			}
		});
	}
}

function enter_coupon(domain) {
	set_cookie('couponcode', '', 0, domain);
	$j('#coupon').removeClass();
	$j('#coupon .info').remove();
	var last_td = $j('#coupon td:last');
	last_td.find('a:first').show().end().find('a:last').remove();
	$j('#coupon td.coupon_code').find('span:last').remove();
	$j('#cart-tables td.coupon_code div').show();
	$j.ajax({
		type: "post",
		url: "/updatecart.php",
		dataType: "json",
		data: "c=reset_coupon",
		success: function(data) {
			update_subtotals(data.subtotals);
			$j('#cart-tables #cart_total').html(data.cart_total);
		}
	});
}

function update_quantity() {
	$j('#form_c').val('update');
	$j('#cart_form').submit();
}

function clear_cart() {
	$j('#form_c').val('clear');
	$j('#cart_form').submit();
}

function update_subtotals(subtotals) {
	var key = className = '';
	for (var x=0; x<subtotals.length; x++) {
		className = subtotals[x]['class'];
		// redo the tax lang as it includes values
		if (subtotals[x]['key'] == 'tax') {
			$j('#cart-tables .'+ className +' td.label').html(subtotals[x]['lang']);
		}
		if (subtotals[x]['value'] == 0) {
			$j('#cart-tables .'+ className).hide();
		}
		else {
			if (key != subtotals[x]['key'] || key == '' || subtotals[x]['key'] == 'tax') {
				var row = $j('#cart-tables .'+ className);
				if (row.length > 0) row.show();
				else {
					var after = '<tr class="'+ className +'"><td class="label" colspan="5">'+ subtotals[x]['lang'] +'</td><td class="value"></td><td></td></tr>';					
					if (x > 0) {
						// check all previous subtotal classes to determine where to add in the row
						var i = x;
						row = $j('#cart-tables .'+ subtotals[i--]['class']);
						while (row.length == 0 && i != -1) {
							row = $j('#cart-tables .'+ subtotals[i--]['class']);
						}
						if (row.length) row.after(after);
					}
					// can't add in after previous row, look to add before latter rows
					if (row.length == 0) {
						var i = x;
						row = $j('#cart-tables .'+ subtotals[i++]['class']);
						while (row.length == 0 && i != subtotals.length) {
							row = $j('#cart-tables .'+ subtotals[i++]['class']);
						}
						if (row.length) row.before(after);
					}
				}
				$j('#cart-tables .'+ className +' td.value').html(subtotals[x]['value']);
			}
			else {
				$j('#cart-tables .'+ className).hide();
			}
			key = subtotals[x]['key'];
		}
	}
}

function toggle_address(selector, id) {
	$j(selector).toggle();
	if ($j(selector).css('display') == 'block') {
		if ($j('#address_form_item_'+ id).length > 0) $j(selector).find('div.address_form').html($j('#address_form_item_'+ id).html());
		$j(selector).find('div.input').round_corners({options: 'all', bordercolor: '#dadada'});
		$j(selector).find('.error').removeClass('error');
		clear_message(id);
	}
}

function add_new_address(data) {
	if (data.shipping_data) $j('#shipping_address ul').find('li').removeClass('last').end().append('<li class="last">'+ data.shipping_data +'</li>');
	if (data.billing_data) $j('#billing_address ul').find('li').removeClass('last').end().append('<li class="last">'+ data.billing_data +'</li>');
	if (data.address_data) $j('#account_addresses ul').find('li').removeClass('last').end().append('<li class="last">'+ data.address_data +'</li>');

	$j('#new_address').hide().find('.address_form').find(':input').val('');
	$j('#new_address').find('.address_form').find(':checked').click();
	$j('#address_form_section').append('<div class="hidden_address_form" id="address_form_item_'+data.id+'">'+ data.address_form +'</div>');
	if (data.is_default) set_default_address(data.id);
}

function address_update_failed(data) {
	$j('#'+ data.div_id +' :input').each(function () {
		for (var x in data.errors) {
			if ($j(this).attr('name') == x) {
				$j(this).parent().prev().addClass('error');
				$j(this).parent().addClass('error');
			}
		}
	});
	$j('#'+ data.div_id).prepend('<div id="'+data.div_id+'_message" class="error_message">'+ data.html +'</div><br class="clearfix" />');
}

function show_address_message(data) {
	$j('#'+ data.div_id).hide();
	var form = $j('#'+ data.div_id).find('div.address_form');
	form.find(':text, textarea').each(function () { this.setAttribute('value', this.value); });
	form.find(':checkbox, :radio').each(function () {
		if (this.checked) this.setAttribute('checked', 'checked');
		else this.removeAttribute('checked');
	});
	form.find('option').each(function () {
		if (this.selected) this.setAttribute('selected', 'selected');
		else this.removeAttribute('selected');
	});
	$j('#address_form_item_'+ data.id).html(form.html());
	create_message_timeout(data.div_id, data.html, 'success');

	$j('div.address_list, #profile_settings').find("span.info[id$='info_"+data.id+"']").text(data.info);
	if (data.is_default) set_default_address(data.id);
}

function set_default_address(id) {
	$j('#address_form_section').find('input[name=is_default]:not(#address_form_item_'+id+' input[name=is_default])').attr('checked', '');
	$j('#address_form_section').find('.hidden_address_form :checkbox, :radio').each(function () {
		if (this.checked) this.setAttribute('checked', 'checked');
		else this.removeAttribute('checked');
	});
}

function submit_checkout() {
	var shipping_id = $j('#shipping_address input[name=shipping_id]:checked').val();
	var billing_id = $j('#billing_address input[name=billing_id]:checked').val();
	$j('#checkout_form input[name=shipping_id]').val(shipping_id);
	$j('#checkout_form input[name=billing_id]').val(billing_id);
	$j('#checkout_form').submit();
}

function previous_step(anchor, step) {
	if (step == 2) return $j(anchor).attr('href', '/viewcart.php');
	else return $j(anchor).attr('href', '/checkout.php');
}

$j(function() {
	$j('div.address_list input:radio').click(function () {
		$j(this).parents('div.address_list').find('li div').removeClass('selected');
		if ($j(this).attr('checked')) $j(this).parent().parent().addClass('selected');
	});
	$j('div.address_list input:radio:checked').parent().parent().addClass('selected');

	$j('#cart-tables td.coupon input').keypress(function (e) {
		if (e.keyCode == '13') {
			check_coupon();
			return false;
		}
	});
});

