/***
	Created by: Colin Kirsopp
	Needs jquery library to be loaded before this
	Needs cputils loaded before this
***/

var dummyCard = {currency: 'EUR', paymentCurrency: 'GBP', fxrate: 1.0 };

// once DOM model loaded
$(document).ready(function() {
	
	setInitialCookies();
	
	
	// initialise values
	$('.card_spend_amount').val(MIN_CASH_LOAD_AMOUNT.toFixed(2)); 
	$('#cashcurrency').val('EUR'); 
	

	// fetch exchange rates
	
	var count = 0;
	var destCurrencies = new Array();
	for(i in CURRENCIES){
		destCurrencies[count++] = i;
	}
	
   	loadMultipleCurrencyRates('GBP',destCurrencies, updateCashRates);

	// 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 currencyAmount = this.value;
		
		var floatVal = parseFloat(currencyAmount);
		
		var currency = $('.cashcurrency_select').val();	// set currency
	    var fxrate = CURRENCIES[currency].fxrate;
		
		if(isNaN(floatVal) || floatVal / fxrate  < MIN_CASH_LOAD_AMOUNT){
			currencyAmount = MIN_CASH_LOAD_AMOUNT * fxrate ;
			var poundAmount =MIN_CASH_LOAD_AMOUNT;
			$('.card_spend_amount').val(poundAmount.toFixed(2));
			floatVal = currencyAmount;
		}

		$('.card_amount').val(floatVal.toFixed(2));
	});
	
	$(".card_spend_amount").blur(function(event){ // reset to 2 decimal places 
		var poundAmount = this.value;
		
		var floatVal = parseFloat(poundAmount);
		
		if(isNaN(floatVal) || floatVal < MIN_CASH_LOAD_AMOUNT){
			var currency = $('.cashcurrency_select').val();	// set currency
		    var fxrate = CURRENCIES[currency].fxrate;		
			currencyAmount = MIN_CASH_LOAD_AMOUNT * fxrate ;
			var poundAmount = MIN_CASH_LOAD_AMOUNT;
			$('.card_amount').val(currencyAmount.toFixed(2));
			floatVal = poundAmount;
		}

		$('.card_spend_amount').val(floatVal.toFixed(2));
	});
	
	$(".alb-textbox").keyup(updateIndividualBuyAmount); // add listener for spend amount change
	$(".alb-textbox").blur( function(event){ // reset to 2 decimal places 

		var poundAmount = this.value;
		
		var floatVal = parseFloat(poundAmount);
		
		if(isNaN(floatVal) || floatVal < MIN_CASH_LOAD_AMOUNT){
			var $target = $(event.target);
			var idtag = $target.attr('id');
		  	var currency = idtag.substring(0,3);
	
			var fxrate = CURRENCIES[currency].fxrate;		
			var poundAmount = MIN_CASH_LOAD_AMOUNT;
			var currencyAmount = MIN_CASH_LOAD_AMOUNT * fxrate ;
			$('#'+currency+'_buys').html(CURRENCIES[currency].symbol+currencyAmount.toFixed(2));
			floatVal = poundAmount;
		}

		$(event.target).val(floatVal.toFixed(2));
	});

	$('.cashcurrency_select').change(changeCurrency); // add listener for change - currency select

	$('#tr_EUR a').click(function(){ clickOrderButton('EUR'); });
	$('#tr_USD a').click(function(){ clickOrderButton('USD'); });
	$('#tr_AUD a').click(function(){ clickOrderButton('AUD'); });
	$('#tr_CAD a').click(function(){ clickOrderButton('CAD'); });
	$('#tr_CZK a').click(function(){ clickOrderButton('CZK'); });
	$('#tr_DKK a').click(function(){ clickOrderButton('DKK'); });
	$('#tr_HKD a').click(function(){ clickOrderButton('HKD'); });
	$('#tr_HUF a').click(function(){ clickOrderButton('HUF'); });
	$('#tr_JPY a').click(function(){ clickOrderButton('JPY'); });
	$('#tr_MYR a').click(function(){ clickOrderButton('MYR'); });
	$('#tr_NZD a').click(function(){ clickOrderButton('NZD'); });
	$('#tr_NOK a').click(function(){ clickOrderButton('NOK'); });
	$('#tr_PLN a').click(function(){ clickOrderButton('PLN'); });	
	$('#tr_SGD a').click(function(){ clickOrderButton('SGD'); });
	$('#tr_ZAR a').click(function(){ clickOrderButton('ZAR'); });
	$('#tr_SEK a').click(function(){ clickOrderButton('SEK'); });
	$('#tr_CHF a').click(function(){ clickOrderButton('CHF'); });
	$('#tr_THB a').click(function(){ clickOrderButton('THB'); });
	$('#tr_TRY a').click(function(){ clickOrderButton('TRY'); });
	$('#tr_AED a').click(function(){ clickOrderButton('AED'); });
	
	
	$('.offer').val(getCurrentOffer());
	$('.refcode').val(getRefcode());
	
	$("#testimonial_banners").cycle({
		timeout       : 5000,
		pause         : true,
		cleartype     : false,
		cleartypeNoBg : false,
		random  	  : 0
	});
	
	$('#i_love a').click(ilove_toggle); // reveals for the 'i love my travel cash' section


});

function updateCashRates(rates){
	for (aRate in rates){
		var toCurrency = rates[aRate].toCurrency;
		var currency = CURRENCIES[toCurrency];
		if(currency){
			currency.fxrate = rates[aRate].rate;
			$('#tr_'+toCurrency+' .rate').html(currency.symbol+' ' +currency.fxrate ); 
			var to_amount = 100 * currency.fxrate;
			$('#'+toCurrency+'_buys').html(currency.symbol+to_amount.toFixed(2));
			
			if(toCurrency == 'EUR'){
				changeCurrency();
			}
		}
	}
}


function changeCurrency(){
	var currency = null;	

	if(this.value){
		currency = this.value;
	}else {
		//assume currency to be Euro
		currency = 'EUR';
		
	}
	
	
	$('.cashcurrency_select').val(currency);
	$('.currency_symb').html(CURRENCIES[currency].symbol); // update currency symbols
	$('.card_rate').html(CURRENCIES[currency].fxrate);
	updateBuyAmount();
}


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;
	}

	var currency = $('.cashcurrency_select').val();	// set currency
	var fxrate = CURRENCIES[currency].fxrate;
	
	from_amount = to_amount / fxrate;
	
	if(from_amount > MAX_CASH_LOAD_AMOUNT){
		from_amount = MAX_CASH_LOAD_AMOUNT;
		to_amount = from_amount * fxrate; 
		$('.card_amount').val(to_amount.toFixed(2));
	}
	

	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, ''));
	}else {
		from_amount = $('.card_spend_amount').val();
	}

	if (isNaN(from_amount)|| from_amount < 0){
		return;
	}

	var currency = $('.cashcurrency_select').val();	// set currency
	var fxrate = CURRENCIES[currency].fxrate;
	
	if(from_amount > MAX_CASH_LOAD_AMOUNT){
		from_amount = MAX_CASH_LOAD_AMOUNT;
		$('.card_spend_amount').val(from_amount.toFixed(2));
	}

	to_amount = from_amount * fxrate;
	
	if (!from_amount || !to_amount) { return; }
	$('.card_amount').val(to_amount.toFixed(2));
}


function updateIndividualBuyAmount(event){
  	var $target = $(event.target);
	var from_amount = $target.val();
	
	if (isNaN(from_amount)|| from_amount < 0){
		return;
	}
	
	if(from_amount > MAX_CASH_LOAD_AMOUNT){
		from_amount = MAX_CASH_LOAD_AMOUNT;
		$target.val(from_amount.toFixed(2));
	}

  	var idtag = $target.attr('id');
  	var currency = idtag.substring(0,3);
	var fxrate = CURRENCIES[currency].fxrate;
	
	var to_amount = from_amount * fxrate;

	$('#'+currency+'_buys').html(CURRENCIES[currency].symbol+to_amount.toFixed(2));
}

function clickOrderButton(currency){

	$('#toCurrencyInput').val(currency);
	var buyAmount = $('#'+currency+'_input').val();
	$('#buyAmountInput').val(buyAmount * CURRENCIES[currency].fxrate);
	$('#cash_order_form').submit();  	
	  	
}


