

$(function(){

	var rsm_home_url = "http://www.ratesupermarket.ca/"; 

	var MAX_CARDS_TO_SHOW = 3;
	var ALL_MAXCHARACTER = 15;
	var SECTION_MAXCHARACTER = 18;
	var mortgage_api_url = rsm_home_url + "api/mortgage_request/?local_call=1&num_lenders=1&rate_type=CLOSEDVARIABLE&rate_term=5"; 
	var credit_cards_api_url = rsm_home_url + "api/credit_cards_request/?local_call=1&num_cards=1"; 	
	var savings_api_url = rsm_home_url + "api/savings_accounts_request/?local_call=1&num_accounts=1";	
	var gic_api_url = rsm_home_url + "api/gic_request/?local_call=1&num_accounts=1";	
	
	
	$("#rate_box_province").change(function(){
		
		var mortgage_rate = $("#rsm_mortgage_rate").html();
		var mortgage_rate_text = $("#rsm_mortgage_rate_details").html(); 
		
		var credit_card_rate = $("#rsm_credit_card_rate").html();
		var credit_card_details = $("#rsm_credit_card_details").html();
		
		var gic_rate_rate = $("#rsm_gic_rate_rate").html();
		var gic_rate_details = $("#rsm_gic_rate_details").html();

		var savings_accounts_rate = $("#rsm_savings_accounts_rate").html();
		var savings_accounts_details = $("#rsm_savings_accounts_details").html();
		
		
		$.getJSON(mortgage_api_url + "&province=" + $(this).val(),function(mortgage_rate_result){
			$.each(mortgage_rate_result, function(key, val) {		       
	             rate = val['rate']; 
	             $.each(rate,function(key_details,rate_details) {
	            	 var lender_name = val['lender_name'];
	            	 var rate = rate_details['interest_rate'];
	            	 var rate_type_output = rate_details['rate_type_output']; 
	            	 var rate_term_output = rate_details['rate_term_output']; 
	            	 var rate_type_output = rate_type_output.replace("Closed","");
	            	 var rate_hold = rate_details['rate_guarantee']; 
	            	 mortgage_rate = format_percentage(rate) + "%"; 
	            	 mortgage_rate_text = "<p>" + rate_term_output + " " + rate_type_output + "<br />Rate Hold: " + rate_hold + " Days <p>"; 
	             });

			});
			$("#rsm_mortgage_rate").html(mortgage_rate); 
			$("#rsm_mortgage_rate_details").html(mortgage_rate_text); 
		}); 
		
		$.getJSON(credit_cards_api_url + "&province=" + $(this).val(),function(credit_card_result){
			$.each(credit_card_result, function(key, val) {	
	             cards = val['cards']; 
	             $.each(cards,function(key_details,card_details) {
	            	 var interest_rate = format_percentage(parseFloat(card_details['interest_rate']));
	            	 var reward_return = format_percentage(parseFloat(card_details['reward_return'])*100);
	            	 var annual_fee = "No Fee"; 
	            	 if(card_details['annual_fee'] == "0.00"){
	            		 annual_fee = "No Fee";
	            	 }else{
	            		 annual_fee = formatCurrency(card_details['annual_fee']);
	            	 }
	            	 
	            	 credit_card_rate = reward_return + "%"; 
	            	 credit_card_details = "<p>Reward Return: " + reward_return + "%<br />Annual Fee: " + annual_fee + "<p>"; 
	             });

			});
			$("#rsm_credit_card_rate").html(credit_card_rate);
			$("#rsm_credit_card_details").html(credit_card_details);
		}); 

		$.getJSON(gic_api_url + "&province=" + $(this).val(),function(gic_results){
			$.each(gic_results, function(key, val) {	
	             rate = val['rate']; 
	             $.each(rate,function(key_details,rate_details) {
	            	 var interest_rate = format_percentage(rate_details['interest_rate']);
	            	 var term = Math.floor(rate_details['term']); 
	            	 var min_amount = rate_details['min_amount'];

	            	 var term_text = ""; 
	            	 if(term > 20){
	            		 term_text = term + " Days Term"; 
	            	 }else{
	            		 term_text = term + " Year Term";
	            	 }
	            	 
	            	 gic_rate_rate = interest_rate + "%"; 
	            	 gic_rate_details = "<p>" + term_text + "<br />Min. Balance: $" + min_amount + "<p>"; 
	            	 
	             });

			});
			$("#rsm_gic_rate_rate").html(gic_rate_rate);
			$("#rsm_gic_rate_details").html(gic_rate_details);
		});	
		
		
		
		$.getJSON(savings_api_url + "&province=" + $(this).val(),function(sa_results){
				$.each(sa_results, function(key, val) {	
		             rate = val['rate']; 
		             $.each(rate,function(key_details,rate_details) {
		            	 var interest_rate = format_percentage(rate_details['interest_rate']); 
		            	 var product_name = rate_details['product_name']; 		            	 
		            	 var min_balance = rate_details['min_balance']; 
		            	 
		            	 savings_accounts_rate = interest_rate + "%"; 
		            	 savings_accounts_details = "<p>" + product_name + "<br />Min. Balance: $" + min_balance + "<p>"; 
		            	 
		             });

			});
			$("#rsm_savings_accounts_rate").html(savings_accounts_rate);
			$("#rsm_savings_accounts_details").html(savings_accounts_details);
		});			
		
	}); 
	
	
    function formatCurrency(num) {
    	num = num.toString().replace(/\$|\,/g,'');
    	if(isNaN(num))
    	num = "0";
    	sign = (num == (num = Math.abs(num)));
    	num = Math.floor(num*100+0.50000000001);
    	cents = num%100;
    	num = Math.floor(num/100).toString();
    	if(cents<10)
    	cents = "0" + cents;
    	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    	num = num.substring(0,num.length-(4*i+3))+','+
    	num.substring(num.length-(4*i+3));
    	return (((sign)?'':'-') + '$' + num + '.' + cents);
    }
    
	function format_percentage(amount)
	{
		var i = parseFloat(amount);
		if(isNaN(i)) { i = 0.00; }
		var minus = '';
		if(i < 0) { minus = '-'; }
		i = Math.abs(i);
		i = parseInt((i + .005) * 100);
		i = i / 100;
		s = new String(i);
		if(s.indexOf('.') < 0) { s += '.00'; }
		if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
		s = minus + s;
		return s;
	}	
	
}); 

