var poundPrice = 6;
var custom_broker_forwarded = 3.5;
var high_value_fee = 25;
var min_price = 20;
var basic_fee = 17;

function getWeight()
{
	var weight = document.taxes_form.package_weight.value; 
	
	 if (document.taxes_form.weight[1].checked) //if kilograms
	 {
		weight = document.taxes_form.package_weight.value ;
	 }
	 else
	 {
		weight = document.taxes_form.package_weight.value / 2.2;
	 }   
		 
	 return roundUpWeight(weight);
}

function getDimWeight(){
	var package_length = document.taxes_form.package_length.value;
	var package_height = document.taxes_form.package_height.value; 
	var package_width = document.taxes_form.package_width.value; 
	var dWeight = 0;

			
	//if inches
	if (document.taxes_form.size_type[1].checked)
	{	
		dWeight =  ((package_height*2.54) * (package_length*2.54) * (package_width*2.54)) / 6000;  
	}//if centimeters
	else if (document.taxes_form.size_type[0].checked)
	{
		dWeight = (package_height * package_length * package_width) / 6000;		
		
	}

	return roundUpWeight(dWeight);  
}

function calculate_real_weight()
{		
	var dimension_weight = getDimWeight();
	var weight = getWeight(); 
	
	var real_weight = Math.max(dimension_weight, weight);
	
	return Math.max(real_weight, 0.5);
}
	
function getTaxes()
{
	var taxes_form = document.taxes_form;  
	var pack_value = taxes_form.package_value.value;
	var selected_item = (taxes_form.item_type.options[taxes_form.item_type.selectedIndex].value)/100;
	var tax_value = 0;
	var selected_name = taxes_form.item_type.options[taxes_form.item_type.selectedIndex].text;
	
	if (pack_value <= 74.99)
	{
		tax_value = tax_value;
	}
	else if (pack_value < 325)
	{
		tax_value = round_taxes( 0.16 * eval(pack_value), 2) + custom_broker_forwarded  ;	
	}
	else if (pack_value >= 1000)
	{
		tax_value = round_taxes((selected_item * eval(pack_value)) + high_value_fee, 2) ;				
	}
	else 
	{
		tax_value = round_taxes(selected_item * eval(pack_value), 2) + custom_broker_forwarded  ;		
	}
	
	document.taxes_form.tax.value =  tax_value;
	return tax_value;
}

function calculate_shipping()
{
	var weight = calculate_real_weight();
	weight = weight/0.5;
	var price = min_price;  
	var pack_value = taxes_form.package_value.value;
	var insurance = 0;
	if(pack_value > 100){
		insurance = Math.ceil(pack_value/100);
	}

	if (weight != false)
	{
		if (weight >= 1)
		{ 
			price = basic_fee + (weight * poundPrice) + insurance;
		}
		document.taxes_form.shipping_price.value = round_taxes(price,2);
		return price;
	}
	else
	{
		return false ;
	} 
}

function calculate_price()
{
	if(!validateForm()) return false;

	var selected_item = document.taxes_form.item_type.options[taxes_form.item_type.selectedIndex].value;
		
	var shipping_cost = calculate_shipping();
	var taxes_cost = getTaxes();

	if (taxes_cost!= 'false' && shipping_cost !='false')
	{
		document.taxes_form.finalprice.value = round_taxes(taxes_cost + shipping_cost + eval(document.taxes_form.package_value.value),2); 
	}
	return true;
}

function round_taxes(x,places) {
	return (Math.round(x*Math.pow(10,places)))/Math.pow(10,places)
}
function isNumber(num)
{
	if(isNaN(parseFloat(num))){return false;}
	else{return true;}
}

function isNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

	
function validateForm(){
	var errors = new Array();
	
	
	var package_length = document.taxes_form.package_length;
	validateEmpty(package_length, errors, "אנא הזן שוב את אורך החבילה\n")
		
	var package_height = document.taxes_form.package_height; 
	validateEmpty(package_height, errors,"אנא הזן שוב את גובה החבילה\n");

	var package_width = document.taxes_form.package_width; 
	validateEmpty(package_width, errors, "אנא הזן שוב את רוחב החבילה\n");

	var package_weight = document.taxes_form.package_weight; 
	validateEmpty(package_weight, errors, "אנא הזן שוב את משקל החבילה\n");

	var package_value = document.taxes_form.package_value;
	validateEmpty(package_value, errors, "אנא הזן שוב את מחיר המוצר בדולרים\n");
	
	var error = "";
	for ( var x = 0; x < errors.length; x++) {
		error += errors[x];
	}
	if(error != ""){
		alert(error);
		return false;
	}
	return true;
}



function validateEmpty(fld, errorsArr, errorStr) {
    if (fld.value.length == 0 || !isNumeric(fld.value)) {
        fld.style.background = 'Yellow'; 
        errorsArr[errorsArr.length] = errorStr;
        return false;
       
    } else {
        fld.style.background = 'white';
        return true;
    }
}

function validateNumbers(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 roundUpWeight(weight){
	rWeight = Math.round(weight);

	if(rWeight == 0)
		return 0.5;

	else if((Math.ceil(weight) - weight) == 0.5)
		return weight;

	else if(weight <= rWeight){
		return rWeight;
	}
	else{
		return rWeight+0.5;
	}
}

