function ValidateOrder(orderform)
{	
    // return false immediately if addToCart is disabled
    if(orderform.addToCart.disabled) {
	return false;
    } else {
	// disable button at start
	orderform.addToCart.disabled = true;
    }

    if (orderform.NumberOfVariants.value > 1)
        selected = orderform.li_save_variantid.selectedIndex;
    else
        selected = 1;

    
    if (orderform.li_save_variantid.value > 0)
    {
        switch (selected)
        {
            case 1:{bUseInventory = orderform.useinventory1.value; bUseOnHold = orderform.useonhold1.value;
                    Inventory = orderform.inventory1.value;OnHold = orderform.onhold1.value;AllowBackorder = orderform.backorder1.value;break;}
            case 2:{bUseInventory = orderform.useinventory2.value; bUseOnHold = orderform.useonhold2.value;
                    Inventory = orderform.inventory2.value;OnHold = orderform.onhold2.value;AllowBackorder = orderform.backorder2.value;break;}
            case 3:{bUseInventory = orderform.useinventory3.value;bUseOnHold = orderform.useonhold3.value;
                    Inventory = orderform.inventory3.value;OnHold = orderform.onhold3.value;AllowBackorder = orderform.backorder3.value;break;}
            case 4:{bUseInventory = orderform.useinventory4.value;bUseOnHold = orderform.useonhold4.value;
                    Inventory = orderform.inventory4.value;OnHold = orderform.onhold4.value;AllowBackorder = orderform.backorder4.value;break;}
            case 5:{bUseInventory = orderform.useinventory5.value;bUseOnHold = orderform.useonhold5.value;
                    Inventory = orderform.inventory5.value;OnHold = orderform.onhold5.value;AllowBackorder = orderform.backorder5.value;break;}
            case 6:{bUseInventory = orderform.useinventory6.value;bUseOnHold = orderform.useonhold6.value;
                    Inventory = orderform.inventory6.value;OnHold = orderform.onhold6.value;AllowBackorder = orderform.backorder6.value;break;}
            case 7:{bUseInventory = orderform.useinventory7.value;bUseOnHold = orderform.useonhold7.value;
                    Inventory = orderform.inventory7.value;OnHold = orderform.onhold7.value;AllowBackorder = orderform.backorder7.value;break;}
            case 8:{bUseInventory = orderform.useinventory8.value;bUseOnHold = orderform.useonhold8.value;
                    Inventory = orderform.inventory8.value;OnHold = orderform.onhold8.value;AllowBackorder = orderform.backorder8.value;break;}
            case 9:{bUseInventory = orderform.useinventory9.value;bUseOnHold = orderform.useonhold9.value;
                    Inventory = orderform.inventory9.value;OnHold = orderform.onhold9.value;AllowBackorder = orderform.backorder9.value;break;}
        }
        SOLD = false;
        BACKORDER = (parseInt(AllowBackorder) == 1); //Backorder may default to true from variant setting

        CasesOnHand = (Inventory - OnHold) / orderform.UPC.value;
        
        if (CasesOnHand != Math.round(CasesOnHand))
        {
            if (Math.round(CasesOnHand) > CasesOnHand) CasesOnHand = Math.round(CasesOnHand - 1);
            else CasesOnHand = Math.round(CasesOnHand);
        }
        if ((Inventory - OnHold) <= 0) SOLD = true;
	    if ((orderform.quantity.value > CasesOnHand) && (bUseInventory == true) && (bUseOnHold == false)) BACKORDER = true;
	    
	    if (parseInt(orderform.quantity.value) > 0)		
	    {			
            
            
            if (parseInt(orderform.quantity.value) >= parseInt(orderform.MINORDER.value))
            {
                if ((parseInt(orderform.quantity.value) <= CasesOnHand) || bUseInventory == '0' || BACKORDER == true)
                {
                    realqty = Math.abs(orderform.quantity.value) * Math.abs(orderform.UPC.value);
            		orderform.li_save_quantity.value = realqty;
            		//orderform.li_save_price.value = orderform.li_save_price.value * realqty;
                    //if (BACKORDER) alert('This item will be back-ordered. Ship Time: 3 Months');
                    if (bUseOnHold == '1')
                    {
                        orderform.reserve_op.name = 'reserve_op_save';
                        orderform.reserve_save_onhold.value = realqty;
                        if (selected == 1)
                            orderform.reserve_id.value = orderform.li_save_variantid.value;
                        else
                            orderform.reserve_id.value = orderform.li_save_variantid.options[orderform.li_save_variantid.selectedIndex].value;
                        //alert('New Onhold: '+orderform.reserve_save_onhold.value);
                    }
            		orderform.submit(); return true;   
                }
                else
                {
                    
                    if (SOLD == true)
                    {
                        alert('This item has been sold out - please choose another.');
                        //orderform.li_save_variantid.focus();
                    }
                    else
                    {
			orderform.addToCart.disabled = false;
                        alert('Our inventory indicates we have ' + CasesOnHand + ' case available.');
                        orderform.quantity.value = CasesOnHand;
                        //orderform.quantity.focus();				
                    }
                    return false;		        
                } 
            }
            else
            {
            
		orderform.addToCart.disabled = false;
                alert('The minimum order quantity on this item is ' + orderform.MINORDER.value + '. You ordered: ' + orderform.quantity.value);
                orderform.quantity.focus(); return false;		        
            }
    	}		
    	else		
    	{	
		orderform.addToCart.disabled = false;		
    		alert('Enter a quantity greater than 0.');			
        	orderform.quantity.value = Math.abs(orderform.quantity.value);
        	orderform.quantity.focus(); return false;		
    	}	
    }	
    else	
    {	
	orderform.addToCart.disabled = false;	
    	alert('You must select a finish!');		
        orderform.li_save_variantid.focus();			
        return false;	
    }
}



function VerifyDate(dateString)
{
    var now = new Date();
    var RequiredDate = new Date(dateString.substring(0,4),
                            dateString.substring(5,7)-1,
                            dateString.substring(8,10));

    if ((dateString == '' || dateString == 'ASAP') && (order.saveorder_save_paymentid.value > '0')) {
        document.order.saveorder_class.value = 'order';
        document.order.action='/order-send1.hxl';
        order.submit();
    } else {
        if (dateString.substring(8,10) > 31 ) {
            alert('The day portion of the date (yyyy-mm-DD) cannot be greater than 31');
            return false;
        } else {
            if ((dateString.substring(5,7))-1 > 12 ) {
                alert('The month portion of the date (yyyy-MM-dd) cannot be greater than 12');
                return false;
            } else {
                if (RequiredDate < now) {
                    alert('You must select a FUTURE date. Remember to use: YYYY-MM-DD');
                    order.saveorder_save_requireddate.focus;
                    return false;
                } else {
                    if (order.saveorder_save_paymentid.value == '-1') {
                        alert('Please select a payment type');
                        order.saveorder_save_paymentid.focus;
                        return false;
                    } else {
                        document.order.saveorder_class.value = 'order';
                        document.order.action='/order-send1.hxl';
                        order.submit();
                    }
                }
            }
        }
    }
}

function Update()
{
    
    var qty = -1;
    var available = -1;
    var useinventory = -1;
    
    for (var i = 0; i < document.order.elements.length; i++)
    {
        if (document.order.elements[i].name.indexOf('total_available') > 0)
            available = document.order.elements[i].value;
        if (document.order.elements[i].name.indexOf('use_inventory') > 0)
            useinventory = document.order.elements[i].value;
        if (document.order.elements[i].name.indexOf('save_quantity') > 0)
        {
            qty = document.order.elements[i].value;
        }
        alert(i % 3);
        if ((i % 3) == 0)
        {
            alert('qty:' + qty + ', available:' + available + ', use inven:' + useinventory);
            if (useinventory > 0)
            {
                if (qty > available)
                    alert('You have ordered more than exist in stock!');
                    document.order.elements[i].focus();
            }
        }
        
    }
}

function VerifyOrder(dateString)
{
    var now = new Date();
    var RequiredDate = new Date(dateString.substring(0,4),
                            dateString.substring(5,7)-1,
                            dateString.substring(8,10));

    if ((dateString == '' || dateString == 'ASAP') && (order.saveorder_save_paymentid.value > '0')) {
        document.order.saveorder_class.value = 'order';
        document.order.action='/order-send1.hxl';
        order.submit();
    } else {
        if (dateString.substring(8,10) > 31 ) {
            alert('The day portion of the date (yyyy-mm-DD) cannot be greater than 31');
            return false;
        } else {
            if ((dateString.substring(5,7))-1 > 12 ) {
                alert('The month portion of the date (yyyy-MM-dd) cannot be greater than 12');
                return false;
            } else {
                if (RequiredDate < now) {
                    alert('You must select a FUTURE date. Remember to use: YYYY-MM-DD');
                    order.saveorder_save_requireddate.focus;
                    return false;
                } else {
                    if (order.saveorder_save_paymentid.value == '-1') {
                        alert('Please select a payment type');
                        order.saveorder_save_paymentid.focus;
                        return false;
                    } else {
                        document.order.saveorder_class.value = 'order';
                        document.order.action='/order-send1.hxl';
                        order.submit();
                    }
                }
            }
        }
    }
}
