
/******************************************************************
 *                                      START: Term deposit - apply
 */
(function($){
var processTermDeposit = function(xml){
	$(".widget-termdeposit-apply").each( function(){
		var objWidget = $(this);	
		var rateCode = objWidget.find("input[name='rateCode']").val(); 
		rateCode = rateCode.toUpperCase().replace("DYNA-", "");
		
		/**
		 * Check to see if rate is hero rate position, or rate code.
		 * - Rate positions have a number for the 4th code character (e.g. TI-1)
		 * - Codes have a character (e.g. TI-td01)
		 **/
		var rateXml;
		if(rateCode.length >= 4 && isNaN(rateCode.charAt(3)))
			rateXml = xml.find('rate[id="'+rateCode+'"]');
		else
			rateXml = xml.find('rate[posId="'+rateCode+'"]');

		if(rateXml.length == 0){
			processTermDepositError(objWidget);
			return;
		}
		rateXml = rateXml.first();

		var interest = rateXml.find('interest').text();
		if(interest == null || isNaN(interest) || interest <= 0) processTermDepositError(objWidget);
		var interestText = rateXml.find('interestText').text();
		var length = rateXml.find('term').text();
		var type = rateXml.find('label').text();
		var limits = rateXml.find('amount').text();
		var reference = rateXml.find('reference').text();

		objWidget.find('span.widget-rate')
		   		 .html(interest + '<span class="sr">% p.a.</span>');
		objWidget.find('span.widget-investment-type').html(type);
		objWidget.find('span.widget-term-length').html(length);
		objWidget.find('span.widget-term-limits').html(limits);
		objWidget.find('span.widget-interest-text').html(interestText);
		objWidget.find('input[name="termdeposref"]').val(reference);

		/* remove loader */
		objWidget.find(".ajax-loading").hide();
		objWidget.find(".show-on-ajax-load").fadeIn('slow');
	});
};

var processTermDepositError = function(objWidget){
	/* an error has occurred in ajax load, throw an error for all HL REP widgets */
	if(objWidget.selector == 'empty'){
		$(".widget-termdeposit-apply").each( function(){ 
			processTermDepositError($(this)); 
			return; 
		});
		return;
	}

	/* remove loader */
	objWidget.find(".widget-header").hide();
	objWidget.find(".widget-content").hide();
	objWidget.find(".ajax-loading").hide();
	objWidget.find(".show-on-ajax-error").fadeIn('slow');
}

/* Set up to run when rates are retrieved */
$.BNZ.feeds.heroRates.registerCallback(processTermDeposit, $('empty'), processTermDepositError);
})(jQuery);
/**
 *                                        END: Term deposit - apply
 ******************************************************************/


