// JavaScript Document

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];}
}


var max_chars = 300;

function count_chars(){
	var DST_comments_text = document.DST_petition_form.DST_comments.value;
	var len = DST_comments_text.length;
	
	if (len > max_chars) {
		DST_comments_text = DST_comments_text.substring(0, max_chars);
		document.DST_petition_form.DST_comments.value = DST_comments_text;
		return false;
	}
	document.getElementById('limit').innerHTML = max_chars - len;
}

function init_char_max() {
	document.getElementById('limit').innerHTML = max_chars - document.DST_petition_form.DST_comments.value.length;
}

function CalculateTotal(frm) {
    var order_total = 0
    var sales_tax = parseFloat(0.08)
    var calculator = false
	
	for (var i=0; i < frm.elements.length; ++i) {
		
		if ( frm.elements[i].name.substring(0,10) == 'calculator' ) {
			calculator = !calculator
			continue
		}
        
		if( calculator == false ) {
			continue
		} 
		
        // Get the current field
        form_field = frm.elements[i]
        if( i+1 != frm.elements.length ){
            drop_down_value = frm.elements[i+1].value
        }
 		
        // Get the field's name
        form_name = form_field.name
        
        // Is it a "product" field?
		if( form_name.substring(0,3) == "lbl" ){
			form_field.value = round_decimals(order_total,2) + " more / year";
        }
		else if (form_name.substring(0,3) == "txt") {
            
            // If so, extract the price from the name
            item_price = parseFloat(frm.elements[i].value);
            if( drop_down_value == "Month" ){
                item_price = item_price * parseFloat(12)
            }
			else if( drop_down_value == "Week" ){
                item_price = item_price * parseFloat(52)
            }
            item_price = item_price*sales_tax
            order_total = order_total + item_price
        }
    }
}
 
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
}