var selected_pm = null

function updateOrderFormContactInfo(f_name,ci_field_name)
{
	ci = document.forms[f_name][ci_field_name];
	
	for(i=0; i<ci.length; i++)
	{
		if(ci.addEventListner)
			ci[i].addEventListner("onchange",requestOrderFormContactInfo,false);
		
		else if(ci.attachEvent)
			ci[i].attachEvent("onchange",requestOrderFormContactInfo,false);
		
		else
			ci[i].onchange = requestOrderFormContactInfo;
	}
}

function requestOrderFormContactInfo()
{
	document.location="/?a=appShoppingCart&p=viewOrderForm&"+this.name+"="+this.value;
}


function togglePaymentMethod(f,id)
{
	pm = f.orderpayment_field_payment_method;
	fc = document.getElementById('payment_'+id);
	if(fc && pm)
	{
		if(pm.length)
		{
			for(i=0; i<pm.length; i++)
			{
				if(pm[i].value != id){
					document.getElementById('payment_'+pm[i].value).style.visibility = "hidden";
					document.getElementById('payment_'+pm[i].value).style.display = "none";
				} else {
					document.getElementById('payment_'+id).style.visibility = "visible";
					document.getElementById('payment_'+id).style.display = "block";
					pm[i].checked = true;
					selected_pm = pm[i].value;
				}
			}
		} else {
			document.getElementById('payment_'+id).style.visibility = "visible";
			document.getElementById('payment_'+id).style.display = "block";
			pm.checked = true;
			selected_pm = pm.value;
		}
	}
}


function initOrder(field_prefix)
{
	products = document.getElementsByName(field_prefix+'id[]');
	if(products.length > 0)
	{	
		for(p=0; p<products.length;p++)
			toggleProduct(field_prefix,products[p].value);	
	} else {
		toggleProduct(field_prefix,products.value);
	}
	
	updateOrderTotal(field_prefix);
}

function toggleProduct(field_prefix,val)
{
	cbx_field = document.getElementById(field_prefix+'id_'+val);
	price_field = document.getElementById(field_prefix+'price_'+val);
	qty_field = document.getElementById(field_prefix+'qty_'+val);
	
	total_field = document.getElementById(field_prefix+'total_'+val);
	total_field_txt = document.getElementById(field_prefix+'totaltext_'+val);
	
	if(cbx_field.checked)
	{
		price_field.disabled = false;
		
		if(qty_field.type != 'hidden')
			qty_field.disabled = false;
		
		total_field.value = (price_field.value * qty_field.value).toFixed(2);
		total_field_txt.innerHTML = "$"+total_field.value;
		
	} else { 
		price_field.disabled = true;
		if(qty_field.type != 'hidden')
			qty_field.disabled = true;
		
		total_field.value = 0;
		total_field_txt.innerHTML = "$0.00";
	}
}

//function updateOrderPage(field_prefix, value){
//
//    if(value == 1){
//
//        document.getElementById('processingFee').innerHTML = 'BlakeMan';
//    }
//
//}

function updateOrder(field_prefix,p_cbx)
{
	toggleProduct(field_prefix,p_cbx);
	updateOrderTotal(field_prefix);
}

function updateOrderTotal(field_prefix)
{
	order_total = 0;
	
	totals = document.getElementsByName(field_prefix+'total[]');
	products = document.getElementsByName(field_prefix+'id[]');
	if(products.length > 0)
	{	
		for(p=0; p<products.length;p++)
		{
			if(products[p].checked)
				order_total += parseFloat(totals[p].value);
		}
	} else {
		if(products.checked)
			order_total += parseFloat(totals.value);
	}
	document.getElementById('subtotal_text').innerHTML = "$"+order_total.toFixed(2);
	
	proc_fee = calcProcessingFee(order_total);
	document.getElementById('processing_fee_text').innerHTML = "$"+proc_fee.toFixed(2);
	order_total += proc_fee;
	
	discount = parseFloat(document.getElementById('discount').value);
	if(discount <= order_total)
		order_total -= discount;
	
	document.getElementById('total_text').innerHTML = "$"+parseFloat(order_total).toFixed(2);
	
}



function calcProcessingFee(order_total)
{
	fee = 0;
	
	// only orders greater 0 and the selected pm is a credit card
	if(order_total > 0 && selected_pm == 1)
	{
		if(cc_processor.processing_fee_type == "flat")
			fee = parseFloat(cc_processor.processing_fee_amount);
		else if(parseFloat(cc_processor.processing_fee_amount) > 0)
			fee = parseFloat(order_total) * (parseFloat(cc_processor.processing_fee_amount)/100);
	}
	
	return(fee);
}


function chargeOrder(f)
{
	f.chargeorder.value = 'true';
	f.submit();
}
