$(document).ready(function (argument) {
	/*
	* Slider Initialization
	**/

	var $enclosureSizeFields = $('#afc-enclosure-size');
	var $electrodeConfFields = $('#afc-electrode-conf');
	var $electrodeConfig = $('#afc-electrode-conf input[type=radio][name=electrode_config]');
	var versionSelected = $('.arc-flash-calculator input[type=radio][name=version]:checked').val();

	// Slider Elements
	var bfSlider = document.getElementById('bolted-fault-slider');
	var ttSlider = document.getElementById('trip-time-slider');
	var wdSlider = document.getElementById('working-distance-slider');
	var svSlider = document.getElementById('system-voltage-slider');
    var ehSlider = document.getElementById('enclosure-height-slider');
    var ewSlider = document.getElementById('enclosure-width-slider');
    var edSlider = document.getElementById('enclosure-depth-slider');

    $('#bus_type').change(function () {
		var val = $(this).val();
		if (val == "Open Air Bus") {
			$('#voa_input').prop("checked", true);
        }
        else {
            $('#vcb_input').prop("checked", true);
		}

		electrodeConfigFields(val);
	});

	function electrodeConfigFields(val) {
		if (val == "Open Air Bus") {
            $('#vcb_span').hide();
            $('#vcbb_span').hide();
            $('#hcb_span').hide();
            $('#voa_span').show();
			$('#hoa_span').show();
        }
        else {
            $('#vcb_span').show();
            $('#vcbb_span').show();
            $('#hcb_span').show();
            $('#voa_span').hide();
            $('#hoa_span').hide();
		}

		checkFields(val, 'equipment');
	}
	electrodeConfigFields($('#bus_type option:selected').val());

	// version
	$('.arc-flash-calculator input[type=radio][name=version]').change(function() {
		versionSelected = this.value;
		checkFields(this.value, 'version');
		var eqSelected = $('#bus_type_chosen > a > span').text();
		checkFields(eqSelected, 'equipment');
	});

	checkFields(versionSelected, 'version');

	function disableEnclosureFields() {
		$enclosureSizeFields.addClass('conf-disabled');
		ehSlider.setAttribute('disabled', true);
		ewSlider.setAttribute('disabled', true);
		edSlider.setAttribute('disabled', true);
	}

	function enableEnclosureFields() {
		$enclosureSizeFields.removeClass('conf-disabled');
		ehSlider.removeAttribute('disabled');
		ewSlider.removeAttribute('disabled');
		edSlider.removeAttribute('disabled');
	}

	function checkFields(value, field) {
		if (field === 'version') {
			if (value == 'IEEE_1584_2002') {
				$electrodeConfFields.addClass('conf-disabled');
				$electrodeConfig.attr('disabled', true);
				// $electrodeConfig.attr('checked', false);
				disableEnclosureFields();
			}
			else if (value == 'IEEE_1584_2018') {
				$electrodeConfFields.removeClass('conf-disabled');
				$electrodeConfig.attr('disabled', false);
				enableEnclosureFields();
			}
		}

		if (field === 'equipment') {
			if (value === 'Open Air Bus') {disableEnclosureFields();} else {
				if (versionSelected === 'IEEE_1584_2018') {enableEnclosureFields();}
			}
		}
	}

	// Slide Hidden Inputs
	var $bfInput = $('#bolted-fault-input');
	var $ttInput = $('#trip-time-input');
	var $wdInput = $('#working-distance-input');
	var $svInput = $('#system-voltage-input');
    var $ehInput = $('#enclosure-height-input');
    var $ewInput = $('#enclosure-width-input');
    var $edInput = $('#enclosure-depth-input');

	// Slider Values
	var bf_value = ['10','25','42','65'];
	var tt_value = ['0.01','0.05','0.19','0.33','0.5','1.0','2.0'];
	var wd_value = ['18','24','36'];
	var sv_value = ['0.208','0.48','12.47','13.8'];
    var eh_value = ['14','20','26','36','45'];
    var ew_value = ['12','20','26','30','36'];
    var ed_value = ['8','12','20','26','30','36', '45'];

	// Slider Default Value Indexes
	var bf_index = $.inArray($bfInput.val(), bf_value);
	var tt_index = $.inArray($ttInput.val(), tt_value);
	var wd_index = $.inArray($wdInput.val(), wd_value);
	var sv_index = $.inArray($svInput.val(), sv_value);
    var eh_index = $.inArray($ehInput.val(), eh_value);
    var ew_index = $.inArray($ewInput.val(), ew_value);
    var ed_index = $.inArray($edInput.val(), ed_value);

	// Other Info For Sliders
	function tt_info(tt_val) {
		switch (tt_val)
		{
			case '0.01':
				return "Fuse Instantaneous";
				break;
			case '0.05':
				return "Typical Instantaneous Trip";
				break;
			case '0.19':
				return "Typical SST Short-Time MIN";
				break;
			case '0.33':
				return "Typical SST Short-Time INT";
				break;
			case '0.5':
				return "Typical SST Short-Time MAX";
				break;
			case '1.0':
				return "Long-Time Pickup";
				break;
			case '2.0':
				return "Long-Time Pickup";
				break;
			default: return "";
		}
	}

	// Slider Creations
	noUiSlider.create(bfSlider, {
		start: bf_index,
		step: 1,
		format: {
			to: function ( value ) {
				return parseInt(value, 10);
			},
			from: function ( value ) {
				return value.replace(',-', '');
			}
		},
		range: {
			'min': 0,
			'max': 3
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
	});

	noUiSlider.create(ttSlider, {
		start: tt_index,
		step: 1,
		format: {
			to: function ( value ) {
				return parseInt(value, 10);
			},
			from: function ( value ) {
				return value.replace(',-', '');
			}
		},
		range: {
			'min': 0,
			'max': 6
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
	});

	noUiSlider.create(wdSlider, {
		start: wd_index,
		step: 1,
		format: {
			to: function ( value ) {
				return parseInt(value, 10);
			},
			from: function ( value ) {
				return value.replace(',-', '');
			}
		},
		range: {
			'min': 0,
			'max': 2
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
	});

	noUiSlider.create(svSlider, {
		start: sv_index,
		step: 1,
		format: {
			to: function ( value ) {
				return parseInt(value, 10);
			},
			from: function ( value ) {
				return value.replace(',-', '');
			}
		},
		range: {
			'min': 0,
			'max': 3
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
	});

    noUiSlider.create(ehSlider, {
        start: eh_index,
        step: 1,
        format: {
            to: function (value) {
                return parseInt(value, 10);
            },
            from: function (value) {
                return value.replace(',-', '');
            }
        },
        range: {
            'min': 0,
            'max': 3
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
    });

    noUiSlider.create(ewSlider, {
        start: ew_index,
        step: 1,
        format: {
            to: function (value) {
                return parseInt(value, 10);
            },
            from: function (value) {
                return value.replace(',-', '');
            }
        },
        range: {
            'min': 0,
            'max': 4
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
    });

    noUiSlider.create(edSlider, {
        start: ed_index,
        step: 1,
        format: {
            to: function (value) {
                return parseInt(value, 10);
            },
            from: function (value) {
                return value.replace(',-', '');
            }
        },
        range: {
            'min': 0,
            'max': 6
		},
		pips: {
			mode: 'steps',
			stepped: true,
			density: 4
		}
    });

	// Slide Value Updates
	bfSlider.noUiSlider.on('update', function( values, handle ) {
		$('#bolted-fault-value').text(bf_value[values[handle]]);
		$bfInput.val(bf_value[values[handle]]);
	});

	ttSlider.noUiSlider.on('update', function( values, handle ) {
		$('#trip-time-value').text(tt_value[values[handle]]);
		$('#trip-cycle-value').text(tt_value[values[handle]]*60);
		$ttInput.val(tt_value[values[handle]]);
		$('#trip-time-info').html(tt_info(tt_value[values[handle]]));
	});

	wdSlider.noUiSlider.on('update', function( values, handle ) {
		$('#working-distance-value').text(wd_value[values[handle]]);
		$wdInput.val(wd_value[values[handle]]);
	});

	svSlider.noUiSlider.on('update', function( values, handle ) {
		$('#system-voltage-value').text(sv_value[values[handle]]);
		$svInput.val(sv_value[values[handle]]);
	});

    ehSlider.noUiSlider.on('update', function (values, handle) {
        $('#enclosure-height-value').text(eh_value[values[handle]]);
        $ehInput.val(eh_value[values[handle]]);
    });

    ewSlider.noUiSlider.on('update', function (values, handle) {
        $('#enclosure-width-value').text(ew_value[values[handle]]);
        $ewInput.val(ew_value[values[handle]]);
    });

    edSlider.noUiSlider.on('update', function (values, handle) {
        $('#enclosure-depth-value').text(ed_value[values[handle]]);
        $edInput.val(ed_value[values[handle]]);
	});

	$('[data-toggle="tooltip"]').tooltip();

	setTimeout(function(){$('select').chosen({'disable_search': true})}, 0);


	//Modal Newsletter Form
	var acfSelected = $('.arc-flash-calculator input[type=radio][name=version]:checked').val();

	var afcModal = {
		showModal: false,
		limit: localStorage.getItem('calculate_limit'),
		init: function() {
			this.cacheDom();
			this.bindEvents();

			pfah.init();
		},
		cacheDom: function() {
			this.$body = $('body');
			this.$modal = $('#acf-modal');
			this.$form = this.$modal.find('#mkto_1108');
			this.$submit = this.$form.find('button[type="submit"]');

			this.$acfForm = $('#acf-form');
			this.$acfVersion = $('.arc-flash-calculator input[type=radio][name=version]');
			this.$acfFormSubmit = this.$acfForm.find('input[type="submit"]');
		},
		bindEvents: function() {
			// this.$form.on('submit', this.handleSubmit.bind(this))
			this.$submit.on('click', this.handleSubmit.bind(this))
			// this.$acfForm.on('submit', this.handleACFFormSubmit.bind(this))
			this.$acfFormSubmit.on('click', this.handleACFFormSubmit.bind(this))

			this.$acfVersion.on('change', function(e) {
				console.log('VERSION ON CHANGE', this.value);
				acfSelected = this.value;
			});

			this.$body.on('pfah.callback', this.pfahCallback.bind(this))

		},
		show: function() {this.$modal.modal('show')},
		hide: function() {this.$modal.modal('hide')},
		handleSubmit: function(e) {
			e.preventDefault();

			this.$form.submit();
		},
		handleACFFormSubmit: function(e) {
			e.preventDefault();

			if (acfSelected === 'IEEE_1584_2018') {this.validateSubmit()} else {this.$acfForm.submit();}
		},
		validateSubmit: function() {
			this.showModal = true;
			var subm = localStorage.getItem('submissions') || 0;
			var registered = localStorage.getItem('acf_newsletter_form_submitted') || false;

			subm++;

			localStorage.setItem('submissions', subm);

			if (registered) {
				this.$acfForm.submit();

				ga('send', 'event', {
					'eventCategory': 'AFC',
					'eventAction': 'Click',
					'eventLabel': 'Calculator Submission'
				});
			} else {
				if (subm >= this.limit) {
					this.show();

					ga('send', 'event', {
						'eventCategory': 'AFC',
						'eventAction': 'Click',
						'eventLabel': 'Calculator Submission'
					});

				} else {
					this.$acfForm.submit();

					ga('send', 'event', {
						'eventCategory': 'AFC',
						'eventAction': 'Calculation #' + subm,
						'eventLabel': 'Calculator Submission'
					});
				}
			}
		},
		pfahCallback: function (e, id, result) {
			console.log('e', e);
			console.log('id', id);
			console.log('result', result);

			if (result === 'done') {
				console.log('Newsletter submitted');
				ga('send', 'event', {
					'eventCategory': 'AFC',
					'eventAction': 'Click',
					'eventLabel': 'Signup Submission'
				});
				localStorage.setItem('acf_newsletter_form_submitted', true);
				this.$acfForm.submit();
			}
		}
	}
	afcModal.init();

});