﻿/*------------------------------------------------------------------------------------------
 * Name:         FormatNumber
 * Description:  Function to format a number for a control.
 * Parameters:   
 ------------------------------------------------------------------------------------------*/
function FormatNumber(controlId, _decimalPlaces) {
	if (document.getElementById(controlId)) {
		var ctrlValue = document.getElementById(controlId).value;
		if (ctrlValue.length > 0) {
			if (!isNaN(ctrlValue)) {
				ctrlValue = parseFloat(ctrlValue);
				document.getElementById(controlId).value = ctrlValue.toFixed(_decimalPlaces);
			}
		}
	}
}

var _decimalPlaces = 2;
var _quantityEmpty = "-";

function CalculateSingle(unitPrice, quantityControl, subTotalControlId, parentControlId, paymentTotalControlId) {
	if (document.getElementById(subTotalControlId)) {
		var subTotalControl = document.getElementById(subTotalControlId);
		var subTotalValue = _quantityEmpty;
		subTotalControl.value = subTotalValue;
		
		if (!(quantityControl.value == "" || quantityControl.value == _quantityEmpty || quantityControl.value == "0")) {
			var reg = new RegExp("^[-]|[0-9]*$", "g");
			if (reg.test(quantityControl.value) && !isNaN(quantityControl.value)) {
				subTotalValue = unitPrice;
				
				quantityControl.value = '1';
			}
      }
      
      if(subTotalValue != _quantityEmpty) {
			subTotalControl.value = subTotalValue.toFixed(_decimalPlaces);
		}	   	   
	}
	CalculatePaymentTotal(parentControlId, paymentTotalControlId);
}

function CalculateSubtotal(unitPrice, quantityControl, subTotalControlId, parentControlId, paymentTotalControlId) {
	if (document.getElementById(subTotalControlId)) {
		var subTotalControl = document.getElementById(subTotalControlId);
		var subTotalValue = _quantityEmpty;
		subTotalControl.value = subTotalValue;
		if (!(quantityControl.value == "" || quantityControl.value == _quantityEmpty || quantityControl.value == "0")) {
		    var reg = new RegExp("^[-]|[0-9]*$", "g");
            if (reg.test(quantityControl.value) && !isNaN(quantityControl.value)) {
			    var quantityValue = parseInt(quantityControl.value);
			    subTotalValue = (unitPrice * quantityValue);
		    }
		}
		if (subTotalValue != _quantityEmpty) {
		    subTotalControl.value = subTotalValue.toFixed(_decimalPlaces);
		}
	}
	CalculatePaymentTotal(parentControlId, paymentTotalControlId);
}

function CalculateSubtotalDiscount1(unitPrice, quantityControl, subTotalControlId, parentControlId, paymentTotalControlId) {
	if (document.getElementById(subTotalControlId)) {
		var subTotalControl = document.getElementById(subTotalControlId);
		var subTotalValue = _quantityEmpty;
		subTotalControl.value = subTotalValue;
		if (!(quantityControl.value == "" || quantityControl.value == _quantityEmpty || quantityControl.value == "0")) {
		    var reg = new RegExp("^[-]|[0-9]*$", "g");
            if (reg.test(quantityControl.value) && !isNaN(quantityControl.value)) {
			    var quantityValue = parseInt(quantityControl.value);
			    // No discount
			    if (quantityValue == 1) {
			        subTotalValue = unitPrice;
			    }
			    // 10% discount
			    else if (quantityValue == 2) {
			        subTotalValue = (unitPrice * quantityValue) - (unitPrice * quantityValue * 0.10);
			    }
			    // 20% discount
			    else {
			        subTotalValue = (unitPrice * quantityValue) - (unitPrice * quantityValue * 0.20);
			    }
		    }
		}
		if (subTotalValue != _quantityEmpty) {
		    subTotalControl.value = subTotalValue.toFixed(_decimalPlaces);
		}
	}
	CalculatePaymentTotal(parentControlId, paymentTotalControlId);
}

// Workplace Bullying
function CalculateSubtotalDiscount2(unitPrice, quantityControl, subTotalControlId, parentControlId, paymentTotalControlId) {
	if (document.getElementById(subTotalControlId)) {
		var subTotalControl = document.getElementById(subTotalControlId);
		var subTotalValue = _quantityEmpty;
		subTotalControl.value = subTotalValue;
		if (!(quantityControl.value == "" || quantityControl.value == _quantityEmpty || quantityControl.value == "0")) {
		    var reg = new RegExp("^[-]|[0-9]*$", "g");
            if (reg.test(quantityControl.value) && !isNaN(quantityControl.value)) {
			    var quantityValue = parseInt(quantityControl.value);
			    subTotalValue = 0.00;
			    			    
			    while (quantityValue > 0) {
					if(quantityValue > 1000) {
						subTotalValue += 5000.00;
						quantityValue -= 1000;
					}
					else {
		        // No discount
		        if (quantityValue == 1) {
		            // Do nothing
			        subTotalValue += (unitPrice * quantityValue);
		        }
		        else if (quantityValue >= 2 && quantityValue <= 10) {
		            unitPrice = 45.00;
			        subTotalValue += (unitPrice * quantityValue);
		        }
		        else if (quantityValue >= 11 && quantityValue <= 20) {
		            unitPrice = 37.00;
			        subTotalValue += (unitPrice * quantityValue);
		        }
              else if (quantityValue >= 21 && quantityValue <= 142)
              {
                 unitPrice = 35.00;
			        subTotalValue += (unitPrice * quantityValue);
              }
			     else {
			        subTotalValue += 5000.00;
			     }
			     quantityValue = 0;
			     }
			    }
		    }
		}
		if (subTotalValue != _quantityEmpty) {
		    subTotalControl.value = subTotalValue.toFixed(_decimalPlaces);
		}
	}
	CalculatePaymentTotal(parentControlId, paymentTotalControlId);
}

// Skin Cancer
function CalculateSubtotalDiscount3(unitPrice, quantityControl, subTotalControlId, parentControlId, paymentTotalControlId) {
	if (document.getElementById(subTotalControlId)) {
		var subTotalControl = document.getElementById(subTotalControlId);
		var subTotalValue = _quantityEmpty;
		subTotalControl.value = subTotalValue;
		if (!(quantityControl.value == "" || quantityControl.value == _quantityEmpty || quantityControl.value == "0")) {
		    var reg = new RegExp("^[-]|[0-9]*$", "g");
            if (reg.test(quantityControl.value) && !isNaN(quantityControl.value)) {
			    var quantityValue = parseInt(quantityControl.value);
			    subTotalValue = 0.00;
			    			    
			    while (quantityValue > 0) {
					if(quantityValue > 1000) {
						subTotalValue += 4500.00;
						quantityValue -= 1000;
					}
					else {
		        // No discount
		        if (quantityValue == 1) {
		            // Do nothing
			        subTotalValue += (unitPrice * quantityValue);
		        }
		        else if (quantityValue >= 2 && quantityValue <= 10) {
		            unitPrice = 45.00;
			        subTotalValue += (unitPrice * quantityValue);
		        }
		        else if (quantityValue >= 11 && quantityValue <= 20) {
		            unitPrice = 37.00;
			        subTotalValue += (unitPrice * quantityValue);
		        }
              else if (quantityValue >= 21 && quantityValue <= 142)
              {
                 unitPrice = 35.00;
			        subTotalValue += (unitPrice * quantityValue);
              }
			     else {
			        subTotalValue += 4500.00;
			     }
			     quantityValue = 0;
			     }
			    }
		    }
		}
		if (subTotalValue != _quantityEmpty) {
		    subTotalControl.value = subTotalValue.toFixed(_decimalPlaces);
		}
	}
	CalculatePaymentTotal(parentControlId, paymentTotalControlId);}

// Let’s Stamp Out Bullying
function CalculateSubtotalDiscount4(unitPrice, quantityControl, subTotalControlId, parentControlId, paymentTotalControlId) {
	if (document.getElementById(subTotalControlId)) {
		var subTotalControl = document.getElementById(subTotalControlId);
		var subTotalValue = _quantityEmpty;
		subTotalControl.value = subTotalValue;
		if (!(quantityControl.value == "" || quantityControl.value == _quantityEmpty || quantityControl.value == "0")) {
		    var reg = new RegExp("^[-]|[0-9]*$", "g");
            if (reg.test(quantityControl.value) && !isNaN(quantityControl.value)) {
			    var quantityValue = parseInt(quantityControl.value);

				  // No discount
				  if (quantityValue == 1) {
						// Do nothing
			        subTotalValue = (unitPrice * quantityValue);
				  }
				  else if (quantityValue >= 2 && quantityValue <= 10) {
						unitPrice = 11;
						subTotalValue = (unitPrice * quantityValue);
				  }
				  else if (quantityValue >= 11 && quantityValue <= 50) {
						unitPrice = 8.80;
						subTotalValue = (unitPrice * quantityValue);
				  }
				  else if (quantityValue >= 51 && quantityValue <= 100) {
						unitPrice = 6.60;
						subTotalValue = (unitPrice * quantityValue);
				  }
				  else if (quantityValue >= 101 && quantityValue <= 600) {
						unitPrice = 5.50;
						subTotalValue = (unitPrice * quantityValue);
				  }
				  else {
						subTotalValue = 3300;
				  }
		    }
		}
		if (subTotalValue != _quantityEmpty) {
		    subTotalControl.value = subTotalValue.toFixed(_decimalPlaces);
		}
	}
	CalculatePaymentTotal(parentControlId, paymentTotalControlId);
}

function CalculatePaymentTotal(parentControlId, paymentTotalControlId) {
    var subTotalControlId = "txtSubtotal";
	if (document.getElementById(parentControlId) && document.getElementById(paymentTotalControlId)) {
		var total = 0.00;
		var inputs = document.getElementById(parentControlId).getElementsByTagName("input");
		var i = 0;
		// While there are input fields ...
		while (i < inputs.length) {
			// If the field is a textbox ...
			if (inputs[i].getAttribute("type") == "text") {
			    // If it is the subtotal textbox ...
			    if (inputs[i].getAttribute("id").indexOf(subTotalControlId) > 0) {
			        if (inputs[i].value != _quantityEmpty) {
				        total = total + parseFloat(inputs[i].value);
				    }
			    }
			}
			i++;
		}
		document.getElementById(paymentTotalControlId).value = total.toFixed(_decimalPlaces);
	}
}
