function SwapText(show_text,hide_text,dont_hide){
	$('#'+show_text).slideDown('slow');
	if(!dont_hide) {
		$('#'+hide_text).slideUp('slow');
	}
}

function RecalculateCart(){
	var currency_symbol    = $('#currency_symbol').val();
	var currency_rate      = Number($('#currency_rate').val());
	var sub_total          = Number($('#subtotal').val());
	var insurance          = Number($('#insurance').val());
	var shipping           = Number($('#shipping').val());
	var card_surcharge     = Number($('#card_surcharge').val());
	var paypal_fixed       = Number($('#paypal_fixed').val());
	var paypal_percent     = Number($('#paypal_percent').val());

	var paypal_fixed_micro           = Number($('#paypal_fixed_micro').val());
	var paypal_percent_micro         = Number($('#paypal_percent_micro').val());
	var paypal_micro_account_maximum = Number($('#paypal_micro_account_maximum').val());

	var account_credit_fixed   = Number($('#account_credit_fixed').val());
	var account_credit_percent = Number($('#account_credit_percent').val());
	var cart_credit_fixed      = 0;
	var cart_credit_percent    = 0;
	var cart_credit            = 0;

	var cd_delivery_charge = Number($('#cd_delivery_charge').val());
	var digital_only       = $('#digital_only').val();

	var grand_total = sub_total + insurance;
	var upd_grand_total = 0;

	$('.error').slideUp('slow');
	
	// SHIPPING
	if($('input[@name=delivery_service]:checked').val() > 0){
		shipping = Number(StripCommas($('#delivery_service_postage_' + $('input[@name=delivery_service]:checked').val()).val()));
		if((currency_symbol + shipping.toFixed(2)) != $('#shipping_val').text()) {
			$('#shipping_val').slideUp('normal', function() {
				$('#shipping_val').text(currency_symbol + number_format(shipping,2));
				$('#shipping_val').slideDown('normal');
			});
		}
		$('.shipping').slideDown('normal');
		grand_total += shipping;
		upd_grand_total = 1;
	}	

	// CD DELIVERY CHARGE
	if($('input[@name=digital_delivery_type]:checked').val() == 'cd' && cd_delivery_charge > 0 ){
		$('.cd_delivery').slideDown('slow');
		grand_total += cd_delivery_charge;
	}
	else {
		$('.cd_delivery').slideUp('slow');
	}

	// APPLY PERCENTAGE DISCOUNT
	if(account_credit_percent) {
		cart_credit_percent = grand_total * (account_credit_percent / 100);
		grand_total -= cart_credit_percent;
	}
	
	// UPDATE PERCENTAGE DISCOUNT
	if($('#credit_percent_val').text() != '-' + currency_symbol + cart_credit_percent.toFixed(2)) {
		$('#credit_percent_val').slideUp('normal', function() {
			$('#credit_percent_val').text('-' + currency_symbol + number_format(cart_credit_percent,2));
			$('#credit_percent_val').slideDown('normal');
		});
	}
	
	// APPLY FIXED CREDIT
	if(account_credit_fixed) {
		if(grand_total <= account_credit_fixed) {
			cart_credit_fixed = grand_total;
			grand_total = 0;
		} else {
			cart_credit_fixed = account_credit_fixed;
			grand_total -= cart_credit_fixed;
		}
	}
	
	// UPDATE FIXED CREDIT
	if($('#credit_fixed_val').text() != '-' + currency_symbol + cart_credit_fixed.toFixed(2)) {
		$('#credit_fixed_val').slideUp('normal', function() {
			$('#credit_fixed_val').text('-' + currency_symbol + number_format(cart_credit_fixed,2));
			$('#credit_fixed_val').slideDown('normal');
		});
	}
		
	// PAYMENT OPTIONS
	if(Number(grand_total) > 0) {
		var paypal_surcharge = 0;
		//check to see if we are using paypal microaccount
		if(paypal_micro_account_maximum > 0 && grand_total < paypal_micro_account_maximum) {
			paypal_surcharge = ((grand_total + paypal_fixed_micro) / (1 - (paypal_percent_micro / 100))) - grand_total;
		} else {
			paypal_surcharge = ((grand_total + paypal_fixed) / (1 - (paypal_percent / 100))) - grand_total;
		}

		if((currency_symbol + paypal_surcharge.toFixed(2)) != $('#paypal_surcharge_val').text()) {
			$('#paypal_surcharge_val').slideUp('normal', function() {
				$('#paypal_surcharge_val').text(currency_symbol + number_format(paypal_surcharge,2));
				$('#paypal_surcharge_val').slideDown('normal');
				$('#note_paypal_surcharge').text(currency_symbol + number_format(paypal_surcharge,2));
			});
		}
		if($('input[@name=payment_type]:checked').val() != 'paypal' && digital_only == 1 && (grand_total/currency_rate) < 3) {
			if(Number(card_surcharge)>0) $('.card_surcharge').slideDown('normal');
			grand_total += card_surcharge;
		} else {
			$('.card_surcharge').slideUp('normal');
		}
		
		if($('input[@name=payment_type]:checked').val() == 'paypal' && paypal_surcharge > 0) {
			$('.paypal_surcharge').slideDown('normal');
			grand_total += paypal_surcharge;
		} else {
			$('.paypal_surcharge').slideUp('normal');
		}
		
		$('input[@name=payment_type]').each( function() { this.disabled = false } );
		$('.payment_options_left').slideDown('slow');
		$('.payment_options_right').slideDown('slow');
	} else {
		$('input[@name=payment_type]').each( function() { this.disabled = true } );
		$('.payment_options_left').slideUp('slow');
		$('.payment_options_right').slideUp('slow');
		$('.card_surcharge').slideUp('normal');
		$('.paypal_surcharge').slideUp('normal');
	}

	// GRAND TOTAL
	if($('#digital_only').val() == 1 || $('input[@name=delivery_service]:checked').val() > 0) {
		if($('#grand_total_val').text() != (currency_symbol + number_format(grand_total,2))) {
			$('#grand_total_val').slideUp('normal', function() {
					$('#grand_total_val').text(currency_symbol + number_format(grand_total,2));
					$('#grand_total_val').slideDown('normal');				
			});
		}
	}
}

// javascript equivalent of the php function
function number_format(number, num_decimals, dec_point, thousands_sep) {
	if(!num_decimals)  num_decimals  = 0;
	if(!dec_point)     dec_point     = '.';
	if(!thousands_sep) thousands_sep = ',';

	var arr = number.toString().split('.');
	var decimals = '';
	if(arr.length==2) {
		decimals = arr[1];
	}

	if(arr.length>2) {
		alert(number + ' is not a valid number!');
		return 'NaN';
	}

	var digits_in = arr[0].split('');
	var cnt = 0;
	var out_arr = Array();
	for(var i=digits_in.length-1; i>=0; i--) {
		out_arr.unshift(digits_in[i]);
		cnt++;
		if(cnt==3 && i>0) {
			out_arr.unshift(thousands_sep);
			cnt=0;
		}
	}
	
	var string_out = out_arr.join('');

	if(decimals.length > 0 && num_decimals < decimals.length) {
		decimals = ('0' + '.' + decimals) * 1;
		decimals = decimals.toFixed(num_decimals);
		string_out = string_out + dec_point + decimals.substring(2);
	}
	else if(num_decimals >= decimals.length) {
		var padding = num_decimals - decimals.length;
		for(var j=0; j<padding; j++) decimals += '0';
		string_out = string_out + dec_point + decimals;
	}
	
	return string_out;
}

function checkCardType() {
	var card_type = $('#card_type').val();
	if(card_type=='Switch' || card_type=='Solo' || card_type=='Maestro') {
		$('.switchsolo_hidden').show();
		$('.switchsolo_visible').show();
	} else {
		$('.switchsolo_hidden').hide();
		$('.switchsolo_visible').hide();
	}
}

function StripCommas(numString) {
    
    if( (typeof( numString ) == 'string') ) { // make sure we are dealing with a string
	    var re = /,/g;
    	return numString.replace(re,"");
    } else {
    	return numString;
    }
}
