/***
	Created by: Colin Kirsopp
	Needs jquery library to be loaded before this
	Needs cputils loaded before this
***/

var currentCard = {currency: 'EUR', paymentCurrency: 'GBP', fxrate: 1.0 };


// once DOM model loaded
$(document).ready(function() {

	setInitialCookies();
	
	// set action listeners
	$(".card_amount").keyup(updateSpendAmount); // add listener for spend amount change
	$(".card_spend_amount").keyup(updateBuyAmount);// add listener for buy amount change	
	$(".card_amount").blur( function(event){ // reset to 2 decimal places 
		var val = this.value;
		
		var floatVal = parseFloat(val);
		
		if(isNaN(floatVal) || floatVal < MIN_LOAD_AMOUNT[currentCard.currency]){
			val = MIN_LOAD_AMOUNT[currentCard.currency];
			var spendAmount = val / currentCard.fxrate;
			$('.card_spend_amount').val(spendAmount.toFixed(2));
			floatVal = val;
		}

		$('.card_amount').val(floatVal.toFixed(2));
	});
	
	$(".card_spend_amount").blur(function(event){

		var val = this.value;
		
		var floatVal = parseFloat(val);
		
		if(isNaN(floatVal) || (floatVal * currentCard.fxrate) < MIN_LOAD_AMOUNT[currentCard.currency]){
			val = MIN_LOAD_AMOUNT[currentCard.currency] / currentCard.fxrate;
			var buyAmount = MIN_LOAD_AMOUNT[currentCard.currency];
			$('.card_amount').val(buyAmount.toFixed(2));
			floatVal = val;
		}

		$('.card_spend_amount').val(floatVal.toFixed(2));
	});
	
	$('#i_love a').click(ilove_toggle); // reveals for the 'i love my travel cash' section

	
	$('.offer').val(getCurrentOffer());
	$('.refcode').val(getRefcode());
	
	
	$("#testimonial_banners").cycle({
		timeout       : 5000,
		pause         : true,
		cleartype     : false,
		cleartypeNoBg : false,
		random  	  : 0
	});
	
	
	// initialise form
	$('.card_amount').val(DEFAULT_LOAD_AMOUNT.toFixed(2));
	
	loadFxRate(currentCard.paymentCurrency, currentCard.currency , updateCardRate);
	loadComparisons(currentCard.paymentCurrency, currentCard.currency ,'PCD', updateChart);
});


function updateCardRate(rate){
	currentCard.fxrate = rate; 
	var spend_amount = DEFAULT_LOAD_AMOUNT / currentCard.fxrate;
	$('.card_spend_amount').val( spend_amount.toFixed(2) );
	$('.card_rate').html(currentCard.fxrate);
}

function updateChart(comparisons){
	var saving = drawChart('#card_chart', currentCard, comparisons, SHOW_SAVINGS);
	$('#total_saving').html('&pound;'+ Math.floor(saving.pounds));
}

function updateSpendAmount(){
	var from_amount, to_amount;
	
	if(this.value){
		to_amount = parseFloat(this.value.replace(/,/g, ''));
	}
	if (isNaN(to_amount) || to_amount < 0){
		return;
	}
	
	if(to_amount > MAX_LOAD_AMOUNT[currentCard.currency]){
		to_amount = MAX_LOAD_AMOUNT[currentCard.currency];
		$('.card_amount').val(to_amount.toFixed(2));
	}
	
	from_amount = to_amount / currentCard.fxrate;

	if (!from_amount || !to_amount) { return; }

	$('.card_spend_amount').val(from_amount.toFixed(2));
}

function updateBuyAmount(){
	var from_amount, to_amount;

	if(this.value){
		from_amount = parseFloat(this.value.replace(/,/g, ''));
	}
	if (isNaN(from_amount)|| from_amount < 0){
		return;
	}
		
	to_amount = from_amount * currentCard.fxrate;
	
	if(to_amount > MAX_LOAD_AMOUNT[currentCard.currency]){
		to_amount = MAX_LOAD_AMOUNT[currentCard.currency];
		from_amount = to_amount / currentCard.fxrate;
		$('.card_spend_amount').val(from_amount.toFixed(2));
	}
	if (!from_amount || !to_amount) { return; }

	$('.card_amount').val(to_amount.toFixed(2));
}


