

/*****************************************************************************/
function handle_shipping_country_id_changed()
{
  var form = document.forms['shipping_form'];
  var country_sel = form.shipping_country_id;
  var country_id = country_sel.options[ country_sel.selectedIndex ].value;
  var state_sel = form.shipping_state_id;
  
  if( document.getElementById("shipping_method_list") )
    document.getElementById("shipping_method_list").style.display = "none";
  
  if( form.shipping_method_id )
  {
    var boxes = form.shipping_method_id;

    if( boxes.tagName )
    {
      var box = form.shipping_method_id;
      boxes = new Array( box );
    }// end if()
    for( var i = 0; i < boxes.length; i++ )
    {
      boxes[i].checked = false;
      document.getElementById("shipping_method_holder_" + boxes[i].value).className = "shipping_method_inactive";
    }// end for()
  }// end if()
  
  var httpOb = XmlHttp.create();
  httpOb.open("GET", "/handlers/ew.cart.get_country_states?country_id=" + country_id, true);
  httpOb.onreadystatechange = function() {
    if( httpOb.readyState == 4 )
    {
      var states = eval( httpOb.responseText );
      state_sel.innerHTML = "";
      state_sel.options[0] = new Option("[ Select State/Province ]", "");
      for( var i = 0; i < states.length; i++ )
      {
        state_sel.options[ i + 1 ] = new Option( states[i].name, states[i].id );
      }// end for()
    }// end if()
  };
  state_sel.innerHTML = "";
  state_sel.options[0] = new Option("[ Loading Data... ]", "");
  httpOb.send( null );
  
}// end handle_shipping_country_id_changed()


/*****************************************************************************/
function handle_shipping_method_id_changed()
{
  var form = document.forms['shipping_form']
  var methods = form.shipping_method_id;
  
  if( methods.tagName )
  {
    var box = form.shipping_method_id;
    methods = new Array( box );
  }// end if()
  
  var can_check = false;
  for( var i = 0; i < methods.length; i++ )
  {
    var holder = document.getElementById("shipping_method_holder_" + methods[i].value );
    if( methods[i].checked )
    {
      can_check = true;
      holder.className = "shipping_method_active";
    }
    else
    {
      holder.className = "shipping_method_inactive";
    }// end if()
  }// end for()
  
  if( can_check )
    calculate_shipping_and_taxes();
}// end handle_shipping_method_id_changed()


/*****************************************************************************/
function calculate_shipping_and_taxes()
{
  var form = document.forms['shipping_form']
  var methods = form.shipping_method_id;
  if( methods.tagName )
  {
    var box = form.shipping_method_id;
    methods = new Array( box );
  }// end if()
  var shipping_method_id;
  for( var i = 0; i < methods.length; i++ )
  {
    if( methods[i].checked )
    {
      shipping_method_id = methods[i].value;
    }// end if()
  }// end for()
  
  if( ! shipping_method_id )
  {
    alert("Please select a shipping method id");
    return;
  }// end if()
  
  if( form.shipping_state_id.selectedIndex == 0 )
  {
    alert("Please select a state");
    return;
  }// end if()
  
  var shipping_state_id = form.shipping_state_id.options[ form.shipping_state_id.selectedIndex ].value;
  
  var httpOb = XmlHttp.create();
  httpOb.open("POST", "/handlers/ew.cart.shipping_method", true);
  httpOb.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded');
  httpOb.onreadystatechange = function() {
    if( httpOb.readyState == 4 )
    {
      var data = eval( httpOb.responseText )[0];
      document.getElementById("sales_tax").innerHTML = "$" + data.sales_tax;
      document.getElementById("total_before_tax").innerHTML = "$" + data.total_before_tax;
      document.getElementById("shipping_method_price").innerHTML = "$" + data.shipping_method_price;
      document.getElementById("order_total").innerHTML = "$" + data.order_total;
    }// end if()
  };
  var str = "shipping_method_id=" + shipping_method_id + "&shipping_state_id=" + shipping_state_id;
  httpOb.send( str );
}// end calculate_shipping_and_taxes()

