// File Name:     SkytekEditingFormFunctions.js
// Creation Date: 03.01.2005
// Author:        Adrian POPESCU

// Global Variables

/* This script is Copyright (c) Paul McFedries and
Logophilia Limited (http://www.mcfedries.com/).
Permission is granted to use this script as long as
this Copyright notice remains in place.*/

function CalculateTotal(frm) {
    var order_total = 0
    var packageFlag = false
    var pkgNo         = ""
    var pkgQty        = ""
    var pkgPrice      = ""
    var pkgTotalPrice = ""
	var spcPrice      = ""

	// Define extra option price list for all packages
	var extraPkgPriceListPkg1_0 = 3
	var extraPkgPriceListPkg1_1 = 75
	var extraPkgPriceListPkg1_2 = 3
	var extraPkgPriceListPkg1_3 = 15
	var extraPkgPriceListPkg1_4 = 20
	var extraPkgPriceListPkg1_5 = 75
	var extraPkgPriceListPkg1_6 = 1
	var extraPkgPriceListPkg1_7 = 200

	var extraPkgPriceListPkg2_0 = 4
	var extraPkgPriceListPkg2_1 = 80
	var extraPkgPriceListPkg2_2 = 4
	var extraPkgPriceListPkg2_3 = 15
	var extraPkgPriceListPkg2_4 = 25
	var extraPkgPriceListPkg2_5 = 75
	var extraPkgPriceListPkg2_6 = 2
	var extraPkgPriceListPkg2_7 = 200

	var extraPkgPriceListPkg3_0 = 4
	var extraPkgPriceListPkg3_1 = 85
	var extraPkgPriceListPkg3_2 = 5
	var extraPkgPriceListPkg3_3 = 20
	var extraPkgPriceListPkg3_4 = 30
	var extraPkgPriceListPkg3_5 = 75
	var extraPkgPriceListPkg3_6 = 3
	var extraPkgPriceListPkg3_7 = 200

	var extraPkgPriceListPkg4_0 = 5
	var extraPkgPriceListPkg4_1 = 90
	var extraPkgPriceListPkg4_2 = 5
	var extraPkgPriceListPkg4_3 = 25
	var extraPkgPriceListPkg4_4 = 35
	var extraPkgPriceListPkg4_5 = 75
	var extraPkgPriceListPkg4_6 = 3
	var extraPkgPriceListPkg4_7 = 200

	var extraPkgPriceListPkg5_0 = 5
	var extraPkgPriceListPkg5_1 = 95
	var extraPkgPriceListPkg5_2 = 5
	var extraPkgPriceListPkg5_3 = 25
	var extraPkgPriceListPkg5_4 = 35
	var extraPkgPriceListPkg5_5 = 75
	var extraPkgPriceListPkg5_6 = 3
	var extraPkgPriceListPkg5_7 = 200

	var extraPkgPriceListPkg6_0 = 5
	var extraPkgPriceListPkg6_1 = 95
	var extraPkgPriceListPkg6_2 = 5
	var extraPkgPriceListPkg6_3 = 25
	var extraPkgPriceListPkg6_4 = 35
	var extraPkgPriceListPkg6_5 = 75
	var extraPkgPriceListPkg6_6 = 3
	var extraPkgPriceListPkg6_7 = 200

    // Run through all the form fields
    for (var i=0; i < frm.elements.length; ++i)
    {

        // Get the current field
        form_field = frm.elements[i]

        // Get the field's name
        form_name = form_field.name
        
        // Is it an "address" field?
        if (form_name == "1")
		{        
            
            if(frm.check_same.checked)
			{
				frm['5'].value = frm['1'].value
			}
			else
			{
				//frm['5'].value = ""
			}
			//alert();
            frm['54'].value = form_field.value
            frm['57'].value = form_field.value
        }
        if (form_name == "2")
		{
            if(frm.check_same.checked)
			{
				frm['6'].value = frm['2'].value
			}
			else
			{
				//frm['6'].value = ""
			}
            
			frm['55'].value = form_field.value
            frm['58'].value = form_field.value
        }
        if (form_name == "3")
		{
            if(frm.check_same.checked)
			{
				frm['7'].value = frm['3'].value
			}
			else
			{
				//frm['7'].value = ""
			}

            frm['56'].value = form_field.value
            frm['59'].value = form_field.value
        }

        // Is it a "product" field?
        if (form_name.substring(0,4) == "PROD")
		{

            // If so, extract the price from the name
            //item_price = parseFloat(form_name.substring(form_name.lastIndexOf("_") + 1))
            item_price = parseFloat(form_field.value.substring(form_field.value.lastIndexOf("_") + 1))

            // Get the quantity
            //if((form_field.value.toLowerCase() == "y")||(form_field.value.toLowerCase() == "yes"))
            if(form_field.checked)
            {
           		if(packageFlag == false)
			{
                	    //alert("packageFlag == false");
                            //item_quantity = parseInt(form_field.value)
			    if(form_field.value.substring(0,3) == "PKG")
    	      		    {
                                        item_quantity = 1
					packageFlag = true
					pkgNo = form_field.value.substring(3,form_field.value.indexOf("_"))
                                        pkgQty = item_quantity
					pkgPrice = item_price

				        frm.S3PKG1.value = "#" + pkgNo
					frm.S3PKG3.value = ""  + pkgQty
					frm.S3PKG4.value = ""  + pkgPrice
			    }
			}
			else
			{
				item_quantity = 0
				//form_field.value = ""
			}

            }
            else
			{
				item_quantity = 0
			}
			
			// Update the order total
            if (item_quantity >= 0) {
                order_total += item_quantity * item_price
            }
        }

		frm.S3PKG5.value = ""  + round_decimals((pkgPrice + spcPrice), 2)

		if (form_name.substring(0,7) == "S3EXTRA")
		{
			if( pkgNo == "1")
			{
				if(form_name.substring(7,8) == "0")
				{
					form_field.value = "" + extraPkgPriceListPkg1_0
				}
				if(form_name.substring(7,8) == "1")
				{
					form_field.value = "" + extraPkgPriceListPkg1_1
				}
				if(form_name.substring(7,8) == "2")
				{
					form_field.value = "" + extraPkgPriceListPkg1_2
				}
				if(form_name.substring(7,8) == "3")
				{
					form_field.value = "" + extraPkgPriceListPkg1_3
				}
				if(form_name.substring(7,8) == "4")
				{
					form_field.value = "" + extraPkgPriceListPkg1_4
				}
				if(form_name.substring(7,8) == "5")
				{
					form_field.value = "" + extraPkgPriceListPkg1_5
				}
				if(form_name.substring(7,8) == "6")
				{
					form_field.value = "" + extraPkgPriceListPkg1_6
				}
				if(form_name.substring(7,8) == "7")
				{
					form_field.value = "" + extraPkgPriceListPkg1_7
				}
			}
			if( pkgNo == "2")
			{
				if(form_name.substring(7,8) == "0")
				{
					form_field.value = "" + extraPkgPriceListPkg2_0
				}
				if(form_name.substring(7,8) == "1")
				{
					form_field.value = "" + extraPkgPriceListPkg2_1
				}
				if(form_name.substring(7,8) == "2")
				{
					form_field.value = "" + extraPkgPriceListPkg2_2
				}
				if(form_name.substring(7,8) == "3")
				{
					form_field.value = "" + extraPkgPriceListPkg2_3
				}
				if(form_name.substring(7,8) == "4")
				{
					form_field.value = "" + extraPkgPriceListPkg2_4
				}
				if(form_name.substring(7,8) == "5")
				{
					form_field.value = "" + extraPkgPriceListPkg2_5
				}
				if(form_name.substring(7,8) == "6")
				{
					form_field.value = "" + extraPkgPriceListPkg2_6
				}
				if(form_name.substring(7,8) == "7")
				{
					form_field.value = "" + extraPkgPriceListPkg2_7
				}
			}
			if( pkgNo == "3")
			{
				if(form_name.substring(7,8) == "0")
				{
					form_field.value = "" + extraPkgPriceListPkg3_0
				}
				if(form_name.substring(7,8) == "1")
				{
					form_field.value = "" + extraPkgPriceListPkg3_1
				}
				if(form_name.substring(7,8) == "2")
				{
					form_field.value = "" + extraPkgPriceListPkg3_2
				}
				if(form_name.substring(7,8) == "3")
				{
					form_field.value = "" + extraPkgPriceListPkg3_3
				}
				if(form_name.substring(7,8) == "4")
				{
					form_field.value = "" + extraPkgPriceListPkg3_4
				}
				if(form_name.substring(7,8) == "5")
				{
					form_field.value = "" + extraPkgPriceListPkg3_5
				}
				if(form_name.substring(7,8) == "6")
				{
					form_field.value = "" + extraPkgPriceListPkg3_6
				}
				if(form_name.substring(7,8) == "7")
				{
					form_field.value = "" + extraPkgPriceListPkg3_7
				}
			}
			if( pkgNo == "4")
			{
				if(form_name.substring(7,8) == "0")
				{
					form_field.value = "" + extraPkgPriceListPkg4_0
				}
				if(form_name.substring(7,8) == "1")
				{
					form_field.value = "" + extraPkgPriceListPkg4_1
				}
				if(form_name.substring(7,8) == "2")
				{
					form_field.value = "" + extraPkgPriceListPkg4_2
				}
				if(form_name.substring(7,8) == "3")
				{
					form_field.value = "" + extraPkgPriceListPkg4_3
				}
				if(form_name.substring(7,8) == "4")
				{
					form_field.value = "" + extraPkgPriceListPkg4_4
				}
				if(form_name.substring(7,8) == "5")
				{
					form_field.value = "" + extraPkgPriceListPkg4_5
				}
				if(form_name.substring(7,8) == "6")
				{
					form_field.value = "" + extraPkgPriceListPkg4_6
				}
				if(form_name.substring(7,8) == "7")
				{
					form_field.value = "" + extraPkgPriceListPkg4_7
				}
			}
			if( pkgNo == "5")
			{
				if(form_name.substring(7,8) == "0")
				{
					form_field.value = "" + extraPkgPriceListPkg5_0
				}
				if(form_name.substring(7,8) == "1")
				{
					form_field.value = "" + extraPkgPriceListPkg5_1
				}
				if(form_name.substring(7,8) == "2")
				{
					form_field.value = "" + extraPkgPriceListPkg5_2
				}
				if(form_name.substring(7,8) == "3")
				{
					form_field.value = "" + extraPkgPriceListPkg5_3
				}
				if(form_name.substring(7,8) == "4")
				{
					form_field.value = "" + extraPkgPriceListPkg5_4
				}
				if(form_name.substring(7,8) == "5")
				{
					form_field.value = "" + extraPkgPriceListPkg5_5
				}
				if(form_name.substring(7,8) == "6")
				{
					form_field.value = "" + extraPkgPriceListPkg5_6
				}
				if(form_name.substring(7,8) == "7")
				{
					form_field.value = "" + extraPkgPriceListPkg5_7
				}
			}
			if( pkgNo == "6")
			{
				if(form_name.substring(7,8) == "0")
				{
					form_field.value = "" + extraPkgPriceListPkg6_0
				}
				if(form_name.substring(7,8) == "1")
				{
					form_field.value = "" + extraPkgPriceListPkg6_1
				}
				if(form_name.substring(7,8) == "2")
				{
					form_field.value = "" + extraPkgPriceListPkg6_2
				}
				if(form_name.substring(7,8) == "3")
				{
					form_field.value = "" + extraPkgPriceListPkg6_3
				}
				if(form_name.substring(7,8) == "4")
				{
					form_field.value = "" + extraPkgPriceListPkg6_4
				}
				if(form_name.substring(7,8) == "5")
				{
					form_field.value = "" + extraPkgPriceListPkg6_5
				}
				if(form_name.substring(7,8) == "6")
				{
					form_field.value = "" + extraPkgPriceListPkg6_6
				}
				if(form_name.substring(7,8) == "7")
				{
					form_field.value = "" + extraPkgPriceListPkg6_7
				}
			}

		}

	    if (form_name.substring(0,10) == "S3EXTRAQTY")
		{
	    	// Extract the quantity
            if(form_field.value == "")
			{
				item_quantity = 0
				form_field.value = 0
			}
			else
			{
				item_quantity = parseFloat(("" + form_field.value))
			}

			if(frm.elements["S3EXTRA" + form_name.substring(10,11)].value == "")
			{
				item_price = 0
				frm.elements["S3EXTRA" + form_name.substring(10,11)].value = 0
			}
			else
			{
				item_price = frm.elements["S3EXTRA" + form_name.substring(10,11)].value
				if(item_price == 0)
				{
					form_field.value = 0
				}
			}

			// Update the order total
			if(item_quantity >= 0)
			{
				frm.elements["S3SUBTOTAL" + form_name.substring(10,11)].value = round_decimals((item_quantity * item_price), 2)
				order_total += item_quantity * item_price
			}
		}
			
    }

    // Display the total rounded to two decimal places
    frm.TOTAL.value = round_decimals(order_total, 2)
}

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

