function parseAllFloats(_selector) {
	$(_selector).find('input[type="text"]').each(function () {
		$(this).attr('value', parseFloat($(this).attr('value')).toFixed(2));
	});
}

function deNaN(_selector) {
	$(_selector).find('input[type="text"]').each(function() {
		if (isNaN(this.value)) {
			this.value = '';
		}
	});
}

//Handy dandy rounding function
function round(_number, _decimals) {
	var scalar = Math.pow(10, _decimals);
	return Math.round(_number*scalar)/scalar;
}

//Online Radius Calculator Left Side
function onlineStringerCalcL() {

	var stepsTotalBetweenLandingsL =  parseFloat($('[name="stepsTotalBetweenLandingsL"]').attr('value'));
	var risePerTreadL = parseFloat($('[name="risePerTreadL"]').attr('value'));
	var insideStringerL = parseFloat($('[name="insideStringerL"]').attr('value'));
	var outsideStringerL = parseFloat($('[name="outsideStringerL"]').attr('value'));

	var insideStringerTreadL = parseFloat($('[name="insideStringerTreadL"]').attr('value'));
	var outsideStringerTreadL = parseFloat($('[name="outsideStringerTreadL"]').attr('value'));

	var innerPitchDegrees = (180/Math.PI) * Math.atan(risePerTreadL/insideStringerTreadL);
	var outerPitchDegrees = (180/Math.PI) * Math.atan(risePerTreadL/outsideStringerTreadL);
	var innerArcLength = Math.sqrt(Math.pow(insideStringerTreadL,2) + Math.pow(risePerTreadL,2)) * stepsTotalBetweenLandingsL / 12;
	var outerArcLength = Math.sqrt(Math.pow(outsideStringerTreadL,2) + Math.pow(risePerTreadL,2)) * stepsTotalBetweenLandingsL / 12;
	var data = {
		"innerPitchDegreesMid" : round(innerPitchDegrees, 2),
		"outerPitchDegreesMid" : round(outerPitchDegrees, 2),
		"risePerTreadMid"      : round(risePerTreadL, 2),
		"insideStringerMid"    : round(insideStringerL, 2),
		"outsideStringerMid"   : round(outsideStringerL, 2),
		"innerTreadArcMid"     : round(insideStringerTreadL, 2),
		"outerTreadArcMid"     : round(outsideStringerTreadL, 2),
		"innerArcLength"       : round(innerArcLength, 2),
		"outerArcLength"       : round(outerArcLength, 2)
	}

	var getStr = '';

	var first = true;
	for (var i in data) {
		if (data.hasOwnProperty(i)) {
			$('[name="'+i+'"]').attr('value', data[i]);
			if (! first) {
				getStr += "&";
			} else {
				first = false;
			}
			getStr += escape(i) + "=" + escape(data[i]);
		}
	}

	var newUrl = $("#pdfprintlink").attr("_href") + "&" + getStr;

	$("#pdfprintlink").attr('href', newUrl);


	parseAllFloats('[name="totals"]');
	deNaN('*');

	return;
}//onlineRadiusCalculatorL

$(function() {
	$("#pdfemaillink").click(function() {
		window.location = $(this).attr("href") + "?pdf=" + encodeURIComponent($("#pdfprintlink").attr("href"));
		return false;
	});
});

//Online Radius Calculator Right Side

function onlineStringerCalcR() {
	var stepsTotalBetweenLandingsR =  parseFloat($('[name="stepsTotalBetweenLandingsR"]').attr('value'));
	var risePerTreadR = parseFloat($('[name="risePerTreadR"]').attr('value'));
	var insideStringerR = parseFloat($('[name="insideStringerR"]').attr('value'));
	var outsideStringerR = parseFloat($('[name="outsideStringerR"]').attr('value'));
	var degreesPerTreadR = parseFloat($('[name="degreesPerTreadR"]').attr('value'));

	var innerTreadArkTotal = insideStringerR * Math.PI * degreesPerTreadR/180;
	var outerTreadArkTotal = outsideStringerR * Math.PI * degreesPerTreadR/180;

	var innerPitchDegreesTotal = (180/Math.PI) * Math.atan(risePerTreadR/innerTreadArkTotal);
	var outerPitchDegreesTotal = (180/Math.PI) * Math.atan(risePerTreadR/outerTreadArkTotal);

    var innerArcLength = Math.sqrt(Math.pow(innerTreadArkTotal,2) + Math.pow(risePerTreadR,2)) * stepsTotalBetweenLandingsR / 12;
	var outerArcLength = Math.sqrt(Math.pow(outerTreadArkTotal,2) + Math.pow(risePerTreadR,2)) * stepsTotalBetweenLandingsR / 12;

	var data = {
		"innerPitchDegreesMid" : round(innerPitchDegreesTotal, 2),
		"outerPitchDegreesMid" : round(outerPitchDegreesTotal, 2),
		"risePerTreadMid"      : round(risePerTreadR, 2),
		"degreesPerTreadMid"   : round(degreesPerTreadR, 2),
		"insideStringerMid"    : round(insideStringerR, 2),
		"outsideStringerMid"   : round(outsideStringerR, 2),
		"innerTreadArcMid"     : round(innerTreadArkTotal, 2),
		"outerTreadArcMid"     : round(outerTreadArkTotal, 2),
		"innerArcLength"       : round(innerArcLength, 2),
		"outerArcLength"       : round(outerArcLength, 2)
	}

	var getStr = '';

	var first = true;
	for (var i in data) {
		if (data.hasOwnProperty(i)) {
			$('[name="'+i+'"]').attr('value', data[i]);
			if (! first) {
				getStr += "&";
			} else {
				first = false;
			}
			getStr += escape(i) + "=" + escape(data[i]);
		}
	}

	var newUrl = $("#pdfprintlink").attr("_href") + "&" + getStr;

	$("#pdfprintlink").attr('href', newUrl);


	parseAllFloats('[name="totals"]');
	deNaN('*');

	return;

}//onlineRadiusCalculatorR

//jQuery for the win.
$(function(){

	$("form#measureLForm input").mousedown(function(){
		$("form#measureRForm input").attr("disabled", true);
	});

	$("form#measureRForm input").mousedown(function(){
		$("form#measureLForm input").attr("disabled", true);
	});

	$(":reset").click(function(){
		$("input:text").val("");
		$("form#measureLForm input, form#measureRForm input").removeAttr("disabled", true);
	});
});
jQuery(function($) { $.extend({
    form: function(url, data, method) {
        if (method == null) method = 'POST';
        if (data == null) data = {};

        var form = $('<form>').attr({
            method: method,
            action: url
         }).css({
            display: 'none'
         });

        var addData = function(name, data) {
            if ($.isArray(data)) {
                for (var i = 0; i < data.length; i++) {
                    var value = data[i];
                    addData(name + '[]', value);
                }
            } else if (typeof data === 'object') {
                for (var key in data) {
                    if (data.hasOwnProperty(key)) {
                        addData(name + '[' + key + ']', data[key]);
                    }
                }
            } else if (data != null) {
                form.append($('<input>').attr({
                  type: 'hidden',
                  name: String(name),
                  value: String(data)
                }));
            }
        };

        for (var key in data) {
            if (data.hasOwnProperty(key)) {
                addData(key, data[key]);
            }
        }

        return form.appendTo('body');
    }
}); });

