
function updateTotal(field)
{
  order_item_qty=document.getElementById('qty_'+field).value;
	switch (field) 
	{
	case 3030: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*2475.00)
	  break
	case '3030A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*300.00)
	  break
	case 3020: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*2750.00)
	  break
	case '3020A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*500.00)
	  break
	case 3010: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*1750.00)
	  break
	case '3010A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*250.00)
	  break
	case 2204: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*1850.00)
	  break
	case '2204A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*250.00)
	  break
	case 2203: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*2650.00)
	  break
	case '2203A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*500.00)
	  break
	case 2202: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*1850.00)
	  break
	case '2202A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*250.00)
	  break
	case 2210: 
	  document.getElementById('total_'+field).value = ((order_item_qty)*2000.00)
	  break
	case '2210A': 
	  document.getElementById('total_'+field).value = ((order_item_qty)*250.00)
	  break	  	  	  	  	  	  	  
	}
}

function Currency(anynum) 
{
        //returns number as string in $xxx,xxx.xx format.
        anynum = "" + eval(anynum)  //evaluate (in case an expression sent)
        intnum = parseInt(anynum)  //isolate integer portion
        intnum = Math.abs(intnum)
        intstr = ""+intnum
        //add comma in thousands place.
        if (intnum >= 1000) {
                intlen = intstr.length
                temp1=parseInt(""+(intnum/1000))
                temp2=intstr.substring(intlen-3,intlen)
                intstr = temp1+","+temp2

        }
        if (intnum >= 1000000) {
                intlen = intstr.length
                temp1=parseInt(""+(intnum/1000000))
                temp2=intstr.substring(intlen-7,intlen)
                intstr = temp1+","+temp2

        }

        decnum = Math.abs(parseFloat(anynum)-parseInt(anynum)) //isolate decimal portion
        decnum = decnum * 100 // multiply decimal portion by 100.
        decstr = "" + Math.abs(Math.round(decnum))
        if (decstr.length>2) {decstr=decstr.substring(0,2)}
        while (decstr.length < 2) {decstr="0"+decstr}
        retval = intstr + "." + decstr 
        if (anynum < 0) {
                retval="("+retval+")"
        }
        return "$"+retval
}

function YY_CalculateForm() { //v3.03
//copyright (c)1999-2001 Yaromat.com
  var args=YY_CalculateForm.arguments;
  var myResult=""; var myField="0";
  if (document.all)
  {
    eval("args[0]=args[0].replace(/.layers/gi, '.all');");
  }
  for (var i=3; i<args.length; i++)
  {
    if(args[i].charAt(0)!="#")
    {
      myResult=myResult+args[i];
    }
    else
    {
      myField=eval(args[0]+'.'+ args[i].substring(1)+'.value'); if(myField=="")myField="0";
      myResult=myResult+myField;
    }
  }
  with (Math) 
  {
    var myExpo = pow(10, args[2]);
    var myResult = round(myExpo*eval(myResult)/1)/myExpo+"";
    myResult += (myResult.indexOf('.')==-1)?".":"";
    var missingZ = (args[2] - myResult.length + myResult.indexOf('.') + 1);
    for (var i=0; i<missingZ; i++){ myResult += "0" }
  }
  var myReturn = eval(args[0]+'.'+args[1]);
  myReturn.value = myResult;
  
}

function calculateForm(item)
{
  f=item;
  updateTotal(f);
  YY_CalculateForm('document.Order_Form','subTotal','2','#total_3030','+','#total_3030A','+','#total_3020','+','#total_3020A','+','#total_3010','+','#total_3010A','+','#total_2204','+','#total_2204A','+','#total_2203','+','#total_2203A','+','#total_2202','+','#total_2202A','+','#total_2210','+','#total_2210A');
  YY_CalculateForm('document.Order_Form','total_Order','2','#total_3030','+','#total_3030A','+','#total_3020','+','#total_3020A','+','#total_3010','+','#total_3010A','+','#total_2204','+','#total_2204A','+','#total_2203','+','#total_2203A','+','#total_2202','+','#total_2202A','+','#total_2210','+','#total_2210A','+','#total_2000','+','#total_2000A','+','#total_NA_airCourier');
}

function reTotal()
{
  YY_CalculateForm('document.Order_Form','total_Order','2','#total_3030','+','#total_3030A','+','#total_3020','+','#total_3020A','+','#total_3010','+','#total_3010A','+','#total_2204','+','#total_2204A','+','#total_2203','+','#total_2203A','+','#total_2202','+','#total_2202A','+','#total_2210','+','#total_2210A','+','#total_2000','+','#total_2000A','+','#total_NA_airCourier');
}

function check_Box(boxID)
{
  if(document.getElementById('box_'+boxID).checked == true)
  {
	switch (boxID) 
	{
	case '2000': 
	  //document.getElementById('total_'+boxID).value = 100.00;
	  calculateIntlOrderAdder();
	  reTotal();
	  break
	case '2000A': 
	  //document.getElementById('total_'+boxID).value = 50.00;
	  calculateIntlOrderAdditional();
	  reTotal();
	  break
	case 'NA_airCourier': 
	  document.getElementById('total_'+boxID).value = 35.00;
	  reTotal();
	  break
	case 'Int_airCourier': 
	  document.getElementById('total_'+boxID).value = 50.00;
	  reTotal();
	  break 	  	  	  	  	  
	}  
  }
  else
  {
    document.getElementById('total_'+boxID).value = 0.00;
	reTotal();
  }
}

function calculateIntlOrderAdder()
{
if(document.getElementById('qty_3030').value==""){document.getElementById('qty_3030').value = 0;}
if(document.getElementById('qty_3020').value==""){document.getElementById('qty_3020').value = 0;}
if(document.getElementById('qty_3010').value==""){document.getElementById('qty_3010').value = 0;}
if(document.getElementById('qty_2204').value==""){document.getElementById('qty_2204').value = 0;}
if(document.getElementById('qty_2203').value==""){document.getElementById('qty_2203').value = 0;}
if(document.getElementById('qty_2202').value==""){document.getElementById('qty_2202').value = 0;}
if(document.getElementById('qty_2210').value==""){document.getElementById('qty_2210').value = 0;}
init_report_qty = 
(parseInt(document.getElementById('qty_3030').value) +
 parseInt(document.getElementById('qty_3020').value) +
 parseInt(document.getElementById('qty_3010').value) +
 parseInt(document.getElementById('qty_2204').value) +
 parseInt(document.getElementById('qty_2203').value) +
 parseInt(document.getElementById('qty_2202').value) +
 parseInt(document.getElementById('qty_2210').value)
 );
 
// alert('calculateIntlOrderAdder QTY =' + init_report_qty);

document.getElementById('total_2000').value = (init_report_qty * 100.00);
}

function calculateIntlOrderAdditional()
{
if(document.getElementById('qty_3030A').value==""){document.getElementById('qty_3030A').value = 0;}
if(document.getElementById('qty_3020A').value==""){document.getElementById('qty_3020A').value = 0;}
if(document.getElementById('qty_3010A').value==""){document.getElementById('qty_3010A').value = 0;}
if(document.getElementById('qty_2204A').value==""){document.getElementById('qty_2204A').value = 0;}
if(document.getElementById('qty_2203A').value==""){document.getElementById('qty_2203A').value = 0;}
if(document.getElementById('qty_2202A').value==""){document.getElementById('qty_2202A').value = 0;}
if(document.getElementById('qty_2210A').value==""){document.getElementById('qty_2210A').value = 0;}
add_report_qty = 
(parseInt(document.getElementById('qty_3030A').value) +
 parseInt(document.getElementById('qty_3020A').value) +
 parseInt(document.getElementById('qty_3010A').value) +
 parseInt(document.getElementById('qty_2204A').value) +
 parseInt(document.getElementById('qty_2203A').value) +
 parseInt(document.getElementById('qty_2202A').value) +
 parseInt(document.getElementById('qty_2210A').value));
 
document.getElementById('total_2000A').value = (add_report_qty * 50.00);
}


function popIt(pg)
{
  var displayWindow = window.open(""+pg+"","subWin","statusbar=no,menubar=no,scrollbars=yes,HEIGHT=610,WIDTH=700,left=10,top=10");
  displayWindow.focus();
}

function closeIt()
{
  self.close();
  window.opener.focus();
}

function printIt()
{
  if (window.print) 
  {
    window.print();
    closeIt();
  }

}
//Form Validation Functions...
function validateMe()
{ 
//  if (!radioRequired())
//	{return false;} 
  if (!radioRequired('payment_type', "Payment Type"))
	{return false;}                
  if (!validRequired('billing_fname',"Billing First Name"))
	{return false;}  
  if (!validRequired('billing_lname',"Billing Last Name"))
	{return false;} 
  if (!validRequired('billing_company',"Billing Company Name"))
	{return false;}
  if (!validRequired('billing_title',"Billing Title"))
	{return false;}
  if (!validRequired('billing_street_address1',"Billing Street Address"))
	{return false;}
  if (!validRequired('billing_city',"Billing City"))
	{return false;}
  if (!validRequired('billing_State',"Billing State"))
	{return false;}
  if (!validRequired('billing_zip',"Billing Zip/Postal Code"))
	{return false;}
  if (!validRequired('billing_email',"Billing Email Address"))
	{return false;}
  if (!validRequired('billing_phone',"Billing Phone Number"))
	{return false;}
  if (!validRequired('newsletter_login',"Newsletter Login Name"))
	{return false;}
  if (!validRequired('newsletter_pass1',"Newsletter Password"))
	{return false;}
  if (!validRequired('newsletter_pass2',"Newsletter Password"))
	{return false;}
}

function radioRequired()
{
  var isChecked;
  var pmntType;
  for (var i=0; i<document.forms[0].payment_type.length; i++) {
     if (document.forms[0].payment_type[i].checked) {
        pmntType = document.forms[0].payment_type[i].value;
        isChecked=true;
     }
  }
  if (isChecked){
    if (pmntType=="credit_card") {
       if(!validCCFields()) {
          return false;       
       }else{
          return true;    
       }    
    }else{
      return true;
    }
  }else{
    alert('Please select Payment Type');
    document.getElementById('payment_type').focus();
    return false;
  }
}

function passwordMatch()
{
  if (document.getElementById('newsletter_pass1').value != document.getElementById('newsletter_pass2').value)
  {
		alert('Passwords do not match.');
		document.getElementById('newsletter_pass1').focus();	  
  }
}

function validCCFields()
{
    if (!validRequired('card_type',"Credit Card Type")) {
	  return false;
    }
    else if (!validRequired('exp_date',"Expiration Date")) {
	  return false;
    }
    else if (!isValidExpDate('exp_date',"Expiration Date")) {
         return false;    
    }
    else if (!validRequired('cc_num',"Credit Card Number")) {
	  return false;	  
    }
    else if (!validRequired('card_name',"Cardholder Name")) {
	  return false;
    }
    else {
          return true;
    }
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	if (document.getElementById(formField).value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		document.getElementById(formField).focus();
		result = false;
	}

	return result;
}


function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function isValidExpDate(formField,fieldLabel)
{
	var required = true;
	var result = true;
	var formValue = document.forms[0].exp_date.value;
	
 	if (result && (formValue.length>0))
 	{
 		var elems = formValue.split("/");
 		
 		result = (elems.length == 2); // should be two components
 		var expired = false;
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
 			var year = parseInt(elems[1],10);
 			
 			if (elems[1].length == 2)
 				year += 2000;
 			
 			var now = new Date();
 			
 			var nowMonth = now.getMonth() + 1;
 			var nowYear = now.getFullYear();
 			
 			expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));
 			
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && ((elems[1].length == 2) || (elems[1].length == 4));
 		}
 		
  		if (!result)
 		{
 			alert('Please enter a date in the format MM/YYYY for the "' + fieldLabel +'" field.');
			document.getElementById(formField).focus();
		}
		else if (expired)
		{
 			result = false;
 			alert('The date for "' + fieldLabel +'" has expired.');
			document.getElementById(formField).focus();
		}
	}
	return result;
} 

function CheckQty(numResults)
{  
  var result = true;
  var has_value = false;
	
  for (var i=1;i<=numResults;i++) {
     var item_name;
     var item_value;
     
     item_name = document.getElementById('qty_'+i).name;
     item_value = document.getElementById('qty_'+i).value;
     
     // remove whitespace
     item_value = Trim(item_value);      
     document.getElementById('qty_'+i).value = item_value;
     
     if (item_value) {
        has_value = true;
        if (isNaN(item_value)) {
           alert("The value entered for report line "+item_name.substr(4,2)+" quantity is not a number.\nPlease enter a whole number.");
           result = false;
           break;
        }
        else if (item_value == "0") {
              alert("Cannot order 0 copies of report line "+item_name.substr(4,2)+". Please enter a valid quantity or remove this value.");
              result = false;
              break;
        }
        else if (item_value < 0) {
              alert("The value entered for report line "+item_name.substr(4,2)+" quantity is a negative number.\nPlease enter a whole number greater than 0.");
              result = false;
              break;
        }
        else if (item_value.indexOf(".") != -1) {
              alert("The value entered for report line "+item_name.substr(4,2)+" quantity contains a decimal.\nPlease enter whole numbers only.");
              result = false;
              break;
        }
        else {
          // value's alright
        }
     }
  }
  if (!has_value) {
     alert("To Continue with your order, please enter a quantity in one or more report fields.");
     result = false;
  }
  return result;
    
}


function Trim(str)
{
   return RTrim(LTrim(str));
}

function RTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      // We have a string with trailing blank(s)...

      var i = s.length - 1;       // Get length of string

      // Iterate from the far right of string until we
      // don't have any more whitespace...
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;


      // Get the substring from the front of the string to
      // where the last non-whitespace character is...
      s = s.substring(0, i+1);
   }

   return s;
}

function LTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      // We have a string with leading blank(s)...

      var j=0, i = s.length;

      // Iterate from the far left of string until we
      // don't have any more whitespace...
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;

      // Get the substring from the first non-whitespace
      // character to the end of the string...
      s = s.substring(j, i);
   }
   return s;
}
