/**
 * finance.js
 * ---------
 * Financing slider math + animation
 * 
*/


// Toggles the Apply Now button based on whether
// merchants accept debit and credit cards 
function debit_credit_toggle() {
	
	var applyButton = $('.slider-form input[type="submit"]');
	var section = $('.fat-radio-buttons');
	var form = section.parent().find('form');
	
	form.hide();
	form.find('.submit-button').hide();
	form.find('.shadow-arrow').hide();
	
	// Toggle active styles
	section.find('label').mousedown(function() {
		section.find('label').removeClass('active');
		$(this).addClass('active');
	});

	// Click "Yes"
	section.find('label.first').click(function() {
		// $('#apply-now-button').removeClass('disabled').removeAttr('disabled');
		applyButton.removeAttr('disabled').removeClass('disabled');
		// form.find('.submit-button').fadeIn(200);
		form.slideDown('500', function () {
			form.find('.shadow-arrow').fadeIn(400, function () {
				form.find('.submit-button').fadeIn(800);
			});
		});
		
		
	});
	
	// Click "No"
	section.find('label.last').click(function() {
		applyButton.attr('disabled', 'disabled').addClass('disabled');
		form.find('.submit-button').fadeOut(200);
		form.find('.shadow-arrow').fadeOut(200);
		form.slideUp('500');
	});	
	
}




// Slider # 1
function current_sales_slider() {
	
	// $(selector).slider({
	$('#slider1').slider({
		range: 'min',
		value: 110000,
		min: 5000,
		max: 200000,
		step: 1000,
		animate: 500,
		slide: function(event, ui) {
			
			// Grab starting values
			var sales = ui.value;
			var financing = $('#slider2').slider('option', 'value');

			var maxFinancing = sales * 1.25;
			if (maxFinancing >= 110000) {
				maxFinancing = 110000;
			}
			
			var currentMaxFinancing = $('#slider2').slider('option', 'max');
			
			// var y = $('#max-financing').text();
			if (financing > maxFinancing) {
				$('#slider2').slider('option', 'value', maxFinancing);
				$('#slider2').slider('option', 'max', maxFinancing);
				// alert("Financing is greater than max allowed");
			} else {
				// $('#slider2').slider('option', 'max', maxFinancing);
			}
			
			// Update the display values
			$('#rate1').text(ui.value);
			$('#rate2').text(financing);
			$('#max-financing').text(maxFinancing);
			
			update_payback_price();

		},
		stop: function(event, ui) {

		}
	});
}


// Slider # 2
function financing_slider() {
	
	// var financeMax = $('#max-financing').text();
	
	$('#slider2').slider({
		range: 'min',
		value: 32000,
		min: 5000,
		// max: financeMax,
		max: 110000,
		step: 50,
		animate: 500,
		slide: function(event, ui) {
			var sales = $('#slider1').slider('option', 'value');
			var financing = ui.value;
			
			$('#rate2').text(ui.value);
			// update_payback_price(sales, financing);
			update_payback_price();
		}
	});
}


function group_number(number) {

	var string = number.toString();
	var formattedString = '';
	if(string.length > 3) {
		formattedString = string.substr(0, string.length - 3)+','+string.substr(string.length-3);
	}
	return formattedString;
}


function group(n) {

	var s = n.toString();
	var st = '';
	if(s.length > 3) {
		st = s.substr(0,s.length-3)+","+s.substr(s.length-3);
	}
	return st;
}

function exists(selector) {
	if ( $(selector).length > 0 ) {
		return true;
	}
	return false;
}




// Show debit/credit info tooltip 
function tooltip_alert() {
	// Hide tooltip using opacity
	$('.tooltip-closer').click(function() {
		$(this).parent().find('.tooltip').fadeTo('slow', 0);
		$('.tooltip').fadeTo('fast', 0);
	});
	
	// Show tooltip using opacity
	$('.tooltip-trigger').click(function() {
		$('.tooltip').fadeTo('fast', 1);
	});
}




// Price per debit/credit transaction
function update_payback_price(sales, financing) {
	
	if (!sales) {
	sales = $('#current-sales .slider').slider('option', 'value');
}
	if (!financing) {
	financing = $('#financing-wanted .slider').slider('option', 'value');
}
	var x = 5000; // Multiplier

	if (sales > 10000 && sales <= 20000) {
		x = 6667;
	} else if (sales > 20000 && sales <= 35000) {
		x = 8750;
	} else if (sales > 35000 && sales <= 50000) {
		x = 10000;
	} else if (sales > 50000 && sales <= 80000) {
		x = 10667;
	} else if (sales > 80000 && sales <= 100000) {
		x = 11111;
	} else if (sales > 100000) {
		x = 16000;
	}
	
	// Calculate price
	var price = (financing * 1.45) / x;
	price = Math.round(price*100) / 100;
	$('#price').text('$'+price);
	return price;
}




// On page load
$(function() {
	
	debit_credit_toggle();

	if (exists('#apply-now .variant-3')) {
		$('#apply-now .variant-3 .apply-form').validate();
	}
	
	tooltip_alert();

	// Financing sliders
	$('#current-sales .slider').slider({
		range: 'min',
		value: 110000,
		min: 5000,
		max: 200000,
		step: 1000,
		animate: 500,
		create: function(event, ui) {
			var min = $(this).slider('option', 'min');
			var max = $(this).slider('option', 'max');
			var value = $(this).slider('option', 'value');
			
			var salesParent = $(this).parents('ul.slider-calc');
			
			salesParent.find('.min').text('$'+group_number(min));
			salesParent.find('.max').text('$'+group_number(max));
			salesParent.find('.value').text('$'+group_number(value));
			$('#Website_Monthly_Volume__c').val(value); // Hidden field
		},
		slide: function(event, ui) {
			// Update slider value
			var sliderParent = $(this).parents('ul.slider-calc');
			sliderParent.find('.value').text('$'+group_number(ui.value));
			$('#Website_Monthly_Volume__c').val(ui.value); // Hidden field
			
			var min = $(this).slider('option', 'min');
			var max = $(this).slider('option', 'max');
			var salesValue = ui.value;

			// Update max financing allowed			
			var maxFinancing = salesValue * 1.25;
			if (maxFinancing > 110000) {
				maxFinancing = 110000;
			}
			$('#financing-wanted .slider').slider('option', 'max', maxFinancing);
			$('#financing-wanted').find('.max').text('$'+group_number(maxFinancing));

			// Grab new max and value of financing slider
			var financeMax = $('#financing-wanted').find('.slider').slider('option', 'max');
			var financeValue = $('#financing-wanted').find('.slider').slider('option', 'value');

			// Update the price using the value of the max 
			// instead if value is greater
			if (financeValue > financeMax) {
				$('#financing-wanted').find('.value').text('$'+group_number(financeMax));
				update_payback_price(ui.value, financeMax);
			} else {
				update_payback_price();
			}
		}
	});
	
	$('#financing-wanted .slider').slider({
		range: 'min',
		value: 32000,
		min: 5000,
		max: 110000,
		step: 50,
		animate: 500,
		create: function(event, ui) {
			var min = $(this).slider('option', 'min');
			var max = $(this).slider('option', 'max');
			var value = $(this).slider('option', 'value');
			
			var sliderParent = $(this).parents('ul.slider-calc');
			
			sliderParent.find('.min').text('$'+group_number(min));
			sliderParent.find('.max').text('$'+group_number(max));
			sliderParent.find('.value').text('$'+group_number(value));
			$('#Website_Advance_Size__c').val(value); // Hidden field
		},
		slide: function(event, ui) {
			var sliderParent = $(this).parents('ul.slider-calc');
			sliderParent.find('.value').text('$'+group_number(ui.value));			
			$('#Website_Advance_Size__c').val(ui.value); // Hidden field
			
			update_payback_price();
		}
	});
	
	// Initialize the payback price value
	update_payback_price();
	
});
