var errormessages = '';
var errorfoundflag = false;

function noNumbers(e)
{
    var keynum;
    var keychar;
    var numcheck;

    if(window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    keychar = String.fromCharCode(keynum);
    numcheck = /\d/;
    return !numcheck.test(keychar);
}

function onlyNumbers(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 32 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}

function onlyCurrency(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if ((charCode > 32 && charCode != 46) && (charCode < 48 || charCode > 57))
        return false;
    return true;
}

function CurrencyFormat(thisone)
{
    var tempnum=thisone.value;
    if (tempnum.indexOf('.') <= 0)
        thisone.value = tempnum + ".00";
    else
    {
        if (tempnum.charAt(tempnum.length-2)==".")
        {
            thisone.value = tempnum + "0";
        }
        else
        {
            tempnum=Math.round(tempnum*100)/100;
            thisone.value= tempnum;
        }
    }
}

function fillSubTotal(thisidx)
{
    var qtyid = document.getElementById("q" + thisidx);
    var priid = document.getElementById("p" + thisidx);
    var subid = document.getElementById("s" + thisidx);
    var totid = document.getElementById("tot");
    
    if (isNaN(parseInt(priid.value)))
    {
        subid.value = '';
    }  
    else
    {
        var qty = parseInt(qtyid.value);
        qty = isNaN(qty) ? 1 : qty;
        qtyid.value = qty;
        
        CurrencyFormat(priid); 
        subid.value = (priid.value) * parseInt(qty);
        CurrencyFormat(subid);
    }
    
}

function fillbilling()
{
    chkFill = document.getElementById('chkBilling');
    if (chkFill.checked)
    {
        document.getElementById('bfname').value = document.getElementById('fname').value;
        document.getElementById('bminitials').value = document.getElementById('minitials').value;
        document.getElementById('blname').value = document.getElementById('lname').value;
        document.getElementById('bstreet1').value = document.getElementById('street1').value;
        document.getElementById('bstreet2').value = document.getElementById('street2').value;
        document.getElementById('bcity').value = document.getElementById('city').value;
        document.getElementById('bstate').value = document.getElementById('state').value;
        document.getElementById('bzip').value = document.getElementById('zip').value;
        document.getElementById('bcountry').value = document.getElementById('country').value;
        document.getElementById('bphone').value = document.getElementById('phone').value;
    }
}
function validateorder()
{
    var orderenteredflag = false;
    errorfoundflag = false;
    document.getElementById('errormessage').innerHTML = '';
    errormessages = '<b>Please correct the following error(s):</b><br/>';
    
    // Order items    
    for (idx=0; idx<=19; idx++)
    {
        item_type = document.getElementById('t' + idx).value;
        item_qty = document.getElementById('q' + idx).value;
        item_name = document.getElementById('i' + idx).value;
        item_mon = document.getElementById('m' + idx).value;
        item_year = document.getElementById('y' + idx).value;
        item_price = document.getElementById('p' + idx).value;
        
        if (item_qty || item_price) 
	    {
	        if ((item_type == 'M' && (item_qty && item_name && item_mon && item_year && item_price)) ||
	            (item_type == 'I' && (item_qty && item_name && item_price)))
                orderenteredflag = true;
            else
            {
                errormessages += "<br/><span>Please complete all the details for order item '" + (idx + 1) + "'!</span>";  
                errorfoundflag = true;
            }
	    }
   }
   
   if (!orderenteredflag && !errorfoundflag)
   {
        errormessages += "<br/><span>No items entered to order!";
        document.getElementById('errormessage').innerHTML = errormessages;
        document.getElementById('errormessage').focus();
        return false;
   }
   if (errorfoundflag)
   {
        document.getElementById('errormessage').innerHTML = errormessages;
        document.getElementById('errormessage').focus();
        return false;
   }

    // Shipping info
    setErrorMessage('fname', "First name required for Shipping!");
    setErrorMessage('lname', "Last name required for Shipping!");
    setErrorMessage('street1', "Street1 address required for Shipping!");
    setErrorMessage('city', "City name required for Shipping!");
    setErrorMessage('state', "State required for Shipping!");
    setErrorMessage('zip', "Zip Code required for Shipping!");
    setErrorMessage('country', "Country required for Shipping!");
    setErrorMessage('phone', "Contact Phone# required for Shipping!");
    setErrorMessage('email', "Email address required for Shipping!");
    
    // Billing Info
    setErrorMessage('bfname', "First name required for Billing!");
    setErrorMessage('blname', "Last name required for Billing!");
    setErrorMessage('bstreet1', "Street1 address required for Billing!");
    setErrorMessage('bcity', "City name required for Billing!");
    setErrorMessage('bstate', "State required for Billing!");
    setErrorMessage('bzip', "Zip Code required for Billing!");
    setErrorMessage('bcountry', "Country required for Billing!");
    setErrorMessage('bphone', "Contact Phone# required for Billing!");
    
    // Credit Card Info
    setErrorMessage('cardname', "Name on Credit card required!");
    setErrorMessage('cardnum', "Credit card number required!");
    setErrorMessage('cardcid', "Credit card security ID required!");
    setErrorMessage('slcCardMonth', "Credit card expiration month required!");
    setErrorMessage('slcCardYear', "Credit card expiration year required!");
    
    if (errorfoundflag)
    {
        document.getElementById('errormessage').innerHTML = errormessages;
        document.getElementById('errormessage').focus();
        return false;
    }
    
    // Expiration Date Validation
    var t = new Date();
    to_year = t.getFullYear();
    to_mon = 1 + t.getMonth();
    
    cc_year = parseInt(document.getElementById('slcCardYear').value);
    cc_mon = parseInt(document.getElementById('slcCardMonth').value);
    
    if (cc_year <= to_year && cc_mon <= to_mon)
    {
        document.getElementById('errormessage').innerHTML = errormessages + "<br/><span>Your Credit Card seems to have expired!</span>";
        return false;
    }
    
    return true;
}

function setErrorMessage(eleid, errormessage)
{
    if (!document.getElementById(eleid).value)
    {
        errormessages += "<br/><span>" + errormessage + "</span>"; 
        errorfoundflag = true;
    }
}

function dest_change()
{
    var dest = document.getElementById('dest').value;
    
    if (dest == 'D')
    {
        document.getElementById('st3').style.display = 'none';
        document.getElementById('bst3').style.display = 'none';
        document.getElementById('st').innerHTML = 'State:<b style="color:Red">*</b>';
        document.getElementById('bst').innerHTML = 'State:<b style="color:Red">*</b>';
        document.getElementById('zp').innerHTML = 'Zip Code:<b style="color:Red">*</b>';
        document.getElementById('bzp').innerHTML = 'Zip Code:<b style="color:Red">*</b>';
        document.getElementById('country').value = 'US';
        document.getElementById('bcountry').value = 'US';
        
    }
    else
    {
        document.getElementById('st3').style.display = '';
        document.getElementById('bst3').style.display = '';
        document.getElementById('st').innerHTML = 'Providence:<b style="color:Red">*</b>';
        document.getElementById('bst').innerHTML = 'Providence:<b style="color:Red">*</b>';
        document.getElementById('zp').innerHTML = 'Postal Code:<b style="color:Red">*</b>';
        document.getElementById('bzp').innerHTML = 'Postal Code:<b style="color:Red">*</b>';
        document.getElementById('country').value = '';
        document.getElementById('bcountry').value = '';
        
    }
}