function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/*  
 *  Recalculate Form Totals
 *  
 *  For the website www.eldridge-estate.com.au
 *  
 *  Written by Graeme Bryan
 *  Email grae@avinago.com
 *  
 *  SETUP:
 *  To install copy the recalc.js file into the same folder as the order form. 
 *  Then paste the following tag into the header.
 *  <script type="text/javascript" src="recalc.js"></script>
 *  
 *  For this to work all editable order number fields on the form must have
 *  the argument onchange="javascript:Recalculate();" inserted.
 *  
 *  Even the calculated fields should have the onchange argument to avoid 
 *  someone adjusting before submission.
 *  
 *  To get the order form to initialize with zero values add the following   
 *  argument to the body tag.
 *  <body onload="javascript:Recalculate();">
 *  
 */

function Recalculate() {

	with (document.forms["stall_application"]) {
 
	 var Marquee_QTY = +(QTY_Marquee.value); if (isNaN(Marquee_QTY)) Marquee_QTY = 0;
	 var Table_QTY = +(QTY_Table.value); if (isNaN(Table_QTY)) Table_QTY = 0;
	 var Chair_QTY = +(QTY_Chair.value); if (isNaN(Chair_QTY)) Chair_QTY = 0;
	 var Total_QTY;
	 
	 // Set prices here
	 var Marquee_Price = 250;
	 var Table_Price = 20;
	 var Chair_Price = 6;
 
	 var Marquee_Total, Table_Total, Chair_Total;
	 var SubTotal;
	 	 
	 // TOTAL QUANTITY
	 Total_QTY = Marquee_QTY + Table_QTY + Chair_QTY;
	 
	 // LINE TOTALS
	 TOT_Marquee.value = round_decimals(Marquee_Total = Marquee_QTY * Marquee_Price, 2);
	 TOT_Table.value = round_decimals(Table_Total = Table_QTY * Table_Price, 2);
	 TOT_Chair.value = round_decimals(Chair_Total = Chair_QTY * Chair_Price, 2);

	 // SUB TOTAL
	 Equip_Sub_Tot.value = round_decimals(SubTotal = Marquee_Total + Table_Total + Chair_Total, 2);

 }

}

/* 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 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
}

function dollarFilter (inString) {

	var filteredValues = "$";     // Characters to strip out
	var n;
	var returnString = "";

	for (n = 0; n < inString.length; n++) {  
		// Scan through string and append unfiltered values to returnString.
		var c = inString.charAt(n);
		if (filteredValues.indexOf(c) == -1) returnString += c;
	}

	return returnString;
}

