function ShippingItem(itemid,price,shippingcharge,chargeshipping,listingid,gstrate,pstrate)
{
	this.itemid = itemid || 0;
	this.price = price || 0;
	this.shippingcharge = shippingcharge || 0;
	this.chargeshipping = chargeshipping || 0;
	this.listingid = listingid || 0;
	
	this.gstrate = gstrate || 0;
	this.pstrate = pstrate || 0;
}

var ShippingItems = new Array();
var numShippingItems = 0;

function initShippingItem(itemid,price,shippingcharge,chargeshipping,listingid,gstrate,pstrate)
{
	ShippingItems.push(new ShippingItem(itemid,price,shippingcharge,chargeshipping,listingid,gstrate,pstrate));
	numShippingItems += 1;
}

function getItem(itemid)
{
	for(var i = 0; i < ShippingItems.length; i++)
	{
		if(ShippingItems[i].itemid == itemid)
		{
			return ShippingItems[i];
		}
	}
	return null;
}

function countListingItems(listingid)
{
	var c = 0;
	for(var i = 0; i < ShippingItems.length; i++)
	{
		if(ShippingItems[i].listingid == listingid)
		{
			c++;
		}
	}
	return c;
}

function clearItem(itemid)
{
	for(var i = 0; i < ShippingItems.length; i++)
	{
		if(ShippingItems[i].itemid == itemid)
		{
			var l = ShippingItems[i].listingid;
			ShippingItems[i] = new ShippingItem(0,0,0,0,0,0,0);
			numShippingItems -= 1;
			updateItemsCount();
			updateOrderTotals(l);
			if(countListingItems(l) == 0)
			{
				$('orderheader_' + l).empty();
				$('orderfooter_' + l).empty();
			}
		}
	}
}

function updateOrderTotals(listingid)
{
	var total = 0;
	var subtotal = 0;
	var shippingtotal = 0;
	
	var gsttotal = 0;
	var psttotal = 0;
	
	for(var i = 0; i < ShippingItems.length; i++)
	{
		if(ShippingItems[i].listingid == listingid)
		{
			subtotal = subtotal + ShippingItems[i].price;
			gsttotal = gsttotal + ShippingItems[i].price * ShippingItems[i].gstrate;
			psttotal = psttotal + ShippingItems[i].price * ShippingItems[i].pstrate;
			if(ShippingItems[i].chargeshipping)
			{
				shippingtotal = shippingtotal + ShippingItems[i].shippingcharge;
			}
		}
	}
	
	gsttotal = Math.round(gsttotal) / 100;
	psttotal = Math.round(psttotal) / 100;
	total = subtotal + gsttotal + psttotal + shippingtotal;
	// update order totals
	$('ordersubtotal_' + listingid).innerHTML = '$' + subtotal.toFixed(2);
	if($('ordergst_' + listingid))$('ordergst_' + listingid).innerHTML = '$' + gsttotal.toFixed(2);
	if($('orderpst_' + listingid))$('orderpst_' + listingid).innerHTML = '$' + psttotal.toFixed(2);
	$('shiptotal_' + listingid).innerHTML = '$' + shippingtotal.toFixed(2);
	$('ordertotal_' + listingid).innerHTML = '$' + total.toFixed(2);
	
	//return total;
}

function chargeShipping(itemid)
{
	var i = getItem(itemid);
	i.chargeshipping = 1;
	// show shipping price
	//$('shipping_' + itemid).style.display = "table-row";
	$('shipping_' + itemid).style.color = "#636363";
	$('shipping_' + itemid).style.background = "none";
	$('shippingcharge_' + itemid).innerHTML = '$' + (i.shippingcharge).toFixed(2);
	// update item total
	$('total_' + itemid).innerHTML = '$' + (i.shippingcharge + i.price).toFixed(2);
	// update order totals
	updateOrderTotals(i.listingid);
	//$('ordertotal_' + i.listingid).innerHTML = '$' + getOrderTotal(i.listingid).toFixed(2);
}

function removeShipping(itemid)
{
	var i = getItem(itemid);
	i.chargeshipping = 0;
	// hide shipping price
	//$('shipping_' + itemid).style.display = "none";
	$('shipping_' + itemid).style.color = "#959595";
	$('shipping_' + itemid).style.background = "url('line.gif')"
	// update item total
	$('total_' + itemid).innerHTML = '$' + (i.price).toFixed(2);
	// update order total
	updateOrderTotals(i.listingid);
	//$('ordertotal_' + i.listingid).innerHTML = '$' + getOrderTotal(i.listingid).toFixed(2);
}

function isorderselected()
{
	var g = $('processgc');
	if(g && g.checked)
	{
		return true;
	}
	for(var i = 0; i < ShippingItems.length; i++)
	{
		var c = $('otp' + ShippingItems[i].listingid)
		if(c && c.checked)
		{
			return true;
		}
	}
	alert('Please select at least one order to process.');
	return false;
}

window.addEvent('domready', function(){
	for(var i = 0; i < ShippingItems.length; i++)
	{
		var x = $('shipmethod' + ShippingItems[i].itemid + '_2');
		if(x != null && x.checked == true)
		{
			chargeShipping(ShippingItems[i].itemid);
		}
		else
		{
			removeShipping(ShippingItems[i].itemid);
		}
	}

});
